<?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>188940</bug_id>
          
          <creation_ts>2018-08-24 19:19:59 -0700</creation_ts>
          <short_desc>[WHLSL] Implement texture types</short_desc>
          <delta_ts>2018-10-13 19:13:46 -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>WebGPU</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>176199</blocked>
    
    <blocked>189202</blocked>
    
    <blocked>189225</blocked>
    
    <blocked>189226</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>dino</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1453646</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-24 19:19:59 -0700</bug_when>
    <thetext>[WHLSL] Implement texture types</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453647</commentid>
    <comment_count>1</comment_count>
      <attachid>348066</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-24 19:20:21 -0700</bug_when>
    <thetext>Created attachment 348066
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454192</commentid>
    <comment_count>2</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-27 16:26:14 -0700</bug_when>
    <thetext>We should make sure we test things like Texture2D&lt;vector&lt;float, 4&gt;&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454568</commentid>
    <comment_count>3</comment_count>
      <attachid>348347</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-28 15:06:23 -0700</bug_when>
    <thetext>Created attachment 348347
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454642</commentid>
    <comment_count>4</comment_count>
      <attachid>348365</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-28 17:31:44 -0700</bug_when>
    <thetext>Created attachment 348365
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454664</commentid>
    <comment_count>5</comment_count>
      <attachid>348376</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-28 19:24:58 -0700</bug_when>
    <thetext>Created attachment 348376
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454929</commentid>
    <comment_count>6</comment_count>
      <attachid>348433</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-29 14:19:32 -0700</bug_when>
    <thetext>Created attachment 348433
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455093</commentid>
    <comment_count>7</comment_count>
      <attachid>348459</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-29 18:23:38 -0700</bug_when>
    <thetext>Created attachment 348459
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455110</commentid>
    <comment_count>8</comment_count>
      <attachid>348464</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-29 19:13:06 -0700</bug_when>
    <thetext>Created attachment 348464
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455114</commentid>
    <comment_count>9</comment_count>
      <attachid>348467</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-29 19:18:44 -0700</bug_when>
    <thetext>Created attachment 348467
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455329</commentid>
    <comment_count>10</comment_count>
      <attachid>348521</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-30 11:54:23 -0700</bug_when>
    <thetext>Created attachment 348521
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455511</commentid>
    <comment_count>11</comment_count>
      <attachid>348581</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-30 19:24:02 -0700</bug_when>
    <thetext>Created attachment 348581
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455512</commentid>
    <comment_count>12</comment_count>
      <attachid>348582</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-30 19:25:35 -0700</bug_when>
    <thetext>Created attachment 348582
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455575</commentid>
    <comment_count>13</comment_count>
      <attachid>348607</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-30 23:04:20 -0700</bug_when>
    <thetext>Created attachment 348607
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455798</commentid>
    <comment_count>14</comment_count>
      <attachid>348661</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-31 12:08:27 -0700</bug_when>
    <thetext>Created attachment 348661
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455911</commentid>
    <comment_count>15</comment_count>
      <attachid>348687</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-31 17:22:11 -0700</bug_when>
    <thetext>Created attachment 348687
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455926</commentid>
    <comment_count>16</comment_count>
      <attachid>348695</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-31 18:25:38 -0700</bug_when>
    <thetext>Created attachment 348695
Can sample</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455931</commentid>
    <comment_count>17</comment_count>
      <attachid>348698</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-31 19:42:10 -0700</bug_when>
    <thetext>Created attachment 348698
Can sample</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455943</commentid>
    <comment_count>18</comment_count>
      <attachid>348705</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-31 22:02:49 -0700</bug_when>
    <thetext>Created attachment 348705
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455976</commentid>
    <comment_count>19</comment_count>
      <attachid>348717</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-01 14:03:27 -0700</bug_when>
    <thetext>Created attachment 348717
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455977</commentid>
    <comment_count>20</comment_count>
      <attachid>348718</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-01 15:18:48 -0700</bug_when>
    <thetext>Created attachment 348718
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455989</commentid>
    <comment_count>21</comment_count>
      <attachid>348723</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-01 18:13:32 -0700</bug_when>
    <thetext>Created attachment 348723
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455993</commentid>
    <comment_count>22</comment_count>
      <attachid>348724</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-01 19:36:01 -0700</bug_when>
    <thetext>Created attachment 348724
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456012</commentid>
    <comment_count>23</comment_count>
      <attachid>348726</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-01 22:28:48 -0700</bug_when>
    <thetext>Created attachment 348726
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456018</commentid>
    <comment_count>24</comment_count>
      <attachid>348727</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-01 22:40:39 -0700</bug_when>
    <thetext>Created attachment 348727
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456101</commentid>
    <comment_count>25</comment_count>
      <attachid>348752</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-02 17:03:34 -0700</bug_when>
    <thetext>Created attachment 348752
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456116</commentid>
    <comment_count>26</comment_count>
      <attachid>348758</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-02 22:58:10 -0700</bug_when>
    <thetext>Created attachment 348758
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456177</commentid>
    <comment_count>27</comment_count>
      <attachid>348775</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-03 09:20:22 -0700</bug_when>
    <thetext>Created attachment 348775
Cubemaps complete</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456220</commentid>
    <comment_count>28</comment_count>
      <attachid>348791</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-03 15:23:56 -0700</bug_when>
    <thetext>Created attachment 348791
Started gathering</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456240</commentid>
    <comment_count>29</comment_count>
      <attachid>348797</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-03 17:06:15 -0700</bug_when>
    <thetext>Created attachment 348797
Test gathering</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456241</commentid>
    <comment_count>30</comment_count>
      <attachid>348798</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-03 17:33:39 -0700</bug_when>
    <thetext>Created attachment 348798
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456250</commentid>
    <comment_count>31</comment_count>
      <attachid>348800</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-03 19:51:49 -0700</bug_when>
    <thetext>Created attachment 348800
Needs finishing touches</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456251</commentid>
    <comment_count>32</comment_count>
      <attachid>348801</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-03 19:56:42 -0700</bug_when>
    <thetext>Created attachment 348801
Needs tests for SampleCmpLevelZero</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456262</commentid>
    <comment_count>33</comment_count>
      <attachid>348804</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-03 21:39:02 -0700</bug_when>
    <thetext>Created attachment 348804
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456388</commentid>
    <comment_count>34</comment_count>
      <attachid>348804</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-09-04 11:31:25 -0700</bug_when>
    <thetext>Comment on attachment 348804
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456452</commentid>
    <comment_count>35</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-04 14:18:30 -0700</bug_when>
    <thetext>Committed r235635: &lt;https://trac.webkit.org/changeset/235635&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456454</commentid>
    <comment_count>36</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-04 14:19:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/44112106&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456462</commentid>
    <comment_count>37</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-04 14:42:07 -0700</bug_when>
    <thetext>Committed r235642: &lt;https://trac.webkit.org/changeset/235642&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468963</commentid>
    <comment_count>38</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-10-13 19:13:46 -0700</bug_when>
    <thetext>Migrated to https://github.com/gpuweb/WHLSL/issues/89</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348066</attachid>
            <date>2018-08-24 19:20:21 -0700</date>
            <delta_ts>2018-08-28 15:06:22 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188940-20180824192020.patch</filename>
            <type>text/plain</type>
            <size>202573</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MzM2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjNkY2Y0ZWQxYjcwYmJjM2QzYzU1Y2MwNmZmNjE0MWMz
NzQ1NmM2NS4uZTA3MTgxNGZiMGE2ODcyNzE1NjIxMzk0MDA1YTBhMDkxZDMzMWNhOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
NiBAQAorMjAxOC0wOC0yNCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRleHR1cmUgdHlwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5N
YXRyaXhHZXR0ZXIuanM6IENvcGllZCBmcm9tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0J1aWx0aW5WZWN0b3JJbmRleFNldHRlci5qcy4KKyAgICAgICAgKEJ1aWx0aW5NYXRyaXhHZXR0
ZXIpOgorICAgICAgICAoQnVpbHRpbk1hdHJpeEdldHRlci5wcm90b3R5cGUuZ2V0IGhlaWdodCk6
CisgICAgICAgIChCdWlsdGluTWF0cml4R2V0dGVyLnByb3RvdHlwZS5nZXQgd2lkdGgpOgorICAg
ICAgICAoQnVpbHRpbk1hdHJpeEdldHRlci5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAo
QnVpbHRpbk1hdHJpeEdldHRlci5mdW5jdGlvbnMpOgorICAgICAgICAoQnVpbHRpbk1hdHJpeEdl
dHRlci5wcm90b3R5cGUuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRpbk1hdHJpeFNldHRlci5qczogUmVuYW1lZCBmcm9t
IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JJbmRleFNldHRlci5q
cy4KKyAgICAgICAgKEJ1aWx0aW5NYXRyaXhTZXR0ZXIpOgorICAgICAgICAoQnVpbHRpbk1hdHJp
eFNldHRlci5wcm90b3R5cGUuZ2V0IGhlaWdodCk6CisgICAgICAgIChCdWlsdGluTWF0cml4U2V0
dGVyLnByb3RvdHlwZS5nZXQgd2lkdGgpOgorICAgICAgICAoQnVpbHRpbk1hdHJpeFNldHRlci5w
cm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoQnVpbHRpbk1hdHJpeFNldHRlci5mdW5jdGlv
bnMpOgorICAgICAgICAoQnVpbHRpbk1hdHJpeFNldHRlci5wcm90b3R5cGUuaW5zdGFudGlhdGVJ
bXBsZW1lbnRhdGlvbik6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRp
blZlY3RvckNvbnN0cnVjdG9ycy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9yRXF1YWxpdHlPcGVyYXRvci5qczogUmVtb3ZlZC4KKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9yR2V0dGVyLmpzOgor
ICAgICAgICAoQnVpbHRpblZlY3RvckdldHRlci5wcm90b3R5cGUuaW5zdGFudGlhdGVJbXBsZW1l
bnRhdGlvbik6CisgICAgICAgIChCdWlsdGluVmVjdG9yR2V0dGVyKToKKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9yU2V0dGVyLmpzOgorICAgICAgICAoQnVp
bHRpblZlY3RvclNldHRlci5mdW5jdGlvbnMpOgorICAgICAgICAoQnVpbHRpblZlY3RvclNldHRl
ci5wcm90b3R5cGUuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChCdWlsdGlu
VmVjdG9yU2V0dGVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRXhw
cmVzc2lvbi5qczoKKyAgICAgICAgKENhbGxFeHByZXNzaW9uLnByb3RvdHlwZS5yZXNvbHZlKToK
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja1R5cGVzV2l0aEFyZ3VtZW50
cy5qczoKKyAgICAgICAgKGNoZWNrVHlwZXNXaXRoQXJndW1lbnRzLlR5cGVXaXRoQXJndW1lbnRz
Q2hlY2tlci5wcm90b3R5cGUudmlzaXRUeXBlUmVmKToKKyAgICAgICAgKGNoZWNrVHlwZXNXaXRo
QXJndW1lbnRzLlR5cGVXaXRoQXJndW1lbnRzQ2hlY2tlcik6CisgICAgICAgIChjaGVja1R5cGVz
V2l0aEFyZ3VtZW50cyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tl
ci5qczoKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0VmVjdG9yVHlwZSk6CisgICAg
ICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdE1hdHJpeFR5cGUpOgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0NvbnN0ZXhwckZvbGRlci5qczoKKyAgICAgICAgKENvbnN0ZXhw
ckZvbGRlci5wcm90b3R5cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChDb25zdGV4
cHJGb2xkZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0V2YWx1YXRvci5q
czoKKyAgICAgICAgKEV2YWx1YXRvci5wcm90b3R5cGUudmlzaXRUZXJuYXJ5RXhwcmVzc2lvbik6
CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxhdHRlbmVkU3RydWN0T2Zmc2V0
R2F0aGVyZXIuanM6CisgICAgICAgIChGbGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5wcm90
b3R5cGUudmlzaXRNYXRyaXhUeXBlKToKKyAgICAgICAgKEZsYXR0ZW5lZFN0cnVjdE9mZnNldEdh
dGhlcmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWxU
eXBlLmpzOgorICAgICAgICAobGV0LkZsb2F0TGl0ZXJhbFR5cGUuY3JlYXRlTGl0ZXJhbFR5cGUu
dmVyaWZ5QXNBcmd1bWVudCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50
cmluc2ljcy5qczoKKyAgICAgICAgKEludHJpbnNpY3MuKToKKyAgICAgICAgKEludHJpbnNpY3Mp
OgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01hdHJpeFR5cGUuanM6IFJlbmFt
ZWQgZnJvbSBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9ySW5kZXhH
ZXR0ZXIuanMuCisgICAgICAgIChNYXRyaXhUeXBlKToKKyAgICAgICAgKE1hdHJpeFR5cGUucHJv
dG90eXBlLmdldCBlbGVtZW50VHlwZSk6CisgICAgICAgIChNYXRyaXhUeXBlLnByb3RvdHlwZS5n
ZXQgbnVtUm93cyk6CisgICAgICAgIChNYXRyaXhUeXBlLnByb3RvdHlwZS5nZXQgbnVtQ29sdW1u
cyk6CisgICAgICAgIChNYXRyaXhUeXBlLnByb3RvdHlwZS5nZXQgbnVtUm93c1ZhbHVlKToKKyAg
ICAgICAgKE1hdHJpeFR5cGUucHJvdG90eXBlLmdldCBudW1Db2x1bW5zVmFsdWUpOgorICAgICAg
ICAoTWF0cml4VHlwZS5wcm90b3R5cGUuZ2V0IHNpemUpOgorICAgICAgICAoTWF0cml4VHlwZS5w
cm90b3R5cGUudW5pZnlJbXBsKToKKyAgICAgICAgKE1hdHJpeFR5cGUucHJvdG90eXBlLnBvcHVs
YXRlRGVmYXVsdFZhbHVlKToKKyAgICAgICAgKE1hdHJpeFR5cGUucHJvdG90eXBlLnRvU3RyaW5n
KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5qczoKKyAg
ICAgICAgKE5hbWVDb250ZXh0LnByb3RvdHlwZS5hZGQpOgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL05hdGl2ZVR5cGUuanM6CisgICAgICAgIChOYXRpdmVUeXBlLmNyZWF0ZSk6
CisgICAgICAgIChOYXRpdmVUeXBlKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9PcGVyYXRvckFuZGVySW5kZXhlci5qczogUmVuYW1lZCBmcm9tIFRvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL09wZXJhdG9yQW5kZXJJbmRleC5qcy4KKyAgICAgICAgKE9wZXJhdG9yQW5k
ZXJJbmRleGVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9PcGVyYXRvckJv
b2wuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJlcGFy
ZS5qczoKKyAgICAgICAgKGxldC5wcmVwYXJlKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9Qcm9ncmFtLmpzOgorICAgICAgICAoUHJvZ3JhbS5wcm90b3R5cGUuYWRkKToKKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoKKyAgICAgICAgKFJl
d3JpdGVyLnByb3RvdHlwZS52aXNpdE1hdHJpeFR5cGUpOgorICAgICAgICAoUmV3cml0ZXIpOgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWw6CisgICAgICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAob3Bl
cmF0b3IuYm9vbCk6CisgICAgICAgIChib29sLm9wZXJhdG9yKToKKyAgICAgICAgKHVjaGFyLm9w
ZXJhdG9yKToKKyAgICAgICAgKHVzaG9ydC5vcGVyYXRvcik6CisgICAgICAgIChjaGFyLm9wZXJh
dG9yKToKKyAgICAgICAgKHNob3J0Lm9wZXJhdG9yKToKKyAgICAgICAgKHVpbnQub3BlcmF0b3Ip
OgorICAgICAgICAoaW50Lm9wZXJhdG9yKToKKyAgICAgICAgKGhhbGYub3BlcmF0b3IpOgorICAg
ICAgICAoZmxvYXQub3BlcmF0b3IpOgorICAgICAgICAob3BlcmF0b3IuYm9vbDIpOgorICAgICAg
ICAob3BlcmF0b3IuYm9vbDMpOgorICAgICAgICAob3BlcmF0b3IuYm9vbDQpOgorICAgICAgICAo
dWludC5vcGVyYXRvci5sZW5ndGgpOgorICAgICAgICAob3BlcmF0b3IudWNoYXIyKToKKyAgICAg
ICAgKG9wZXJhdG9yLnVjaGFyMyk6CisgICAgICAgIChvcGVyYXRvci51Y2hhcjQpOgorICAgICAg
ICAob3BlcmF0b3IudXNob3J0Mik6CisgICAgICAgIChvcGVyYXRvci51c2hvcnQzKToKKyAgICAg
ICAgKG9wZXJhdG9yLnVzaG9ydDQpOgorICAgICAgICAob3BlcmF0b3IudWludDIpOgorICAgICAg
ICAob3BlcmF0b3IudWludDMpOgorICAgICAgICAob3BlcmF0b3IudWludDQpOgorICAgICAgICAo
b3BlcmF0b3IuY2hhcjIpOgorICAgICAgICAob3BlcmF0b3IuY2hhcjMpOgorICAgICAgICAob3Bl
cmF0b3IuY2hhcjQpOgorICAgICAgICAob3BlcmF0b3Iuc2hvcnQyKToKKyAgICAgICAgKG9wZXJh
dG9yLnNob3J0Myk6CisgICAgICAgIChvcGVyYXRvci5zaG9ydDQpOgorICAgICAgICAob3BlcmF0
b3IuaW50Mik6CisgICAgICAgIChvcGVyYXRvci5pbnQzKToKKyAgICAgICAgKG9wZXJhdG9yLmlu
dDQpOgorICAgICAgICAob3BlcmF0b3IuaGFsZjIpOgorICAgICAgICAob3BlcmF0b3IuaGFsZjMp
OgorICAgICAgICAob3BlcmF0b3IuaGFsZjQpOgorICAgICAgICAob3BlcmF0b3IuZmxvYXQyKToK
KyAgICAgICAgKG9wZXJhdG9yLmZsb2F0Myk6CisgICAgICAgIChvcGVyYXRvci5mbG9hdDQpOgor
ICAgICAgICAoYm9vbDIub3BlcmF0b3IpOgorICAgICAgICAoYm9vbDMub3BlcmF0b3IpOgorICAg
ICAgICAoYm9vbDQub3BlcmF0b3IpOgorICAgICAgICAodWNoYXIyLm9wZXJhdG9yKToKKyAgICAg
ICAgKHVjaGFyMy5vcGVyYXRvcik6CisgICAgICAgICh1Y2hhcjQub3BlcmF0b3IpOgorICAgICAg
ICAodXNob3J0Mi5vcGVyYXRvcik6CisgICAgICAgICh1c2hvcnQzLm9wZXJhdG9yKToKKyAgICAg
ICAgKHVzaG9ydDQub3BlcmF0b3IpOgorICAgICAgICAodWludDIub3BlcmF0b3IpOgorICAgICAg
ICAodWludDMub3BlcmF0b3IpOgorICAgICAgICAodWludDQub3BlcmF0b3IpOgorICAgICAgICAo
Y2hhcjIub3BlcmF0b3IpOgorICAgICAgICAoY2hhcjMub3BlcmF0b3IpOgorICAgICAgICAoY2hh
cjQub3BlcmF0b3IpOgorICAgICAgICAoc2hvcnQyLm9wZXJhdG9yKToKKyAgICAgICAgKHNob3J0
My5vcGVyYXRvcik6CisgICAgICAgIChzaG9ydDQub3BlcmF0b3IpOgorICAgICAgICAoaW50Mi5v
cGVyYXRvcik6CisgICAgICAgIChpbnQzLm9wZXJhdG9yKToKKyAgICAgICAgKGludDQub3BlcmF0
b3IpOgorICAgICAgICAoaGFsZjIub3BlcmF0b3IpOgorICAgICAgICAoaGFsZjMub3BlcmF0b3Ip
OgorICAgICAgICAoaGFsZjQub3BlcmF0b3IpOgorICAgICAgICAoZmxvYXQyLm9wZXJhdG9yKToK
KyAgICAgICAgKGZsb2F0My5vcGVyYXRvcik6CisgICAgICAgIChmbG9hdDQub3BlcmF0b3IpOgor
ICAgICAgICAoYWxsVmVjdG9yVHlwZU5hbWVzKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9Td2l6emxlT3AuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzOgorICAgICAg
ICAoc3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLkZpbmRBbGxUeXBlcy5wcm90
b3R5cGUudmlzaXRNYXRyaXhUeXBlKToKKyAgICAgICAgKHN5bnRoZXNpemVEZWZhdWx0Q29uc3Ry
dWN0b3JPcGVyYXRvci5GaW5kQWxsVHlwZXMpOgorICAgICAgICAoc3ludGhlc2l6ZURlZmF1bHRD
b25zdHJ1Y3Rvck9wZXJhdG9yKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
eW50aGVzaXplT3BlcmF0b3JCb29sLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UZXN0LmpzOgorICAgICAgICAobWFrZVNhbXBsZXIpOgorICAgICAgICAobWFrZTFEVGV4dHVy
ZSk6CisgICAgICAgICh0ZXN0cy50ZXh0dXJlRGltZW5zaW9ucyk6CisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoKKyAgICAgICAgKFZpc2l0b3IucHJvdG90eXBl
LnZpc2l0TWF0cml4VHlwZSk6CisgICAgICAgIChWaXNpdG9yKToKKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sOgorCiAyMDE4LTA4LTI0ICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgSW50cm9kdWNlIF9XS0lu
c3BlY3RvcgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCmluZGV4IDMxNWJlYzJlNjg4
NjI3YzNjZDgwYmE0NmZiYTI0MDAxZTI4ZjlmNGMuLjljMmEzNzE1MGMxZTk3NmI5MjZjZmJlZTIz
NDM3NTIwYThkZTRhNDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0FsbC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKQEAgLTM0
LDcgKzM0LDYgQEAgbG9hZCgiVmlzaXRvci5qcyIpOwogbG9hZCgiQ3JlYXRlTGl0ZXJhbC5qcyIp
OwogbG9hZCgiQ3JlYXRlTGl0ZXJhbFR5cGUuanMiKTsKIGxvYWQoIlByb3BlcnR5QWNjZXNzRXhw
cmVzc2lvbi5qcyIpOwotbG9hZCgiU3dpenpsZU9wLmpzIik7CiBsb2FkKCJOYXRpdmVUeXBlLmpz
Iik7CiAKIGxvYWQoIkFkZHJlc3NTcGFjZS5qcyIpOwpAQCAtNDYsMTIgKzQ1LDEwIEBAIGxvYWQo
IkF1dG9XcmFwcGVyLmpzIik7CiBsb2FkKCJCbG9jay5qcyIpOwogbG9hZCgiQm9vbExpdGVyYWwu
anMiKTsKIGxvYWQoIkJyZWFrLmpzIik7Ci1sb2FkKCJCdWlsdGluVmVjdG9yQ29uc3RydWN0b3Jz
LmpzIik7Citsb2FkKCJCdWlsdGluTWF0cml4R2V0dGVyLmpzIik7Citsb2FkKCJCdWlsdGluTWF0
cml4U2V0dGVyLmpzIik7CiBsb2FkKCJCdWlsdGluVmVjdG9yR2V0dGVyLmpzIik7CiBsb2FkKCJC
dWlsdGluVmVjdG9yU2V0dGVyLmpzIik7Ci1sb2FkKCJCdWlsdGluVmVjdG9ySW5kZXhHZXR0ZXIu
anMiKTsKLWxvYWQoIkJ1aWx0aW5WZWN0b3JJbmRleFNldHRlci5qcyIpOwotbG9hZCgiQnVpbHRp
blZlY3RvckVxdWFsaXR5T3BlcmF0b3IuanMiKTsKIGxvYWQoIkNhbGxFeHByZXNzaW9uLmpzIik7
CiBsb2FkKCJDYWxsRnVuY3Rpb24uanMiKTsKIGxvYWQoIkNoZWNrLmpzIik7CkBAIC0xMTMsNiAr
MTEwLDcgQEAgbG9hZCgiTG9naWNhbE5vdC5qcyIpOwogbG9hZCgiTG9vcENoZWNrZXIuanMiKTsK
IGxvYWQoIk1ha2VBcnJheVJlZkV4cHJlc3Npb24uanMiKTsKIGxvYWQoIk1ha2VQdHJFeHByZXNz
aW9uLmpzIik7Citsb2FkKCJNYXRyaXhUeXBlLmpzIik7CiBsb2FkKCJOYW1lQ29udGV4dC5qcyIp
OwogbG9hZCgiTmFtZUZpbmRlci5qcyIpOwogbG9hZCgiTmFtZVJlc29sdmVyLmpzIik7CkBAIC0x
MjAsOSArMTE4LDggQEAgbG9hZCgiTmF0aXZlRnVuYy5qcyIpOwogbG9hZCgiTm9ybWFsVXNlUHJv
cGVydHlSZXNvbHZlci5qcyIpOwogbG9hZCgiTnVsbExpdGVyYWwuanMiKTsKIGxvYWQoIk51bGxU
eXBlLmpzIik7Ci1sb2FkKCJPcGVyYXRvckFuZGVySW5kZXguanMiKTsKK2xvYWQoIk9wZXJhdG9y
QW5kZXJJbmRleGVyLmpzIik7CiBsb2FkKCJPcGVyYXRvckFycmF5UmVmTGVuZ3RoLmpzIik7Ci1s
b2FkKCJPcGVyYXRvckJvb2wuanMiKTsKIGxvYWQoIk9yaWdpbktpbmQuanMiKTsKIGxvYWQoIk92
ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUuanMiKTsKIGxvYWQoIlBhcnNlLmpzIik7CkBAIC0xNTAs
NyArMTQ3LDYgQEAgbG9hZCgiU3dpdGNoU3RhdGVtZW50LmpzIik7CiBsb2FkKCJTeW50aGVzaXpl
QXJyYXlPcGVyYXRvckxlbmd0aC5qcyIpOwogbG9hZCgiU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMu
anMiKTsKIGxvYWQoIlN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMiKTsKLWxvYWQoIlN5bnRo
ZXNpemVPcGVyYXRvckJvb2wuanMiKTsKIGxvYWQoIlN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JP
cGVyYXRvci5qcyIpOwogbG9hZCgiU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9y
LmpzIik7CiBsb2FkKCJUZXJuYXJ5RXhwcmVzc2lvbi5qcyIpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRpbk1hdHJpeEdldHRlci5qcyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5NYXRyaXhHZXR0ZXIuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODZhMzMzOTQ2Y2JmNGU1ZGI3YTQ4ZGI4NTg1ODgxN2ZmOGM2N2Q2ZQotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5NYXRyaXhHZXR0ZXIuanMK
QEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisidXNlIHN0cmljdCI7CisKK2NsYXNzIEJ1aWx0aW5NYXRyaXhHZXR0ZXIgeworICAgIGNv
bnN0cnVjdG9yKGJhc2VUeXBlTmFtZSwgaGVpZ2h0LCB3aWR0aCkKKyAgICB7CisgICAgICAgIHRo
aXMuX2Jhc2VUeXBlTmFtZSA9IGJhc2VUeXBlTmFtZTsKKyAgICAgICAgdGhpcy5faGVpZ2h0ID0g
aGVpZ2h0OworICAgICAgICB0aGlzLl93aWR0aCA9IHdpZHRoOworICAgIH0KKworICAgIGdldCBi
YXNlVHlwZU5hbWUoKSB7IHJldHVybiB0aGlzLl9iYXNlVHlwZU5hbWU7IH0KKyAgICBnZXQgaGVp
Z2h0KCkgeyByZXR1cm4gdGhpcy5faGVpZ2h0OyB9CisgICAgZ2V0IHdpZHRoKCkgeyByZXR1cm4g
dGhpcy5fd2lkdGg7IH0KKworICAgIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiBg
bmF0aXZlICR7dGhpcy5iYXNlVHlwZU5hbWV9JHt0aGlzLndpZHRofSBvcGVyYXRvcltdKCR7dGhp
cy5iYXNlVHlwZU5hbWV9JHt0aGlzLmhlaWdodH14JHt0aGlzLndpZHRofSx1aW50KWA7CisgICAg
fQorCisgICAgc3RhdGljIGZ1bmN0aW9ucygpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuX2Z1
bmN0aW9ucykgeworICAgICAgICAgICAgdGhpcy5fZnVuY3Rpb25zID0gW107CisKKyAgICAgICAg
ICAgIGZvciAobGV0IHR5cGVOYW1lIG9mIFsiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAg
ICAgICAgZm9yIChsZXQgaGVpZ2h0IG9mIFsyLCAzLCA0XSkgeworICAgICAgICAgICAgICAgICAg
ICBmb3IgKGxldCB3aWR0aCBvZiBbMiwgMywgNF0pCisgICAgICAgICAgICAgICAgICAgICAgICB0
aGlzLl9mdW5jdGlvbnMucHVzaChuZXcgQnVpbHRpbk1hdHJpeEdldHRlcih0eXBlTmFtZSwgaGVp
Z2h0LCB3aWR0aCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgICAgICByZXR1cm4gdGhpcy5fZnVuY3Rpb25zOworICAgIH0KKworICAgIGluc3RhbnRp
YXRlSW1wbGVtZW50YXRpb24oZnVuYykKKyAgICB7CisgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW21hdCwgaW5kZXhdKSA9PiB7CisgICAgICAgICAgICBjb25zdCBpbmRleFZhbHVlID0g
aW5kZXgubG9hZFZhbHVlKCk7CisgICAgICAgICAgICBpZiAoaW5kZXhWYWx1ZSA+PSAwICYmIGlu
ZGV4VmFsdWUgPCB0aGlzLmhlaWdodCkgeworICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9
IG5ldyBFUHRyKG5ldyBFQnVmZmVyKHRoaXMud2lkdGgpLCAwKTsKKyAgICAgICAgICAgICAgICBm
b3IgKGxldCBpID0gMDsgaSA8IHRoaXMud2lkdGg7IGkrKykKKyAgICAgICAgICAgICAgICAgICAg
cmVzdWx0LnNldChvZmZzZXQrKywgbWF0LmdldChpbmRleFZhbHVlICogdGhpcy53aWR0aCArIGkp
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltCdWlsdGluIG1hdHJpeCBnZXR0
ZXJdIiwgIk91dC1vZi1ib3VuZHMgaW5kZXggd2hlbiBpbmRleGluZyBpbnRvIGEgbWF0cml4Iik7
CisgICAgICAgIH07CisgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb25EYXRhID0gdGhpczsKKyAg
ICB9Cit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGlu
TWF0cml4U2V0dGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRpbk1h
dHJpeFNldHRlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mN2I4NTc0OWNlMWYyZDdkMWFmMjZiMWNkZThmNzhm
M2Y4NGI1NTM4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvQnVpbHRpbk1hdHJpeFNldHRlci5qcwpAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisidXNlIHN0cmljdCI7CisKK2NsYXNzIEJ1
aWx0aW5NYXRyaXhTZXR0ZXIgeworICAgIGNvbnN0cnVjdG9yKGJhc2VUeXBlTmFtZSwgaGVpZ2h0
LCB3aWR0aCkKKyAgICB7CisgICAgICAgIHRoaXMuX2Jhc2VUeXBlTmFtZSA9IGJhc2VUeXBlTmFt
ZTsKKyAgICAgICAgdGhpcy5faGVpZ2h0ID0gaGVpZ2h0OworICAgICAgICB0aGlzLl93aWR0aCA9
IHdpZHRoOworICAgIH0KKworICAgIGdldCBiYXNlVHlwZU5hbWUoKSB7IHJldHVybiB0aGlzLl9i
YXNlVHlwZU5hbWU7IH0KKyAgICBnZXQgaGVpZ2h0KCkgeyByZXR1cm4gdGhpcy5faGVpZ2h0OyB9
CisgICAgZ2V0IHdpZHRoKCkgeyByZXR1cm4gdGhpcy5fd2lkdGg7IH0KKworICAgIHRvU3RyaW5n
KCkKKyAgICB7CisgICAgICAgIHJldHVybiBgbmF0aXZlICR7dGhpcy5iYXNlVHlwZU5hbWV9JHt0
aGlzLmhlaWdodH14JHt0aGlzLndpZHRofSBvcGVyYXRvcltdPSgke3RoaXMuYmFzZVR5cGVOYW1l
fSR7dGhpcy5oZWlnaHR9eCR7dGhpcy53aWR0aH0sdWludCwke3RoaXMuYmFzZVR5cGVOYW1lfSR7
dGhpcy53aWR0aH0pYDsKKyAgICB9CisKKyAgICBzdGF0aWMgZnVuY3Rpb25zKCkKKyAgICB7Cisg
ICAgICAgIGlmICghdGhpcy5fZnVuY3Rpb25zKSB7CisgICAgICAgICAgICB0aGlzLl9mdW5jdGlv
bnMgPSBbXTsKKworICAgICAgICAgICAgZm9yIChsZXQgdHlwZU5hbWUgb2YgWyJoYWxmIiwgImZs
b2F0Il0pIHsKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBoZWlnaHQgb2YgWzIsIDMsIDRdKSB7
CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHdpZHRoIG9mIFsyLCAzLCA0XSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHRoaXMuX2Z1bmN0aW9ucy5wdXNoKG5ldyBCdWlsdGluTWF0cml4
U2V0dGVyKHR5cGVOYW1lLCBoZWlnaHQsIHdpZHRoKSk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzLl9mdW5jdGlvbnM7Cisg
ICAgfQorCisgICAgaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKQorICAgIHsKKyAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbYmFzZSwgaW5kZXgsIHZhbHVlXSkgPT4geworICAg
ICAgICAgICAgY29uc3QgaW5kZXhWYWx1ZSA9IGluZGV4LmxvYWRWYWx1ZSgpOworICAgICAgICAg
ICAgaWYgKGluZGV4VmFsdWUgPj0gMCAmJiBpbmRleFZhbHVlIDwgdGhpcy5oZWlnaHQpIHsKKyAg
ICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEVQdHIobmV3IEVCdWZmZXIodGhpcy53aWR0
aCAqIHRoaXMuaGVpZ2h0KSwgMCk7CisgICAgICAgICAgICAgICAgcmVzdWx0LmNvcHlGcm9tKGJh
c2UsIHRoaXMud2lkdGggKiB0aGlzLmhlaWdodCk7CisgICAgICAgICAgICAgICAgcmVzdWx0LnBs
dXMoaW5kZXhWYWx1ZSAqIHRoaXMud2lkdGgpLmNvcHlGcm9tKHZhbHVlLCB0aGlzLndpZHRoKTsK
KyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltCdWlsdGluIG1hdHJpeCBzZXR0ZXJd
IiwgIk91dC1vZi1ib3VuZHMgaW5kZXggd2hlbiBpbmRleGluZyBpbnRvIGEgbWF0cml4Iik7Cisg
ICAgICAgIH07CisgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb25EYXRhID0gdGhpczsKKyAgICB9
Cit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVj
dG9yQ29uc3RydWN0b3JzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRp
blZlY3RvckNvbnN0cnVjdG9ycy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjcw
NGI0M2EwNmMyZmFlZDlkZmE3M2RlYWQzM2JiMGM1Yzk1NTk4NS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9CdWlsdGluVmVjdG9yQ29uc3RydWN0b3JzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsODQgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0idXNlIHN0
cmljdCI7Ci0KLWNsYXNzIEJ1aWx0aW5WZWN0b3JDb25zdHJ1Y3RvcnMgewotICAgIGNvbnN0cnVj
dG9yKGJhc2VUeXBlTmFtZSwgcGFyYW1ldGVyU2l6ZXMpCi0gICAgewotICAgICAgICB0aGlzLl9i
YXNlVHlwZU5hbWUgPSBiYXNlVHlwZU5hbWU7Ci0gICAgICAgIHRoaXMuX3BhcmFtZXRlclNpemVz
ID0gcGFyYW1ldGVyU2l6ZXM7Ci0gICAgfQotCi0gICAgZ2V0IGJhc2VUeXBlTmFtZSgpIHsgcmV0
dXJuIHRoaXMuX2Jhc2VUeXBlTmFtZTsgfQotICAgIGdldCBwYXJhbWV0ZXJTaXplcygpIHsgcmV0
dXJuIHRoaXMuX3BhcmFtZXRlclNpemVzOyB9Ci0gICAgZ2V0IG91dHB1dFNpemUoKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIHRoaXMucGFyYW1ldGVyU2l6ZXMucmVkdWNlKChhLCBiKSA9PiBhICsg
YiwgMCk7Ci0gICAgfQotCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGBu
YXRpdmUgb3BlcmF0b3IgJHt0aGlzLmJhc2VUeXBlTmFtZX0ke3RoaXMub3V0cHV0U2l6ZX0oJHt0
aGlzLnBhcmFtZXRlclNpemVzLm1hcCh4ID0+IHggPT0gMSA/IHRoaXMuYmFzZVR5cGVOYW1lIDog
dGhpcy5iYXNlVHlwZU5hbWUgKyB4KS5qb2luKCIsIil9KWA7Ci0gICAgfQotCi0gICAgc3RhdGlj
IGZ1bmN0aW9ucygpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX2Z1bmN0aW9ucykgewotICAg
ICAgICAgICAgdGhpcy5fZnVuY3Rpb25zID0gW107Ci0KLSAgICAgICAgICAgIGZvciAobGV0IHR5
cGVOYW1lIG9mIFZlY3RvckVsZW1lbnRUeXBlcykgewotICAgICAgICAgICAgICAgIGZvciAobGV0
IHNpemUgb2YgVmVjdG9yRWxlbWVudFNpemVzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAo
bGV0IHBhcmFtU2l6ZXMgb2YgdGhpcy5fdmVjdG9yUGFyYW1ldGVyU2l6ZXNGb3JNYXhpbXVtU2l6
ZShzaXplKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2Z1bmN0aW9ucy5wdXNoKG5l
dyBCdWlsdGluVmVjdG9yQ29uc3RydWN0b3JzKHR5cGVOYW1lLCBwYXJhbVNpemVzKSk7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0
aGlzLl9mdW5jdGlvbnM7Ci0gICAgfQotCi0gICAgc3RhdGljIF92ZWN0b3JQYXJhbWV0ZXJTaXpl
c0Zvck1heGltdW1TaXplKG1heFNpemUpCi0gICAgewotICAgICAgICBsZXQgdmFyaWFudHMgPSBb
IFsgbWF4U2l6ZSBdIF07Ci0gICAgICAgIGZvciAobGV0IHNwbGl0UG9pbnQgPSAxOyBzcGxpdFBv
aW50IDwgbWF4U2l6ZTsgc3BsaXRQb2ludCsrKSB7Ci0gICAgICAgICAgICBmb3IgKGxldCB2IG9m
IEJ1aWx0aW5WZWN0b3JDb25zdHJ1Y3RvcnMuX3ZlY3RvclBhcmFtZXRlclNpemVzRm9yTWF4aW11
bVNpemUobWF4U2l6ZSAtIHNwbGl0UG9pbnQpKQotICAgICAgICAgICAgICAgIHZhcmlhbnRzLnB1
c2goWyBzcGxpdFBvaW50IF0uY29uY2F0KHYpKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4g
dmFyaWFudHM7Ci0gICAgfQotCi0gICAgaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKQot
ICAgIHsKLSAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChhcmdzKSA9PiB7Ci0gICAgICAg
ICAgICBjb25zdCByZXN1bHQgPSBuZXcgRVB0cihuZXcgRUJ1ZmZlcih0aGlzLm91dHB1dFNpemUp
LCAwKTsKLSAgICAgICAgICAgIGxldCBvZmZzZXQgPSAwOwotICAgICAgICAgICAgZm9yIChsZXQg
aSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQg
aiA9IDA7IGogPCB0aGlzLnBhcmFtZXRlclNpemVzW2ldOyBqKyspCi0gICAgICAgICAgICAgICAg
ICAgIHJlc3VsdC5zZXQob2Zmc2V0KyssIGFyZ3NbaV0uZ2V0KGopKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH07Ci0gICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb25EYXRhID0gdGhpczsKLSAgICB9Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRpblZl
Y3RvckVxdWFsaXR5T3BlcmF0b3IuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9C
dWlsdGluVmVjdG9yRXF1YWxpdHlPcGVyYXRvci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYjE4M2QzNTY4NjE5NDFiYzI3NmU0ZDNjNjdjNWU0N2VjYWZlNDcwOS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9yRXF1YWxpdHlPcGVyYXRvci5qcworKysgL2Rldi9udWxs
CkBAIC0xLDY2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBCdWlsdGluVmVjdG9yRXF1YWxpdHlPcGVyYXRv
ciB7Ci0gICAgY29uc3RydWN0b3IoYmFzZVR5cGVOYW1lLCBzaXplKQotICAgIHsKLSAgICAgICAg
dGhpcy5fYmFzZVR5cGVOYW1lID0gYmFzZVR5cGVOYW1lOwotICAgICAgICB0aGlzLl9zaXplID0g
c2l6ZTsKLSAgICB9Ci0KLSAgICBnZXQgYmFzZVR5cGVOYW1lKCkgeyByZXR1cm4gdGhpcy5fYmFz
ZVR5cGVOYW1lOyB9Ci0gICAgZ2V0IHNpemUoKSB7IHJldHVybiB0aGlzLl9zaXplOyB9Ci0KLSAg
ICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4gYG5hdGl2ZSBib29sIG9wZXJhdG9y
PT0oJHt0aGlzLmJhc2VUeXBlTmFtZX0ke3RoaXMuc2l6ZX0sJHt0aGlzLmJhc2VUeXBlTmFtZX0k
e3RoaXMuc2l6ZX0pYDsKLSAgICB9Ci0KLSAgICBzdGF0aWMgZnVuY3Rpb25zKCkKLSAgICB7Ci0g
ICAgICAgIGlmICghdGhpcy5fZnVuY3Rpb25zKSB7Ci0gICAgICAgICAgICB0aGlzLl9mdW5jdGlv
bnMgPSBbXTsKLQotICAgICAgICAgICAgZm9yIChsZXQgdHlwZU5hbWUgb2YgVmVjdG9yRWxlbWVu
dFR5cGVzKSB7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgc2l6ZSBvZiBWZWN0b3JFbGVtZW50
U2l6ZXMpCi0gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Z1bmN0aW9ucy5wdXNoKG5ldyBCdWls
dGluVmVjdG9yRXF1YWxpdHlPcGVyYXRvcih0eXBlTmFtZSwgc2l6ZSkpOwotICAgICAgICAgICAg
fQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aGlzLl9mdW5jdGlvbnM7Ci0gICAgfQotCi0g
ICAgaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKQotICAgIHsKLSAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbcmVmMSwgcmVmMl0sIG5vZGUpID0+IHsKLSAgICAgICAgICAgIGZv
ciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zaXplOyBpKyspIHsKLSAgICAgICAgICAgICAgICBpZiAo
cmVmMS5nZXQoaSkgIT0gcmVmMi5nZXQoaSkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBF
UHRyLmJveChmYWxzZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gRVB0ci5i
b3godHJ1ZSk7Ci0gICAgICAgIH07Ci0gICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb25EYXRhID0g
dGhpczsKLSAgICB9Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRpblZlY3RvckdldHRlci5qcyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JHZXR0ZXIuanMKaW5kZXgg
YzI1M2Y3NjMwZWU5ZGM0N2NkMWUxOTQ1YmM4N2Y0MmVhYTNjY2IyOC4uNDA4NzJiNGY4ZTJiYjNh
OGU0ZmZiMjYyNzVkOGQ4M2ZlNzIxODJmNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvQnVpbHRpblZlY3RvckdldHRlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9yR2V0dGVyLmpzCkBAIC02Miw5ICs2Miw5IEBAIGNs
YXNzIEJ1aWx0aW5WZWN0b3JHZXR0ZXIgewogCiAgICAgaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlv
bihmdW5jKQogICAgIHsKLSAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmVjXSwgbm9k
ZSkgPT4geworICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2ZWNdKSA9PiB7CiAgICAg
ICAgICAgICByZXR1cm4gRVB0ci5ib3godmVjLmdldCh0aGlzLmluZGV4KSk7CiAgICAgICAgIH07
CiAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb25EYXRhID0gdGhpczsKICAgICB9Ci19ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvQnVpbHRpblZlY3RvckluZGV4R2V0dGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvQnVpbHRpblZlY3RvckluZGV4R2V0dGVyLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBmNzI2MmZjOWNlMjczMGYwODdkNjE0NTU4NzZiMzM1ZmUwMjRhYzNh
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JJbmRleEdldHRlci5qcworKysgL2Rl
di9udWxsCkBAIC0xLDY2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBCdWlsdGluVmVjdG9ySW5kZXhHZXR0
ZXIgewotICAgIGNvbnN0cnVjdG9yKGJhc2VUeXBlTmFtZSwgc2l6ZSkKLSAgICB7Ci0gICAgICAg
IHRoaXMuX2Jhc2VUeXBlTmFtZSA9IGJhc2VUeXBlTmFtZTsKLSAgICAgICAgdGhpcy5fc2l6ZSA9
IHNpemU7Ci0gICAgfQotCi0gICAgZ2V0IGJhc2VUeXBlTmFtZSgpIHsgcmV0dXJuIHRoaXMuX2Jh
c2VUeXBlTmFtZTsgfQotICAgIGdldCBzaXplKCkgeyByZXR1cm4gdGhpcy5fc2l6ZTsgfQotCi0g
ICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGBuYXRpdmUgJHt0aGlzLmJhc2VU
eXBlTmFtZX0gb3BlcmF0b3JbXSgke3RoaXMuYmFzZVR5cGVOYW1lfSR7dGhpcy5zaXplfSx1aW50
KWA7Ci0gICAgfQotCi0gICAgc3RhdGljIGZ1bmN0aW9ucygpCi0gICAgewotICAgICAgICBpZiAo
IXRoaXMuX2FsbEluZGV4R2V0dGVycykgewotICAgICAgICAgICAgdGhpcy5fYWxsSW5kZXhHZXR0
ZXJzID0gW107Ci0KLSAgICAgICAgICAgIGZvciAobGV0IHR5cGVOYW1lIG9mIFZlY3RvckVsZW1l
bnRUeXBlcykgewotICAgICAgICAgICAgICAgIGZvciAobGV0IHNpemUgb2YgVmVjdG9yRWxlbWVu
dFNpemVzKQotICAgICAgICAgICAgICAgICAgICB0aGlzLl9hbGxJbmRleEdldHRlcnMucHVzaChu
ZXcgQnVpbHRpblZlY3RvckluZGV4R2V0dGVyKHR5cGVOYW1lLCBzaXplKSk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRoaXMuX2FsbEluZGV4R2V0dGVyczsKLSAg
ICB9Ci0KLSAgICBpbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpCi0gICAgewotICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2ZWMsIGluZGV4XSwgbm9kZSkgPT4gewotICAgICAg
ICAgICAgY29uc3QgaW5kZXhWYWx1ZSA9IGluZGV4LmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAg
aWYgKGluZGV4VmFsdWUgPj0gMCAmJiBpbmRleFZhbHVlIDwgdGhpcy5zaXplKQotICAgICAgICAg
ICAgICAgIHJldHVybiBFUHRyLmJveCh2ZWMuZ2V0KGluZGV4LmxvYWRWYWx1ZSgpKSk7Ci0gICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2luZGV4VmFs
dWV9IG91dCBvZiBib3VuZHMgZm9yIHZlY3RvciBvZiBzaXplICR7dGhpcy5zaXplfWApOwotICAg
ICAgICB9OwotICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uRGF0YSA9IHRoaXM7Ci0gICAgfQot
fQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JJbmRleFNldHRlci5qcyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JJbmRleFNldHRlci5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMmZlNWQ2NzhhYjcwNWZlNDBiN2Q2OGU5NjkzZGQ4YWZjNGFk
ZWU5NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9ySW5kZXhTZXR0ZXIuanMKKysr
IC9kZXYvbnVsbApAQCAtMSw3MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgQnVpbHRpblZlY3RvckluZGV4
U2V0dGVyIHsKLSAgICBjb25zdHJ1Y3RvcihiYXNlVHlwZU5hbWUsIHNpemUpCi0gICAgewotICAg
ICAgICB0aGlzLl9iYXNlVHlwZU5hbWUgPSBiYXNlVHlwZU5hbWU7Ci0gICAgICAgIHRoaXMuX3Np
emUgPSBzaXplOwotICAgIH0KLQotICAgIGdldCBiYXNlVHlwZU5hbWUoKSB7IHJldHVybiB0aGlz
Ll9iYXNlVHlwZU5hbWU7IH0KLSAgICBnZXQgc2l6ZSgpIHsgcmV0dXJuIHRoaXMuX3NpemU7IH0K
LSAgICBnZXQgZWxlbWVudE5hbWUoKSB7IHJldHVybiB0aGlzLl9lbGVtZW50TmFtZTsgfQotICAg
IGdldCBpbmRleCgpIHsgcmV0dXJuIHRoaXMuX2luZGV4OyB9Ci0KLSAgICB0b1N0cmluZygpCi0g
ICAgewotICAgICAgICByZXR1cm4gYG5hdGl2ZSAke3RoaXMuYmFzZVR5cGVOYW1lfSR7dGhpcy5z
aXplfSBvcGVyYXRvcltdPSgke3RoaXMuYmFzZVR5cGVOYW1lfSR7dGhpcy5zaXplfSx1aW50LCR7
dGhpcy5iYXNlVHlwZU5hbWV9KWA7Ci0gICAgfQotCi0gICAgc3RhdGljIGZ1bmN0aW9ucygpCi0g
ICAgewotICAgICAgICBpZiAoIXRoaXMuX2Z1bmN0aW9ucykgewotICAgICAgICAgICAgdGhpcy5f
ZnVuY3Rpb25zID0gW107Ci0KLSAgICAgICAgICAgIGZvciAobGV0IHR5cGVOYW1lIG9mIFZlY3Rv
ckVsZW1lbnRUeXBlcykgewotICAgICAgICAgICAgICAgIGZvciAobGV0IHNpemUgb2YgVmVjdG9y
RWxlbWVudFNpemVzKQotICAgICAgICAgICAgICAgICAgICB0aGlzLl9mdW5jdGlvbnMucHVzaChu
ZXcgQnVpbHRpblZlY3RvckluZGV4U2V0dGVyKHR5cGVOYW1lLCBzaXplKSk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRoaXMuX2Z1bmN0aW9uczsKLSAgICB9Ci0K
LSAgICBpbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpCi0gICAgewotICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFtiYXNlLCBpbmRleCwgdmFsdWVdLCBub2RlKSA9PiB7Ci0gICAg
ICAgICAgICBjb25zdCBpbmRleFZhbHVlID0gaW5kZXgubG9hZFZhbHVlKCk7Ci0gICAgICAgICAg
ICBpZiAoaW5kZXhWYWx1ZSA+PSAwICYmIGluZGV4VmFsdWUgPCB0aGlzLnNpemUpIHsKLSAgICAg
ICAgICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEVQdHIobmV3IEVCdWZmZXIodGhpcy5zaXplKSwg
MCk7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LmNvcHlGcm9tKGJhc2UsIHRoaXMuc2l6ZSk7Ci0g
ICAgICAgICAgICAgICAgcmVzdWx0LnBsdXMoaW5kZXhWYWx1ZSkuY29weUZyb20odmFsdWUsIDEp
OwotICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7aW5kZXhWYWx1ZX0gb3V0IG9mIGJvdW5k
cyBmb3IgdmVjdG9yIG9mIHNpemUgJHt0aGlzLnNpemV9YCk7Ci0gICAgICAgIH07Ci0gICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb25EYXRhID0gdGhpczsKLSAgICB9Ci19ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
QnVpbHRpblZlY3RvclNldHRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1
aWx0aW5WZWN0b3JTZXR0ZXIuanMKaW5kZXggYTJkNzYzYjc1MDk5OTdiMjQxMGMyNGI4MDEzMTRj
MzRhM2M0ODdhMC4uZDU1OTU5MWU5Njg2NzFlZjkwMzU5OTZhM2ZiNjE1N2VmOTdiMjVlYyAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRpblZlY3RvclNldHRl
ci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9yU2V0
dGVyLmpzCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIEJ1aWx0aW5WZWN0b3JTZXR0ZXIgewogICAg
IHsKICAgICAgICAgaWYgKCF0aGlzLl9mdW5jdGlvbnMpIHsKICAgICAgICAgICAgIHRoaXMuX2Z1
bmN0aW9ucyA9IFtdOwotICAgICAgICAKKwogICAgICAgICAgICAgY29uc3QgZWxlbWVudHMgPSBb
ICJ4IiwgInkiLCAieiIsICJ3IiBdOwogCiAgICAgICAgICAgICBmb3IgKGxldCB0eXBlTmFtZSBv
ZiBWZWN0b3JFbGVtZW50VHlwZXMpIHsKQEAgLTYyLDcgKzYyLDcgQEAgY2xhc3MgQnVpbHRpblZl
Y3RvclNldHRlciB7CiAKICAgICBpbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpCiAgICAg
ewotICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtiYXNlLCB2YWx1ZV0sIG5vZGUpID0+
IHsKKyAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbYmFzZSwgdmFsdWVdKSA9PiB7CiAg
ICAgICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEVQdHIobmV3IEVCdWZmZXIodGhpcy5zaXplKSwg
MCk7CiAgICAgICAgICAgICByZXN1bHQuY29weUZyb20oYmFzZSwgdGhpcy5zaXplKTsKICAgICAg
ICAgICAgIHJlc3VsdC5wbHVzKHRoaXMuaW5kZXgpLmNvcHlGcm9tKHZhbHVlLCAxKTsKQEAgLTcw
LDQgKzcwLDQgQEAgY2xhc3MgQnVpbHRpblZlY3RvclNldHRlciB7CiAgICAgICAgIH07CiAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb25EYXRhID0gdGhpczsKICAgICB9Ci19ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQ2FsbEV4cHJlc3Npb24uanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9D
YWxsRXhwcmVzc2lvbi5qcwppbmRleCAzYjE1NDU1OTkyZTY0ZTI2NzdiYTBiMDNhYjY1NjhlZjQz
ZDVkODY1Li41ZmJkZDUwNWY3OWQ0YjMyNmUwOTNlMGZiNzZjZDM3NWQwYTJjNWJhIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRXhwcmVzc2lvbi5qcworKysg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRXhwcmVzc2lvbi5qcwpAQCAtNTIs
MTkgKzUyLDIyIEBAIGNsYXNzIENhbGxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7CiAK
ICAgICByZXNvbHZlKHBvc3NpYmxlT3ZlcmxvYWRzLCBwcm9ncmFtKQogICAgIHsKLSAgICAgICAg
aWYgKCFwb3NzaWJsZU92ZXJsb2FkcykKLSAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9y
KHRoaXMub3JpZ2luLm9yaWdpblN0cmluZywgIkRpZCBub3QgZmluZCBhbnkgZnVuY3Rpb25zIG5h
bWVkICIgKyB0aGlzLm5hbWUpOwotCiAgICAgICAgIGxldCBmYWlsdXJlcyA9IFtdOwotICAgICAg
ICBsZXQgb3ZlcmxvYWQgPSByZXNvbHZlT3ZlcmxvYWRJbXBsKHBvc3NpYmxlT3ZlcmxvYWRzLCB0
aGlzLmFyZ3VtZW50VHlwZXMsIHRoaXMucmV0dXJuVHlwZSk7CisgICAgICAgIGxldCBvdmVybG9h
ZDsKKyAgICAgICAgaWYgKHBvc3NpYmxlT3ZlcmxvYWRzKQorICAgICAgICAgICAgb3ZlcmxvYWQg
PSByZXNvbHZlT3ZlcmxvYWRJbXBsKHBvc3NpYmxlT3ZlcmxvYWRzLCB0aGlzLmFyZ3VtZW50VHlw
ZXMsIHRoaXMucmV0dXJuVHlwZSk7CiAKLSAgICAgICAgaWYgKCFvdmVybG9hZC5mdW5jKSB7Cisg
ICAgICAgIGlmICghb3ZlcmxvYWQgfHwgIW92ZXJsb2FkLmZ1bmMpIHsKKyAgICAgICAgICAgIGlm
ICghb3ZlcmxvYWQpCisgICAgICAgICAgICAgICAgb3ZlcmxvYWQgPSB7fTsKICAgICAgICAgICAg
IGNvbnN0IGZ1bmMgPSB0aGlzLl9yZXNvbHZlQnlJbnN0YW50aWF0aW9uKHByb2dyYW0pOwogICAg
ICAgICAgICAgaWYgKGZ1bmMpCiAgICAgICAgICAgICAgICAgb3ZlcmxvYWQuZnVuYyA9IGZ1bmM7
CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMpIHsKKyAgICAgICAgICAg
IGlmICghb3ZlcmxvYWQuZmFpbHVyZXMpCisgICAgICAgICAgICAgICAgb3ZlcmxvYWQuZmFpbHVy
ZXMgPSBbXTsKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goLi4ub3ZlcmxvYWQuZmFpbHVyZXMp
OwogICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSAiRGlkIG5vdCBmaW5kIGZ1bmN0aW9uIG5hbWVk
ICIgKyB0aGlzLm5hbWUgKyAiIGZvciBjYWxsIHdpdGggIjsKICAgICAgICAgICAgIG1lc3NhZ2Ug
Kz0gImFyZ3VtZW50IHR5cGVzICgiICsgdGhpcy5hcmd1bWVudFR5cGVzICsgIikiOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tUeXBlc1dpdGhBcmd1bWVu
dHMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja1R5cGVzV2l0aEFyZ3Vt
ZW50cy5qcwppbmRleCBiYjZiMmJkNDk4ZTc3YjE0OWRmNGM2OGY0ZWYzYWMxZmYxY2RhYWIyLi4y
ZjY5MTQyYTM1MTdkMjk0OTAwNTMwYzBjZjA2NmM5YmZkMjI3N2FmIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja1R5cGVzV2l0aEFyZ3VtZW50cy5qcworKysg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja1R5cGVzV2l0aEFyZ3VtZW50cy5q
cwpAQCAtMjksOCArMjksMjAgQEAgZnVuY3Rpb24gY2hlY2tUeXBlc1dpdGhBcmd1bWVudHMocHJv
Z3JhbSkKICAgICBjbGFzcyBUeXBlV2l0aEFyZ3VtZW50c0NoZWNrZXIgZXh0ZW5kcyBWaXNpdG9y
IHsKICAgICAgICAgdmlzaXRUeXBlUmVmKG5vZGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlm
IChub2RlLm5hbWUgPT0gInZlY3RvciIgJiYgbm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCA9PSAw
KQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQnVpbHRpbiB0eXBlICR7bm9kZS5u
YW1lfSBzaG91bGQgYWx3YXlzIGhhdmUgdHlwZSBhcmd1bWVudHMuIik7CisgICAgICAgICAgICBp
ZiAoKG5vZGUubmFtZSA9PSAidmVjdG9yIiAmJiBub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoICE9
IDIpCisgICAgICAgICAgICAgICAgfHwgKG5vZGUubmFtZSA9PSAibWF0cml4IiAmJiBub2RlLnR5
cGVBcmd1bWVudHMubGVuZ3RoICE9IDMpCisgICAgICAgICAgICAgICAgfHwgKG5vZGUubmFtZSA9
PSAiVGV4dHVyZTFEIiAmJiBub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoICE9IDEpCisgICAgICAg
ICAgICAgICAgfHwgKG5vZGUubmFtZSA9PSAiUldUZXh0dXJlMUQiICYmIG5vZGUudHlwZUFyZ3Vt
ZW50cy5sZW5ndGggIT0gMSkKKyAgICAgICAgICAgICAgICB8fCAobm9kZS5uYW1lID09ICJUZXh0
dXJlMURBcnJheSIgJiYgbm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCAhPSAxKQorICAgICAgICAg
ICAgICAgIHx8IChub2RlLm5hbWUgPT0gIlJXVGV4dHVyZTFEQXJyYXkiICYmIG5vZGUudHlwZUFy
Z3VtZW50cy5sZW5ndGggIT0gMSkKKyAgICAgICAgICAgICAgICB8fCAobm9kZS5uYW1lID09ICJU
ZXh0dXJlMkQiICYmIG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gMSkKKyAgICAgICAgICAg
ICAgICB8fCAobm9kZS5uYW1lID09ICJSV1RleHR1cmUyRCIgJiYgbm9kZS50eXBlQXJndW1lbnRz
Lmxlbmd0aCAhPSAxKQorICAgICAgICAgICAgICAgIHx8IChub2RlLm5hbWUgPT0gIlRleHR1cmUy
REFycmF5IiAmJiBub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoICE9IDEpCisgICAgICAgICAgICAg
ICAgfHwgKG5vZGUubmFtZSA9PSAiUldUZXh0dXJlMkRBcnJheSIgJiYgbm9kZS50eXBlQXJndW1l
bnRzLmxlbmd0aCAhPSAxKQorICAgICAgICAgICAgICAgIHx8IChub2RlLm5hbWUgPT0gIlRleHR1
cmUzRCIgJiYgbm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCAhPSAxKQorICAgICAgICAgICAgICAg
IHx8IChub2RlLm5hbWUgPT0gIlJXVGV4dHVyZTNEIiAmJiBub2RlLnR5cGVBcmd1bWVudHMubGVu
Z3RoICE9IDEpCisgICAgICAgICAgICAgICAgfHwgKG5vZGUubmFtZSA9PSAiVGV4dHVyZUN1YmUi
ICYmIG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gMSkpCisgICAgICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKGBCdWlsdGluIHR5cGUgJHtub2RlLm5hbWV9IHNob3VsZCBhbHdheXMgaGF2
ZSB0eXBlIGFyZ3VtZW50cy5gKTsKICAgICAgICAgfQogICAgIH0KICAgICBwcm9ncmFtLnZpc2l0
KG5ldyBUeXBlV2l0aEFyZ3VtZW50c0NoZWNrZXIoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQ2hlY2tlci5qcwppbmRleCBjNjlkNTU0OWJhZDkzZGJkMjQzZmE2NjkzYzg2ZjBiNTk5
NzhjYzU5Li41ZjU5OGIyZWU3NTIyYmJjODEwNTQ1Yzk0OGQ3NzNmMmU0Zjk5NDdkIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzCisrKyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrZXIuanMKQEAgLTI2Myw2ICsyNjMsNyBAQCBj
bGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgdmlzaXRWZWN0b3JUeXBlKG5vZGUp
CiAgICAgewogICAgICAgICBub2RlLmVsZW1lbnRUeXBlLnZpc2l0KHRoaXMpOworICAgICAgICBu
b2RlLm51bUVsZW1lbnRzLnZpc2l0KHRoaXMpOwogCiAgICAgICAgIGxldCBpc0tub3duQWxsb3dl
ZFZlY3RvckVsZW1lbnRUeXBlID0gZmFsc2U7CiAgICAgICAgIGZvciAobGV0IHZlY3RvckVsZW1l
bnRUeXBlTmFtZSBvZiBWZWN0b3JFbGVtZW50VHlwZXMpIHsKQEAgLTI3Nyw2ICsyNzgsMzMgQEAg
Y2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogCiAgICAgICAgIGlmICghaXNLbm93bkFs
bG93ZWRWZWN0b3JFbGVtZW50VHlwZSkKICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9y
KGAke25vZGUuZWxlbWVudFR5cGV9IGlzIG5vdCBhIHBlcm1pdHRlZCB2ZWN0b3IgZWxlbWVudCB0
eXBlLmApOworICAgICAgICBpZiAobm9kZS5udW1FbGVtZW50c1ZhbHVlICE9IDIgJiYgbm9kZS5u
dW1FbGVtZW50c1ZhbHVlICE9IDMgJiYgbm9kZS5udW1FbGVtZW50c1ZhbHVlICE9IDQpCisgICAg
ICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihgJHtub2RlLnRvU3RyaW5nKCl9OiAke25vZGUu
bnVtRWxlbWVudHNWYWx1ZX0gaXMgbm90IDIsIDMsIG9yIDQuYCk7CisgICAgfQorCisgICAgdmlz
aXRNYXRyaXhUeXBlKG5vZGUpCisgICAgeworICAgICAgICBub2RlLmVsZW1lbnRUeXBlLnZpc2l0
KHRoaXMpOworICAgICAgICBub2RlLm51bVJvd3MudmlzaXQodGhpcyk7CisgICAgICAgIG5vZGUu
bnVtQ29sdW1ucy52aXNpdCh0aGlzKTsKKworICAgICAgICBsZXQgaXNLbm93bkFsbG93ZWRWZWN0
b3JFbGVtZW50VHlwZSA9IGZhbHNlOworICAgICAgICBmb3IgKGxldCBlbGVtZW50VHlwZU5hbWUg
b2YgWyJoYWxmIiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUeXBlID0g
dGhpcy5fcHJvZ3JhbS5nbG9iYWxOYW1lQ29udGV4dC5nZXQoVHlwZSwgZWxlbWVudFR5cGVOYW1l
KTsKKyAgICAgICAgICAgIGlmICghZWxlbWVudFR5cGUpCisgICAgICAgICAgICAgICAgdGhyb3cg
bmV3IFdUeXBlRXJyb3IoYCR7ZWxlbWVudFR5cGVOYW1lfSBpcyBub3QgYSBrbm93biBuYXRpdmUg
dHlwZSBpbiB0aGUgc3RhbmRhcmQgbGlicmFyeSBvciBpbnRyaW5zaWNzLmApOworICAgICAgICAg
ICAgaWYgKGVsZW1lbnRUeXBlLmVxdWFscyhub2RlLmVsZW1lbnRUeXBlKSkgeworICAgICAgICAg
ICAgICAgIGlzS25vd25BbGxvd2VkVmVjdG9yRWxlbWVudFR5cGUgPSB0cnVlOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKCFp
c0tub3duQWxsb3dlZFZlY3RvckVsZW1lbnRUeXBlKQorICAgICAgICAgICAgdGhyb3cgbmV3IFdU
eXBlRXJyb3IoYCR7bm9kZS5lbGVtZW50VHlwZX0gaXMgbm90IGEgcGVybWl0dGVkIHZlY3RvciBl
bGVtZW50IHR5cGUuYCk7CisgICAgICAgIGlmIChub2RlLm51bVJvd3NWYWx1ZSAhPSAyICYmIG5v
ZGUubnVtUm93c1ZhbHVlICE9IDMgJiYgbm9kZS5udW1Sb3dzVmFsdWUgIT0gNCkKKyAgICAgICAg
ICAgIHRocm93IG5ldyBXVHlwZUVycm9yKGAke25vZGUudG9TdHJpbmcoKX06ICR7bm9kZS5udW1S
b3dzVmFsdWV9IGlzIG5vdCAyLCAzLCBvciA0LmApOworICAgICAgICBpZiAobm9kZS5udW1Db2x1
bW5zVmFsdWUgIT0gMiAmJiBub2RlLm51bUNvbHVtbnNWYWx1ZSAhPSAzICYmIG5vZGUubnVtQ29s
dW1uc1ZhbHVlICE9IDQpCisgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihgJHtub2Rl
LnRvU3RyaW5nKCl9OiAke25vZGUubnVtQ29sdW1uc1ZhbHVlfSBpcyBub3QgMiwgMywgb3IgNC5g
KTsKICAgICB9CiAgICAgCiAgICAgdmlzaXRBcnJheVR5cGUobm9kZSkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NvbnN0ZXhwckZvbGRlci5qcyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NvbnN0ZXhwckZvbGRlci5qcwppbmRleCA1NDUxMzMyZDdm
MTBjNDk1Y2VlOTRmNjEzOTY0NTg3OGFiYjA3MWQyLi4zNmU1ZjZmMzVlNTc5MTA3MzM5YWIzMGIy
ODM4MDhkM2Q3Y2YxZTBjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9Db25zdGV4cHJGb2xkZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
Q29uc3RleHByRm9sZGVyLmpzCkBAIC0zNSw5ICszNSw5IEBAIGNsYXNzIENvbnN0ZXhwckZvbGRl
ciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICAKICAgICAgICAgaWYgKG5vZGUubmFtZSA9PSAi
b3BlcmF0b3ItIgogICAgICAgICAgICAgJiYgbm9kZS5hcmd1bWVudExpc3QubGVuZ3RoID09IDEK
LSAgICAgICAgICAgICYmIG5vZGUuYXJndW1lbnRMaXN0WzBdLnVuaWZ5Tm9kZS5pc0NvbnN0ZXhw
cgotICAgICAgICAgICAgJiYgbm9kZS5hcmd1bWVudExpc3RbMF0udW5pZnlOb2RlLm5lZ0NvbnN0
ZXhwcikgewotICAgICAgICAgICAgbm9kZS5iZWNvbWUobm9kZS5hcmd1bWVudExpc3RbMF0udW5p
ZnlOb2RlLm5lZ0NvbnN0ZXhwcihub2RlLm9yaWdpbikpOworICAgICAgICAgICAgJiYgbm9kZS5h
cmd1bWVudExpc3RbMF0uaXNMaXRlcmFsCisgICAgICAgICAgICAmJiBub2RlLmFyZ3VtZW50TGlz
dFswXS5uZWdDb25zdGV4cHIpIHsKKyAgICAgICAgICAgIG5vZGUuYmVjb21lKG5vZGUuYXJndW1l
bnRMaXN0WzBdLm5lZ0NvbnN0ZXhwcihub2RlLm9yaWdpbikpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvRXZhbHVhdG9yLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRXZhbHVh
dG9yLmpzCmluZGV4IDAyOTBkZTIzZDQ0MWFhMmYzYThjMTMyOTBmMjFmMWZjY2E2ZDJjN2QuLmFl
ZTBhMjMxMmZlZDcyYzBjODdlNzNmMThhYzM0OGVhMWFjM2M3YmEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0V2YWx1YXRvci5qcworKysgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9FdmFsdWF0b3IuanMKQEAgLTE0OCw3ICsxNDgsNiBAQCBjbGFzcyBF
dmFsdWF0b3IgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgaWYgKG5vZGUucHJlZGljYXRlLnZp
c2l0KHRoaXMpLmxvYWRWYWx1ZSgpKQogICAgICAgICAgICAgcmV0dXJuIG5vZGUuYm9keUV4cHJl
c3Npb24udmlzaXQodGhpcyk7CiAgICAgICAgIHJldHVybiBub2RlLmVsc2VFeHByZXNzaW9uLnZp
c2l0KHRoaXMpOwotICAgICAgICAKICAgICB9CiAgICAgCiAgICAgdmlzaXRWYXJpYWJsZVJlZihu
b2RlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxhdHRlbmVk
U3RydWN0T2Zmc2V0R2F0aGVyZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9G
bGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5qcwppbmRleCAxOTcwZjhlZDkzMmNkMzUzMGE0
OGRjMzFhZjhjOWM0MjQwZGRlOGQwLi5lMGUxNjFmZjEwY2NkM2MwOTkyYjlhOTI2NDlmNGUzYTAw
YmExMTE3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVu
ZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9GbGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5qcwpAQCAtNzQsNSArNzQsMTcgQEAg
Y2xhc3MgRmxhdHRlbmVkU3RydWN0T2Zmc2V0R2F0aGVyZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9CiAgICAgfQorCisgICAgdmlzaXRNYXRyaXhUeXBlKG5v
ZGUpCisgICAgeworICAgICAgICBjb25zdCBmaWVsZE5hbWVzID0gWyAicm93MCIsICJyb3cxIiwg
InJvdzIiLCAicm93MyIgXTsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2RlLm51bVJv
d3NWYWx1ZTsgaSsrKSB7CisgICAgICAgICAgICB0aGlzLl9yZXN1bHQucHVzaCh7CisgICAgICAg
ICAgICAgICAgbmFtZTogdGhpcy5fbmFtZS5qb2luKCIuIikgKyAiLiIgKyBmaWVsZE5hbWVzW2ld
LAorICAgICAgICAgICAgICAgIG9mZnNldDogdGhpcy5fb2Zmc2V0ICsgaSAqIG5vZGUuZWxlbWVu
dFR5cGUuc2l6ZSAqIG5vZGUubnVtQ29sdW1uc1ZhbHVlLAorICAgICAgICAgICAgICAgIHR5cGU6
IG5vZGUuZWxlbWVudFR5cGUubmFtZSArIG5vZGUubnVtQ29sdW1uc1ZhbHVlLnRvU3RyaW5nKCkK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQogfQogCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWxUeXBlLmpzIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxvYXRMaXRlcmFsVHlwZS5qcwppbmRleCBmN2JiN2YyYzhi
MDBjYjM4MDZjYzU2YTVkMjVkOGZlMDUzODczY2Q5Li42MGVjZTQxNWM2OTMzNTdkYjFiZWFmN2U2
NTEwNDc1Mjc4MDFhZWM4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9GbG9hdExpdGVyYWxUeXBlLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0Zsb2F0TGl0ZXJhbFR5cGUuanMKQEAgLTMyLDggKzMyLDcgQEAgbGV0IEZsb2F0TGl0ZXJhbFR5
cGUgPSBjcmVhdGVMaXRlcmFsVHlwZSh7CiAgICAgICAgIGxldCByZWFsVGhpcyA9IHVuaWZpY2F0
aW9uQ29udGV4dC5maW5kKHRoaXMpOwogICAgICAgICBpZiAoIXJlYWxUaGlzLmlzRmxvYXRpbmcp
CiAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNvbjogIkNhbm5vdCB1c2Ug
ZmxvYXQgbGl0ZXJhbCB3aXRoIG5vbi1mbG9hdGluZyB0eXBlICIgKyByZWFsVGhpc307Ci0gICAg
ICAgIGlmICghcmVhbFRoaXMuY2FuUmVwcmVzZW50KHRoaXMudmFsdWUpKQotICAgICAgICAgICAg
cmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJGbG9hdCBsaXRlcmFsICIgKyB0aGlzLnZh
bHVlICsgIiBkb2VzIG5vdCBmaXQgaW4gdHlwZSAiICsgcmVhbFRoaXN9OworICAgICAgICAvLyBG
bG9hdHMgY2FuIHJlcHJlc2VudCBhbnkgbnVtYmVyLgogICAgICAgICByZXR1cm4ge3Jlc3VsdDog
dHJ1ZX07CiAgICAgfQogfSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9JbnRyaW5zaWNzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmlu
c2ljcy5qcwppbmRleCBlOWMzZDFiMzQxNzZhNGJmZDc5YjRmNDQ5NGIzN2JlMGU1ZTliMzgwLi44
ZGQxZTM4OTFlNjI0MDg2ZTZhYTE0MDJlMGE5NWIyMGU3MjQ3ZmMyIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCisrKyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMKQEAgLTMxNSw5MCArMzE1LDIzOCBAQCBj
bGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCisgICAgICAgIGZv
ciAobGV0IHR5cGUgb2YgWyJoYWxmIiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIGZvciAobGV0
IGhlaWdodCA9IDI7IGhlaWdodCA8PSA0OyArK2hlaWdodCkgeworICAgICAgICAgICAgICAgIGZv
ciAobGV0IHdpZHRoID0gMjsgd2lkdGggPD0gNDsgKyt3aWR0aCkgeworICAgICAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KGBuYXRpdmUgdHlwZWRlZiBtYXRyaXg8JHt0eXBlfSwgJHtoZWln
aHR9LCAke3dpZHRofT5gLCB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNb
YG1hdHJpeDwke3R5cGV9LCAke2hlaWdodH0sICR7d2lkdGh9PmBdID0gdHlwZTsKKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAg
ICB9CisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgb3BlcmF0
b3IgaW50KHVpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVl
KCkgfCAwKTsKLSAgICAgICAgICAgIH0pOworICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIHNh
bXBsZXIiLAorICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgdGhpcy5zYW1w
bGVyID0gdHlwZTsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRv
IHB1dCBoZXJlLgorICAgICAgICAgICAgfSk7CisKKyAgICAgICAgZm9yIChsZXQgdGV4dHVyZVR5
cGUgb2YgWyJUZXh0dXJlMUQiLCAiUldUZXh0dXJlMUQiLCAiVGV4dHVyZTFEQXJyYXkiLCAiUldU
ZXh0dXJlMURBcnJheSIsICJUZXh0dXJlMkQiLCAiUldUZXh0dXJlMkQiLCAiVGV4dHVyZTJEQXJy
YXkiLCAiUldUZXh0dXJlMkRBcnJheSIsICJUZXh0dXJlM0QiLCAiUldUZXh0dXJlM0QiLCAiVGV4
dHVyZUN1YmUiXSkgeworICAgICAgICAgICAgZm9yIChsZXQgdHlwZUFyZ3VtZW50IG9mIFsiYm9v
bCIsICJ1Y2hhciIsICJ1c2hvcnQiLCAidWludCIsICJjaGFyIiwgInNob3J0IiwgImludCIsICJo
YWxmIiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1l
bnR9PmAsCisgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmBdID0gdHlwZTsKKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDI7IGkg
PD0gNDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJn
dW1lbnR9JHtpfT5gLAorICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9
JHtpfT5gXSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCB0ZXh0
dXJlVHlwZSBvZiBbIlRleHR1cmVEZXB0aDJEIiwgIlJXVGV4dHVyZURlcHRoMkQiLCAiVGV4dHVy
ZURlcHRoMkRBcnJheSIsICJSV1RleHR1cmVEZXB0aDJEQXJyYXkiLCAiVGV4dHVyZURlcHRoQ3Vi
ZSJdKSB7CisgICAgICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQgb2YgWyJmbG9hdCIsICJo
YWxmIl0pIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmAsCisg
ICAgICAgICAgICAgICAgICAgIHR5cGUgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgdGhp
c1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmBdID0gdHlwZTsKKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxl
dCBwcmltaXRpdmVUeXBlIG9mIFsidXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9ydCIsICJp
bnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgdWNoYXIoJHtwcmltaXRpdmVUeXBlfSlgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpICYgMHhm
Zik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCBw
cmltaXRpdmVUeXBlIG9mIFsidWNoYXIiLCAidWludCIsICJjaGFyIiwgInNob3J0IiwgImludCIs
ICJoYWxmIiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciB1c2hvcnQoJHtwcmltaXRpdmVUeXBlfSlgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpICYgMHhmZmZm
KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHBy
aW1pdGl2ZVR5cGUgb2YgWyJ1Y2hhciIsICJ1c2hvcnQiLCAiY2hhciIsICJzaG9ydCIsICJpbnQi
LCAiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgdWludCgke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgPj4+IDApOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgcHJpbWl0
aXZlVHlwZSBvZiBbInVjaGFyIiwgInVzaG9ydCIsICJ1aW50IiwgInNob3J0IiwgImludCIsICJo
YWxmIiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSBvcGVyYXRvciBjaGFyKCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0KEludDhBcnJheSwgdmFsdWUubG9hZFZhbHVl
KCkpKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0
IHByaW1pdGl2ZVR5cGUgb2YgWyJ1Y2hhciIsICJ1c2hvcnQiLCAidWludCIsICJjaGFyIiwgImlu
dCIsICJoYWxmIiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciBzaG9ydCgke3ByaW1pdGl2ZVR5cGV9KWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdChJbnQxNkFycmF5LCB2YWx1ZS5s
b2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAg
Zm9yIChsZXQgcHJpbWl0aXZlVHlwZSBvZiBbInVjaGFyIiwgInVzaG9ydCIsICJ1aW50IiwgImNo
YXIiLCAic2hvcnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgaW50KCR7cHJpbWl0aXZlVHlw
ZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0KEludDMyQXJyYXks
IHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKwor
ICAgICAgICBmb3IgKGxldCBwcmltaXRpdmVUeXBlIG9mIFsidWNoYXIiLCAidXNob3J0IiwgInVp
bnQiLCAiY2hhciIsICJzaG9ydCIsICJpbnQiLCAiZmxvYXQiXSkgeworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIG9wZXJhdG9yIGhhbGYoJHtwcmlt
aXRpdmVUeXBlfSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb0hh
bGYodmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfQor
CisgICAgICAgIGZvciAobGV0IHByaW1pdGl2ZVR5cGUgb2YgWyJ1Y2hhciIsICJ1c2hvcnQiLCAi
dWludCIsICJjaGFyIiwgInNob3J0IiwgImludCIsICJoYWxmIl0pIHsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciBmbG9hdCgke3By
aW1pdGl2ZVR5cGV9KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goTWF0aC5m
cm91bmQodmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
fQogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIG9wZXJhdG9y
IGludCh1Y2hhcikiLAorICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciBpbnQoYXRvbWljX2lu
dClgLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSB8IDApOwor
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5i
b3godmFsdWUubG9hZFZhbHVlKCkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5f
bWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3IgaW50KGZsb2F0KSIsCisgICAg
ICAgICAgICBgbmF0aXZlIG9wZXJhdG9yIHVpbnQoYXRvbWljX3VpbnQpYCwKICAgICAgICAgICAg
IGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVl
XSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgfCAwKTsKKyAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1
ZSgpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAg
ICAgICAibmF0aXZlIG9wZXJhdG9yIHVpbnQoaW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGJv
b2wgb3BlcmF0b3I9PShib29sLGJvb2wpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFs
dWUubG9hZFZhbHVlKCkgPj4+IDApOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVm
dC5sb2FkVmFsdWUoKSA9PSByaWdodC5sb2FkVmFsdWUoKSk7CiAgICAgICAgICAgICB9KTsKIAor
ICAgICAgICBmb3IgKGxldCBwcmltaXRpdmVUeXBlIG9mIFsidWludCIsICJpbnQiLCAiZmxvYXQi
XSkgeworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
IGJvb2wgb3BlcmF0b3I9PSgke3ByaW1pdGl2ZVR5cGV9LCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgorICAgICAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA9PSByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAg
ICAgICAgfSk7CisKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSBib29sIG9wZXJhdG9yPCgke3ByaW1pdGl2ZVR5cGV9LCR7cHJpbWl0aXZlVHlwZX0p
YCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgorICAgICAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA8IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlIGJvb2wgb3BlcmF0b3I8PSgke3ByaW1pdGl2ZVR5cGV9LCR7cHJpbWl0aXZl
VHlwZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgorICAgICAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA8PSByaWdodC5sb2FkVmFsdWUoKSk7
CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSBib29sIG9wZXJhdG9yPigke3ByaW1pdGl2ZVR5cGV9LCR7cHJp
bWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgorICAgICAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA+IHJpZ2h0LmxvYWRWYWx1
ZSgpKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlIGJvb2wgb3BlcmF0b3I+PSgke3ByaW1pdGl2ZVR5cGV9
LCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgorICAg
ICAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA+PSByaWdodC5s
b2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKwogICAgICAgICB0
aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvciB1aW50KHVjaGFyKSIs
CisgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvci0oaW50KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0p
ID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpID4+PiAwKTsKKyAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KCgtdmFsdWUubG9hZFZhbHVlKCkpIHwgMCk7CiAgICAgICAgICAgICB9KTsKIAogICAg
ICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvciB1aW50KGZs
b2F0KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yLShmbG9hdCkiLAogICAg
ICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSA+Pj4gMCk7CisgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZCgtdmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAg
ICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZl
IG9wZXJhdG9yIHVjaGFyKGludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3Ir
KGludCxpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkg
JiAweGZmKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCBy
aWdodF0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgp
ICsgcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0
aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvciB1Y2hhcih1aW50KSIs
CisgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvci0oaW50LGludCkiLAogICAgICAgICAg
ICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFs
dWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSAmIDB4ZmYpOworICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkg
fCAwKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAg
ICAgICAibmF0aXZlIG9wZXJhdG9yIHVjaGFyKGZsb2F0KSIsCisgICAgICAgICAgICAibmF0aXZl
IGludCBvcGVyYXRvciooaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1
ZS5sb2FkVmFsdWUoKSAmIDB4ZmYpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxl
ZnQubG9hZFZhbHVlKCkgKiByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIG9wZXJhdG9y
IGZsb2F0KGludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3IvKGludCxpbnQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goTWF0aC5mcm91bmQodmFsdWUubG9hZFZhbHVl
KCkpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdo
dF0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIC8g
cmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlz
Ll9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvciBmbG9hdCh1aW50KSIsCisg
ICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3IrKHVpbnQsdWludCkiLAogICAgICAgICAg
ICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFs
dWVdKSA9PiBFUHRyLmJveChNYXRoLmZyb3VuZCh2YWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFs
dWUoKSkgPj4+IDApOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgK
LSAgICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3IgZmxvYXQodWNoYXIpIiwKKyAgICAgICAgICAg
ICJuYXRpdmUgdWludCBvcGVyYXRvci0odWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+
IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQ
dHIuYm94KE1hdGguZnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgorICAgICAgICAgICAgICAg
ICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAtIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4g
MCk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAg
ICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3IrKGludCxpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUg
dWludCBvcGVyYXRvcioodWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICsgcmlnaHQubG9hZFZh
bHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1
ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKICAgICAgICAgICAgIH0pOwogCiAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3IrKHVp
bnQsdWludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yLyh1aW50LHVpbnQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
KGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgp
KSA+Pj4gMCk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KApAQCAt
NDA5LDY3ICs1NTcsNjUgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICB9KTsKIAog
ICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3It
KGludCxpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3ItKGZsb2F0LGZs
b2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAg
ICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgLSByaWdo
dC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvci0odWludCx1aW50KSIsCisgICAg
ICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yKihmbG9hdCxmbG9hdCkiLAogICAgICAgICAg
ICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFs
dWUoKSAtIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5sb2FkVmFsdWUoKSkp
OwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAg
ICJuYXRpdmUgZmxvYXQgb3BlcmF0b3ItKGZsb2F0LGZsb2F0KSIsCisgICAgICAgICAgICAibmF0
aXZlIGZsb2F0IG9wZXJhdG9yLyhmbG9hdCxmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7
CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9
PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1
ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
TWF0aC5mcm91bmQobGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAg
ICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2
ZSBpbnQgb3BlcmF0b3IqKGludCxpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJh
dG9yJihpbnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+IHsKLSAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICogcmlnaHQubG9hZFZhbHVl
KCkpIHwgMCk7Ci0gICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KChsZWZ0LmxvYWRWYWx1ZSgpICYgcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CiAgICAgICAg
ICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSB1
aW50IG9wZXJhdG9yKih1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJh
dG9yfChpbnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpID4+PiAw
KTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgfCByaWdo
dC5sb2FkVmFsdWUoKSkgfCAwKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21h
cC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yKihmbG9hdCxmbG9hdCki
LAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3JeKGludCxpbnQpIiwKICAgICAgICAg
ICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xl
ZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQo
bGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAg
Im5hdGl2ZSBpbnQgb3BlcmF0b3IvKGludCxpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgaW50
IG9wZXJhdG9yfihpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkgfCAw
KTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQ
dHIuYm94KCh+dmFsdWUubG9hZFZhbHVlKCkpIHwgMCk7CiAgICAgICAgICAgICB9KTsKIAogICAg
ICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yLyh1
aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yPDwoaW50LHVpbnQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
KGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSA8PCByaWdodC5sb2FkVmFsdWUo
KSkgfCAwKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAg
ICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvciYoaW50LGludCkiLAorICAgICAgICAgICAgIm5h
dGl2ZSBpbnQgb3BlcmF0b3I+PihpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9Pgot
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpICYgcmlnaHQubG9h
ZFZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUo
KSA+PiByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAg
IHRoaXMuX21hcC5zZXQoCkBAIC00ODAsMjIzICs2MjYsMzMyIEBAIGNsYXNzIEludHJpbnNpY3Mg
ewogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAg
ICJuYXRpdmUgaW50IG9wZXJhdG9yfChpbnQsaW50KSIsCisgICAgICAgICAgICAibmF0aXZlIHVp
bnQgb3BlcmF0b3J8KHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpIHwgcmlnaHQubG9hZFZhbHVl
KCkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSB8IHJp
Z2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlz
Ll9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yfCh1aW50LHVpbnQp
IiwKKyAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcl4odWludCx1aW50KSIsCiAgICAg
ICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0Lmxv
YWRWYWx1ZSgpIHwgcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgXiByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDAp
OwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAg
ICJuYXRpdmUgaW50IG9wZXJhdG9yXihpbnQsaW50KSIsCisgICAgICAgICAgICAibmF0aXZlIHVp
bnQgb3BlcmF0b3J+KHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSBeIHJpZ2h0LmxvYWRWYWx1ZSgpKTsK
KyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIu
Ym94KCh+dmFsdWUubG9hZFZhbHVlKCkpID4+PiAwKTsKICAgICAgICAgICAgIH0pOwogCiAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3JeKHVp
bnQsdWludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yPDwodWludCx1aW50
KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZhbHVl
KCkpID4+PiAwKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0g
ICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcjw8KGludCx1aW50KSIsCisgICAgICAgICAg
ICAibmF0aXZlIHVpbnQgb3BlcmF0b3I+Pih1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMg
PT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0
XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA8PCBy
aWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0Lmxv
YWRWYWx1ZSgpID4+PiByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOwogICAgICAgICAgICAgfSk7
CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVy
YXRvcjw8KHVpbnQsdWludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBjb3MoZmxvYXQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
KGxlZnQubG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguY29zKHZhbHVlLmxvYWRWYWx1ZSgpKSkp
OwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAg
ICJuYXRpdmUgaW50IG9wZXJhdG9yPj4oaW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUg
ZmxvYXQgc2luKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPj4gcmlnaHQubG9hZFZhbHVlKCkpOwor
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5zaW4odmFsdWUubG9hZFZh
bHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAg
ICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yPj4odWludCx1aW50KSIsCisgICAgICAgICAg
ICAibmF0aXZlIGZsb2F0IHRhbihmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID4+PiByaWdodC5sb2Fk
VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVd
KSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnRhbih2
YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21h
cC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcn4oaW50KSIsCisgICAgICAg
ICAgICAibmF0aXZlIGZsb2F0IGFjb3MoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewot
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5i
b3gofnZhbHVlLmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJv
dW5kKE1hdGguYWNvcyh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3J+
KHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgYXNpbihmbG9hdCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
dmFsdWVdKSA9PiBFUHRyLmJveCgofnZhbHVlLmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmFzaW4odmFsdWUubG9hZFZhbHVlKCkp
KSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAg
ICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvci8oZmxvYXQsZmxvYXQpIiwKKyAgICAgICAgICAgICJu
YXRpdmUgZmxvYXQgYXRhbihmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpIC8gcmln
aHQubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1h
dGguYXRhbih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAg
IHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I9PShpbnQs
aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNvc2goZmxvYXQpIiwKICAgICAgICAg
ICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xl
ZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFs
dWUoKSA9PSByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRo
LmZyb3VuZChNYXRoLmNvc2godmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsK
IAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJh
dG9yPT0odWludCx1aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IHNpbmgoZmxvYXQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
bGVmdC5sb2FkVmFsdWUoKSA9PSByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnNpbmgodmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAg
ICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2
ZSBib29sIG9wZXJhdG9yPT0oYm9vbCxib29sKSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0
IHRhbmgoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA9PSByaWdodC5sb2FkVmFsdWUoKSk7CisgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnRhbmgodmFsdWUubG9hZFZhbHVl
KCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAg
ICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPT0oZmxvYXQsZmxvYXQpIiwKKyAgICAgICAgICAg
ICJuYXRpdmUgZmxvYXQgY2VpbChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID09IHJpZ2h0LmxvYWRW
YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0p
ID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguY2VpbCh2
YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21h
cC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I8KGludCxpbnQpIiwKKyAg
ICAgICAgICAgICJuYXRpdmUgZmxvYXQgZXhwKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+
IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0p
ID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPCByaWdo
dC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
dmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRo
LmV4cCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I8KHVpbnQsdWlu
dCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBmbG9vcihmbG9hdCkiLAogICAgICAgICAg
ICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1
ZSgpIDwgcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQoTWF0aC5mbG9vcih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwog
CiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0
b3I8KGZsb2F0LGZsb2F0KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGxvZyhmbG9hdCki
LAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChs
ZWZ0LmxvYWRWYWx1ZSgpIDwgcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goTWF0aC5mcm91bmQoTWF0aC5sb2codmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAg
ICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBi
b29sIG9wZXJhdG9yPD0oaW50LGludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCByb3Vu
ZChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpIDw9IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgucm91bmQodmFsdWUubG9hZFZhbHVlKCkp
KSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAg
ICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPD0odWludCx1aW50KSIsCisgICAgICAgICAgICAibmF0
aXZlIGZsb2F0IHNxcnQoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA8PSByaWdodC5sb2FkVmFsdWUo
KSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9Pgor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnNxcnQodmFsdWUu
bG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0
KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPD0oZmxvYXQsZmxvYXQpIiwKKyAg
ICAgICAgICAgICJuYXRpdmUgZmxvYXQgdHJ1bmMoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMg
PT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0
XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA8PSBy
aWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChN
YXRoLnRydW5jKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcj4oaW50
LGludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBkZHgoZmxvYXQpIiwKICAgICAgICAg
ICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xl
ZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFs
dWUoKSA+IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KDApOwogICAgICAgICAgICAgfSk7CiAKICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcj4o
dWludCx1aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGRkeShmbG9hdCkiLAogICAg
ICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0Lmxv
YWRWYWx1ZSgpID4gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goMCk7CiAgICAgICAgICAgICB9KTsK
IAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJh
dG9yPihmbG9hdCxmbG9hdCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBwb3coZmxvYXQs
ZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA+IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5wb3cobGVmdC5sb2FkVmFsdWUoKSwg
cmlnaHQubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9t
YXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPj0oaW50LGludCkiLAor
ICAgICAgICAgICAgIm5hdGl2ZSBib29sIGlzZmluaXRlKGZsb2F0KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCBy
aWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkg
Pj0gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTnVtYmVyLmlz
RmluaXRlKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0
aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPj0odWludCx1
aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGJvb2wgaXNpbmYoZmxvYXQpIiwKICAgICAgICAg
ICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xl
ZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFs
dWUoKSA+PSByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgodmFs
dWUubG9hZFZhbHVlKCkgPT0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSB8fCAodmFsdWUubG9h
ZFZhbHVlKCkgPT0gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZKSk7CiAgICAgICAgICAgICB9KTsK
IAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJh
dG9yPj0oZmxvYXQsZmxvYXQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgYm9vbCBpc25hbihmbG9h
dCkiLAorICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChOdW1i
ZXIuaXNOYU4odmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KKyAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICJuYXRpdmUgYm9vbCBpc25vcm1hbChoYWxmKSIsCisgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Cisg
ICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGlzTmFOKHZhbHVlLmxvYWRWYWx1ZSgpKSk7Cisg
ICAgICAgICAgICB9KTsKKworICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCisgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIGJvb2wgaXNub3JtYWwoZmxv
YXQpIiwKKyAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goaXNO
YU4odmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGF0YW4yKGZsb2F0LGZsb2F0KSIs
CiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxl
ZnQubG9hZFZhbHVlKCkgPj0gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmF0YW4yKGxlZnQubG9hZFZhbHVlKCksIHJpZ2h0
LmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgZm9yIChsZXQgbmF0
aXZlVmVjdG9yVHlwZU5hbWUgb2YgYWxsVmVjdG9yVHlwZU5hbWVzKCkpCi0gICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KGBuYXRpdmUgdHlwZWRlZiAke25hdGl2ZVZlY3RvclR5cGVOYW1lfWAsIHR5
cGUgPT4gewotICAgICAgICAgICAgICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0cnVlOworICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgYXNpbnQoZmxvYXQpIiwK
KyAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goYml0d2lzZUNh
c3QoRmxvYXQzMkFycmF5LCBJbnQzMkFycmF5LCB2YWx1ZS5sb2FkVmFsdWUoKSkpOwogICAgICAg
ICAgICAgfSk7CiAKLSAgICAgICAgZm9yIChsZXQgc3dpenpsZSBvZiBTd2l6emxlT3AuZnVuY3Rp
b25zKCkpCi0gICAgICAgICAgICB0aGlzLl9tYXAuc2V0KHN3aXp6bGUudG9TdHJpbmcoKSwgZnVu
YyA9PiBzd2l6emxlLmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYykpOworICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5hdGl2ZSB1aW50IGFzdWludChmbG9hdCkiLAor
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChiaXR3aXNlQ2Fz
dChGbG9hdDMyQXJyYXksIFVpbnQzMkFycmF5LCB2YWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAg
ICAgICAgfSk7CiAKLSAgICAgICAgZm9yIChsZXQgYm9vbE9wIG9mIE9wZXJhdG9yQm9vbC5mdW5j
dGlvbnMoKSkKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoYm9vbE9wLnRvU3RyaW5nKCksIGZ1
bmMgPT4gYm9vbE9wLmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYykpOworICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBhc2Zsb2F0KGludCkiLAor
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChiaXR3aXNlQ2Fz
dChJbnQzMkFycmF5LCBGbG9hdDMyQXJyYXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAg
ICAgICB9KTsKIAotICAgICAgICBmb3IgKGxldCBhbmRlckluZGV4IG9mIE9wZXJhdG9yQW5kZXJJ
bmRleGVyLmZ1bmN0aW9ucygpKQotICAgICAgICAgICAgdGhpcy5fbWFwLnNldChhbmRlckluZGV4
LnRvU3RyaW5nKCksIGZ1bmMgPT4gYW5kZXJJbmRleC5pbnN0YW50aWF0ZUltcGxlbWVudGF0aW9u
KGZ1bmMpKTsKKyAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICJuYXRpdmUgZmxv
YXQgYXNmbG9hdCh1aW50KSIsCisgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KGJpdHdpc2VDYXN0KFVpbnQzMkFycmF5LCBGbG9hdDMyQXJyYXksIHZhbHVlLmxv
YWRWYWx1ZSgpKSk7CisgICAgICAgICAgICB9KTsKIAotICAgICAgICBmb3IgKGxldCBjYXN0IG9m
IEJ1aWx0aW5WZWN0b3JDb25zdHJ1Y3RvcnMuZnVuY3Rpb25zKCkpCi0gICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KGNhc3QudG9TdHJpbmcoKSwgZnVuYyA9PiBjYXN0Lmluc3RhbnRpYXRlSW1wbGVt
ZW50YXRpb24oZnVuYykpOworICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCisgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGYxNnRvZjMyKHVp
bnQpIiwKKyAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goMCk7
CisgICAgICAgICAgICB9KTsKIAotICAgICAgICBmb3IgKGxldCBnZXR0ZXIgb2YgQnVpbHRpblZl
Y3RvckluZGV4R2V0dGVyLmZ1bmN0aW9ucygpKQotICAgICAgICAgICAgdGhpcy5fbWFwLnNldChn
ZXR0ZXIudG9TdHJpbmcoKSwgZnVuYyA9PiBnZXR0ZXIuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlv
bihmdW5jKSk7CisgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KKyAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICJuYXRpdmUgdWludCBmMzJ0b2YxNihmbG9hdCkiLAor
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgwKTsKKyAgICAg
ICAgICAgIH0pOwogCi0gICAgICAgIGZvciAobGV0IHNldHRlciBvZiBCdWlsdGluVmVjdG9ySW5k
ZXhTZXR0ZXIuZnVuY3Rpb25zKCkpCi0gICAgICAgICAgICB0aGlzLl9tYXAuc2V0KHNldHRlci50
b1N0cmluZygpLCBmdW5jID0+IHNldHRlci5pbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMp
KTsKKyAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICJuYXRpdmUgdm9pZCBBbGxN
ZW1vcnlCYXJyaWVyV2l0aEdyb3VwU3luYygpIiwKKyAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbigpIHt9OworICAgICAg
ICAgICAgfSk7CiAKLSAgICAgICAgZm9yIChsZXQgZXF1YWxpdHlPcGVyYXRvciBvZiBCdWlsdGlu
VmVjdG9yRXF1YWxpdHlPcGVyYXRvci5mdW5jdGlvbnMoKSkKLSAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoZXF1YWxpdHlPcGVyYXRvci50b1N0cmluZygpLCBmdW5jID0+IGVxdWFsaXR5T3BlcmF0
b3IuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKSk7CisgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAibmF0aXZlIHZvaWQgRGV2aWNlTWVtb3J5QmFycmllcldpdGhHcm91
cFN5bmMoKSIsCisgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oKSB7fTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIHZvaWQgR3JvdXBNZW1vcnlCYXJy
aWVyV2l0aEdyb3VwU3luYygpIiwKKyAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbigpIHt9OworICAgICAgICAgICAgfSk7
CisKKyAgICAgICAgZm9yIChsZXQgbmF0aXZlVmVjdG9yVHlwZU5hbWUgb2YgYWxsVmVjdG9yVHlw
ZU5hbWVzKCkpIHsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoYG5hdGl2ZSB0eXBlZGVmICR7
bmF0aXZlVmVjdG9yVHlwZU5hbWV9YCwgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgdHlwZS5p
c1ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQogCiAgICAgICAg
IGZvciAobGV0IGdldHRlciBvZiBCdWlsdGluVmVjdG9yR2V0dGVyLmZ1bmN0aW9ucygpKQogICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldChnZXR0ZXIudG9TdHJpbmcoKSwgZnVuYyA9PiBnZXR0ZXIu
aW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKSk7CiAKICAgICAgICAgZm9yIChsZXQgc2V0
dGVyIG9mIEJ1aWx0aW5WZWN0b3JTZXR0ZXIuZnVuY3Rpb25zKCkpCiAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KHNldHRlci50b1N0cmluZygpLCBmdW5jID0+IHNldHRlci5pbnN0YW50aWF0ZUlt
cGxlbWVudGF0aW9uKGZ1bmMpKTsKKworICAgICAgICBmb3IgKGxldCBnZXR0ZXIgb2YgQnVpbHRp
bk1hdHJpeEdldHRlci5mdW5jdGlvbnMoKSkKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoZ2V0
dGVyLnRvU3RyaW5nKCksIGZ1bmMgPT4gZ2V0dGVyLmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24o
ZnVuYykpOworCisgICAgICAgIGZvciAobGV0IHNldHRlciBvZiBCdWlsdGluTWF0cml4U2V0dGVy
LmZ1bmN0aW9ucygpKQorICAgICAgICAgICAgdGhpcy5fbWFwLnNldChzZXR0ZXIudG9TdHJpbmco
KSwgZnVuYyA9PiBzZXR0ZXIuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKSk7CisKKyAg
ICAgICAgZm9yIChsZXQgdHlwZSBvZiBbInVjaGFyIiwgInVzaG9ydCIsICJ1aW50IiwgImNoYXIi
LCAic2hvcnQiLCAiaW50IiwgImhhbGYiLCAiZmxvYXQiXSkgeworICAgICAgICAgICAgZm9yIChs
ZXQgbGVuZ3RoIG9mIFsiIiwgIjIiLCAiMyIsICI0Il0pIHsKKyAgICAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0g
U2FtcGxlKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0IGxvY2F0aW9u
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3Ro
fT4sc2FtcGxlcixmbG9hdCBsb2NhdGlvbixpbnQgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4saW50MiBsb2NhdGlv
bilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4saW50MiBs
b2NhdGlvbixpbnQgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPCR7
dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRo
cmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAobWlwbGV2ZWwubG9hZFZhbHVlKCkgPT0gMCkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5jb3B5RnJvbShFUHRyLmJveCh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
dW1iZXJPZkxldmVscy5jb3B5RnJvbShFUHRyLmJveCgxKSwgMSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KIAogICAgIGFkZCh0aGlu
ZykKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01hdHJpeFR5cGUu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NYXRyaXhUeXBlLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmJkOTk2YmY0NjMzNzcwNjg1MTQwYjkwMDUyZmFhMTlkY2E2MjEyYTgKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NYXRyaXhUeXBlLmpzCkBAIC0w
LDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
InVzZSBzdHJpY3QiOworCitjbGFzcyBNYXRyaXhUeXBlIGV4dGVuZHMgTmF0aXZlVHlwZSB7Cisg
ICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBlQXJndW1lbnRzKQorICAgIHsKKyAgICAg
ICAgc3VwZXIob3JpZ2luLCBuYW1lLCB0eXBlQXJndW1lbnRzKTsKKyAgICB9CisKKyAgICBnZXQg
ZWxlbWVudFR5cGUoKSB7IHJldHVybiB0aGlzLnR5cGVBcmd1bWVudHNbMF07IH0KKyAgICBnZXQg
bnVtUm93cygpIHsgcmV0dXJuIHRoaXMudHlwZUFyZ3VtZW50c1sxXTsgfQorICAgIGdldCBudW1D
b2x1bW5zKCkgeyByZXR1cm4gdGhpcy50eXBlQXJndW1lbnRzWzJdOyB9CisgICAgZ2V0IG51bVJv
d3NWYWx1ZSgpIHsgcmV0dXJuIHRoaXMubnVtUm93cy52YWx1ZTsgfQorICAgIGdldCBudW1Db2x1
bW5zVmFsdWUoKSB7IHJldHVybiB0aGlzLm51bUNvbHVtbnMudmFsdWU7IH0KKyAgICBnZXQgc2l6
ZSgpIHsgcmV0dXJuIHRoaXMuZWxlbWVudFR5cGUuc2l6ZSAqIHRoaXMubnVtUm93c1ZhbHVlICog
dGhpcy5udW1Db2x1bW5zVmFsdWU7IH0KKworICAgIHVuaWZ5SW1wbCh1bmlmaWNhdGlvbkNvbnRl
eHQsIG90aGVyKQorICAgIHsKKyAgICAgICAgaWYgKCEob3RoZXIgaW5zdGFuY2VvZiBNYXRyaXhU
eXBlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAodGhpcy5udW1S
b3dzVmFsdWUgIT09IG90aGVyLm51bVJvd3NWYWx1ZSB8fCB0aGlzLm51bUNvbHVtbnNWYWx1ZSAh
PT0gb3RoZXIubnVtQ29sdW1uc1ZhbHVlKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRUeXBlLnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwg
b3RoZXIuZWxlbWVudFR5cGUpOworICAgIH0KKworICAgIHBvcHVsYXRlRGVmYXVsdFZhbHVlKGJ1
ZmZlciwgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm51
bVJvd3NWYWx1ZSAqIHRoaXMucnVuQ29sdW1uc1ZhbHVlOyArK2kpCisgICAgICAgICAgICB0aGlz
LmVsZW1lbnRUeXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlKGJ1ZmZlciwgb2Zmc2V0ICsgaSAqIHRo
aXMuZWxlbWVudFR5cGUuc2l6ZSk7CisgICAgfQorCisgICAgdG9TdHJpbmcoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGBuYXRpdmUgdHlwZWRlZiBtYXRyaXg8JHt0aGlzLmVsZW1lbnRUeXBlfSwg
JHt0aGlzLm51bVJvd3NWYWx1ZX0sICR7dGhpcy5udW1Db2x1bW5zVmFsdWV9PmA7CisgICAgfQor
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNvbnRleHQu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5qcwppbmRleCBk
YzY4NTc4ZmY1NTZiMzEyYjA5MjdlZjNjMGRmZmEwMDY4ZjFiZTYzLi5jODk5NjhjNzc5NjA3Yjdj
YWJjYzZhNWY5NjliNGFiOTEzZTcyNjNlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9OYW1lQ29udGV4dC5qcwpAQCAtNzEsNyArNzEsNyBAQCBjbGFzcyBOYW1lQ29udGV4dCB7
CiAKICAgICAgICAgaWYgKHRoaW5nLmtpbmQgPT0gVHlwZSkgewogICAgICAgICAgICAgdGhpcy5f
c2V0LmFkZCh0aGluZyk7Ci0gICAgICAgICAgICBpZiAodGhpbmcubmFtZSA9PSAidmVjdG9yIikg
eworICAgICAgICAgICAgaWYgKHRoaW5nLnR5cGVBcmd1bWVudHMgJiYgdGhpbmcudHlwZUFyZ3Vt
ZW50cy5sZW5ndGggIT0gMCkgewogICAgICAgICAgICAgICAgIGxldCBhcnJheSA9IHRoaXMuX21h
cC5nZXQodGhpbmcubmFtZSk7CiAgICAgICAgICAgICAgICAgaWYgKCFhcnJheSkgewogICAgICAg
ICAgICAgICAgICAgICBhcnJheSA9IFtdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTmF0aXZlVHlwZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L05hdGl2ZVR5cGUuanMKaW5kZXggMjM4MWI1YTZiMGIwMTBlMGZkZDRkYzUzNTUwYThlYTZiNGY4
MzQ3Yi4uYjM2OGEyZThiMjRmNTQ4ZWFiODhhMjgyNGI0OTViZTIzYzg3Y2I4NSAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlVHlwZS5qcworKysgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVUeXBlLmpzCkBAIC02Niw2ICs2Niw4IEBA
IGNsYXNzIE5hdGl2ZVR5cGUgZXh0ZW5kcyBUeXBlIHsKICAgICB7CiAgICAgICAgIGlmIChuYW1l
ID09ICJ2ZWN0b3IiKQogICAgICAgICAgICAgcmV0dXJuIG5ldyBWZWN0b3JUeXBlKG9yaWdpbiwg
bmFtZSwgdHlwZUFyZ3VtZW50cyk7CisgICAgICAgIGlmIChuYW1lID09ICJtYXRyaXgiKQorICAg
ICAgICAgICAgcmV0dXJuIG5ldyBNYXRyaXhUeXBlKG9yaWdpbiwgbmFtZSwgdHlwZUFyZ3VtZW50
cyk7CiAKICAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVUeXBlKG9yaWdpbiwgbmFtZSwgdHlwZUFy
Z3VtZW50cyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvT3BlcmF0b3JBbmRlckluZGV4LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
T3BlcmF0b3JBbmRlckluZGV4LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NzAz
NzFmYjkwZjJhMWZkMTVjMmRkZjZjNGEzOTZjMGYyMzljZWJmLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L09wZXJhdG9yQW5kZXJJbmRleC5qcworKysgL2Rldi9udWxsCkBAIC0xLDcxICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotInVzZSBzdHJpY3QiOwot
Ci1jbGFzcyBPcGVyYXRvckFuZGVySW5kZXhlciB7Ci0gICAgY29uc3RydWN0b3IoYmFzZVR5cGVO
YW1lLCBhZGRyZXNzU3BhY2UpCi0gICAgewotICAgICAgICB0aGlzLl9iYXNlVHlwZU5hbWUgPSBi
YXNlVHlwZU5hbWU7Ci0gICAgICAgIHRoaXMuX2FkZHJlc3NTcGFjZSA9IGFkZHJlc3NTcGFjZTsK
LSAgICB9Ci0KLSAgICBnZXQgYWRkcmVzc1NwYWNlKCkgeyByZXR1cm4gdGhpcy5fYWRkcmVzc1Nw
YWNlOyB9Ci0gICAgZ2V0IGJhc2VUeXBlTmFtZSgpIHsgcmV0dXJuIHRoaXMuX2Jhc2VUeXBlTmFt
ZTsgfQotCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGBuYXRpdmUgJHt0
aGlzLmJhc2VUeXBlTmFtZX0qICR7dGhpcy5hZGRyZXNzU3BhY2V9IG9wZXJhdG9yJltdKCR7dGhp
cy5iYXNlVHlwZU5hbWV9W10gJHt0aGlzLmFkZHJlc3NTcGFjZX0sdWludClgOwotICAgIH0KLQot
ICAgIHN0YXRpYyBmdW5jdGlvbnMoKQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9mdW5jdGlv
bnMpIHsKLSAgICAgICAgICAgIHRoaXMuX2Z1bmN0aW9ucyA9IFtdOwotCi0gICAgICAgICAgICBj
b25zdCB0eXBlTmFtZXMgPSBbICJ1aW50IiwgImludCIsICJmbG9hdCIsICJib29sIiBdLmNvbmNh
dChhbGxWZWN0b3JUeXBlTmFtZXMoKSk7Ci0gICAgICAgICAgICBjb25zdCBhZGRyZXNzU3BhY2Vz
ID0gWyAidGhyZWFkIiwgInRocmVhZGdyb3VwIiwgImRldmljZSIsICJjb25zdGFudCIgXTsKLQot
ICAgICAgICAgICAgZm9yIChsZXQgYWRkcmVzc1NwYWNlIG9mIGFkZHJlc3NTcGFjZXMpIHsKLSAg
ICAgICAgICAgICAgICBmb3IgKGxldCB0eXBlTmFtZSBvZiB0eXBlTmFtZXMpCi0gICAgICAgICAg
ICAgICAgICAgIHRoaXMuX2Z1bmN0aW9ucy5wdXNoKG5ldyBPcGVyYXRvckFuZGVySW5kZXhlcih0
eXBlTmFtZSwgYWRkcmVzc1NwYWNlKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAg
ICAgcmV0dXJuIHRoaXMuX2Z1bmN0aW9uczsKLSAgICB9Ci0KLSAgICBpbnN0YW50aWF0ZUltcGxl
bWVudGF0aW9uKGZ1bmMpCi0gICAgewotICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFty
ZWYsIGluZGV4XSwgbm9kZSkgPT4gewotICAgICAgICAgICAgcmVmID0gcmVmLmxvYWRWYWx1ZSgp
OwotICAgICAgICAgICAgaWYgKCFyZWYpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFw
RXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiTnVsbCBkZXJlZmVyZW5jZSIpOwotICAg
ICAgICAgICAgaW5kZXggPSBpbmRleC5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgIGlmIChpbmRl
eCA+IHJlZi5sZW5ndGgpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Iobm9k
ZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiQXJyYXkgaW5kZXggIiArIGluZGV4ICsgIiBpcyBvdXQg
b2YgYm91bmRzIG9mICIgKyByZWYpOwotICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHJlZi5w
dHIucGx1cyhpbmRleCAqIG5vZGUuYXJndW1lbnRUeXBlc1swXS5lbGVtZW50VHlwZS5zaXplKSk7
Ci0gICAgICAgIH07Ci0gICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb25EYXRhID0gdGhpczsKLSAg
ICB9Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvT3BlcmF0b3JBbmRlckluZGV4ZXIuanMgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9PcGVyYXRvckFuZGVySW5kZXhlci5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
MTJmMDY3ODBmN2FkOTMyMmQ2YzdiZTQ3OTBjZDQ0NjE4MWY4OWI0Ci0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvT3BlcmF0b3JBbmRlckluZGV4ZXIuanMK
QEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisidXNlIHN0cmljdCI7CisKK2NsYXNzIE9wZXJhdG9yQW5kZXJJbmRleGVyIHsKKyAgICBj
b25zdHJ1Y3RvcihiYXNlVHlwZU5hbWUsIGFkZHJlc3NTcGFjZSkKKyAgICB7CisgICAgICAgIHRo
aXMuX2Jhc2VUeXBlTmFtZSA9IGJhc2VUeXBlTmFtZTsKKyAgICAgICAgdGhpcy5fYWRkcmVzc1Nw
YWNlID0gYWRkcmVzc1NwYWNlOworICAgIH0KKworICAgIGdldCBhZGRyZXNzU3BhY2UoKSB7IHJl
dHVybiB0aGlzLl9hZGRyZXNzU3BhY2U7IH0KKyAgICBnZXQgYmFzZVR5cGVOYW1lKCkgeyByZXR1
cm4gdGhpcy5fYmFzZVR5cGVOYW1lOyB9CisKKyAgICB0b1N0cmluZygpCisgICAgeworICAgICAg
ICByZXR1cm4gYG5hdGl2ZSAke3RoaXMuYmFzZVR5cGVOYW1lfSogJHt0aGlzLmFkZHJlc3NTcGFj
ZX0gb3BlcmF0b3ImW10oJHt0aGlzLmJhc2VUeXBlTmFtZX1bXSAke3RoaXMuYWRkcmVzc1NwYWNl
fSx1aW50KWA7CisgICAgfQorCisgICAgaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKQor
ICAgIHsKKyAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbcmVmLCBpbmRleF0sIG5vZGUp
ID0+IHsKKyAgICAgICAgICAgIHJlZiA9IHJlZi5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgIGlm
ICghcmVmKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKG5vZGUub3JpZ2lu
Lm9yaWdpblN0cmluZywgIk51bGwgZGVyZWZlcmVuY2UiKTsKKyAgICAgICAgICAgIGluZGV4ID0g
aW5kZXgubG9hZFZhbHVlKCk7CisgICAgICAgICAgICBpZiAoaW5kZXggPiByZWYubGVuZ3RoKQor
ICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0
cmluZywgIkFycmF5IGluZGV4ICIgKyBpbmRleCArICIgaXMgb3V0IG9mIGJvdW5kcyBvZiAiICsg
cmVmKTsKKyAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChyZWYucHRyLnBsdXMoaW5kZXggKiBu
b2RlLmFyZ3VtZW50VHlwZXNbMF0uZWxlbWVudFR5cGUuc2l6ZSkpOworICAgICAgICB9OworICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uRGF0YSA9IHRoaXM7CisgICAgfQorfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvT3BlcmF0b3JCb29sLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvT3BlcmF0b3JCb29sLmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA1OGJiMGUwOWI4MGJlZTEwNzA4OWIxYzlkMjAwY2JjNjhhNWNiOWQzLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL09wZXJhdG9yQm9vbC5qcworKysgL2Rldi9udWxsCkBAIC0xLDY4
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotInVz
ZSBzdHJpY3QiOwotCi1jbGFzcyBPcGVyYXRvckJvb2wgewotICAgIGNvbnN0cnVjdG9yKGJhc2VU
eXBlTmFtZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2Jhc2VUeXBlTmFtZSA9IGJhc2VUeXBlTmFt
ZTsKLSAgICB9Ci0KLSAgICBnZXQgYmFzZVR5cGVOYW1lKCkgeyByZXR1cm4gdGhpcy5fYmFzZVR5
cGVOYW1lOyB9Ci0KLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4gYG5hdGl2
ZSBvcGVyYXRvciBib29sKCR7dGhpcy5iYXNlVHlwZU5hbWV9KWA7Ci0gICAgfQotCi0gICAgc3Rh
dGljIGZ1bmN0aW9ucygpCi0gICAgewotICAgICAgICAvLyBGSVhNRTogVGhlc2Ugb3BlcmF0b3Jz
IHNob3VsZCBiZSBpbiB0aGUgc3RhbmRhcmQgbGlicmFyeSB3aGVyZSBwb3NzaWJsZS4KLSAgICAg
ICAgaWYgKCFPcGVyYXRvckJvb2wuX2Z1bmN0aW9ucykgewotICAgICAgICAgICAgT3BlcmF0b3JC
b29sLl9mdW5jdGlvbnMgPSBbXTsKLQotICAgICAgICAgICAgLy8gYm9vbCBpcyBub3QgaW5jbHVk
ZWQgYmVjYXVzZSB0aGlzIGlzIGdlbmVyYXRlZCBieSB0aGUgY29weSBjb25zdHJ1Y3Rvci4KLSAg
ICAgICAgICAgIC8vIEZJWE1FOiBJbmNsdWRlIGFsbCBuYXRpdmUgdHlwZXMuCi0gICAgICAgICAg
ICBjb25zdCB0eXBlTmFtZXMgPSBbICJ1Y2hhciIsICJ1aW50IiwgImludCIsICJmbG9hdCIgXS5j
b25jYXQoYWxsVmVjdG9yVHlwZU5hbWVzKCkpOwotCi0gICAgICAgICAgICBmb3IgKGxldCB0eXBl
TmFtZSBvZiB0eXBlTmFtZXMpCi0gICAgICAgICAgICAgICAgT3BlcmF0b3JCb29sLl9mdW5jdGlv
bnMucHVzaChuZXcgT3BlcmF0b3JCb29sKHR5cGVOYW1lKSk7Ci0gICAgICAgIH0KLSAgICAgICAg
cmV0dXJuIE9wZXJhdG9yQm9vbC5fZnVuY3Rpb25zOwotICAgIH0KLQotICAgIGluc3RhbnRpYXRl
SW1wbGVtZW50YXRpb24oZnVuYykKLSAgICB7Ci0gICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW3JlZl0sIG5vZGUpID0+IHsKLSAgICAgICAgICAgIGNvbnN0IHNpemUgPSBub2RlLmFyZ3Vt
ZW50VHlwZXNbMF0uc2l6ZTsKLSAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2l6ZTsg
KytpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCEhcmVmLmdldChpKSkKLSAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIEVQdHIuYm94KHRydWUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
cmV0dXJuIEVQdHIuYm94KGZhbHNlKTsKLSAgICAgICAgfQotICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uRGF0YSA9IHRoaXM7Ci0gICAgfQotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanMgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QcmVwYXJlLmpzCmluZGV4IDlmYWNhODZlMjA1
NzU1YjJjNmE2NmY0MTJiNTY5MmU5OWU3YjAzYWYuLjgzNDU5MmQzNmYzNDU3ZGZhODZiNTc1MWJi
NzI2MjQ3MmEzZjBhMmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1ByZXBhcmUuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJlcGFyZS5q
cwpAQCAtNDYsNyArNDYsNiBAQCBsZXQgcHJlcGFyZSA9ICgoKSA9PiB7CiAgICAgICAgIHJlc29s
dmVUeXBlRGVmc0luVHlwZXMocHJvZ3JhbSk7CiAgICAgICAgIGNoZWNrUmVjdXJzaXZlVHlwZXMo
cHJvZ3JhbSk7CiAgICAgICAgIHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMocHJvZ3JhbSk7Ci0g
ICAgICAgIHN5bnRoZXNpemVPcGVyYXRvckJvb2wocHJvZ3JhbSk7CiAgICAgICAgIHN5bnRoZXNp
emVFbnVtRnVuY3Rpb25zKHByb2dyYW0pOwogICAgICAgICBzeW50aGVzaXplQXJyYXlPcGVyYXRv
ckxlbmd0aChwcm9ncmFtKTsKICAgICAgICAgc3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJh
dG9yKHByb2dyYW0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
UHJvZ3JhbS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb2dyYW0uanMKaW5k
ZXggMTExNmM0ZjU3NzU2MjIxNWZkZDc0MjhhMzE3NTc5YTkyOTE2NTQxNC4uYWMxZGVmYjRmYmFh
YTZlOGUxMzQyOTczNGNjZjQ5MTUzMzliYTUzOSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvUHJvZ3JhbS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9Qcm9ncmFtLmpzCkBAIC01MSw3ICs1MSw3IEBAIGNsYXNzIFByb2dyYW0gZXh0ZW5kcyBO
b2RlIHsKICAgICAgICAgICAgICAgICB0aGlzLmZ1bmN0aW9ucy5zZXQoc3RhdGVtZW50Lm5hbWUs
IGFycmF5ID0gW10pOwogICAgICAgICAgICAgYXJyYXkucHVzaChzdGF0ZW1lbnQpOwogICAgICAg
ICB9IGVsc2UgaWYgKHN0YXRlbWVudCBpbnN0YW5jZW9mIFR5cGUpIHsKLSAgICAgICAgICAgIGlm
IChzdGF0ZW1lbnQuaXNOYXRpdmUgJiYgc3RhdGVtZW50Lm5hbWUgPT0gInZlY3RvciIpIHsKKyAg
ICAgICAgICAgIGlmIChzdGF0ZW1lbnQuaXNOYXRpdmUgJiYgc3RhdGVtZW50LnR5cGVBcmd1bWVu
dHMubGVuZ3RoICE9IDApIHsKICAgICAgICAgICAgICAgICBsZXQgYXJyYXkgPSB0aGlzLnR5cGVz
LmdldChzdGF0ZW1lbnQubmFtZSk7CiAgICAgICAgICAgICAgICAgaWYgKCFhcnJheSkKICAgICAg
ICAgICAgICAgICAgICAgdGhpcy50eXBlcy5zZXQoc3RhdGVtZW50Lm5hbWUsIGFycmF5ID0gW10p
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanMg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qcwppbmRleCA5NGQzYTc2
MmUzOGZiOTIxYzU4NGNiYWZmZjFmNTk0NzhlYmI3OTFkLi43YzJkZmJhNjk1NTMzOTg4NGRiYmY5
MTA0NzhkNDNlZmZkZWM2NWNmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9SZXdyaXRlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdy
aXRlci5qcwpAQCAtMzkxLDUgKzM5MSwxMSBAQCBjbGFzcyBSZXdyaXRlciB7CiAgICAgICAgIHZl
Y1R5cGUuX2VsZW1lbnRUeXBlID0gbm9kZS5lbGVtZW50VHlwZS52aXNpdCh0aGlzKTsKICAgICAg
ICAgcmV0dXJuIHZlY1R5cGU7CiAgICAgfQorCisgICAgdmlzaXRNYXRyaXhUeXBlKG5vZGUpCisg
ICAgeworICAgICAgICBjb25zdCBtYXRUeXBlID0gbmV3IE1hdHJpeFR5cGUobm9kZS5vcmlnaW4s
IG5vZGUubmFtZSwgbm9kZS50eXBlQXJndW1lbnRzLm1hcChhcmd1bWVudCA9PiBhcmd1bWVudC52
aXNpdCh0aGlzKSkpOworICAgICAgICByZXR1cm4gbWF0VHlwZTsKKyAgICB9CiB9CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCmluZGV4IGZmMmMwMmM3YmFmY2E0ZDFl
MmNmODMzYzZjNzlmYTFjZWM4OTAxM2MuLjc4ZDAwOGY4MzVmOWU5YzIzNGVmMmRmNmQ2ZGVlYTNm
NzQyNmNlNjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJW
Lmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbApAQCAt
MTcsNyArMTcsNiBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IkNyZWF0ZUxpdGVyYWwuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDcmVhdGVMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9IlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+
Ci0gICAgPHNjcmlwdCBzcmM9IlN3aXp6bGVPcC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9Ik5hdGl2ZVR5cGUuanMiPjwvc2NyaXB0PgogCiAgICAgPHNjcmlwdCBzcmM9IkFkZHJlc3NT
cGFjZS5qcyI+PC9zY3JpcHQ+CkBAIC0yOSwxMiArMjgsMTAgQEAgdGQgewogICAgIDxzY3JpcHQg
c3JjPSJCbG9jay5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkJvb2xMaXRlcmFsLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQnJlYWsuanMiPjwvc2NyaXB0PgotICAgIDxz
Y3JpcHQgc3JjPSJCdWlsdGluVmVjdG9yQ29uc3RydWN0b3JzLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iQnVpbHRpbk1hdHJpeEdldHRlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9IkJ1aWx0aW5NYXRyaXhTZXR0ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJCdWlsdGluVmVjdG9yR2V0dGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQnVp
bHRpblZlY3RvclNldHRlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkJ1aWx0aW5W
ZWN0b3JJbmRleEdldHRlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkJ1aWx0aW5W
ZWN0b3JJbmRleFNldHRlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkJ1aWx0aW5W
ZWN0b3JFcXVhbGl0eU9wZXJhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ2Fs
bEV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDYWxsRnVuY3Rpb24u
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDaGVjay5qcyI+PC9zY3JpcHQ+CkBAIC05
Niw2ICs5Myw3IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iTG9vcENoZWNrZXIuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJNYWtlQXJyYXlSZWZFeHByZXNzaW9uLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iTWFrZVB0ckV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSJNYXRyaXhUeXBlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
TmFtZUNvbnRleHQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJOYW1lRmluZGVyLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTmFtZVJlc29sdmVyLmpzIj48L3NjcmlwdD4K
QEAgLTEwMyw5ICsxMDEsOCBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9Ik5vcm1hbFVzZVByb3Bl
cnR5UmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJOdWxsTGl0ZXJhbC5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik51bGxUeXBlLmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0iT3BlcmF0b3JBbmRlckluZGV4LmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0iT3BlcmF0b3JBbmRlckluZGV4ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJPcGVyYXRvckFycmF5UmVmTGVuZ3RoLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNy
Yz0iT3BlcmF0b3JCb29sLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iT3JpZ2luS2lu
ZC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1
cmUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJQYXJzZS5qcyI+PC9zY3JpcHQ+CkBA
IC0xMzMsNyArMTMwLDYgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplQXJyYXlP
cGVyYXRvckxlbmd0aC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVF
bnVtRnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZVN0
cnVjdEFjY2Vzc29ycy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVP
cGVyYXRvckJvb2wuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplQ29w
eUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJTeW50
aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKaW5kZXggODE5MGE0MzU2OTIz
YTYxZTU0ODViZGQ0ZjE4MGQxMzgzNzc0ODk4Yi4uMmY3MTE5YWQ1YmI2ZDg5ZGU1Y2QzNDY0NDJi
MjMyMzc4M2E2MTRkNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3RhbmRhcmRMaWJyYXJ5LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0
YW5kYXJkTGlicmFyeS5qcwpAQCAtMzAsNiArMzAsOCBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0g
YAogLy8gSW50cmluc2ljcy5qcy4KIAogLy8gTmVlZCB0byBib290c3RyYXAgdm9pZCBmaXJzdC4K
Ky8vIFRoaXMgd2FzIGF1dG9nZW5lcmF0ZWQgZnJvbSBHZW5lcmF0ZV9TdGFuZGFyZF9MaWJyYXJ5
LnN3aWZ0ISBEbyBub3QgZWRpdCEhCisKIG5hdGl2ZSB0eXBlZGVmIHZvaWQ7CiBuYXRpdmUgdHlw
ZWRlZiBib29sOwogbmF0aXZlIHR5cGVkZWYgdWNoYXI7CkBAIC00Miw3ICs0NCw2IEBAIG5hdGl2
ZSB0eXBlZGVmIGhhbGY7CiBuYXRpdmUgdHlwZWRlZiBmbG9hdDsKIG5hdGl2ZSB0eXBlZGVmIGF0
b21pY19pbnQ7CiBuYXRpdmUgdHlwZWRlZiBhdG9taWNfdWludDsKLQogbmF0aXZlIHR5cGVkZWYg
dmVjdG9yPGJvb2wsIDI+OwogdHlwZWRlZiBib29sMiA9IHZlY3Rvcjxib29sLCAyPjsKIG5hdGl2
ZSB0eXBlZGVmIHZlY3Rvcjxib29sLCAzPjsKQEAgLTk4LDQwICs5OSw1NzcgQEAgdHlwZWRlZiBm
bG9hdDMgPSB2ZWN0b3I8ZmxvYXQsIDM+OwogbmF0aXZlIHR5cGVkZWYgdmVjdG9yPGZsb2F0LCA0
PjsKIHR5cGVkZWYgZmxvYXQ0ID0gdmVjdG9yPGZsb2F0LCA0PjsKIAotbmF0aXZlIG9wZXJhdG9y
IGludCh1aW50KTsKLW5hdGl2ZSBvcGVyYXRvciBpbnQodWNoYXIpOwotbmF0aXZlIG9wZXJhdG9y
IGludChmbG9hdCk7Ci1uYXRpdmUgb3BlcmF0b3IgdWludChpbnQpOwotbmF0aXZlIG9wZXJhdG9y
IHVpbnQodWNoYXIpOwotbmF0aXZlIG9wZXJhdG9yIHVpbnQoZmxvYXQpOwotbmF0aXZlIG9wZXJh
dG9yIHVjaGFyKGludCk7CituYXRpdmUgdHlwZWRlZiBtYXRyaXg8aGFsZiwgMiwgMj47Cit0eXBl
ZGVmIGhhbGYyeDIgPSBtYXRyaXg8aGFsZiwgMiwgMj47CituYXRpdmUgdHlwZWRlZiBtYXRyaXg8
aGFsZiwgMiwgMz47Cit0eXBlZGVmIGhhbGYyeDMgPSBtYXRyaXg8aGFsZiwgMiwgMz47CituYXRp
dmUgdHlwZWRlZiBtYXRyaXg8aGFsZiwgMiwgND47Cit0eXBlZGVmIGhhbGYyeDQgPSBtYXRyaXg8
aGFsZiwgMiwgND47CituYXRpdmUgdHlwZWRlZiBtYXRyaXg8aGFsZiwgMywgMj47Cit0eXBlZGVm
IGhhbGYzeDIgPSBtYXRyaXg8aGFsZiwgMywgMj47CituYXRpdmUgdHlwZWRlZiBtYXRyaXg8aGFs
ZiwgMywgMz47Cit0eXBlZGVmIGhhbGYzeDMgPSBtYXRyaXg8aGFsZiwgMywgMz47CituYXRpdmUg
dHlwZWRlZiBtYXRyaXg8aGFsZiwgMywgND47Cit0eXBlZGVmIGhhbGYzeDQgPSBtYXRyaXg8aGFs
ZiwgMywgND47CituYXRpdmUgdHlwZWRlZiBtYXRyaXg8aGFsZiwgNCwgMj47Cit0eXBlZGVmIGhh
bGY0eDIgPSBtYXRyaXg8aGFsZiwgNCwgMj47CituYXRpdmUgdHlwZWRlZiBtYXRyaXg8aGFsZiwg
NCwgMz47Cit0eXBlZGVmIGhhbGY0eDMgPSBtYXRyaXg8aGFsZiwgNCwgMz47CituYXRpdmUgdHlw
ZWRlZiBtYXRyaXg8aGFsZiwgNCwgND47Cit0eXBlZGVmIGhhbGY0eDQgPSBtYXRyaXg8aGFsZiwg
NCwgND47CituYXRpdmUgdHlwZWRlZiBtYXRyaXg8ZmxvYXQsIDIsIDI+OwordHlwZWRlZiBmbG9h
dDJ4MiA9IG1hdHJpeDxmbG9hdCwgMiwgMj47CituYXRpdmUgdHlwZWRlZiBtYXRyaXg8ZmxvYXQs
IDIsIDM+OwordHlwZWRlZiBmbG9hdDJ4MyA9IG1hdHJpeDxmbG9hdCwgMiwgMz47CituYXRpdmUg
dHlwZWRlZiBtYXRyaXg8ZmxvYXQsIDIsIDQ+OwordHlwZWRlZiBmbG9hdDJ4NCA9IG1hdHJpeDxm
bG9hdCwgMiwgND47CituYXRpdmUgdHlwZWRlZiBtYXRyaXg8ZmxvYXQsIDMsIDI+OwordHlwZWRl
ZiBmbG9hdDN4MiA9IG1hdHJpeDxmbG9hdCwgMywgMj47CituYXRpdmUgdHlwZWRlZiBtYXRyaXg8
ZmxvYXQsIDMsIDM+OwordHlwZWRlZiBmbG9hdDN4MyA9IG1hdHJpeDxmbG9hdCwgMywgMz47Citu
YXRpdmUgdHlwZWRlZiBtYXRyaXg8ZmxvYXQsIDMsIDQ+OwordHlwZWRlZiBmbG9hdDN4NCA9IG1h
dHJpeDxmbG9hdCwgMywgND47CituYXRpdmUgdHlwZWRlZiBtYXRyaXg8ZmxvYXQsIDQsIDI+Owor
dHlwZWRlZiBmbG9hdDR4MiA9IG1hdHJpeDxmbG9hdCwgNCwgMj47CituYXRpdmUgdHlwZWRlZiBt
YXRyaXg8ZmxvYXQsIDQsIDM+OwordHlwZWRlZiBmbG9hdDR4MyA9IG1hdHJpeDxmbG9hdCwgNCwg
Mz47CituYXRpdmUgdHlwZWRlZiBtYXRyaXg8ZmxvYXQsIDQsIDQ+OwordHlwZWRlZiBmbG9hdDR4
NCA9IG1hdHJpeDxmbG9hdCwgNCwgND47CituYXRpdmUgdHlwZWRlZiBzYW1wbGVyOworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTFEPGJvb2w+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGJvb2wy
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxib29sMz47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlMUQ8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVjaGFyPjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUxRDx1Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVjaGFy
Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dWNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUxRDx1c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVzaG9ydDI+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFE
PHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVpbnQ+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTFEPHVpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDx1aW50Mz47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dWludDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFE
PGNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUxRDxjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8Y2hhcjQ+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxz
aG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHNob3J0Mz47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlMUQ8c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxpbnQ+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGludDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGlu
dDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGludDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTFEPGhhbGY+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGhhbGYyPjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUxRDxoYWxmMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8aGFsZjQ+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUxRDxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGZsb2F0Mz47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlMUQ8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGJv
b2w+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8Ym9vbDI+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlMUQ8Ym9vbDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8Ym9vbDQ+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dWNoYXI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlMUQ8dWNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHVjaGFyMz47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
MUQ8dXNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHVzaG9ydDI+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMUQ8dXNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUx
RDx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHVpbnQ+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMUQ8dWludDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dWlu
dDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dWludDQ+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlMUQ8Y2hhcj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxjaGFyMj47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxjaGFyMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUxRDxjaGFyND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxzaG9ydD47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUxRDxzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8
c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHNob3J0ND47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUxRDxpbnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8aW50Mj47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTFEPGludDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8aGFsZj47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUxRDxoYWxmMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxo
YWxmMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxoYWxmND47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUxRDxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxmbG9hdDI+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTFEPGZsb2F0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxib29sPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGJvb2wyPjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUxREFycmF5PGJvb2wzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGJvb2w0
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUxREFycmF5PHVjaGFyMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTx1
Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dWNoYXI0PjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUxREFycmF5PHVzaG9ydD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURB
cnJheTx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVzaG9ydDM+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dXNob3J0ND47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMURBcnJheTx1aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVpbnQy
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVpbnQzPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUxREFycmF5PHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGNo
YXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8Y2hhcjI+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTFEQXJyYXk8Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8
Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8c2hvcnQ+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTFEQXJyYXk8c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFy
cmF5PHNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxzaG9ydDQ+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUx
REFycmF5PGludDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8aW50Mz47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUx
REFycmF5PGhhbGY+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8aGFsZjI+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8aGFsZjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTFEQXJyYXk8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8ZmxvYXQyPjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUxREFycmF5PGZsb2F0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxmbG9h
dDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxib29sPjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTFEQXJyYXk8Ym9vbDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURB
cnJheTxib29sMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGJvb2w0PjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8dWNoYXI+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMURBcnJheTx1Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1
Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1Y2hhcjQ+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlMURBcnJheTx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8dXNo
b3J0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHVzaG9ydDQ+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1aW50PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTFEQXJyYXk8dWludDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1aW50Mz47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTFEQXJyYXk8Y2hhcj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5
PGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8Y2hhcjM+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxjaGFyND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUxREFycmF5PHNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8c2hvcnQy
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8c2hvcnQzPjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTFEQXJyYXk8c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFE
QXJyYXk8aW50PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8aW50Mj47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGludDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlMURBcnJheTxpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8aGFsZj47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTFEQXJyYXk8aGFsZjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJh
eTxoYWxmND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGZsb2F0PjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTFEQXJyYXk8ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8Zmxv
YXQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxib29sPjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUyRDxib29sMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8Ym9vbDM+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTJEPGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1Y2hh
cj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8dWNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUyRDx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHVjaGFyND47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMkQ8dXNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1
c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1c2hvcnQzPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUyRDx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1aW50PjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1aW50Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
MkQ8dWludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHVpbnQ0PjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUyRDxjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxjaGFyMj47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJE
PGNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxzaG9ydD47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlMkQ8c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxzaG9ydDM+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHNob3J0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
MkQ8aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxpbnQyPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUyRDxpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxpbnQ0PjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUyRDxoYWxmPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxoYWxm
Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8aGFsZjM+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTJEPGhhbGY0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxmbG9hdD47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlMkQ8ZmxvYXQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxmbG9h
dDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGZsb2F0ND47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUyRDxib29sPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGJvb2wyPjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGJvb2wzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTJEPGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVjaGFyPjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTJEPHVjaGFyMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDx1
Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8dWNoYXI0PjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTJEPHVzaG9ydD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDx1c2hv
cnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVzaG9ydDM+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMkQ8dXNob3J0ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDx1aW50
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTJEPHVpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVpbnQ0PjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGNoYXI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
MkQ8Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8Y2hhcjM+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMkQ8Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8c2hv
cnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTJEPHNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxzaG9ydDQ+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8aW50PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTJEPGludDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8aW50Mz47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUyRDxpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGhh
bGY+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8aGFsZjI+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlMkQ8aGFsZjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8aGFsZjQ+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlMkQ8ZmxvYXQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGZsb2F0Mz47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUyRDxmbG9hdDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJE
QXJyYXk8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxib29sMj47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxib29sMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
MkRBcnJheTxib29sND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1Y2hhcj47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTJEQXJyYXk8dWNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PHVjaGFy
ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1c2hvcnQ+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTJEQXJyYXk8dXNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJh
eTx1c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PHVzaG9ydDQ+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8dWludD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
MkRBcnJheTx1aW50Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1aW50Mz47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlMkRBcnJheTxjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGNoYXIyPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUyREFycmF5PGNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PHNob3J0
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PHNob3J0Mj47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlMkRBcnJheTxzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8
c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGludD47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlMkRBcnJheTxpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5
PGludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8aW50ND47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlMkRBcnJheTxoYWxmPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5
PGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGhhbGYzPjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUyREFycmF5PGhhbGY0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFy
cmF5PGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGZsb2F0Mj47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxmbG9hdDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTJEQXJyYXk8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8Ym9vbD47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGJvb2wyPjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTJEQXJyYXk8Ym9vbDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJh
eTxib29sND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHVjaGFyPjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dWNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTJEQXJyYXk8dWNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dWNo
YXI0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dXNob3J0PjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dXNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUyREFycmF5PHVzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTx1c2hv
cnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dWludD47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUyREFycmF5PHVpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJE
QXJyYXk8dWludDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTx1aW50ND47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGNoYXI+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMkRBcnJheTxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGNo
YXIzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8Y2hhcjQ+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMkRBcnJheTxzaG9ydD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUy
REFycmF5PHNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHNob3J0Mz47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHNob3J0ND47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUyREFycmF5PGludD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5
PGludDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxpbnQzPjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8aW50ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUy
REFycmF5PGhhbGY+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxoYWxmMj47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGhhbGYzPjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTJEQXJyYXk8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxm
bG9hdD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGZsb2F0Mj47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGZsb2F0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUyREFycmF5PGZsb2F0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8Ym9vbD47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlM0Q8Ym9vbDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGJv
b2wzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxib29sND47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlM0Q8dWNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHVjaGFyMj47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlM0Q8dWNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDx1
Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHVzaG9ydD47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlM0Q8dXNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dXNob3J0Mz47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dXNob3J0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlM0Q8dWludD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dWludDI+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTNEPHVpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDx1aW50ND47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8Y2hhcj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
M0Q8Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGNoYXIzPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUzRDxjaGFyND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8c2hvcnQ+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
M0Q8c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxzaG9ydDQ+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTNEPGludD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8aW50Mj47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8
aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8aGFsZj47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlM0Q8aGFsZjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGhhbGYzPjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUzRDxoYWxmND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8Zmxv
YXQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGZsb2F0Mj47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlM0Q8ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxmbG9hdDQ+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUz
RDxib29sMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxib29sMz47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUzRDxib29sND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1Y2hh
cj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlM0Q8dWNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHVjaGFyND47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlM0Q8dXNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1c2hvcnQzPjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlM0Q8dWludD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1aW50Mj47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUz
RDx1aW50ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxjaGFyPjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTNEPGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGNoYXIz
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTNEPHNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHNob3J0Mj47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlM0Q8c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGludD47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUzRDxpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGlu
dDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8aW50ND47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUzRDxoYWxmPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGhhbGYyPjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGhhbGYzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTNEPGhhbGY0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGZsb2F0PjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTNEPGZsb2F0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxm
bG9hdDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmVDdWJlPGJvb2w+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8Ym9vbDI+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8Ym9vbDM+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZUN1YmU8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8dWNoYXI+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8dWNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVD
dWJlPHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1Y2hhcjQ+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZUN1YmU8dXNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJl
PHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8dXNob3J0Mz47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlQ3ViZTx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJl
PHVpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8dWludDI+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZUN1YmU8dWludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8dWludDQ+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8Y2hhcj47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlQ3ViZTxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxjaGFyMz47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxjaGFyND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3Vi
ZTxzaG9ydD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxzaG9ydDI+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZUN1YmU8c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHNo
b3J0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxpbnQ+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZUN1YmU8aW50Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxpbnQzPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGludDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1
YmU8aGFsZj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxoYWxmMj47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlQ3ViZTxoYWxmMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxoYWxm
ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlQ3ViZTxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8ZmxvYXQzPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGZsb2F0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlRGVwdGgyRDxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlRGVwdGgyRDxoYWxmPjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlRGVwdGgyRDxoYWxmPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVEZXB0aDJEQXJy
YXk8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZURlcHRoMkRBcnJheTxoYWxmPjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmVEZXB0aDJEQXJyYXk8aGFsZj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlRGVw
dGhDdWJlPGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVEZXB0aEN1YmU8aGFsZj47CisK
K25hdGl2ZSBvcGVyYXRvciB1Y2hhcih1c2hvcnQpOwogbmF0aXZlIG9wZXJhdG9yIHVjaGFyKHVp
bnQpOworbmF0aXZlIG9wZXJhdG9yIHVjaGFyKGNoYXIpOworbmF0aXZlIG9wZXJhdG9yIHVjaGFy
KHNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciB1Y2hhcihpbnQpOworbmF0aXZlIG9wZXJhdG9yIHVj
aGFyKGhhbGYpOwogbmF0aXZlIG9wZXJhdG9yIHVjaGFyKGZsb2F0KTsKLW5hdGl2ZSBvcGVyYXRv
ciBmbG9hdChpbnQpOwotbmF0aXZlIG9wZXJhdG9yIGZsb2F0KHVpbnQpOworbmF0aXZlIG9wZXJh
dG9yIHVzaG9ydCh1Y2hhcik7CituYXRpdmUgb3BlcmF0b3IgdXNob3J0KHVpbnQpOworbmF0aXZl
IG9wZXJhdG9yIHVzaG9ydChjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciB1c2hvcnQoc2hvcnQpOwor
bmF0aXZlIG9wZXJhdG9yIHVzaG9ydChpbnQpOworbmF0aXZlIG9wZXJhdG9yIHVzaG9ydChoYWxm
KTsKK25hdGl2ZSBvcGVyYXRvciB1c2hvcnQoZmxvYXQpOworbmF0aXZlIG9wZXJhdG9yIHVpbnQo
dWNoYXIpOworbmF0aXZlIG9wZXJhdG9yIHVpbnQodXNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciB1
aW50KGNoYXIpOworbmF0aXZlIG9wZXJhdG9yIHVpbnQoc2hvcnQpOworbmF0aXZlIG9wZXJhdG9y
IHVpbnQoaW50KTsKK25hdGl2ZSBvcGVyYXRvciB1aW50KGhhbGYpOworbmF0aXZlIG9wZXJhdG9y
IHVpbnQoZmxvYXQpOworbmF0aXZlIG9wZXJhdG9yIGNoYXIodWNoYXIpOworbmF0aXZlIG9wZXJh
dG9yIGNoYXIodXNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciBjaGFyKHVpbnQpOworbmF0aXZlIG9w
ZXJhdG9yIGNoYXIoc2hvcnQpOworbmF0aXZlIG9wZXJhdG9yIGNoYXIoaW50KTsKK25hdGl2ZSBv
cGVyYXRvciBjaGFyKGhhbGYpOworbmF0aXZlIG9wZXJhdG9yIGNoYXIoZmxvYXQpOworbmF0aXZl
IG9wZXJhdG9yIHNob3J0KHVjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciBzaG9ydCh1c2hvcnQpOwor
bmF0aXZlIG9wZXJhdG9yIHNob3J0KHVpbnQpOworbmF0aXZlIG9wZXJhdG9yIHNob3J0KGNoYXIp
OworbmF0aXZlIG9wZXJhdG9yIHNob3J0KGludCk7CituYXRpdmUgb3BlcmF0b3Igc2hvcnQoaGFs
Zik7CituYXRpdmUgb3BlcmF0b3Igc2hvcnQoZmxvYXQpOworbmF0aXZlIG9wZXJhdG9yIGludCh1
Y2hhcik7CituYXRpdmUgb3BlcmF0b3IgaW50KHVzaG9ydCk7CituYXRpdmUgb3BlcmF0b3IgaW50
KHVpbnQpOworbmF0aXZlIG9wZXJhdG9yIGludChjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciBpbnQo
c2hvcnQpOworbmF0aXZlIG9wZXJhdG9yIGludChoYWxmKTsKK25hdGl2ZSBvcGVyYXRvciBpbnQo
ZmxvYXQpOworbmF0aXZlIG9wZXJhdG9yIGhhbGYodWNoYXIpOworbmF0aXZlIG9wZXJhdG9yIGhh
bGYodXNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciBoYWxmKHVpbnQpOworbmF0aXZlIG9wZXJhdG9y
IGhhbGYoY2hhcik7CituYXRpdmUgb3BlcmF0b3IgaGFsZihzaG9ydCk7CituYXRpdmUgb3BlcmF0
b3IgaGFsZihpbnQpOworbmF0aXZlIG9wZXJhdG9yIGhhbGYoZmxvYXQpOwogbmF0aXZlIG9wZXJh
dG9yIGZsb2F0KHVjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciBmbG9hdCh1c2hvcnQpOworbmF0aXZl
IG9wZXJhdG9yIGZsb2F0KHVpbnQpOworbmF0aXZlIG9wZXJhdG9yIGZsb2F0KGNoYXIpOworbmF0
aXZlIG9wZXJhdG9yIGZsb2F0KHNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciBmbG9hdChpbnQpOwor
bmF0aXZlIG9wZXJhdG9yIGZsb2F0KGhhbGYpOworCitvcGVyYXRvciBib29sKHVjaGFyIHgpIHsK
KyAgICByZXR1cm4geCAhPSAwOworfQorb3BlcmF0b3IgYm9vbCh1c2hvcnQgeCkgeworICAgIHJl
dHVybiB4ICE9IDA7Cit9CitvcGVyYXRvciBib29sKHVpbnQgeCkgeworICAgIHJldHVybiB4ICE9
IDA7Cit9CitvcGVyYXRvciBib29sKGNoYXIgeCkgeworICAgIHJldHVybiB4ICE9IDA7Cit9Citv
cGVyYXRvciBib29sKHNob3J0IHgpIHsKKyAgICByZXR1cm4geCAhPSAwOworfQorb3BlcmF0b3Ig
Ym9vbChpbnQgeCkgeworICAgIHJldHVybiB4ICE9IDA7Cit9CitvcGVyYXRvciBib29sKGhhbGYg
eCkgeworICAgIHJldHVybiB4ICE9IDA7Cit9CitvcGVyYXRvciBib29sKGZsb2F0IHgpIHsKKyAg
ICByZXR1cm4geCAhPSAwOworfQogCituYXRpdmUgb3BlcmF0b3IgaW50KGF0b21pY19pbnQpOwor
bmF0aXZlIG9wZXJhdG9yIHVpbnQoYXRvbWljX3VpbnQpOworCituYXRpdmUgYm9vbCBvcGVyYXRv
cj09KGJvb2wsIGJvb2wpOworYm9vbCBvcGVyYXRvciYoYm9vbCBhLCBib29sIGIpIHsKKyAgICBy
ZXR1cm4gYSAmJiBiOworfQorYm9vbCBvcGVyYXRvcnwoYm9vbCBhLCBib29sIGIpIHsKKyAgICBy
ZXR1cm4gYSB8fCBiOworfQorYm9vbCBvcGVyYXRvcl4oYm9vbCBhLCBib29sIGIpIHsKKyAgICBp
ZiAoYSkKKyAgICAgICAgcmV0dXJuICFiOworICAgIHJldHVybiBiOworfQorYm9vbCBvcGVyYXRv
cn4oYm9vbCB2YWx1ZSkgeworICAgIHJldHVybiAhdmFsdWU7Cit9CiBuYXRpdmUgaW50IG9wZXJh
dG9yKyhpbnQsIGludCk7Ci1uYXRpdmUgdWludCBvcGVyYXRvcisodWludCwgdWludCk7Ci11Y2hh
ciBvcGVyYXRvcisodWNoYXIgYSwgdWNoYXIgYikgeyByZXR1cm4gdWNoYXIodWludChhKSArIHVp
bnQoYikpOyB9Ci1uYXRpdmUgZmxvYXQgb3BlcmF0b3IrKGZsb2F0LCBmbG9hdCk7Ci1pbnQgb3Bl
cmF0b3IrKyhpbnQgdmFsdWUpIHsgcmV0dXJuIHZhbHVlICsgMTsgfQotdWludCBvcGVyYXRvcisr
KHVpbnQgdmFsdWUpIHsgcmV0dXJuIHZhbHVlICsgMTsgfQotdWNoYXIgb3BlcmF0b3IrKyh1Y2hh
ciB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgKyAxOyB9CiBuYXRpdmUgaW50IG9wZXJhdG9yLShpbnQs
IGludCk7Ci1uYXRpdmUgdWludCBvcGVyYXRvci0odWludCwgdWludCk7Ci11Y2hhciBvcGVyYXRv
ci0odWNoYXIgYSwgdWNoYXIgYikgeyByZXR1cm4gdWNoYXIodWludChhKSAtIHVpbnQoYikpOyB9
Ci1uYXRpdmUgZmxvYXQgb3BlcmF0b3ItKGZsb2F0LCBmbG9hdCk7Ci1pbnQgb3BlcmF0b3ItLShp
bnQgdmFsdWUpIHsgcmV0dXJuIHZhbHVlIC0gMTsgfQotdWludCBvcGVyYXRvci0tKHVpbnQgdmFs
dWUpIHsgcmV0dXJuIHZhbHVlIC0gMTsgfQotdWNoYXIgb3BlcmF0b3ItLSh1Y2hhciB2YWx1ZSkg
eyByZXR1cm4gdmFsdWUgLSAxOyB9CiBuYXRpdmUgaW50IG9wZXJhdG9yKihpbnQsIGludCk7Ci1u
YXRpdmUgdWludCBvcGVyYXRvcioodWludCwgdWludCk7Ci11Y2hhciBvcGVyYXRvcioodWNoYXIg
YSwgdWNoYXIgYikgeyByZXR1cm4gdWNoYXIodWludChhKSAqIHVpbnQoYikpOyB9Ci1uYXRpdmUg
ZmxvYXQgb3BlcmF0b3IqKGZsb2F0LCBmbG9hdCk7CiBuYXRpdmUgaW50IG9wZXJhdG9yLyhpbnQs
IGludCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcj09KGludCwgaW50KTsKK25hdGl2ZSBib29sIG9w
ZXJhdG9yPChpbnQsIGludCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcjw9KGludCwgaW50KTsKK25h
dGl2ZSBib29sIG9wZXJhdG9yPihpbnQsIGludCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcj49KGlu
dCwgaW50KTsKK25hdGl2ZSB1aW50IG9wZXJhdG9yKyh1aW50LCB1aW50KTsKK25hdGl2ZSB1aW50
IG9wZXJhdG9yLSh1aW50LCB1aW50KTsKK25hdGl2ZSB1aW50IG9wZXJhdG9yKih1aW50LCB1aW50
KTsKIG5hdGl2ZSB1aW50IG9wZXJhdG9yLyh1aW50LCB1aW50KTsKLXVjaGFyIG9wZXJhdG9yLyh1
Y2hhciBhLCB1Y2hhciBiKSB7IHJldHVybiB1Y2hhcih1aW50KGEpIC8gdWludChiKSk7IH0KK25h
dGl2ZSBib29sIG9wZXJhdG9yPT0odWludCwgdWludCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcjwo
dWludCwgdWludCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcjw9KHVpbnQsIHVpbnQpOworbmF0aXZl
IGJvb2wgb3BlcmF0b3I+KHVpbnQsIHVpbnQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I+PSh1aW50
LCB1aW50KTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRvcisoZmxvYXQsIGZsb2F0KTsKK25hdGl2ZSBm
bG9hdCBvcGVyYXRvci0oZmxvYXQsIGZsb2F0KTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRvciooZmxv
YXQsIGZsb2F0KTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRvci8oZmxvYXQsIGZsb2F0KTsKK25hdGl2
ZSBib29sIG9wZXJhdG9yPT0oZmxvYXQsIGZsb2F0KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPChm
bG9hdCwgZmxvYXQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I8PShmbG9hdCwgZmxvYXQpOworbmF0
aXZlIGJvb2wgb3BlcmF0b3I+KGZsb2F0LCBmbG9hdCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcj49
KGZsb2F0LCBmbG9hdCk7CiBuYXRpdmUgaW50IG9wZXJhdG9yJihpbnQsIGludCk7CiBuYXRpdmUg
aW50IG9wZXJhdG9yfChpbnQsIGludCk7CiBuYXRpdmUgaW50IG9wZXJhdG9yXihpbnQsIGludCk7
CkBAIC0xNDQsNjIgKzY4MiwyNTM0IEBAIG5hdGl2ZSB1aW50IG9wZXJhdG9yXih1aW50LCB1aW50
KTsKIG5hdGl2ZSB1aW50IG9wZXJhdG9yfih1aW50KTsKIG5hdGl2ZSB1aW50IG9wZXJhdG9yPDwo
dWludCwgdWludCk7CiBuYXRpdmUgdWludCBvcGVyYXRvcj4+KHVpbnQsIHVpbnQpOwotdWNoYXIg
b3BlcmF0b3ImKHVjaGFyIGEsIHVjaGFyIGIpIHsgcmV0dXJuIHVjaGFyKHVpbnQoYSkgJiB1aW50
KGIpKTsgfQotdWNoYXIgb3BlcmF0b3J8KHVjaGFyIGEsIHVjaGFyIGIpIHsgcmV0dXJuIHVjaGFy
KHVpbnQoYSkgfCB1aW50KGIpKTsgfQotdWNoYXIgb3BlcmF0b3JeKHVjaGFyIGEsIHVjaGFyIGIp
IHsgcmV0dXJuIHVjaGFyKHVpbnQoYSkgXiB1aW50KGIpKTsgfQotdWNoYXIgb3BlcmF0b3J+KHVj
aGFyIHZhbHVlKSB7IHJldHVybiB1Y2hhcih+dWludCh2YWx1ZSkpOyB9Ci11Y2hhciBvcGVyYXRv
cjw8KHVjaGFyIGEsIHVpbnQgYikgeyByZXR1cm4gdWNoYXIodWludChhKSA8PCAoYiAmIDcpKTsg
fQotdWNoYXIgb3BlcmF0b3I+Pih1Y2hhciBhLCB1aW50IGIpIHsgcmV0dXJuIHVjaGFyKHVpbnQo
YSkgPj4gKGIgJiA3KSk7IH0KLW5hdGl2ZSBmbG9hdCBvcGVyYXRvci8oZmxvYXQsIGZsb2F0KTsK
LW5hdGl2ZSBib29sIG9wZXJhdG9yPT0oaW50LCBpbnQpOwotbmF0aXZlIGJvb2wgb3BlcmF0b3I9
PSh1aW50LCB1aW50KTsKLWJvb2wgb3BlcmF0b3I9PSh1Y2hhciBhLCB1Y2hhciBiKSB7IHJldHVy
biB1aW50KGEpID09IHVpbnQoYik7IH0KLW5hdGl2ZSBib29sIG9wZXJhdG9yPT0oYm9vbCwgYm9v
bCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj09KGZsb2F0LCBmbG9hdCk7Ci1uYXRpdmUgYm9vbCBv
cGVyYXRvcjwoaW50LCBpbnQpOwotbmF0aXZlIGJvb2wgb3BlcmF0b3I8KHVpbnQsIHVpbnQpOwot
Ym9vbCBvcGVyYXRvcjwodWNoYXIgYSwgdWNoYXIgYikgeyByZXR1cm4gdWludChhKSA8IHVpbnQo
Yik7IH0KLW5hdGl2ZSBib29sIG9wZXJhdG9yPChmbG9hdCwgZmxvYXQpOwotbmF0aXZlIGJvb2wg
b3BlcmF0b3I8PShpbnQsIGludCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcjw9KHVpbnQsIHVpbnQp
OwotYm9vbCBvcGVyYXRvcjw9KHVjaGFyIGEsIHVjaGFyIGIpIHsgcmV0dXJuIHVpbnQoYSkgPD0g
dWludChiKTsgfQotbmF0aXZlIGJvb2wgb3BlcmF0b3I8PShmbG9hdCwgZmxvYXQpOwotbmF0aXZl
IGJvb2wgb3BlcmF0b3I+KGludCwgaW50KTsKLW5hdGl2ZSBib29sIG9wZXJhdG9yPih1aW50LCB1
aW50KTsKLWJvb2wgb3BlcmF0b3I+KHVjaGFyIGEsIHVjaGFyIGIpIHsgcmV0dXJuIHVpbnQoYSkg
PiB1aW50KGIpOyB9Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj4oZmxvYXQsIGZsb2F0KTsKLW5hdGl2
ZSBib29sIG9wZXJhdG9yPj0oaW50LCBpbnQpOwotbmF0aXZlIGJvb2wgb3BlcmF0b3I+PSh1aW50
LCB1aW50KTsKLWJvb2wgb3BlcmF0b3I+PSh1Y2hhciBhLCB1Y2hhciBiKSB7IHJldHVybiB1aW50
KGEpID49IHVpbnQoYik7IH0KLW5hdGl2ZSBib29sIG9wZXJhdG9yPj0oZmxvYXQsIGZsb2F0KTsK
LQotYm9vbCBvcGVyYXRvciYoYm9vbCBhLCBib29sIGIpCi17Ci0gICAgaWYgKGEpCi0gICAgICAg
IHJldHVybiBiOwotICAgIHJldHVybiBmYWxzZTsKK3VjaGFyIG9wZXJhdG9yKyh1Y2hhciBhLCB1
Y2hhciBiKSB7CisgICAgcmV0dXJuIHVjaGFyKHVpbnQoYSkgKyB1aW50KGIpKTsKIH0KLQotYm9v
bCBvcGVyYXRvcnwoYm9vbCBhLCBib29sIGIpCi17Ci0gICAgaWYgKGEpCi0gICAgICAgIHJldHVy
biB0cnVlOwotICAgIGlmIChiKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZmFs
c2U7Cit1Y2hhciBvcGVyYXRvci0odWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVybiB1Y2hh
cih1aW50KGEpIC0gdWludChiKSk7Cit9Cit1Y2hhciBvcGVyYXRvcioodWNoYXIgYSwgdWNoYXIg
YikgeworICAgIHJldHVybiB1Y2hhcih1aW50KGEpICogdWludChiKSk7Cit9Cit1Y2hhciBvcGVy
YXRvci8odWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVybiB1Y2hhcih1aW50KGEpIC8gdWlu
dChiKSk7Cit9Cit1Y2hhciBvcGVyYXRvciYodWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVy
biB1Y2hhcih1aW50KGEpICYgdWludChiKSk7Cit9Cit1Y2hhciBvcGVyYXRvcnwodWNoYXIgYSwg
dWNoYXIgYikgeworICAgIHJldHVybiB1Y2hhcih1aW50KGEpIHwgdWludChiKSk7Cit9Cit1Y2hh
ciBvcGVyYXRvcl4odWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVybiB1Y2hhcih1aW50KGEp
IF4gdWludChiKSk7Cit9Cit1Y2hhciBvcGVyYXRvcn4odWNoYXIgYSkgeworICAgIHJldHVybiB1
Y2hhcih+dWludChhKSk7Cit9Citib29sIG9wZXJhdG9yPT0odWNoYXIgYSwgdWNoYXIgYikgewor
ICAgIHJldHVybiB1aW50KGEpID09IHVpbnQoYik7Cit9Citib29sIG9wZXJhdG9yPCh1Y2hhciBh
LCB1Y2hhciBiKSB7CisgICAgcmV0dXJuIHVpbnQoYSkgPCB1aW50KGIpOworfQorYm9vbCBvcGVy
YXRvcjw9KHVjaGFyIGEsIHVjaGFyIGIpIHsKKyAgICByZXR1cm4gdWludChhKSA8PSB1aW50KGIp
OworfQorYm9vbCBvcGVyYXRvcj4odWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVybiB1aW50
KGEpID4gdWludChiKTsKK30KK2Jvb2wgb3BlcmF0b3I+PSh1Y2hhciBhLCB1Y2hhciBiKSB7Cisg
ICAgcmV0dXJuIHVpbnQoYSkgPj0gdWludChiKTsKK30KK3VzaG9ydCBvcGVyYXRvcisodXNob3J0
IGEsIHVzaG9ydCBiKSB7CisgICAgcmV0dXJuIHVzaG9ydCh1aW50KGEpICsgdWludChiKSk7Cit9
Cit1c2hvcnQgb3BlcmF0b3ItKHVzaG9ydCBhLCB1c2hvcnQgYikgeworICAgIHJldHVybiB1c2hv
cnQodWludChhKSAtIHVpbnQoYikpOworfQordXNob3J0IG9wZXJhdG9yKih1c2hvcnQgYSwgdXNo
b3J0IGIpIHsKKyAgICByZXR1cm4gdXNob3J0KHVpbnQoYSkgKiB1aW50KGIpKTsKK30KK3VzaG9y
dCBvcGVyYXRvci8odXNob3J0IGEsIHVzaG9ydCBiKSB7CisgICAgcmV0dXJuIHVzaG9ydCh1aW50
KGEpIC8gdWludChiKSk7Cit9Cit1c2hvcnQgb3BlcmF0b3ImKHVzaG9ydCBhLCB1c2hvcnQgYikg
eworICAgIHJldHVybiB1c2hvcnQodWludChhKSAmIHVpbnQoYikpOworfQordXNob3J0IG9wZXJh
dG9yfCh1c2hvcnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gdXNob3J0KHVpbnQoYSkgfCB1
aW50KGIpKTsKK30KK3VzaG9ydCBvcGVyYXRvcl4odXNob3J0IGEsIHVzaG9ydCBiKSB7CisgICAg
cmV0dXJuIHVzaG9ydCh1aW50KGEpIF4gdWludChiKSk7Cit9Cit1c2hvcnQgb3BlcmF0b3J+KHVz
aG9ydCBhKSB7CisgICAgcmV0dXJuIHVzaG9ydCh+dWludChhKSk7Cit9Citib29sIG9wZXJhdG9y
PT0odXNob3J0IGEsIHVzaG9ydCBiKSB7CisgICAgcmV0dXJuIHVpbnQoYSkgPT0gdWludChiKTsK
K30KK2Jvb2wgb3BlcmF0b3I8KHVzaG9ydCBhLCB1c2hvcnQgYikgeworICAgIHJldHVybiB1aW50
KGEpIDwgdWludChiKTsKK30KK2Jvb2wgb3BlcmF0b3I8PSh1c2hvcnQgYSwgdXNob3J0IGIpIHsK
KyAgICByZXR1cm4gdWludChhKSA8PSB1aW50KGIpOworfQorYm9vbCBvcGVyYXRvcj4odXNob3J0
IGEsIHVzaG9ydCBiKSB7CisgICAgcmV0dXJuIHVpbnQoYSkgPiB1aW50KGIpOworfQorYm9vbCBv
cGVyYXRvcj49KHVzaG9ydCBhLCB1c2hvcnQgYikgeworICAgIHJldHVybiB1aW50KGEpID49IHVp
bnQoYik7Cit9Cit1Y2hhciBvcGVyYXRvcjw8KHVjaGFyIGEsIHVpbnQgYikgeworICAgIHJldHVy
biB1Y2hhcih1aW50KGEpIDw8IChiICYgMjU1KSk7Cit9Cit1c2hvcnQgb3BlcmF0b3I8PCh1c2hv
cnQgYSwgdWludCBiKSB7CisgICAgcmV0dXJuIHVzaG9ydCh1aW50KGEpIDw8IChiICYgNjU1MzUp
KTsKIH0KK3VjaGFyIG9wZXJhdG9yPj4odWNoYXIgYSwgdWludCBiKSB7CisgICAgcmV0dXJuIHVj
aGFyKHVpbnQoYSkgPj4gKGIgJiAyNTUpKTsKK30KK3VzaG9ydCBvcGVyYXRvcj4+KHVzaG9ydCBh
LCB1aW50IGIpIHsKKyAgICByZXR1cm4gdXNob3J0KHVpbnQoYSkgPj4gKGIgJiA2NTUzNSkpOwor
fQorY2hhciBvcGVyYXRvcisoY2hhciBhLCBjaGFyIGIpIHsKKyAgICByZXR1cm4gY2hhcihpbnQo
YSkgKyBpbnQoYikpOworfQorY2hhciBvcGVyYXRvci0oY2hhciBhLCBjaGFyIGIpIHsKKyAgICBy
ZXR1cm4gY2hhcihpbnQoYSkgLSBpbnQoYikpOworfQorY2hhciBvcGVyYXRvciooY2hhciBhLCBj
aGFyIGIpIHsKKyAgICByZXR1cm4gY2hhcihpbnQoYSkgKiBpbnQoYikpOworfQorY2hhciBvcGVy
YXRvci8oY2hhciBhLCBjaGFyIGIpIHsKKyAgICByZXR1cm4gY2hhcihpbnQoYSkgLyBpbnQoYikp
OworfQorY2hhciBvcGVyYXRvciYoY2hhciBhLCBjaGFyIGIpIHsKKyAgICByZXR1cm4gY2hhcihp
bnQoYSkgJiBpbnQoYikpOworfQorY2hhciBvcGVyYXRvcnwoY2hhciBhLCBjaGFyIGIpIHsKKyAg
ICByZXR1cm4gY2hhcihpbnQoYSkgfCBpbnQoYikpOworfQorY2hhciBvcGVyYXRvcl4oY2hhciBh
LCBjaGFyIGIpIHsKKyAgICByZXR1cm4gY2hhcihpbnQoYSkgXiBpbnQoYikpOworfQorY2hhciBv
cGVyYXRvcn4oY2hhciBhKSB7CisgICAgcmV0dXJuIGNoYXIofmludChhKSk7Cit9Citib29sIG9w
ZXJhdG9yPT0oY2hhciBhLCBjaGFyIGIpIHsKKyAgICByZXR1cm4gaW50KGEpID09IGludChiKTsK
K30KK2Jvb2wgb3BlcmF0b3I+KGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGludChhKSA+
IGludChiKTsKK30KK2Jvb2wgb3BlcmF0b3I+PShjaGFyIGEsIGNoYXIgYikgeworICAgIHJldHVy
biBpbnQoYSkgPj0gaW50KGIpOworfQorYm9vbCBvcGVyYXRvcjwoY2hhciBhLCBjaGFyIGIpIHsK
KyAgICByZXR1cm4gaW50KGEpIDwgaW50KGIpOworfQorYm9vbCBvcGVyYXRvcjw9KGNoYXIgYSwg
Y2hhciBiKSB7CisgICAgcmV0dXJuIGludChhKSA8PSBpbnQoYik7Cit9CitzaG9ydCBvcGVyYXRv
cisoc2hvcnQgYSwgc2hvcnQgYikgeworICAgIHJldHVybiBzaG9ydChpbnQoYSkgKyBpbnQoYikp
OworfQorc2hvcnQgb3BlcmF0b3ItKHNob3J0IGEsIHNob3J0IGIpIHsKKyAgICByZXR1cm4gc2hv
cnQoaW50KGEpIC0gaW50KGIpKTsKK30KK3Nob3J0IG9wZXJhdG9yKihzaG9ydCBhLCBzaG9ydCBi
KSB7CisgICAgcmV0dXJuIHNob3J0KGludChhKSAqIGludChiKSk7Cit9CitzaG9ydCBvcGVyYXRv
ci8oc2hvcnQgYSwgc2hvcnQgYikgeworICAgIHJldHVybiBzaG9ydChpbnQoYSkgLyBpbnQoYikp
OworfQorc2hvcnQgb3BlcmF0b3ImKHNob3J0IGEsIHNob3J0IGIpIHsKKyAgICByZXR1cm4gc2hv
cnQoaW50KGEpICYgaW50KGIpKTsKK30KK3Nob3J0IG9wZXJhdG9yfChzaG9ydCBhLCBzaG9ydCBi
KSB7CisgICAgcmV0dXJuIHNob3J0KGludChhKSB8IGludChiKSk7Cit9CitzaG9ydCBvcGVyYXRv
cl4oc2hvcnQgYSwgc2hvcnQgYikgeworICAgIHJldHVybiBzaG9ydChpbnQoYSkgXiBpbnQoYikp
OworfQorc2hvcnQgb3BlcmF0b3J+KHNob3J0IGEpIHsKKyAgICByZXR1cm4gc2hvcnQofmludChh
KSk7Cit9Citib29sIG9wZXJhdG9yPT0oc2hvcnQgYSwgc2hvcnQgYikgeworICAgIHJldHVybiBp
bnQoYSkgPT0gaW50KGIpOworfQorYm9vbCBvcGVyYXRvcj4oc2hvcnQgYSwgc2hvcnQgYikgewor
ICAgIHJldHVybiBpbnQoYSkgPiBpbnQoYik7Cit9Citib29sIG9wZXJhdG9yPj0oc2hvcnQgYSwg
c2hvcnQgYikgeworICAgIHJldHVybiBpbnQoYSkgPj0gaW50KGIpOworfQorYm9vbCBvcGVyYXRv
cjwoc2hvcnQgYSwgc2hvcnQgYikgeworICAgIHJldHVybiBpbnQoYSkgPCBpbnQoYik7Cit9Citi
b29sIG9wZXJhdG9yPD0oc2hvcnQgYSwgc2hvcnQgYikgeworICAgIHJldHVybiBpbnQoYSkgPD0g
aW50KGIpOworfQorY2hhciBvcGVyYXRvcjw8KGNoYXIgYSwgdWludCBiKSB7CisgICAgcmV0dXJu
IGNoYXIoaW50KGEpIDw8IChiICYgMjU1KSk7Cit9CitzaG9ydCBvcGVyYXRvcjw8KHNob3J0IGEs
IHVpbnQgYikgeworICAgIHJldHVybiBzaG9ydChpbnQoYSkgPDwgKGIgJiA2NTUzNSkpOworfQor
Y2hhciBvcGVyYXRvcj4+KGNoYXIgYSwgdWludCBiKSB7CisgICAgcmV0dXJuIGNoYXIoaW50KGEp
ID4+IChiICYgMjU1KSk7Cit9CitzaG9ydCBvcGVyYXRvcj4+KHNob3J0IGEsIHVpbnQgYikgewor
ICAgIHJldHVybiBzaG9ydChpbnQoYSkgPj4gKGIgJiA2NTUzNSkpOworfQordWNoYXIgb3BlcmF0
b3IrKyh1Y2hhciB2YWx1ZSkgeworICAgIHJldHVybiB2YWx1ZSArIDE7Cit9Cit1Y2hhciBvcGVy
YXRvci0tKHVjaGFyIHZhbHVlKSB7CisgICAgcmV0dXJuIHZhbHVlIC0gMTsKK30KK3VzaG9ydCBv
cGVyYXRvcisrKHVzaG9ydCB2YWx1ZSkgeworICAgIHJldHVybiB2YWx1ZSArIDE7Cit9Cit1c2hv
cnQgb3BlcmF0b3ItLSh1c2hvcnQgdmFsdWUpIHsKKyAgICByZXR1cm4gdmFsdWUgLSAxOworfQor
dWludCBvcGVyYXRvcisrKHVpbnQgdmFsdWUpIHsKKyAgICByZXR1cm4gdmFsdWUgKyAxOworfQor
dWludCBvcGVyYXRvci0tKHVpbnQgdmFsdWUpIHsKKyAgICByZXR1cm4gdmFsdWUgLSAxOworfQor
Y2hhciBvcGVyYXRvcisrKGNoYXIgdmFsdWUpIHsKKyAgICByZXR1cm4gdmFsdWUgKyAxOworfQor
Y2hhciBvcGVyYXRvci0tKGNoYXIgdmFsdWUpIHsKKyAgICByZXR1cm4gdmFsdWUgLSAxOworfQor
c2hvcnQgb3BlcmF0b3IrKyhzaG9ydCB2YWx1ZSkgeworICAgIHJldHVybiB2YWx1ZSArIDE7Cit9
CitzaG9ydCBvcGVyYXRvci0tKHNob3J0IHZhbHVlKSB7CisgICAgcmV0dXJuIHZhbHVlIC0gMTsK
K30KK2ludCBvcGVyYXRvcisrKGludCB2YWx1ZSkgeworICAgIHJldHVybiB2YWx1ZSArIDE7Cit9
CitpbnQgb3BlcmF0b3ItLShpbnQgdmFsdWUpIHsKKyAgICByZXR1cm4gdmFsdWUgLSAxOworfQor
aGFsZiBvcGVyYXRvcisrKGhhbGYgdmFsdWUpIHsKKyAgICByZXR1cm4gdmFsdWUgKyAxOworfQor
aGFsZiBvcGVyYXRvci0tKGhhbGYgdmFsdWUpIHsKKyAgICByZXR1cm4gdmFsdWUgLSAxOworfQor
ZmxvYXQgb3BlcmF0b3IrKyhmbG9hdCB2YWx1ZSkgeworICAgIHJldHVybiB2YWx1ZSArIDE7Cit9
CitmbG9hdCBvcGVyYXRvci0tKGZsb2F0IHZhbHVlKSB7CisgICAgcmV0dXJuIHZhbHVlIC0gMTsK
K30KK2hhbGYgb3BlcmF0b3IrKGhhbGYgYSwgaGFsZiBiKSB7CisgICAgcmV0dXJuIGhhbGYoZmxv
YXQoYSkgKyBmbG9hdChiKSk7Cit9CitoYWxmIG9wZXJhdG9yLShoYWxmIGEsIGhhbGYgYikgewor
ICAgIHJldHVybiBoYWxmKGZsb2F0KGEpIC0gZmxvYXQoYikpOworfQoraGFsZiBvcGVyYXRvcioo
aGFsZiBhLCBoYWxmIGIpIHsKKyAgICByZXR1cm4gaGFsZihmbG9hdChhKSAqIGZsb2F0KGIpKTsK
K30KK2hhbGYgb3BlcmF0b3IvKGhhbGYgYSwgaGFsZiBiKSB7CisgICAgcmV0dXJuIGhhbGYoZmxv
YXQoYSkgLyBmbG9hdChiKSk7Cit9Citib29sIG9wZXJhdG9yPT0oaGFsZiBhLCBoYWxmIGIpIHsK
KyAgICByZXR1cm4gZmxvYXQoYSkgPT0gZmxvYXQoYik7Cit9Citib29sIG9wZXJhdG9yPChoYWxm
IGEsIGhhbGYgYikgeworICAgIHJldHVybiBmbG9hdChhKSA8IGZsb2F0KGIpOworfQorYm9vbCBv
cGVyYXRvcjw9KGhhbGYgYSwgaGFsZiBiKSB7CisgICAgcmV0dXJuIGZsb2F0KGEpIDw9IGZsb2F0
KGIpOworfQorYm9vbCBvcGVyYXRvcj4oaGFsZiBhLCBoYWxmIGIpIHsKKyAgICByZXR1cm4gZmxv
YXQoYSkgPCBmbG9hdChiKTsKK30KK2Jvb2wgb3BlcmF0b3I+PShoYWxmIGEsIGhhbGYgYikgewor
ICAgIHJldHVybiBmbG9hdChhKSA8PSBmbG9hdChiKTsKK30KK2NoYXIgb3BlcmF0b3ItKGNoYXIg
eCkgeworICAgIHJldHVybiBjaGFyKC1pbnQoeCkpOworfQorc2hvcnQgb3BlcmF0b3ItKHNob3J0
IHgpIHsKKyAgICByZXR1cm4gc2hvcnQoLWludCh4KSk7Cit9CitoYWxmIG9wZXJhdG9yLShoYWxm
IHgpIHsKKyAgICByZXR1cm4gaGFsZigtZmxvYXQoeCkpOworfQorbmF0aXZlIGludCBvcGVyYXRv
ci0oaW50KTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRvci0oZmxvYXQpOwogCi1ib29sIG9wZXJhdG9y
Xihib29sIGEsIGJvb2wgYikKLXsKLSAgICBpZiAoYSkKLSAgICAgICAgcmV0dXJuICFiOwotICAg
IHJldHVybiBiOworb3BlcmF0b3IgYm9vbDIoYm9vbCB4LCBib29sIHkpIHsKKyAgICBib29sMiBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorb3BlcmF0b3IgYm9vbDMoYm9vbCB4LCBib29sIHksIGJvb2wgeikgeworICAg
IGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAg
IHJlc3VsdC56ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgYm9vbDMoYm9v
bDIgeCwgYm9vbCB5KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54Owor
ICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorb3BlcmF0b3IgYm9vbDMoYm9vbCB4LCBib29sMiB5KSB7CisgICAgYm9vbDMgcmVzdWx0
OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9
IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgYm9vbDQoYm9vbCB4LCBib29s
IHksIGJvb2wgeiwgYm9vbCB3KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
eDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6OworICAgIHJlc3VsdC53ID0g
dzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgYm9vbDQoYm9vbDIgeCwgYm9vbCB5
LCBib29sIHopIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAg
cmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJlc3VsdC53ID0gejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgYm9vbDQoYm9vbCB4LCBib29sMiB5LCBib29s
IHopIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55
ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorb3BlcmF0b3IgYm9vbDQoYm9vbCB4LCBib29sIHksIGJvb2wyIHopIHsK
KyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsK
KyAgICByZXN1bHQueiA9IHoueDsKKyAgICByZXN1bHQudyA9IHoueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorb3BlcmF0b3IgYm9vbDQoYm9vbDIgeCwgYm9vbDIgeSkgeworICAgIGJvb2w0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1
bHQueiA9IHkueDsKKyAgICByZXN1bHQudyA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
b3BlcmF0b3IgYm9vbDQoYm9vbDMgeCwgYm9vbCB5KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geC56
OworICAgIHJlc3VsdC53ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgYm9v
bDQoYm9vbCB4LCBib29sMyB5KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
eDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQu
dyA9IHkuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludCBvcGVyYXRvci5sZW5ndGgoYm9v
bDIpIHsKKyAgICByZXR1cm4gMjsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGJvb2wzKSB7Cisg
ICAgcmV0dXJuIDM7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChib29sNCkgeworICAgIHJldHVy
biA0OworfQorb3BlcmF0b3IgdWNoYXIyKHVjaGFyIHgsIHVjaGFyIHkpIHsKKyAgICB1Y2hhcjIg
cmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIHVjaGFyMyh1Y2hhciB4LCB1Y2hhciB5LCB1Y2hhciB6KSB7
CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5
OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWNo
YXIzKHVjaGFyMiB4LCB1Y2hhciB5KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVjaGFyMyh1Y2hhciB4LCB1Y2hhcjIgeSkgeworICAg
IHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54Owor
ICAgIHJlc3VsdC56ID0geS55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1Y2hh
cjQodWNoYXIgeCwgdWNoYXIgeSwgdWNoYXIgeiwgdWNoYXIgdykgeworICAgIHVjaGFyNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9
IHo7CisgICAgcmVzdWx0LncgPSB3OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1
Y2hhcjQodWNoYXIyIHgsIHVjaGFyIHksIHVjaGFyIHopIHsKKyAgICB1Y2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0g
eTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVj
aGFyNCh1Y2hhciB4LCB1Y2hhcjIgeSwgdWNoYXIgeikgeworICAgIHVjaGFyNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55
OworICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWNo
YXI0KHVjaGFyIHgsIHVjaGFyIHksIHVjaGFyMiB6KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gei54Owor
ICAgIHJlc3VsdC53ID0gei55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1Y2hh
cjQodWNoYXIyIHgsIHVjaGFyMiB5KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHkueDsKKyAgICBy
ZXN1bHQudyA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWNoYXI0KHVj
aGFyMyB4LCB1Y2hhciB5KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgu
eDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHguejsKKyAgICByZXN1bHQu
dyA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVjaGFyNCh1Y2hhciB4LCB1
Y2hhcjMgeSkgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJl
c3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0geS56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aCh1Y2hhcjIpIHsKKyAg
ICByZXR1cm4gMjsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHVjaGFyMykgeworICAgIHJldHVy
biAzOworfQordWludCBvcGVyYXRvci5sZW5ndGgodWNoYXI0KSB7CisgICAgcmV0dXJuIDQ7Cit9
CitvcGVyYXRvciB1c2hvcnQyKHVzaG9ydCB4LCB1c2hvcnQgeSkgeworICAgIHVzaG9ydDIgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK29wZXJhdG9yIHVzaG9ydDModXNob3J0IHgsIHVzaG9ydCB5LCB1c2hvcnQgeikg
eworICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9
IHk7CisgICAgcmVzdWx0LnogPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1
c2hvcnQzKHVzaG9ydDIgeCwgdXNob3J0IHkpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVzaG9ydDModXNob3J0IHgsIHVzaG9ydDIg
eSkgeworICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQu
eSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3Bl
cmF0b3IgdXNob3J0NCh1c2hvcnQgeCwgdXNob3J0IHksIHVzaG9ydCB6LCB1c2hvcnQgdykgewor
ICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7
CisgICAgcmVzdWx0LnogPSB6OworICAgIHJlc3VsdC53ID0gdzsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorb3BlcmF0b3IgdXNob3J0NCh1c2hvcnQyIHgsIHVzaG9ydCB5LCB1c2hvcnQgeikgewor
ICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0g
eC55OworICAgIHJlc3VsdC56ID0geTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK29wZXJhdG9yIHVzaG9ydDQodXNob3J0IHgsIHVzaG9ydDIgeSwgdXNob3J0IHop
IHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0Lnkg
PSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQ0KHVzaG9ydCB4LCB1c2hvcnQgeSwgdXNob3J0
MiB6KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3Vs
dC55ID0geTsKKyAgICByZXN1bHQueiA9IHoueDsKKyAgICByZXN1bHQudyA9IHoueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdXNob3J0NCh1c2hvcnQyIHgsIHVzaG9ydDIgeSkg
eworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55
ID0geC55OworICAgIHJlc3VsdC56ID0geS54OworICAgIHJlc3VsdC53ID0geS55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQ0KHVzaG9ydDMgeCwgdXNob3J0IHkpIHsK
KyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9
IHgueTsKKyAgICByZXN1bHQueiA9IHguejsKKyAgICByZXN1bHQudyA9IHk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIHVzaG9ydDQodXNob3J0IHgsIHVzaG9ydDMgeSkgeworICAg
IHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsK
KyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHkuejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWludCBvcGVyYXRvci5sZW5ndGgodXNob3J0MikgeworICAgIHJldHVybiAyOwor
fQordWludCBvcGVyYXRvci5sZW5ndGgodXNob3J0MykgeworICAgIHJldHVybiAzOworfQordWlu
dCBvcGVyYXRvci5sZW5ndGgodXNob3J0NCkgeworICAgIHJldHVybiA0OworfQorb3BlcmF0b3Ig
dWludDIodWludCB4LCB1aW50IHkpIHsKKyAgICB1aW50MiByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Ig
dWludDModWludCB4LCB1aW50IHksIHVpbnQgeikgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWludDModWludDIgeCwgdWludCB5KSB7CisgICAg
dWludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55Owor
ICAgIHJlc3VsdC56ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWludDMo
dWludCB4LCB1aW50MiB5KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsK
KyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorb3BlcmF0b3IgdWludDQodWludCB4LCB1aW50IHksIHVpbnQgeiwgdWludCB3KSB7
CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7
CisgICAgcmVzdWx0LnogPSB6OworICAgIHJlc3VsdC53ID0gdzsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorb3BlcmF0b3IgdWludDQodWludDIgeCwgdWludCB5LCB1aW50IHopIHsKKyAgICB1aW50
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAg
cmVzdWx0LnogPSB5OworICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
b3BlcmF0b3IgdWludDQodWludCB4LCB1aW50MiB5LCB1aW50IHopIHsKKyAgICB1aW50NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56
ID0geS55OworICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0
b3IgdWludDQodWludCB4LCB1aW50IHksIHVpbnQyIHopIHsKKyAgICB1aW50NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHoueDsK
KyAgICByZXN1bHQudyA9IHoueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWlu
dDQodWludDIgeCwgdWludDIgeSkgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHkueDsKKyAgICByZXN1
bHQudyA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWludDQodWludDMg
eCwgdWludCB5KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAg
IHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geC56OworICAgIHJlc3VsdC53ID0geTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWludDQodWludCB4LCB1aW50MyB5KSB7
CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHku
eDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHkuejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWludCBvcGVyYXRvci5sZW5ndGgodWludDIpIHsKKyAgICByZXR1cm4gMjsK
K30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHVpbnQzKSB7CisgICAgcmV0dXJuIDM7Cit9Cit1aW50
IG9wZXJhdG9yLmxlbmd0aCh1aW50NCkgeworICAgIHJldHVybiA0OworfQorb3BlcmF0b3IgY2hh
cjIoY2hhciB4LCBjaGFyIHkpIHsKKyAgICBjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4
OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgY2hh
cjMoY2hhciB4LCBjaGFyIHksIGNoYXIgeikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorb3BlcmF0b3IgY2hhcjMoY2hhcjIgeCwgY2hhciB5KSB7CisgICAgY2hh
cjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAg
IHJlc3VsdC56ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgY2hhcjMoY2hh
ciB4LCBjaGFyMiB5KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAg
ICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorb3BlcmF0b3IgY2hhcjQoY2hhciB4LCBjaGFyIHksIGNoYXIgeiwgY2hhciB3KSB7Cisg
ICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7Cisg
ICAgcmVzdWx0LnogPSB6OworICAgIHJlc3VsdC53ID0gdzsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorb3BlcmF0b3IgY2hhcjQoY2hhcjIgeCwgY2hhciB5LCBjaGFyIHopIHsKKyAgICBjaGFyNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVz
dWx0LnogPSB5OworICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3Bl
cmF0b3IgY2hhcjQoY2hhciB4LCBjaGFyMiB5LCBjaGFyIHopIHsKKyAgICBjaGFyNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0g
eS55OworICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Ig
Y2hhcjQoY2hhciB4LCBjaGFyIHksIGNoYXIyIHopIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHoueDsKKyAg
ICByZXN1bHQudyA9IHoueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgY2hhcjQo
Y2hhcjIgeCwgY2hhcjIgeSkgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgu
eDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHkueDsKKyAgICByZXN1bHQu
dyA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgY2hhcjQoY2hhcjMgeCwg
Y2hhciB5KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJl
c3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geC56OworICAgIHJlc3VsdC53ID0geTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgY2hhcjQoY2hhciB4LCBjaGFyMyB5KSB7Cisg
ICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsK
KyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHkuejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWludCBvcGVyYXRvci5sZW5ndGgoY2hhcjIpIHsKKyAgICByZXR1cm4gMjsKK30K
K3VpbnQgb3BlcmF0b3IubGVuZ3RoKGNoYXIzKSB7CisgICAgcmV0dXJuIDM7Cit9Cit1aW50IG9w
ZXJhdG9yLmxlbmd0aChjaGFyNCkgeworICAgIHJldHVybiA0OworfQorb3BlcmF0b3Igc2hvcnQy
KHNob3J0IHgsIHNob3J0IHkpIHsKKyAgICBzaG9ydDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
eDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHNo
b3J0MyhzaG9ydCB4LCBzaG9ydCB5LCBzaG9ydCB6KSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Igc2hvcnQzKHNob3J0MiB4LCBzaG9ydCB5KSB7
CisgICAgc2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9
IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9y
IHNob3J0MyhzaG9ydCB4LCBzaG9ydDIgeSkgeworICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBzaG9ydDQoc2hvcnQgeCwgc2hvcnQgeSwgc2hv
cnQgeiwgc2hvcnQgdykgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Owor
ICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmVzdWx0LncgPSB3Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBzaG9ydDQoc2hvcnQyIHgsIHNob3J0IHks
IHNob3J0IHopIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAg
IHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geTsKKyAgICByZXN1bHQudyA9IHo7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHNob3J0NChzaG9ydCB4LCBzaG9ydDIgeSwg
c2hvcnQgeikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJl
c3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0gejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Igc2hvcnQ0KHNob3J0IHgsIHNob3J0IHksIHNo
b3J0MiB6KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVz
dWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gei54OworICAgIHJlc3VsdC53ID0gei55OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBzaG9ydDQoc2hvcnQyIHgsIHNob3J0MiB5KSB7
CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9
IHgueTsKKyAgICByZXN1bHQueiA9IHkueDsKKyAgICByZXN1bHQudyA9IHkueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorb3BlcmF0b3Igc2hvcnQ0KHNob3J0MyB4LCBzaG9ydCB5KSB7CisgICAg
c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsK
KyAgICByZXN1bHQueiA9IHguejsKKyAgICByZXN1bHQudyA9IHk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK29wZXJhdG9yIHNob3J0NChzaG9ydCB4LCBzaG9ydDMgeSkgeworICAgIHNob3J0NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3Vs
dC56ID0geS55OworICAgIHJlc3VsdC53ID0geS56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
aW50IG9wZXJhdG9yLmxlbmd0aChzaG9ydDIpIHsKKyAgICByZXR1cm4gMjsKK30KK3VpbnQgb3Bl
cmF0b3IubGVuZ3RoKHNob3J0MykgeworICAgIHJldHVybiAzOworfQordWludCBvcGVyYXRvci5s
ZW5ndGgoc2hvcnQ0KSB7CisgICAgcmV0dXJuIDQ7Cit9CitvcGVyYXRvciBpbnQyKGludCB4LCBp
bnQgeSkgeworICAgIGludDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQu
eSA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGludDMoaW50IHgsIGludCB5
LCBpbnQgeikgeworICAgIGludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1
bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVy
YXRvciBpbnQzKGludDIgeCwgaW50IHkpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGludDMoaW50IHgsIGludDIgeSkgeworICAgIGludDMg
cmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1
bHQueiA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaW50NChpbnQgeCwg
aW50IHksIGludCB6LCBpbnQgdykgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
eDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6OworICAgIHJlc3VsdC53ID0g
dzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaW50NChpbnQyIHgsIGludCB5LCBp
bnQgeikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3Vs
dC55ID0geC55OworICAgIHJlc3VsdC56ID0geTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGludDQoaW50IHgsIGludDIgeSwgaW50IHopIHsKKyAg
ICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7Cisg
ICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitvcGVyYXRvciBpbnQ0KGludCB4LCBpbnQgeSwgaW50MiB6KSB7CisgICAgaW50NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9
IHoueDsKKyAgICByZXN1bHQudyA9IHoueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0
b3IgaW50NChpbnQyIHgsIGludDIgeSkgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geS54OworICAgIHJl
c3VsdC53ID0geS55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBpbnQ0KGludDMg
eCwgaW50IHkpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICBy
ZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHguejsKKyAgICByZXN1bHQudyA9IHk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGludDQoaW50IHgsIGludDMgeSkgeworICAg
IGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAg
ICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHkuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWludCBvcGVyYXRvci5sZW5ndGgoaW50MikgeworICAgIHJldHVybiAyOworfQordWlu
dCBvcGVyYXRvci5sZW5ndGgoaW50MykgeworICAgIHJldHVybiAzOworfQordWludCBvcGVyYXRv
ci5sZW5ndGgoaW50NCkgeworICAgIHJldHVybiA0OworfQorb3BlcmF0b3IgaGFsZjIoaGFsZiB4
LCBoYWxmIHkpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJl
c3VsdC55ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaGFsZjMoaGFsZiB4
LCBoYWxmIHksIGhhbGYgeikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7
CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorb3BlcmF0b3IgaGFsZjMoaGFsZjIgeCwgaGFsZiB5KSB7CisgICAgaGFsZjMgcmVzdWx0
OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56
ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaGFsZjMoaGFsZiB4LCBoYWxm
MiB5KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQu
eSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3Bl
cmF0b3IgaGFsZjQoaGFsZiB4LCBoYWxmIHksIGhhbGYgeiwgaGFsZiB3KSB7CisgICAgaGFsZjQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0
LnogPSB6OworICAgIHJlc3VsdC53ID0gdzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0
b3IgaGFsZjQoaGFsZjIgeCwgaGFsZiB5LCBoYWxmIHopIHsKKyAgICBoYWxmNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5
OworICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaGFs
ZjQoaGFsZiB4LCBoYWxmMiB5LCBoYWxmIHopIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAg
IHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaGFsZjQoaGFs
ZiB4LCBoYWxmIHksIGhhbGYyIHopIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHoueDsKKyAgICByZXN1bHQu
dyA9IHoueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaGFsZjQoaGFsZjIgeCwg
aGFsZjIgeSkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICBy
ZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHkueDsKKyAgICByZXN1bHQudyA9IHkueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaGFsZjQoaGFsZjMgeCwgaGFsZiB5KSB7
CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0g
eC55OworICAgIHJlc3VsdC56ID0geC56OworICAgIHJlc3VsdC53ID0geTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorb3BlcmF0b3IgaGFsZjQoaGFsZiB4LCBoYWxmMyB5KSB7CisgICAgaGFsZjQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1
bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHkuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dWludCBvcGVyYXRvci5sZW5ndGgoaGFsZjIpIHsKKyAgICByZXR1cm4gMjsKK30KK3VpbnQgb3Bl
cmF0b3IubGVuZ3RoKGhhbGYzKSB7CisgICAgcmV0dXJuIDM7Cit9Cit1aW50IG9wZXJhdG9yLmxl
bmd0aChoYWxmNCkgeworICAgIHJldHVybiA0OworfQorb3BlcmF0b3IgZmxvYXQyKGZsb2F0IHgs
IGZsb2F0IHkpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICBy
ZXN1bHQueSA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGZsb2F0MyhmbG9h
dCB4LCBmbG9hdCB5LCBmbG9hdCB6KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorb3BlcmF0b3IgZmxvYXQzKGZsb2F0MiB4LCBmbG9hdCB5KSB7CisgICAgZmxv
YXQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAg
ICByZXN1bHQueiA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGZsb2F0Myhm
bG9hdCB4LCBmbG9hdDIgeSkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4
OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9hdDQoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgZmxv
YXQgdykgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3Vs
dC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmVzdWx0LncgPSB3OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9hdDQoZmxvYXQyIHgsIGZsb2F0IHksIGZsb2F0IHop
IHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55
ID0geC55OworICAgIHJlc3VsdC56ID0geTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIGZsb2F0NChmbG9hdCB4LCBmbG9hdDIgeSwgZmxvYXQgeikg
eworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0g
eS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorb3BlcmF0b3IgZmxvYXQ0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0MiB6KSB7
CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5
OworICAgIHJlc3VsdC56ID0gei54OworICAgIHJlc3VsdC53ID0gei55OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9hdDQoZmxvYXQyIHgsIGZsb2F0MiB5KSB7CisgICAgZmxv
YXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAg
ICByZXN1bHQueiA9IHkueDsKKyAgICByZXN1bHQudyA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorb3BlcmF0b3IgZmxvYXQ0KGZsb2F0MyB4LCBmbG9hdCB5KSB7CisgICAgZmxvYXQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1
bHQueiA9IHguejsKKyAgICByZXN1bHQudyA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29w
ZXJhdG9yIGZsb2F0NChmbG9hdCB4LCBmbG9hdDMgeSkgeworICAgIGZsb2F0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55
OworICAgIHJlc3VsdC53ID0geS56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50IG9wZXJh
dG9yLmxlbmd0aChmbG9hdDIpIHsKKyAgICByZXR1cm4gMjsKK30KK3VpbnQgb3BlcmF0b3IubGVu
Z3RoKGZsb2F0MykgeworICAgIHJldHVybiAzOworfQordWludCBvcGVyYXRvci5sZW5ndGgoZmxv
YXQ0KSB7CisgICAgcmV0dXJuIDQ7Cit9Citib29sIG9wZXJhdG9yPT0oYm9vbDIgYSwgYm9vbDIg
YikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnk7Cit9Citib29sIG9wZXJh
dG9yPT0oYm9vbDMgYSwgYm9vbDMgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9
PSBiLnkgJiYgYS56ID09IGIuejsKK30KK2Jvb2wgb3BlcmF0b3I9PShib29sNCBhLCBib29sNCBi
KSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56ICYm
IGEudyA9PSBiLnc7Cit9CituYXRpdmUgYm9vbCBvcGVyYXRvci54KGJvb2wyKTsKK25hdGl2ZSBi
b29sIG9wZXJhdG9yLnkoYm9vbDIpOworbmF0aXZlIGJvb2wgb3BlcmF0b3IueChib29sMyk7Citu
YXRpdmUgYm9vbCBvcGVyYXRvci55KGJvb2wzKTsKK25hdGl2ZSBib29sIG9wZXJhdG9yLnooYm9v
bDMpOworbmF0aXZlIGJvb2wgb3BlcmF0b3IueChib29sNCk7CituYXRpdmUgYm9vbCBvcGVyYXRv
ci55KGJvb2w0KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yLnooYm9vbDQpOworbmF0aXZlIGJvb2wg
b3BlcmF0b3Iudyhib29sNCk7CituYXRpdmUgYm9vbDIgb3BlcmF0b3IueD0oYm9vbDIsIGJvb2wp
OworbmF0aXZlIGJvb2wyIG9wZXJhdG9yLnk9KGJvb2wyLCBib29sKTsKK25hdGl2ZSBib29sMyBv
cGVyYXRvci54PShib29sMywgYm9vbCk7CituYXRpdmUgYm9vbDMgb3BlcmF0b3IueT0oYm9vbDMs
IGJvb2wpOworbmF0aXZlIGJvb2wzIG9wZXJhdG9yLno9KGJvb2wzLCBib29sKTsKK25hdGl2ZSBi
b29sNCBvcGVyYXRvci54PShib29sNCwgYm9vbCk7CituYXRpdmUgYm9vbDQgb3BlcmF0b3IueT0o
Ym9vbDQsIGJvb2wpOworbmF0aXZlIGJvb2w0IG9wZXJhdG9yLno9KGJvb2w0LCBib29sKTsKK25h
dGl2ZSBib29sNCBvcGVyYXRvci53PShib29sNCwgYm9vbCk7Citib29sIG9wZXJhdG9yW10oYm9v
bDIgdiwgdWludCBpbmRleCkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAw
OgorICAgICAgICAgICAgcmV0dXJuIHYueDsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAg
cmV0dXJuIHYueTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQor
fQorYm9vbCBvcGVyYXRvcltdKGJvb2wzIHYsIHVpbnQgaW5kZXgpIHsKKyAgICBzd2l0Y2ggKGlu
ZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiB2Lng7CisgICAgICAg
IGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiB2Lnk7CisgICAgICAgIGNhc2UgMjoKKyAgICAg
ICAgICAgIHJldHVybiB2Lno7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOwor
ICAgIH0KK30KK2Jvb2wgb3BlcmF0b3JbXShib29sNCB2LCB1aW50IGluZGV4KSB7CisgICAgc3dp
dGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gdi54Owor
ICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gdi55OworICAgICAgICBjYXNlIDI6
CisgICAgICAgICAgICByZXR1cm4gdi56OworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBy
ZXR1cm4gdi53OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9Cit9
Citib29sMiBvcGVyYXRvcltdPShib29sMiB2LCB1aW50IGluZGV4LCBib29sIGEpIHsKKyAgICBz
d2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsK
KyAgICB9CisgICAgcmV0dXJuIHY7Cit9Citib29sMyBvcGVyYXRvcltdPShib29sMyB2LCB1aW50
IGluZGV4LCBib29sIGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoK
KyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAx
OgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDI6CisgICAgICAgICAgICB2LnogPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsKK30KK2Jvb2w0
IG9wZXJhdG9yW109KGJvb2w0IHYsIHVpbnQgaW5kZXgsIGJvb2wgYSkgeworICAgIHN3aXRjaCAo
aW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgdi54ID0gYTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICB2LnkgPSBhOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHYueiA9IGE7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgdi53ID0gYTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAg
ICB9CisgICAgcmV0dXJuIHY7Cit9Citib29sIG9wZXJhdG9yPT0odWNoYXIyIGEsIHVjaGFyMiBi
KSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueTsKK30KK2Jvb2wgb3BlcmF0
b3I9PSh1Y2hhcjMgYSwgdWNoYXIzIGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkg
PT0gYi55ICYmIGEueiA9PSBiLno7Cit9Citib29sIG9wZXJhdG9yPT0odWNoYXI0IGEsIHVjaGFy
NCBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56
ICYmIGEudyA9PSBiLnc7Cit9CituYXRpdmUgdWNoYXIgb3BlcmF0b3IueCh1Y2hhcjIpOworbmF0
aXZlIHVjaGFyIG9wZXJhdG9yLnkodWNoYXIyKTsKK25hdGl2ZSB1Y2hhciBvcGVyYXRvci54KHVj
aGFyMyk7CituYXRpdmUgdWNoYXIgb3BlcmF0b3IueSh1Y2hhcjMpOworbmF0aXZlIHVjaGFyIG9w
ZXJhdG9yLnoodWNoYXIzKTsKK25hdGl2ZSB1Y2hhciBvcGVyYXRvci54KHVjaGFyNCk7CituYXRp
dmUgdWNoYXIgb3BlcmF0b3IueSh1Y2hhcjQpOworbmF0aXZlIHVjaGFyIG9wZXJhdG9yLnoodWNo
YXI0KTsKK25hdGl2ZSB1Y2hhciBvcGVyYXRvci53KHVjaGFyNCk7CituYXRpdmUgdWNoYXIyIG9w
ZXJhdG9yLng9KHVjaGFyMiwgdWNoYXIpOworbmF0aXZlIHVjaGFyMiBvcGVyYXRvci55PSh1Y2hh
cjIsIHVjaGFyKTsKK25hdGl2ZSB1Y2hhcjMgb3BlcmF0b3IueD0odWNoYXIzLCB1Y2hhcik7Citu
YXRpdmUgdWNoYXIzIG9wZXJhdG9yLnk9KHVjaGFyMywgdWNoYXIpOworbmF0aXZlIHVjaGFyMyBv
cGVyYXRvci56PSh1Y2hhcjMsIHVjaGFyKTsKK25hdGl2ZSB1Y2hhcjQgb3BlcmF0b3IueD0odWNo
YXI0LCB1Y2hhcik7CituYXRpdmUgdWNoYXI0IG9wZXJhdG9yLnk9KHVjaGFyNCwgdWNoYXIpOwor
bmF0aXZlIHVjaGFyNCBvcGVyYXRvci56PSh1Y2hhcjQsIHVjaGFyKTsKK25hdGl2ZSB1Y2hhcjQg
b3BlcmF0b3Iudz0odWNoYXI0LCB1Y2hhcik7Cit1Y2hhciBvcGVyYXRvcltdKHVjaGFyMiB2LCB1
aW50IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAg
ICAgICAgICByZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4g
di55OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9Cit9Cit1Y2hh
ciBvcGVyYXRvcltdKHVjaGFyMyB2LCB1aW50IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkg
eworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gdi54OworICAgICAgICBjYXNl
IDE6CisgICAgICAgICAgICByZXR1cm4gdi55OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAg
ICByZXR1cm4gdi56OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9
Cit9Cit1Y2hhciBvcGVyYXRvcltdKHVjaGFyNCB2LCB1aW50IGluZGV4KSB7CisgICAgc3dpdGNo
IChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gdi54OworICAg
ICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gdi55OworICAgICAgICBjYXNlIDI6Cisg
ICAgICAgICAgICByZXR1cm4gdi56OworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICByZXR1
cm4gdi53OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9Cit9Cit1
Y2hhcjIgb3BlcmF0b3JbXT0odWNoYXIyIHYsIHVpbnQgaW5kZXgsIHVjaGFyIGEpIHsKKyAgICBz
d2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsK
KyAgICB9CisgICAgcmV0dXJuIHY7Cit9Cit1Y2hhcjMgb3BlcmF0b3JbXT0odWNoYXIzIHYsIHVp
bnQgaW5kZXgsIHVjaGFyIGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2Ug
MDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDI6CisgICAgICAgICAgICB2LnogPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsKK30KK3Vj
aGFyNCBvcGVyYXRvcltdPSh1Y2hhcjQgdiwgdWludCBpbmRleCwgdWNoYXIgYSkgeworICAgIHN3
aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgdi54ID0gYTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICB2LnkgPSBhOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHYueiA9IGE7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgdi53ID0g
YTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJh
cDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9Citib29sIG9wZXJhdG9yPT0odXNob3J0MiBhLCB1
c2hvcnQyIGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55OworfQorYm9v
bCBvcGVyYXRvcj09KHVzaG9ydDMgYSwgdXNob3J0MyBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBi
LnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56OworfQorYm9vbCBvcGVyYXRvcj09KHVzaG9y
dDQgYSwgdXNob3J0NCBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAm
JiBhLnogPT0gYi56ICYmIGEudyA9PSBiLnc7Cit9CituYXRpdmUgdXNob3J0IG9wZXJhdG9yLngo
dXNob3J0Mik7CituYXRpdmUgdXNob3J0IG9wZXJhdG9yLnkodXNob3J0Mik7CituYXRpdmUgdXNo
b3J0IG9wZXJhdG9yLngodXNob3J0Myk7CituYXRpdmUgdXNob3J0IG9wZXJhdG9yLnkodXNob3J0
Myk7CituYXRpdmUgdXNob3J0IG9wZXJhdG9yLnoodXNob3J0Myk7CituYXRpdmUgdXNob3J0IG9w
ZXJhdG9yLngodXNob3J0NCk7CituYXRpdmUgdXNob3J0IG9wZXJhdG9yLnkodXNob3J0NCk7Citu
YXRpdmUgdXNob3J0IG9wZXJhdG9yLnoodXNob3J0NCk7CituYXRpdmUgdXNob3J0IG9wZXJhdG9y
LncodXNob3J0NCk7CituYXRpdmUgdXNob3J0MiBvcGVyYXRvci54PSh1c2hvcnQyLCB1c2hvcnQp
OworbmF0aXZlIHVzaG9ydDIgb3BlcmF0b3IueT0odXNob3J0MiwgdXNob3J0KTsKK25hdGl2ZSB1
c2hvcnQzIG9wZXJhdG9yLng9KHVzaG9ydDMsIHVzaG9ydCk7CituYXRpdmUgdXNob3J0MyBvcGVy
YXRvci55PSh1c2hvcnQzLCB1c2hvcnQpOworbmF0aXZlIHVzaG9ydDMgb3BlcmF0b3Iuej0odXNo
b3J0MywgdXNob3J0KTsKK25hdGl2ZSB1c2hvcnQ0IG9wZXJhdG9yLng9KHVzaG9ydDQsIHVzaG9y
dCk7CituYXRpdmUgdXNob3J0NCBvcGVyYXRvci55PSh1c2hvcnQ0LCB1c2hvcnQpOworbmF0aXZl
IHVzaG9ydDQgb3BlcmF0b3Iuej0odXNob3J0NCwgdXNob3J0KTsKK25hdGl2ZSB1c2hvcnQ0IG9w
ZXJhdG9yLnc9KHVzaG9ydDQsIHVzaG9ydCk7Cit1c2hvcnQgb3BlcmF0b3JbXSh1c2hvcnQyIHYs
IHVpbnQgaW5kZXgpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAg
ICAgICAgICAgIHJldHVybiB2Lng7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVy
biB2Lnk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KK30KK3Vz
aG9ydCBvcGVyYXRvcltdKHVzaG9ydDMgdiwgdWludCBpbmRleCkgeworICAgIHN3aXRjaCAoaW5k
ZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIHYueDsKKyAgICAgICAg
Y2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIHYueTsKKyAgICAgICAgY2FzZSAyOgorICAgICAg
ICAgICAgcmV0dXJuIHYuejsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7Cisg
ICAgfQorfQordXNob3J0IG9wZXJhdG9yW10odXNob3J0NCB2LCB1aW50IGluZGV4KSB7CisgICAg
c3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gdi54
OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gdi55OworICAgICAgICBjYXNl
IDI6CisgICAgICAgICAgICByZXR1cm4gdi56OworICAgICAgICBjYXNlIDM6CisgICAgICAgICAg
ICByZXR1cm4gdi53OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9
Cit9Cit1c2hvcnQyIG9wZXJhdG9yW109KHVzaG9ydDIgdiwgdWludCBpbmRleCwgdXNob3J0IGEp
IHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYu
eCA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAg
di55ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9Cit1c2hvcnQzIG9wZXJhdG9yW109KHVz
aG9ydDMgdiwgdWludCBpbmRleCwgdXNob3J0IGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7Cisg
ICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICB2LnogPSBhOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1
cm4gdjsKK30KK3VzaG9ydDQgb3BlcmF0b3JbXT0odXNob3J0NCB2LCB1aW50IGluZGV4LCB1c2hv
cnQgYSkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAg
ICAgdi54ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAg
ICAgICB2LnkgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAg
ICAgICAgIHYueiA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAg
ICAgICAgICAgdi53ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9Citib29sIG9wZXJhdG9y
PT0odWludDIgYSwgdWludDIgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBi
Lnk7Cit9Citib29sIG9wZXJhdG9yPT0odWludDMgYSwgdWludDMgYikgeworICAgIHJldHVybiBh
LnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIuejsKK30KK2Jvb2wgb3BlcmF0b3I9
PSh1aW50NCBhLCB1aW50NCBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIu
eSAmJiBhLnogPT0gYi56ICYmIGEudyA9PSBiLnc7Cit9CituYXRpdmUgdWludCBvcGVyYXRvci54
KHVpbnQyKTsKK25hdGl2ZSB1aW50IG9wZXJhdG9yLnkodWludDIpOworbmF0aXZlIHVpbnQgb3Bl
cmF0b3IueCh1aW50Myk7CituYXRpdmUgdWludCBvcGVyYXRvci55KHVpbnQzKTsKK25hdGl2ZSB1
aW50IG9wZXJhdG9yLnoodWludDMpOworbmF0aXZlIHVpbnQgb3BlcmF0b3IueCh1aW50NCk7Citu
YXRpdmUgdWludCBvcGVyYXRvci55KHVpbnQ0KTsKK25hdGl2ZSB1aW50IG9wZXJhdG9yLnoodWlu
dDQpOworbmF0aXZlIHVpbnQgb3BlcmF0b3Iudyh1aW50NCk7CituYXRpdmUgdWludDIgb3BlcmF0
b3IueD0odWludDIsIHVpbnQpOworbmF0aXZlIHVpbnQyIG9wZXJhdG9yLnk9KHVpbnQyLCB1aW50
KTsKK25hdGl2ZSB1aW50MyBvcGVyYXRvci54PSh1aW50MywgdWludCk7CituYXRpdmUgdWludDMg
b3BlcmF0b3IueT0odWludDMsIHVpbnQpOworbmF0aXZlIHVpbnQzIG9wZXJhdG9yLno9KHVpbnQz
LCB1aW50KTsKK25hdGl2ZSB1aW50NCBvcGVyYXRvci54PSh1aW50NCwgdWludCk7CituYXRpdmUg
dWludDQgb3BlcmF0b3IueT0odWludDQsIHVpbnQpOworbmF0aXZlIHVpbnQ0IG9wZXJhdG9yLno9
KHVpbnQ0LCB1aW50KTsKK25hdGl2ZSB1aW50NCBvcGVyYXRvci53PSh1aW50NCwgdWludCk7Cit1
aW50IG9wZXJhdG9yW10odWludDIgdiwgdWludCBpbmRleCkgeworICAgIHN3aXRjaCAoaW5kZXgp
IHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIHYueDsKKyAgICAgICAgY2Fz
ZSAxOgorICAgICAgICAgICAgcmV0dXJuIHYueTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIHRyYXA7CisgICAgfQorfQordWludCBvcGVyYXRvcltdKHVpbnQzIHYsIHVpbnQgaW5kZXgp
IHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJl
dHVybiB2Lng7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiB2Lnk7CisgICAg
ICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVybiB2Lno7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICB0cmFwOworICAgIH0KK30KK3VpbnQgb3BlcmF0b3JbXSh1aW50NCB2LCB1aW50
IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAg
ICAgICByZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gdi55
OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gdi56OworICAgICAgICBjYXNl
IDM6CisgICAgICAgICAgICByZXR1cm4gdi53OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgdHJhcDsKKyAgICB9Cit9Cit1aW50MiBvcGVyYXRvcltdPSh1aW50MiB2LCB1aW50IGluZGV4
LCB1aW50IGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAg
ICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAg
ICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9Cit1aW50MyBvcGVyYXRv
cltdPSh1aW50MyB2LCB1aW50IGluZGV4LCB1aW50IGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7
CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICB2LnogPSBhOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICBy
ZXR1cm4gdjsKK30KK3VpbnQ0IG9wZXJhdG9yW109KHVpbnQ0IHYsIHVpbnQgaW5kZXgsIHVpbnQg
YSkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAg
di54ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAg
ICB2LnkgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAg
ICAgIHYueiA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAg
ICAgICAgdi53ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9Citib29sIG9wZXJhdG9yPT0o
Y2hhcjIgYSwgY2hhcjIgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnk7
Cit9Citib29sIG9wZXJhdG9yPT0oY2hhcjMgYSwgY2hhcjMgYikgeworICAgIHJldHVybiBhLngg
PT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIuejsKK30KK2Jvb2wgb3BlcmF0b3I9PShj
aGFyNCBhLCBjaGFyNCBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAm
JiBhLnogPT0gYi56ICYmIGEudyA9PSBiLnc7Cit9CituYXRpdmUgY2hhciBvcGVyYXRvci54KGNo
YXIyKTsKK25hdGl2ZSBjaGFyIG9wZXJhdG9yLnkoY2hhcjIpOworbmF0aXZlIGNoYXIgb3BlcmF0
b3IueChjaGFyMyk7CituYXRpdmUgY2hhciBvcGVyYXRvci55KGNoYXIzKTsKK25hdGl2ZSBjaGFy
IG9wZXJhdG9yLnooY2hhcjMpOworbmF0aXZlIGNoYXIgb3BlcmF0b3IueChjaGFyNCk7CituYXRp
dmUgY2hhciBvcGVyYXRvci55KGNoYXI0KTsKK25hdGl2ZSBjaGFyIG9wZXJhdG9yLnooY2hhcjQp
OworbmF0aXZlIGNoYXIgb3BlcmF0b3IudyhjaGFyNCk7CituYXRpdmUgY2hhcjIgb3BlcmF0b3Iu
eD0oY2hhcjIsIGNoYXIpOworbmF0aXZlIGNoYXIyIG9wZXJhdG9yLnk9KGNoYXIyLCBjaGFyKTsK
K25hdGl2ZSBjaGFyMyBvcGVyYXRvci54PShjaGFyMywgY2hhcik7CituYXRpdmUgY2hhcjMgb3Bl
cmF0b3IueT0oY2hhcjMsIGNoYXIpOworbmF0aXZlIGNoYXIzIG9wZXJhdG9yLno9KGNoYXIzLCBj
aGFyKTsKK25hdGl2ZSBjaGFyNCBvcGVyYXRvci54PShjaGFyNCwgY2hhcik7CituYXRpdmUgY2hh
cjQgb3BlcmF0b3IueT0oY2hhcjQsIGNoYXIpOworbmF0aXZlIGNoYXI0IG9wZXJhdG9yLno9KGNo
YXI0LCBjaGFyKTsKK25hdGl2ZSBjaGFyNCBvcGVyYXRvci53PShjaGFyNCwgY2hhcik7CitjaGFy
IG9wZXJhdG9yW10oY2hhcjIgdiwgdWludCBpbmRleCkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsK
KyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIHYueDsKKyAgICAgICAgY2FzZSAx
OgorICAgICAgICAgICAgcmV0dXJuIHYueTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IHRyYXA7CisgICAgfQorfQorY2hhciBvcGVyYXRvcltdKGNoYXIzIHYsIHVpbnQgaW5kZXgpIHsK
KyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVy
biB2Lng7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiB2Lnk7CisgICAgICAg
IGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVybiB2Lno7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICB0cmFwOworICAgIH0KK30KK2NoYXIgb3BlcmF0b3JbXShjaGFyNCB2LCB1aW50IGlu
ZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAg
ICByZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gdi55Owor
ICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gdi56OworICAgICAgICBjYXNlIDM6
CisgICAgICAgICAgICByZXR1cm4gdi53OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
dHJhcDsKKyAgICB9Cit9CitjaGFyMiBvcGVyYXRvcltdPShjaGFyMiB2LCB1aW50IGluZGV4LCBj
aGFyIGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAg
ICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAg
ICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9CitjaGFyMyBvcGVyYXRvcltd
PShjaGFyMyB2LCB1aW50IGluZGV4LCBjaGFyIGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7Cisg
ICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICB2LnogPSBhOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1
cm4gdjsKK30KK2NoYXI0IG9wZXJhdG9yW109KGNoYXI0IHYsIHVpbnQgaW5kZXgsIGNoYXIgYSkg
eworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgdi54
ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICB2
LnkgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAg
IHYueiA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAg
ICAgdi53ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9Citib29sIG9wZXJhdG9yPT0oc2hv
cnQyIGEsIHNob3J0MiBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueTsK
K30KK2Jvb2wgb3BlcmF0b3I9PShzaG9ydDMgYSwgc2hvcnQzIGIpIHsKKyAgICByZXR1cm4gYS54
ID09IGIueCAmJiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLno7Cit9Citib29sIG9wZXJhdG9yPT0o
c2hvcnQ0IGEsIHNob3J0NCBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIu
eSAmJiBhLnogPT0gYi56ICYmIGEudyA9PSBiLnc7Cit9CituYXRpdmUgc2hvcnQgb3BlcmF0b3Iu
eChzaG9ydDIpOworbmF0aXZlIHNob3J0IG9wZXJhdG9yLnkoc2hvcnQyKTsKK25hdGl2ZSBzaG9y
dCBvcGVyYXRvci54KHNob3J0Myk7CituYXRpdmUgc2hvcnQgb3BlcmF0b3IueShzaG9ydDMpOwor
bmF0aXZlIHNob3J0IG9wZXJhdG9yLnooc2hvcnQzKTsKK25hdGl2ZSBzaG9ydCBvcGVyYXRvci54
KHNob3J0NCk7CituYXRpdmUgc2hvcnQgb3BlcmF0b3IueShzaG9ydDQpOworbmF0aXZlIHNob3J0
IG9wZXJhdG9yLnooc2hvcnQ0KTsKK25hdGl2ZSBzaG9ydCBvcGVyYXRvci53KHNob3J0NCk7Citu
YXRpdmUgc2hvcnQyIG9wZXJhdG9yLng9KHNob3J0Miwgc2hvcnQpOworbmF0aXZlIHNob3J0MiBv
cGVyYXRvci55PShzaG9ydDIsIHNob3J0KTsKK25hdGl2ZSBzaG9ydDMgb3BlcmF0b3IueD0oc2hv
cnQzLCBzaG9ydCk7CituYXRpdmUgc2hvcnQzIG9wZXJhdG9yLnk9KHNob3J0Mywgc2hvcnQpOwor
bmF0aXZlIHNob3J0MyBvcGVyYXRvci56PShzaG9ydDMsIHNob3J0KTsKK25hdGl2ZSBzaG9ydDQg
b3BlcmF0b3IueD0oc2hvcnQ0LCBzaG9ydCk7CituYXRpdmUgc2hvcnQ0IG9wZXJhdG9yLnk9KHNo
b3J0NCwgc2hvcnQpOworbmF0aXZlIHNob3J0NCBvcGVyYXRvci56PShzaG9ydDQsIHNob3J0KTsK
K25hdGl2ZSBzaG9ydDQgb3BlcmF0b3Iudz0oc2hvcnQ0LCBzaG9ydCk7CitzaG9ydCBvcGVyYXRv
cltdKHNob3J0MiB2LCB1aW50IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAg
ICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6CisgICAg
ICAgICAgICByZXR1cm4gdi55OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsK
KyAgICB9Cit9CitzaG9ydCBvcGVyYXRvcltdKHNob3J0MyB2LCB1aW50IGluZGV4KSB7CisgICAg
c3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gdi54
OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gdi55OworICAgICAgICBjYXNl
IDI6CisgICAgICAgICAgICByZXR1cm4gdi56OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgdHJhcDsKKyAgICB9Cit9CitzaG9ydCBvcGVyYXRvcltdKHNob3J0NCB2LCB1aW50IGluZGV4
KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICBy
ZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gdi55OworICAg
ICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gdi56OworICAgICAgICBjYXNlIDM6Cisg
ICAgICAgICAgICByZXR1cm4gdi53OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJh
cDsKKyAgICB9Cit9CitzaG9ydDIgb3BlcmF0b3JbXT0oc2hvcnQyIHYsIHVpbnQgaW5kZXgsIHNo
b3J0IGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAg
ICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAg
ICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9CitzaG9ydDMgb3BlcmF0b3Jb
XT0oc2hvcnQzIHYsIHVpbnQgaW5kZXgsIHNob3J0IGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7
CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICB2LnogPSBhOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICBy
ZXR1cm4gdjsKK30KK3Nob3J0NCBvcGVyYXRvcltdPShzaG9ydDQgdiwgdWludCBpbmRleCwgc2hv
cnQgYSkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAg
ICAgdi54ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAg
ICAgICB2LnkgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAg
ICAgICAgIHYueiA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAg
ICAgICAgICAgdi53ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9Citib29sIG9wZXJhdG9y
PT0oaW50MiBhLCBpbnQyIGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55
OworfQorYm9vbCBvcGVyYXRvcj09KGludDMgYSwgaW50MyBiKSB7CisgICAgcmV0dXJuIGEueCA9
PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56OworfQorYm9vbCBvcGVyYXRvcj09KGlu
dDQgYSwgaW50NCBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBh
LnogPT0gYi56ICYmIGEudyA9PSBiLnc7Cit9CituYXRpdmUgaW50IG9wZXJhdG9yLngoaW50Mik7
CituYXRpdmUgaW50IG9wZXJhdG9yLnkoaW50Mik7CituYXRpdmUgaW50IG9wZXJhdG9yLngoaW50
Myk7CituYXRpdmUgaW50IG9wZXJhdG9yLnkoaW50Myk7CituYXRpdmUgaW50IG9wZXJhdG9yLnoo
aW50Myk7CituYXRpdmUgaW50IG9wZXJhdG9yLngoaW50NCk7CituYXRpdmUgaW50IG9wZXJhdG9y
LnkoaW50NCk7CituYXRpdmUgaW50IG9wZXJhdG9yLnooaW50NCk7CituYXRpdmUgaW50IG9wZXJh
dG9yLncoaW50NCk7CituYXRpdmUgaW50MiBvcGVyYXRvci54PShpbnQyLCBpbnQpOworbmF0aXZl
IGludDIgb3BlcmF0b3IueT0oaW50MiwgaW50KTsKK25hdGl2ZSBpbnQzIG9wZXJhdG9yLng9KGlu
dDMsIGludCk7CituYXRpdmUgaW50MyBvcGVyYXRvci55PShpbnQzLCBpbnQpOworbmF0aXZlIGlu
dDMgb3BlcmF0b3Iuej0oaW50MywgaW50KTsKK25hdGl2ZSBpbnQ0IG9wZXJhdG9yLng9KGludDQs
IGludCk7CituYXRpdmUgaW50NCBvcGVyYXRvci55PShpbnQ0LCBpbnQpOworbmF0aXZlIGludDQg
b3BlcmF0b3Iuej0oaW50NCwgaW50KTsKK25hdGl2ZSBpbnQ0IG9wZXJhdG9yLnc9KGludDQsIGlu
dCk7CitpbnQgb3BlcmF0b3JbXShpbnQyIHYsIHVpbnQgaW5kZXgpIHsKKyAgICBzd2l0Y2ggKGlu
ZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiB2Lng7CisgICAgICAg
IGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiB2Lnk7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICB0cmFwOworICAgIH0KK30KK2ludCBvcGVyYXRvcltdKGludDMgdiwgdWludCBpbmRl
eCkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAg
cmV0dXJuIHYueDsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIHYueTsKKyAg
ICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmV0dXJuIHYuejsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIHRyYXA7CisgICAgfQorfQoraW50IG9wZXJhdG9yW10oaW50NCB2LCB1aW50
IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAg
ICAgICByZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gdi55
OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gdi56OworICAgICAgICBjYXNl
IDM6CisgICAgICAgICAgICByZXR1cm4gdi53OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgdHJhcDsKKyAgICB9Cit9CitpbnQyIG9wZXJhdG9yW109KGludDIgdiwgdWludCBpbmRleCwg
aW50IGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAg
ICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAg
ICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9CitpbnQzIG9wZXJhdG9yW109
KGludDMgdiwgdWludCBpbmRleCwgaW50IGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAg
ICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICB2LnogPSBhOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1cm4g
djsKK30KK2ludDQgb3BlcmF0b3JbXT0oaW50NCB2LCB1aW50IGluZGV4LCBpbnQgYSkgeworICAg
IHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgdi54ID0gYTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICB2LnkgPSBh
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHYueiA9
IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgdi53
ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
dHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9Citib29sIG9wZXJhdG9yPT0oaGFsZjIgYSwg
aGFsZjIgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnk7Cit9Citib29s
IG9wZXJhdG9yPT0oaGFsZjMgYSwgaGFsZjMgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYm
IGEueSA9PSBiLnkgJiYgYS56ID09IGIuejsKK30KK2Jvb2wgb3BlcmF0b3I9PShoYWxmNCBhLCBo
YWxmNCBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0g
Yi56ICYmIGEudyA9PSBiLnc7Cit9CituYXRpdmUgaGFsZiBvcGVyYXRvci54KGhhbGYyKTsKK25h
dGl2ZSBoYWxmIG9wZXJhdG9yLnkoaGFsZjIpOworbmF0aXZlIGhhbGYgb3BlcmF0b3IueChoYWxm
Myk7CituYXRpdmUgaGFsZiBvcGVyYXRvci55KGhhbGYzKTsKK25hdGl2ZSBoYWxmIG9wZXJhdG9y
LnooaGFsZjMpOworbmF0aXZlIGhhbGYgb3BlcmF0b3IueChoYWxmNCk7CituYXRpdmUgaGFsZiBv
cGVyYXRvci55KGhhbGY0KTsKK25hdGl2ZSBoYWxmIG9wZXJhdG9yLnooaGFsZjQpOworbmF0aXZl
IGhhbGYgb3BlcmF0b3IudyhoYWxmNCk7CituYXRpdmUgaGFsZjIgb3BlcmF0b3IueD0oaGFsZjIs
IGhhbGYpOworbmF0aXZlIGhhbGYyIG9wZXJhdG9yLnk9KGhhbGYyLCBoYWxmKTsKK25hdGl2ZSBo
YWxmMyBvcGVyYXRvci54PShoYWxmMywgaGFsZik7CituYXRpdmUgaGFsZjMgb3BlcmF0b3IueT0o
aGFsZjMsIGhhbGYpOworbmF0aXZlIGhhbGYzIG9wZXJhdG9yLno9KGhhbGYzLCBoYWxmKTsKK25h
dGl2ZSBoYWxmNCBvcGVyYXRvci54PShoYWxmNCwgaGFsZik7CituYXRpdmUgaGFsZjQgb3BlcmF0
b3IueT0oaGFsZjQsIGhhbGYpOworbmF0aXZlIGhhbGY0IG9wZXJhdG9yLno9KGhhbGY0LCBoYWxm
KTsKK25hdGl2ZSBoYWxmNCBvcGVyYXRvci53PShoYWxmNCwgaGFsZik7CitoYWxmIG9wZXJhdG9y
W10oaGFsZjIgdiwgdWludCBpbmRleCkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAg
Y2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIHYueDsKKyAgICAgICAgY2FzZSAxOgorICAgICAg
ICAgICAgcmV0dXJuIHYueTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7Cisg
ICAgfQorfQoraGFsZiBvcGVyYXRvcltdKGhhbGYzIHYsIHVpbnQgaW5kZXgpIHsKKyAgICBzd2l0
Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiB2Lng7Cisg
ICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiB2Lnk7CisgICAgICAgIGNhc2UgMjoK
KyAgICAgICAgICAgIHJldHVybiB2Lno7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0
cmFwOworICAgIH0KK30KK2hhbGYgb3BlcmF0b3JbXShoYWxmNCB2LCB1aW50IGluZGV4KSB7Cisg
ICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4g
di54OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gdi55OworICAgICAgICBj
YXNlIDI6CisgICAgICAgICAgICByZXR1cm4gdi56OworICAgICAgICBjYXNlIDM6CisgICAgICAg
ICAgICByZXR1cm4gdi53OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAg
ICB9Cit9CitoYWxmMiBvcGVyYXRvcltdPShoYWxmMiB2LCB1aW50IGluZGV4LCBoYWxmIGEpIHsK
KyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9
IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55
ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
dHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9CitoYWxmMyBvcGVyYXRvcltdPShoYWxmMyB2
LCB1aW50IGluZGV4LCBoYWxmIGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNh
c2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDI6CisgICAgICAgICAgICB2LnogPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsKK30K
K2hhbGY0IG9wZXJhdG9yW109KGhhbGY0IHYsIHVpbnQgaW5kZXgsIGhhbGYgYSkgeworICAgIHN3
aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgdi54ID0gYTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICB2LnkgPSBhOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHYueiA9IGE7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgdi53ID0g
YTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJh
cDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9Citib29sIG9wZXJhdG9yPT0oZmxvYXQyIGEsIGZs
b2F0MiBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueTsKK30KK2Jvb2wg
b3BlcmF0b3I9PShmbG9hdDMgYSwgZmxvYXQzIGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAm
JiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLno7Cit9Citib29sIG9wZXJhdG9yPT0oZmxvYXQ0IGEs
IGZsb2F0NCBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnog
PT0gYi56ICYmIGEudyA9PSBiLnc7Cit9CituYXRpdmUgZmxvYXQgb3BlcmF0b3IueChmbG9hdDIp
OworbmF0aXZlIGZsb2F0IG9wZXJhdG9yLnkoZmxvYXQyKTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRv
ci54KGZsb2F0Myk7CituYXRpdmUgZmxvYXQgb3BlcmF0b3IueShmbG9hdDMpOworbmF0aXZlIGZs
b2F0IG9wZXJhdG9yLnooZmxvYXQzKTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRvci54KGZsb2F0NCk7
CituYXRpdmUgZmxvYXQgb3BlcmF0b3IueShmbG9hdDQpOworbmF0aXZlIGZsb2F0IG9wZXJhdG9y
LnooZmxvYXQ0KTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRvci53KGZsb2F0NCk7CituYXRpdmUgZmxv
YXQyIG9wZXJhdG9yLng9KGZsb2F0MiwgZmxvYXQpOworbmF0aXZlIGZsb2F0MiBvcGVyYXRvci55
PShmbG9hdDIsIGZsb2F0KTsKK25hdGl2ZSBmbG9hdDMgb3BlcmF0b3IueD0oZmxvYXQzLCBmbG9h
dCk7CituYXRpdmUgZmxvYXQzIG9wZXJhdG9yLnk9KGZsb2F0MywgZmxvYXQpOworbmF0aXZlIGZs
b2F0MyBvcGVyYXRvci56PShmbG9hdDMsIGZsb2F0KTsKK25hdGl2ZSBmbG9hdDQgb3BlcmF0b3Iu
eD0oZmxvYXQ0LCBmbG9hdCk7CituYXRpdmUgZmxvYXQ0IG9wZXJhdG9yLnk9KGZsb2F0NCwgZmxv
YXQpOworbmF0aXZlIGZsb2F0NCBvcGVyYXRvci56PShmbG9hdDQsIGZsb2F0KTsKK25hdGl2ZSBm
bG9hdDQgb3BlcmF0b3Iudz0oZmxvYXQ0LCBmbG9hdCk7CitmbG9hdCBvcGVyYXRvcltdKGZsb2F0
MiB2LCB1aW50IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6
CisgICAgICAgICAgICByZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICBy
ZXR1cm4gdi55OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9Cit9
CitmbG9hdCBvcGVyYXRvcltdKGZsb2F0MyB2LCB1aW50IGluZGV4KSB7CisgICAgc3dpdGNoIChp
bmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gdi54OworICAgICAg
ICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gdi55OworICAgICAgICBjYXNlIDI6CisgICAg
ICAgICAgICByZXR1cm4gdi56OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsK
KyAgICB9Cit9CitmbG9hdCBvcGVyYXRvcltdKGZsb2F0NCB2LCB1aW50IGluZGV4KSB7CisgICAg
c3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gdi54
OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gdi55OworICAgICAgICBjYXNl
IDI6CisgICAgICAgICAgICByZXR1cm4gdi56OworICAgICAgICBjYXNlIDM6CisgICAgICAgICAg
ICByZXR1cm4gdi53OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9
Cit9CitmbG9hdDIgb3BlcmF0b3JbXT0oZmxvYXQyIHYsIHVpbnQgaW5kZXgsIGZsb2F0IGEpIHsK
KyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9
IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55
ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
dHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9CitmbG9hdDMgb3BlcmF0b3JbXT0oZmxvYXQz
IHYsIHVpbnQgaW5kZXgsIGZsb2F0IGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAg
IGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDI6CisgICAgICAgICAgICB2LnogPSBhOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsK
K30KK2Zsb2F0NCBvcGVyYXRvcltdPShmbG9hdDQgdiwgdWludCBpbmRleCwgZmxvYXQgYSkgewor
ICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgdi54ID0g
YTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICB2Lnkg
PSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHYu
eiA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAg
di53ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7CiB9CiAKLWJvb2wgb3BlcmF0b3J+KGJvb2wg
dmFsdWUpCi17Ci0gICAgcmV0dXJuICF2YWx1ZTsKK25hdGl2ZSBoYWxmMiBvcGVyYXRvcltdKGhh
bGYyeDIsIHVpbnQpOworbmF0aXZlIGhhbGYyeDIgb3BlcmF0b3JbXT0oaGFsZjJ4MiwgdWludCwg
aGFsZjIpOworbmF0aXZlIGhhbGYzIG9wZXJhdG9yW10oaGFsZjJ4MywgdWludCk7CituYXRpdmUg
aGFsZjJ4MyBvcGVyYXRvcltdPShoYWxmMngzLCB1aW50LCBoYWxmMyk7CituYXRpdmUgaGFsZjQg
b3BlcmF0b3JbXShoYWxmMng0LCB1aW50KTsKK25hdGl2ZSBoYWxmMng0IG9wZXJhdG9yW109KGhh
bGYyeDQsIHVpbnQsIGhhbGY0KTsKK25hdGl2ZSBoYWxmMiBvcGVyYXRvcltdKGhhbGYzeDIsIHVp
bnQpOworbmF0aXZlIGhhbGYzeDIgb3BlcmF0b3JbXT0oaGFsZjN4MiwgdWludCwgaGFsZjIpOwor
bmF0aXZlIGhhbGYzIG9wZXJhdG9yW10oaGFsZjN4MywgdWludCk7CituYXRpdmUgaGFsZjN4MyBv
cGVyYXRvcltdPShoYWxmM3gzLCB1aW50LCBoYWxmMyk7CituYXRpdmUgaGFsZjQgb3BlcmF0b3Jb
XShoYWxmM3g0LCB1aW50KTsKK25hdGl2ZSBoYWxmM3g0IG9wZXJhdG9yW109KGhhbGYzeDQsIHVp
bnQsIGhhbGY0KTsKK25hdGl2ZSBoYWxmMiBvcGVyYXRvcltdKGhhbGY0eDIsIHVpbnQpOworbmF0
aXZlIGhhbGY0eDIgb3BlcmF0b3JbXT0oaGFsZjR4MiwgdWludCwgaGFsZjIpOworbmF0aXZlIGhh
bGYzIG9wZXJhdG9yW10oaGFsZjR4MywgdWludCk7CituYXRpdmUgaGFsZjR4MyBvcGVyYXRvcltd
PShoYWxmNHgzLCB1aW50LCBoYWxmMyk7CituYXRpdmUgaGFsZjQgb3BlcmF0b3JbXShoYWxmNHg0
LCB1aW50KTsKK25hdGl2ZSBoYWxmNHg0IG9wZXJhdG9yW109KGhhbGY0eDQsIHVpbnQsIGhhbGY0
KTsKK25hdGl2ZSBmbG9hdDIgb3BlcmF0b3JbXShmbG9hdDJ4MiwgdWludCk7CituYXRpdmUgZmxv
YXQyeDIgb3BlcmF0b3JbXT0oZmxvYXQyeDIsIHVpbnQsIGZsb2F0Mik7CituYXRpdmUgZmxvYXQz
IG9wZXJhdG9yW10oZmxvYXQyeDMsIHVpbnQpOworbmF0aXZlIGZsb2F0MngzIG9wZXJhdG9yW109
KGZsb2F0MngzLCB1aW50LCBmbG9hdDMpOworbmF0aXZlIGZsb2F0NCBvcGVyYXRvcltdKGZsb2F0
Mng0LCB1aW50KTsKK25hdGl2ZSBmbG9hdDJ4NCBvcGVyYXRvcltdPShmbG9hdDJ4NCwgdWludCwg
ZmxvYXQ0KTsKK25hdGl2ZSBmbG9hdDIgb3BlcmF0b3JbXShmbG9hdDN4MiwgdWludCk7CituYXRp
dmUgZmxvYXQzeDIgb3BlcmF0b3JbXT0oZmxvYXQzeDIsIHVpbnQsIGZsb2F0Mik7CituYXRpdmUg
ZmxvYXQzIG9wZXJhdG9yW10oZmxvYXQzeDMsIHVpbnQpOworbmF0aXZlIGZsb2F0M3gzIG9wZXJh
dG9yW109KGZsb2F0M3gzLCB1aW50LCBmbG9hdDMpOworbmF0aXZlIGZsb2F0NCBvcGVyYXRvcltd
KGZsb2F0M3g0LCB1aW50KTsKK25hdGl2ZSBmbG9hdDN4NCBvcGVyYXRvcltdPShmbG9hdDN4NCwg
dWludCwgZmxvYXQ0KTsKK25hdGl2ZSBmbG9hdDIgb3BlcmF0b3JbXShmbG9hdDR4MiwgdWludCk7
CituYXRpdmUgZmxvYXQ0eDIgb3BlcmF0b3JbXT0oZmxvYXQ0eDIsIHVpbnQsIGZsb2F0Mik7Citu
YXRpdmUgZmxvYXQzIG9wZXJhdG9yW10oZmxvYXQ0eDMsIHVpbnQpOworbmF0aXZlIGZsb2F0NHgz
IG9wZXJhdG9yW109KGZsb2F0NHgzLCB1aW50LCBmbG9hdDMpOworbmF0aXZlIGZsb2F0NCBvcGVy
YXRvcltdKGZsb2F0NHg0LCB1aW50KTsKK25hdGl2ZSBmbG9hdDR4NCBvcGVyYXRvcltdPShmbG9h
dDR4NCwgdWludCwgZmxvYXQ0KTsKKworYm9vbCBvcGVyYXRvcj09KGhhbGYyeDIgYSwgaGFsZjJ4
MiBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0gYlswXVswXSAmJgorICAgICAg
ICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFdWzBdICYmCisg
ICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9y
PT0oaGFsZjJ4MyBhLCBoYWxmMngzIGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9
PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAgICAgICBhWzBd
WzJdID09IGJbMF1bMl0gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFdWzBdICYmCisgICAgICAg
IGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBhWzFdWzJdID09IGJbMV1bMl0gJiYKKyAg
ICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGhhbGYyeDQgYSwgaGFsZjJ4NCBiKSB7CisgICAg
cmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0gYlswXVswXSAmJgorICAgICAgICBhWzBdWzFdID09
IGJbMF1bMV0gJiYKKyAgICAgICAgYVswXVsyXSA9PSBiWzBdWzJdICYmCisgICAgICAgIGFbMF1b
M10gPT0gYlswXVszXSAmJgorICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAg
YVsxXVsxXSA9PSBiWzFdWzFdICYmCisgICAgICAgIGFbMV1bMl0gPT0gYlsxXVsyXSAmJgorICAg
ICAgICBhWzFdWzNdID09IGJbMV1bM10gJiYKKyAgICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09
KGhhbGYzeDIgYSwgaGFsZjN4MiBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0g
YlswXVswXSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVsxXVsw
XSA9PSBiWzFdWzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBh
WzJdWzBdID09IGJbMl1bMF0gJiYKKyAgICAgICAgYVsyXVsxXSA9PSBiWzJdWzFdICYmCisgICAg
dHJ1ZTsKK30KK2Jvb2wgb3BlcmF0b3I9PShoYWxmM3gzIGEsIGhhbGYzeDMgYikgeworICAgIHJl
dHVybgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAgICAgICAgYVswXVsxXSA9PSBi
WzBdWzFdICYmCisgICAgICAgIGFbMF1bMl0gPT0gYlswXVsyXSAmJgorICAgICAgICBhWzFdWzBd
ID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYmCisgICAgICAgIGFb
MV1bMl0gPT0gYlsxXVsyXSAmJgorICAgICAgICBhWzJdWzBdID09IGJbMl1bMF0gJiYKKyAgICAg
ICAgYVsyXVsxXSA9PSBiWzJdWzFdICYmCisgICAgICAgIGFbMl1bMl0gPT0gYlsyXVsyXSAmJgor
ICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0oaGFsZjN4NCBhLCBoYWxmM3g0IGIpIHsKKyAg
ICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0g
PT0gYlswXVsxXSAmJgorICAgICAgICBhWzBdWzJdID09IGJbMF1bMl0gJiYKKyAgICAgICAgYVsw
XVszXSA9PSBiWzBdWzNdICYmCisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAmJgorICAgICAg
ICBhWzFdWzFdID09IGJbMV1bMV0gJiYKKyAgICAgICAgYVsxXVsyXSA9PSBiWzFdWzJdICYmCisg
ICAgICAgIGFbMV1bM10gPT0gYlsxXVszXSAmJgorICAgICAgICBhWzJdWzBdID09IGJbMl1bMF0g
JiYKKyAgICAgICAgYVsyXVsxXSA9PSBiWzJdWzFdICYmCisgICAgICAgIGFbMl1bMl0gPT0gYlsy
XVsyXSAmJgorICAgICAgICBhWzJdWzNdID09IGJbMl1bM10gJiYKKyAgICB0cnVlOworfQorYm9v
bCBvcGVyYXRvcj09KGhhbGY0eDIgYSwgaGFsZjR4MiBiKSB7CisgICAgcmV0dXJuCisgICAgICAg
IGFbMF1bMF0gPT0gYlswXVswXSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAg
ICAgICAgYVsxXVswXSA9PSBiWzFdWzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAm
JgorICAgICAgICBhWzJdWzBdID09IGJbMl1bMF0gJiYKKyAgICAgICAgYVsyXVsxXSA9PSBiWzJd
WzFdICYmCisgICAgICAgIGFbM11bMF0gPT0gYlszXVswXSAmJgorICAgICAgICBhWzNdWzFdID09
IGJbM11bMV0gJiYKKyAgICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGhhbGY0eDMgYSwgaGFs
ZjR4MyBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0gYlswXVswXSAmJgorICAg
ICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVswXVsyXSA9PSBiWzBdWzJdICYm
CisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAmJgorICAgICAgICBhWzFdWzFdID09IGJbMV1b
MV0gJiYKKyAgICAgICAgYVsxXVsyXSA9PSBiWzFdWzJdICYmCisgICAgICAgIGFbMl1bMF0gPT0g
YlsyXVswXSAmJgorICAgICAgICBhWzJdWzFdID09IGJbMl1bMV0gJiYKKyAgICAgICAgYVsyXVsy
XSA9PSBiWzJdWzJdICYmCisgICAgICAgIGFbM11bMF0gPT0gYlszXVswXSAmJgorICAgICAgICBh
WzNdWzFdID09IGJbM11bMV0gJiYKKyAgICAgICAgYVszXVsyXSA9PSBiWzNdWzJdICYmCisgICAg
dHJ1ZTsKK30KK2Jvb2wgb3BlcmF0b3I9PShoYWxmNHg0IGEsIGhhbGY0eDQgYikgeworICAgIHJl
dHVybgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAgICAgICAgYVswXVsxXSA9PSBi
WzBdWzFdICYmCisgICAgICAgIGFbMF1bMl0gPT0gYlswXVsyXSAmJgorICAgICAgICBhWzBdWzNd
ID09IGJbMF1bM10gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFdWzBdICYmCisgICAgICAgIGFb
MV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBhWzFdWzJdID09IGJbMV1bMl0gJiYKKyAgICAg
ICAgYVsxXVszXSA9PSBiWzFdWzNdICYmCisgICAgICAgIGFbMl1bMF0gPT0gYlsyXVswXSAmJgor
ICAgICAgICBhWzJdWzFdID09IGJbMl1bMV0gJiYKKyAgICAgICAgYVsyXVsyXSA9PSBiWzJdWzJd
ICYmCisgICAgICAgIGFbMl1bM10gPT0gYlsyXVszXSAmJgorICAgICAgICBhWzNdWzBdID09IGJb
M11bMF0gJiYKKyAgICAgICAgYVszXVsxXSA9PSBiWzNdWzFdICYmCisgICAgICAgIGFbM11bMl0g
PT0gYlszXVsyXSAmJgorICAgICAgICBhWzNdWzNdID09IGJbM11bM10gJiYKKyAgICB0cnVlOwor
fQorYm9vbCBvcGVyYXRvcj09KGZsb2F0MngyIGEsIGZsb2F0MngyIGIpIHsKKyAgICByZXR1cm4K
KyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlswXVsx
XSAmJgorICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBi
WzFdWzFdICYmCisgICAgdHJ1ZTsKIH0KK2Jvb2wgb3BlcmF0b3I9PShmbG9hdDJ4MyBhLCBmbG9h
dDJ4MyBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0gYlswXVswXSAmJgorICAg
ICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVswXVsyXSA9PSBiWzBdWzJdICYm
CisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAmJgorICAgICAgICBhWzFdWzFdID09IGJbMV1b
MV0gJiYKKyAgICAgICAgYVsxXVsyXSA9PSBiWzFdWzJdICYmCisgICAgdHJ1ZTsKK30KK2Jvb2wg
b3BlcmF0b3I9PShmbG9hdDJ4NCBhLCBmbG9hdDJ4NCBiKSB7CisgICAgcmV0dXJuCisgICAgICAg
IGFbMF1bMF0gPT0gYlswXVswXSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAg
ICAgICAgYVswXVsyXSA9PSBiWzBdWzJdICYmCisgICAgICAgIGFbMF1bM10gPT0gYlswXVszXSAm
JgorICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFd
WzFdICYmCisgICAgICAgIGFbMV1bMl0gPT0gYlsxXVsyXSAmJgorICAgICAgICBhWzFdWzNdID09
IGJbMV1bM10gJiYKKyAgICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGZsb2F0M3gyIGEsIGZs
b2F0M3gyIGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisg
ICAgICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0g
JiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYmCisgICAgICAgIGFbMl1bMF0gPT0gYlsy
XVswXSAmJgorICAgICAgICBhWzJdWzFdID09IGJbMl1bMV0gJiYKKyAgICB0cnVlOworfQorYm9v
bCBvcGVyYXRvcj09KGZsb2F0M3gzIGEsIGZsb2F0M3gzIGIpIHsKKyAgICByZXR1cm4KKyAgICAg
ICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgor
ICAgICAgICBhWzBdWzJdID09IGJbMF1bMl0gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFdWzBd
ICYmCisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBhWzFdWzJdID09IGJb
MV1bMl0gJiYKKyAgICAgICAgYVsyXVswXSA9PSBiWzJdWzBdICYmCisgICAgICAgIGFbMl1bMV0g
PT0gYlsyXVsxXSAmJgorICAgICAgICBhWzJdWzJdID09IGJbMl1bMl0gJiYKKyAgICB0cnVlOwor
fQorYm9vbCBvcGVyYXRvcj09KGZsb2F0M3g0IGEsIGZsb2F0M3g0IGIpIHsKKyAgICByZXR1cm4K
KyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlswXVsx
XSAmJgorICAgICAgICBhWzBdWzJdID09IGJbMF1bMl0gJiYKKyAgICAgICAgYVswXVszXSA9PSBi
WzBdWzNdICYmCisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAmJgorICAgICAgICBhWzFdWzFd
ID09IGJbMV1bMV0gJiYKKyAgICAgICAgYVsxXVsyXSA9PSBiWzFdWzJdICYmCisgICAgICAgIGFb
MV1bM10gPT0gYlsxXVszXSAmJgorICAgICAgICBhWzJdWzBdID09IGJbMl1bMF0gJiYKKyAgICAg
ICAgYVsyXVsxXSA9PSBiWzJdWzFdICYmCisgICAgICAgIGFbMl1bMl0gPT0gYlsyXVsyXSAmJgor
ICAgICAgICBhWzJdWzNdID09IGJbMl1bM10gJiYKKyAgICB0cnVlOworfQorYm9vbCBvcGVyYXRv
cj09KGZsb2F0NHgyIGEsIGZsb2F0NHgyIGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAgYVswXVsw
XSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAgICAgICBh
WzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYmCisgICAg
ICAgIGFbMl1bMF0gPT0gYlsyXVswXSAmJgorICAgICAgICBhWzJdWzFdID09IGJbMl1bMV0gJiYK
KyAgICAgICAgYVszXVswXSA9PSBiWzNdWzBdICYmCisgICAgICAgIGFbM11bMV0gPT0gYlszXVsx
XSAmJgorICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0oZmxvYXQ0eDMgYSwgZmxvYXQ0eDMg
YikgeworICAgIHJldHVybgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAgICAgICAg
YVswXVsxXSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFbMF1bMl0gPT0gYlswXVsyXSAmJgorICAg
ICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYm
CisgICAgICAgIGFbMV1bMl0gPT0gYlsxXVsyXSAmJgorICAgICAgICBhWzJdWzBdID09IGJbMl1b
MF0gJiYKKyAgICAgICAgYVsyXVsxXSA9PSBiWzJdWzFdICYmCisgICAgICAgIGFbMl1bMl0gPT0g
YlsyXVsyXSAmJgorICAgICAgICBhWzNdWzBdID09IGJbM11bMF0gJiYKKyAgICAgICAgYVszXVsx
XSA9PSBiWzNdWzFdICYmCisgICAgICAgIGFbM11bMl0gPT0gYlszXVsyXSAmJgorICAgIHRydWU7
Cit9Citib29sIG9wZXJhdG9yPT0oZmxvYXQ0eDQgYSwgZmxvYXQ0eDQgYikgeworICAgIHJldHVy
bgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAgICAgICAgYVswXVsxXSA9PSBiWzBd
WzFdICYmCisgICAgICAgIGFbMF1bMl0gPT0gYlswXVsyXSAmJgorICAgICAgICBhWzBdWzNdID09
IGJbMF1bM10gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFdWzBdICYmCisgICAgICAgIGFbMV1b
MV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBhWzFdWzJdID09IGJbMV1bMl0gJiYKKyAgICAgICAg
YVsxXVszXSA9PSBiWzFdWzNdICYmCisgICAgICAgIGFbMl1bMF0gPT0gYlsyXVswXSAmJgorICAg
ICAgICBhWzJdWzFdID09IGJbMl1bMV0gJiYKKyAgICAgICAgYVsyXVsyXSA9PSBiWzJdWzJdICYm
CisgICAgICAgIGFbMl1bM10gPT0gYlsyXVszXSAmJgorICAgICAgICBhWzNdWzBdID09IGJbM11b
MF0gJiYKKyAgICAgICAgYVszXVsxXSA9PSBiWzNdWzFdICYmCisgICAgICAgIGFbM11bMl0gPT0g
YlszXVsyXSAmJgorICAgICAgICBhWzNdWzNdID09IGJbM11bM10gJiYKKyAgICB0cnVlOworfQor
CituYXRpdmUgdWNoYXIgU2FtcGxlKFRleHR1cmUxRDx1Y2hhcj4sIHNhbXBsZXIsIGZsb2F0IGxv
Y2F0aW9uKTsKK25hdGl2ZSB1Y2hhciBTYW1wbGUoVGV4dHVyZTFEPHVjaGFyPiwgc2FtcGxlciwg
ZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHVjaGFyIExvYWQoVGV4dHVyZTFE
PHVjaGFyPiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUgdWNoYXIgTG9hZChUZXh0dXJlMUQ8dWNo
YXI+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lv
bnMoVGV4dHVyZTFEPHVjaGFyPiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0
aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIHVjaGFyMiBTYW1wbGUoVGV4dHVy
ZTFEPHVjaGFyMj4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSB1Y2hhcjIgU2Ft
cGxlKFRleHR1cmUxRDx1Y2hhcjI+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNl
dCk7CituYXRpdmUgdWNoYXIyIExvYWQoVGV4dHVyZTFEPHVjaGFyMj4sIGludDIgbG9jYXRpb24p
OworbmF0aXZlIHVjaGFyMiBMb2FkKFRleHR1cmUxRDx1Y2hhcjI+LCBpbnQyIGxvY2F0aW9uLCBp
bnQgb2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPHVjaGFyMj4s
IHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9m
TGV2ZWxzKTsKK25hdGl2ZSB1Y2hhcjMgU2FtcGxlKFRleHR1cmUxRDx1Y2hhcjM+LCBzYW1wbGVy
LCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUgdWNoYXIzIFNhbXBsZShUZXh0dXJlMUQ8dWNoYXIz
Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHVjaGFyMyBM
b2FkKFRleHR1cmUxRDx1Y2hhcjM+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSB1Y2hhcjMgTG9h
ZChUZXh0dXJlMUQ8dWNoYXIzPiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUg
dm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDx1Y2hhcjM+LCB1aW50IE1pcExldmVsLCB0aHJl
YWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7CituYXRpdmUgdWNo
YXI0IFNhbXBsZShUZXh0dXJlMUQ8dWNoYXI0Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pOwor
bmF0aXZlIHVjaGFyNCBTYW1wbGUoVGV4dHVyZTFEPHVjaGFyND4sIHNhbXBsZXIsIGZsb2F0IGxv
Y2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB1Y2hhcjQgTG9hZChUZXh0dXJlMUQ8dWNoYXI0
PiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUgdWNoYXI0IExvYWQoVGV4dHVyZTFEPHVjaGFyND4s
IGludDIgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhU
ZXh0dXJlMUQ8dWNoYXI0PiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJl
YWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIHVzaG9ydCBTYW1wbGUoVGV4dHVyZTFE
PHVzaG9ydD4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSB1c2hvcnQgU2FtcGxl
KFRleHR1cmUxRDx1c2hvcnQ+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7
CituYXRpdmUgdXNob3J0IExvYWQoVGV4dHVyZTFEPHVzaG9ydD4sIGludDIgbG9jYXRpb24pOwor
bmF0aXZlIHVzaG9ydCBMb2FkKFRleHR1cmUxRDx1c2hvcnQ+LCBpbnQyIGxvY2F0aW9uLCBpbnQg
b2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPHVzaG9ydD4sIHVp
bnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2
ZWxzKTsKK25hdGl2ZSB1c2hvcnQyIFNhbXBsZShUZXh0dXJlMUQ8dXNob3J0Mj4sIHNhbXBsZXIs
IGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSB1c2hvcnQyIFNhbXBsZShUZXh0dXJlMUQ8dXNob3J0
Mj4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB1c2hvcnQy
IExvYWQoVGV4dHVyZTFEPHVzaG9ydDI+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSB1c2hvcnQy
IExvYWQoVGV4dHVyZTFEPHVzaG9ydDI+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25h
dGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPHVzaG9ydDI+LCB1aW50IE1pcExldmVs
LCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7CituYXRp
dmUgdXNob3J0MyBTYW1wbGUoVGV4dHVyZTFEPHVzaG9ydDM+LCBzYW1wbGVyLCBmbG9hdCBsb2Nh
dGlvbik7CituYXRpdmUgdXNob3J0MyBTYW1wbGUoVGV4dHVyZTFEPHVzaG9ydDM+LCBzYW1wbGVy
LCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdXNob3J0MyBMb2FkKFRleHR1
cmUxRDx1c2hvcnQzPiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUgdXNob3J0MyBMb2FkKFRleHR1
cmUxRDx1c2hvcnQzPiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBH
ZXREaW1lbnNpb25zKFRleHR1cmUxRDx1c2hvcnQzPiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVp
bnQqIFdpZHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIHVzaG9ydDQg
U2FtcGxlKFRleHR1cmUxRDx1c2hvcnQ0Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pOworbmF0
aXZlIHVzaG9ydDQgU2FtcGxlKFRleHR1cmUxRDx1c2hvcnQ0Piwgc2FtcGxlciwgZmxvYXQgbG9j
YXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHVzaG9ydDQgTG9hZChUZXh0dXJlMUQ8dXNob3J0
ND4sIGludDIgbG9jYXRpb24pOworbmF0aXZlIHVzaG9ydDQgTG9hZChUZXh0dXJlMUQ8dXNob3J0
ND4sIGludDIgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9u
cyhUZXh0dXJlMUQ8dXNob3J0ND4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwg
dGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsKK25hdGl2ZSB1aW50IFNhbXBsZShUZXh0dXJl
MUQ8dWludD4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSB1aW50IFNhbXBsZShU
ZXh0dXJlMUQ8dWludD4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25h
dGl2ZSB1aW50IExvYWQoVGV4dHVyZTFEPHVpbnQ+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSB1
aW50IExvYWQoVGV4dHVyZTFEPHVpbnQ+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25h
dGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPHVpbnQ+LCB1aW50IE1pcExldmVsLCB0
aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7CituYXRpdmUg
dWludDIgU2FtcGxlKFRleHR1cmUxRDx1aW50Mj4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsK
K25hdGl2ZSB1aW50MiBTYW1wbGUoVGV4dHVyZTFEPHVpbnQyPiwgc2FtcGxlciwgZmxvYXQgbG9j
YXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHVpbnQyIExvYWQoVGV4dHVyZTFEPHVpbnQyPiwg
aW50MiBsb2NhdGlvbik7CituYXRpdmUgdWludDIgTG9hZChUZXh0dXJlMUQ8dWludDI+LCBpbnQy
IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVy
ZTFEPHVpbnQyPiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWlu
dCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIHVpbnQzIFNhbXBsZShUZXh0dXJlMUQ8dWludDM+
LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUgdWludDMgU2FtcGxlKFRleHR1cmUx
RDx1aW50Mz4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB1
aW50MyBMb2FkKFRleHR1cmUxRDx1aW50Mz4sIGludDIgbG9jYXRpb24pOworbmF0aXZlIHVpbnQz
IExvYWQoVGV4dHVyZTFEPHVpbnQzPiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRp
dmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDx1aW50Mz4sIHVpbnQgTWlwTGV2ZWwsIHRo
cmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsKK25hdGl2ZSB1
aW50NCBTYW1wbGUoVGV4dHVyZTFEPHVpbnQ0Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pOwor
bmF0aXZlIHVpbnQ0IFNhbXBsZShUZXh0dXJlMUQ8dWludDQ+LCBzYW1wbGVyLCBmbG9hdCBsb2Nh
dGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdWludDQgTG9hZChUZXh0dXJlMUQ8dWludDQ+LCBp
bnQyIGxvY2F0aW9uKTsKK25hdGl2ZSB1aW50NCBMb2FkKFRleHR1cmUxRDx1aW50ND4sIGludDIg
bG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJl
MUQ8dWludDQ+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50
KiBOdW1iZXJPZkxldmVscyk7CituYXRpdmUgY2hhciBTYW1wbGUoVGV4dHVyZTFEPGNoYXI+LCBz
YW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUgY2hhciBTYW1wbGUoVGV4dHVyZTFEPGNo
YXI+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgY2hhciBM
b2FkKFRleHR1cmUxRDxjaGFyPiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUgY2hhciBMb2FkKFRl
eHR1cmUxRDxjaGFyPiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBH
ZXREaW1lbnNpb25zKFRleHR1cmUxRDxjaGFyPiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQq
IFdpZHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIGNoYXIyIFNhbXBs
ZShUZXh0dXJlMUQ8Y2hhcjI+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUgY2hh
cjIgU2FtcGxlKFRleHR1cmUxRDxjaGFyMj4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQg
b2Zmc2V0KTsKK25hdGl2ZSBjaGFyMiBMb2FkKFRleHR1cmUxRDxjaGFyMj4sIGludDIgbG9jYXRp
b24pOworbmF0aXZlIGNoYXIyIExvYWQoVGV4dHVyZTFEPGNoYXIyPiwgaW50MiBsb2NhdGlvbiwg
aW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDxjaGFyMj4s
IHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9m
TGV2ZWxzKTsKK25hdGl2ZSBjaGFyMyBTYW1wbGUoVGV4dHVyZTFEPGNoYXIzPiwgc2FtcGxlciwg
ZmxvYXQgbG9jYXRpb24pOworbmF0aXZlIGNoYXIzIFNhbXBsZShUZXh0dXJlMUQ8Y2hhcjM+LCBz
YW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgY2hhcjMgTG9hZChU
ZXh0dXJlMUQ8Y2hhcjM+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSBjaGFyMyBMb2FkKFRleHR1
cmUxRDxjaGFyMz4sIGludDIgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0
RGltZW5zaW9ucyhUZXh0dXJlMUQ8Y2hhcjM+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCog
V2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7CituYXRpdmUgY2hhcjQgU2FtcGxl
KFRleHR1cmUxRDxjaGFyND4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSBjaGFy
NCBTYW1wbGUoVGV4dHVyZTFEPGNoYXI0Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBv
ZmZzZXQpOworbmF0aXZlIGNoYXI0IExvYWQoVGV4dHVyZTFEPGNoYXI0PiwgaW50MiBsb2NhdGlv
bik7CituYXRpdmUgY2hhcjQgTG9hZChUZXh0dXJlMUQ8Y2hhcjQ+LCBpbnQyIGxvY2F0aW9uLCBp
bnQgb2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPGNoYXI0Piwg
dWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZM
ZXZlbHMpOworbmF0aXZlIHNob3J0IFNhbXBsZShUZXh0dXJlMUQ8c2hvcnQ+LCBzYW1wbGVyLCBm
bG9hdCBsb2NhdGlvbik7CituYXRpdmUgc2hvcnQgU2FtcGxlKFRleHR1cmUxRDxzaG9ydD4sIHNh
bXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSBzaG9ydCBMb2FkKFRl
eHR1cmUxRDxzaG9ydD4sIGludDIgbG9jYXRpb24pOworbmF0aXZlIHNob3J0IExvYWQoVGV4dHVy
ZTFEPHNob3J0PiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXRE
aW1lbnNpb25zKFRleHR1cmUxRDxzaG9ydD4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBX
aWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsKK25hdGl2ZSBzaG9ydDIgU2FtcGxl
KFRleHR1cmUxRDxzaG9ydDI+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUgc2hv
cnQyIFNhbXBsZShUZXh0dXJlMUQ8c2hvcnQyPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGlu
dCBvZmZzZXQpOworbmF0aXZlIHNob3J0MiBMb2FkKFRleHR1cmUxRDxzaG9ydDI+LCBpbnQyIGxv
Y2F0aW9uKTsKK25hdGl2ZSBzaG9ydDIgTG9hZChUZXh0dXJlMUQ8c2hvcnQyPiwgaW50MiBsb2Nh
dGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDxz
aG9ydDI+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBO
dW1iZXJPZkxldmVscyk7CituYXRpdmUgc2hvcnQzIFNhbXBsZShUZXh0dXJlMUQ8c2hvcnQzPiwg
c2FtcGxlciwgZmxvYXQgbG9jYXRpb24pOworbmF0aXZlIHNob3J0MyBTYW1wbGUoVGV4dHVyZTFE
PHNob3J0Mz4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSBz
aG9ydDMgTG9hZChUZXh0dXJlMUQ8c2hvcnQzPiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUgc2hv
cnQzIExvYWQoVGV4dHVyZTFEPHNob3J0Mz4sIGludDIgbG9jYXRpb24sIGludCBvZmZzZXQpOwor
bmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8c2hvcnQzPiwgdWludCBNaXBMZXZl
bCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0
aXZlIHNob3J0NCBTYW1wbGUoVGV4dHVyZTFEPHNob3J0ND4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0
aW9uKTsKK25hdGl2ZSBzaG9ydDQgU2FtcGxlKFRleHR1cmUxRDxzaG9ydDQ+LCBzYW1wbGVyLCBm
bG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgc2hvcnQ0IExvYWQoVGV4dHVyZTFE
PHNob3J0ND4sIGludDIgbG9jYXRpb24pOworbmF0aXZlIHNob3J0NCBMb2FkKFRleHR1cmUxRDxz
aG9ydDQ+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVu
c2lvbnMoVGV4dHVyZTFEPHNob3J0ND4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0
aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsKK25hdGl2ZSBpbnQgU2FtcGxlKFRleHR1
cmUxRDxpbnQ+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUgaW50IFNhbXBsZShU
ZXh0dXJlMUQ8aW50Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0
aXZlIGludCBMb2FkKFRleHR1cmUxRDxpbnQ+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSBpbnQg
TG9hZChUZXh0dXJlMUQ8aW50PiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUg
dm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDxpbnQ+LCB1aW50IE1pcExldmVsLCB0aHJlYWQg
dWludCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7CituYXRpdmUgaW50MiBT
YW1wbGUoVGV4dHVyZTFEPGludDI+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUg
aW50MiBTYW1wbGUoVGV4dHVyZTFEPGludDI+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50
IG9mZnNldCk7CituYXRpdmUgaW50MiBMb2FkKFRleHR1cmUxRDxpbnQyPiwgaW50MiBsb2NhdGlv
bik7CituYXRpdmUgaW50MiBMb2FkKFRleHR1cmUxRDxpbnQyPiwgaW50MiBsb2NhdGlvbiwgaW50
IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDxpbnQyPiwgdWlu
dCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZl
bHMpOworbmF0aXZlIGludDMgU2FtcGxlKFRleHR1cmUxRDxpbnQzPiwgc2FtcGxlciwgZmxvYXQg
bG9jYXRpb24pOworbmF0aXZlIGludDMgU2FtcGxlKFRleHR1cmUxRDxpbnQzPiwgc2FtcGxlciwg
ZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIGludDMgTG9hZChUZXh0dXJlMUQ8
aW50Mz4sIGludDIgbG9jYXRpb24pOworbmF0aXZlIGludDMgTG9hZChUZXh0dXJlMUQ8aW50Mz4s
IGludDIgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhU
ZXh0dXJlMUQ8aW50Mz4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFk
IHVpbnQqIE51bWJlck9mTGV2ZWxzKTsKK25hdGl2ZSBpbnQ0IFNhbXBsZShUZXh0dXJlMUQ8aW50
ND4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSBpbnQ0IFNhbXBsZShUZXh0dXJl
MUQ8aW50ND4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSBp
bnQ0IExvYWQoVGV4dHVyZTFEPGludDQ+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSBpbnQ0IExv
YWQoVGV4dHVyZTFEPGludDQ+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB2
b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPGludDQ+LCB1aW50IE1pcExldmVsLCB0aHJlYWQg
dWludCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7CituYXRpdmUgaGFsZiBT
YW1wbGUoVGV4dHVyZTFEPGhhbGY+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUg
aGFsZiBTYW1wbGUoVGV4dHVyZTFEPGhhbGY+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50
IG9mZnNldCk7CituYXRpdmUgaGFsZiBMb2FkKFRleHR1cmUxRDxoYWxmPiwgaW50MiBsb2NhdGlv
bik7CituYXRpdmUgaGFsZiBMb2FkKFRleHR1cmUxRDxoYWxmPiwgaW50MiBsb2NhdGlvbiwgaW50
IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDxoYWxmPiwgdWlu
dCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZl
bHMpOworbmF0aXZlIGhhbGYyIFNhbXBsZShUZXh0dXJlMUQ8aGFsZjI+LCBzYW1wbGVyLCBmbG9h
dCBsb2NhdGlvbik7CituYXRpdmUgaGFsZjIgU2FtcGxlKFRleHR1cmUxRDxoYWxmMj4sIHNhbXBs
ZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSBoYWxmMiBMb2FkKFRleHR1
cmUxRDxoYWxmMj4sIGludDIgbG9jYXRpb24pOworbmF0aXZlIGhhbGYyIExvYWQoVGV4dHVyZTFE
PGhhbGYyPiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1l
bnNpb25zKFRleHR1cmUxRDxoYWxmMj4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0
aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsKK25hdGl2ZSBoYWxmMyBTYW1wbGUoVGV4
dHVyZTFEPGhhbGYzPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pOworbmF0aXZlIGhhbGYzIFNh
bXBsZShUZXh0dXJlMUQ8aGFsZjM+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNl
dCk7CituYXRpdmUgaGFsZjMgTG9hZChUZXh0dXJlMUQ8aGFsZjM+LCBpbnQyIGxvY2F0aW9uKTsK
K25hdGl2ZSBoYWxmMyBMb2FkKFRleHR1cmUxRDxoYWxmMz4sIGludDIgbG9jYXRpb24sIGludCBv
ZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8aGFsZjM+LCB1aW50
IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVs
cyk7CituYXRpdmUgaGFsZjQgU2FtcGxlKFRleHR1cmUxRDxoYWxmND4sIHNhbXBsZXIsIGZsb2F0
IGxvY2F0aW9uKTsKK25hdGl2ZSBoYWxmNCBTYW1wbGUoVGV4dHVyZTFEPGhhbGY0Piwgc2FtcGxl
ciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIGhhbGY0IExvYWQoVGV4dHVy
ZTFEPGhhbGY0PiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUgaGFsZjQgTG9hZChUZXh0dXJlMUQ8
aGFsZjQ+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVu
c2lvbnMoVGV4dHVyZTFEPGhhbGY0PiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRo
LCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIGZsb2F0IFNhbXBsZShUZXh0
dXJlMUQ8ZmxvYXQ+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUgZmxvYXQgU2Ft
cGxlKFRleHR1cmUxRDxmbG9hdD4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0
KTsKK25hdGl2ZSBmbG9hdCBMb2FkKFRleHR1cmUxRDxmbG9hdD4sIGludDIgbG9jYXRpb24pOwor
bmF0aXZlIGZsb2F0IExvYWQoVGV4dHVyZTFEPGZsb2F0PiwgaW50MiBsb2NhdGlvbiwgaW50IG9m
ZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDxmbG9hdD4sIHVpbnQg
TWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxz
KTsKK25hdGl2ZSBmbG9hdDIgU2FtcGxlKFRleHR1cmUxRDxmbG9hdDI+LCBzYW1wbGVyLCBmbG9h
dCBsb2NhdGlvbik7CituYXRpdmUgZmxvYXQyIFNhbXBsZShUZXh0dXJlMUQ8ZmxvYXQyPiwgc2Ft
cGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIGZsb2F0MiBMb2FkKFRl
eHR1cmUxRDxmbG9hdDI+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSBmbG9hdDIgTG9hZChUZXh0
dXJlMUQ8ZmxvYXQyPiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBH
ZXREaW1lbnNpb25zKFRleHR1cmUxRDxmbG9hdDI+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWlu
dCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7CituYXRpdmUgZmxvYXQzIFNh
bXBsZShUZXh0dXJlMUQ8ZmxvYXQzPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pOworbmF0aXZl
IGZsb2F0MyBTYW1wbGUoVGV4dHVyZTFEPGZsb2F0Mz4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9u
LCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSBmbG9hdDMgTG9hZChUZXh0dXJlMUQ8ZmxvYXQzPiwgaW50
MiBsb2NhdGlvbik7CituYXRpdmUgZmxvYXQzIExvYWQoVGV4dHVyZTFEPGZsb2F0Mz4sIGludDIg
bG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJl
MUQ8ZmxvYXQzPiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWlu
dCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIGZsb2F0NCBTYW1wbGUoVGV4dHVyZTFEPGZsb2F0
ND4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSBmbG9hdDQgU2FtcGxlKFRleHR1
cmUxRDxmbG9hdDQ+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRp
dmUgZmxvYXQ0IExvYWQoVGV4dHVyZTFEPGZsb2F0ND4sIGludDIgbG9jYXRpb24pOworbmF0aXZl
IGZsb2F0NCBMb2FkKFRleHR1cmUxRDxmbG9hdDQ+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0
KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPGZsb2F0ND4sIHVpbnQgTWlw
TGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsK
KwogYDsKIAogLy8gRklYTUU6IE9uY2UgdGhlIHN0YW5kYXJkIGxpYnJhcnkgaGFzIGJlZW4gcmVw
bGFjZWQgd2l0aCBhIG5ldyB2ZXJzaW9uLCB0aGlzIGNvbW1lbnRzIHNob3VsZCBiZSByZW1vdmVk
LgpAQCAtMjE3LDIyICszMjI3LDMgQEAgZnVuY3Rpb24gYWxsVmVjdG9yVHlwZU5hbWVzKCkKICAg
ICB9CiAgICAgcmV0dXJuIG5hbWVzOwogfQotCi0vLyBQcm92aWRlcyBvcGVyYXRvciZbXQotc3Rh
bmRhcmRMaWJyYXJ5ICs9IE9wZXJhdG9yQW5kZXJJbmRleGVyLmZ1bmN0aW9ucygpLmpvaW4oIjtc
biIpICsgIjtcbiI7Ci0KLS8vIE5hdGl2ZSB2ZWN0b3IgdHlwZXMgYXJlIGxpa2Ugc3RydWN0cyBp
biB0aGUgbGFuZ2F1Z2UsIGJ1dCB0aGV5IGRvIG5vdCBoYXZlIHRoZSBhbmRlciBmaWVsZCBhY2Nl
c3MuCi0vLyBJdCBpcyBub3QgcG9zc2libGUgdG8gdGFrZSB0aGUgYWRkcmVzcyBvZiBhIHZlY3Rv
ciBmaWVsZC4KLXN0YW5kYXJkTGlicmFyeSArPSBCdWlsdGluVmVjdG9yR2V0dGVyLmZ1bmN0aW9u
cygpLmpvaW4oIjtcbiIpICsgIjtcbiI7Ci1zdGFuZGFyZExpYnJhcnkgKz0gQnVpbHRpblZlY3Rv
clNldHRlci5mdW5jdGlvbnMoKS5qb2luKCI7XG4iKSArICI7XG4iOwotc3RhbmRhcmRMaWJyYXJ5
ICs9IEJ1aWx0aW5WZWN0b3JJbmRleEdldHRlci5mdW5jdGlvbnMoKS5qb2luKCI7XG4iKSArICI7
XG4iOwotc3RhbmRhcmRMaWJyYXJ5ICs9IEJ1aWx0aW5WZWN0b3JJbmRleFNldHRlci5mdW5jdGlv
bnMoKS5qb2luKCI7XG4iKSArICI7XG4iOwotCi0vLyBGSVhNRTogRm9yIG5hdGl2ZSB0eXBlcyB0
aGVzZSBjb3VsZCBiZSBpbmNsdWRlZCBhcyBzb3VyY2UgaW4gdGhlIHN0YW5kYXJkIGxpYnJhcnku
Ci0vLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4Njg1Ci1zdGFu
ZGFyZExpYnJhcnkgKz0gT3BlcmF0b3JCb29sLmZ1bmN0aW9ucygpLmpvaW4oIjtcbiIpICsgIjtc
biI7Ci1zdGFuZGFyZExpYnJhcnkgKz0gQnVpbHRpblZlY3RvckVxdWFsaXR5T3BlcmF0b3IuZnVu
Y3Rpb25zKCkuam9pbigiO1xuIikgKyAiO1xuIjsKLQotLy8gRklYTUU6IFRoZXNlIG5lZWQgdG8g
YmUgaW5jbHVkZWQgYXMgc291cmNlIGluIHRoZSBzdGFuZGFyZCBsaWJyYXJ5Lgotc3RhbmRhcmRM
aWJyYXJ5ICs9IFN3aXp6bGVPcC5mdW5jdGlvbnMoKS5qb2luKCI7XG4iKSArICI7XG4iOwotc3Rh
bmRhcmRMaWJyYXJ5ICs9IEJ1aWx0aW5WZWN0b3JDb25zdHJ1Y3RvcnMuZnVuY3Rpb25zKCkuam9p
bigiO1xuIikgKyAiO1xuIjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1N3aXp6bGVPcC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N3aXp6bGVP
cC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjU5OThlZjc5ZDk4YTUyODgyMDk4
NzVkMzQ2Y2Y1NTA5ZTliYTcyNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Td2l6emxlT3AuanMKKysr
IC9kZXYvbnVsbApAQCAtMSwxMDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIFN3aXp6bGVPcCB7Ci0gICAg
Y29uc3RydWN0b3IoYmFzZVR5cGVOYW1lLCBvdXRTaXplLCBjb21wb25lbnRzLCBpblNpemUpCi0g
ICAgewotICAgICAgICB0aGlzLl9iYXNlVHlwZU5hbWUgPSBiYXNlVHlwZU5hbWU7Ci0gICAgICAg
IHRoaXMuX291dFNpemUgPSBvdXRTaXplOwotICAgICAgICB0aGlzLl9jb21wb25lbnRzID0gY29t
cG9uZW50cy5zbGljZSgpOyAvLyBTaGFsbG93IGNsb25lCi0gICAgICAgIHRoaXMuX2luU2l6ZSA9
IGluU2l6ZTsKLSAgICB9Ci0KLSAgICBnZXQgYmFzZVR5cGVOYW1lKCkgeyByZXR1cm4gdGhpcy5f
YmFzZVR5cGVOYW1lOyB9Ci0gICAgZ2V0IG91dFNpemUoKSB7IHJldHVybiB0aGlzLl9vdXRTaXpl
OyB9Ci0gICAgZ2V0IGNvbXBvbmVudHMoKSB7IHJldHVybiB0aGlzLl9jb21wb25lbnRzOyB9Ci0g
ICAgZ2V0IGluU2l6ZSgpIHsgcmV0dXJuIHRoaXMuX2luU2l6ZTsgfQotCi0gICAgdG9TdHJpbmco
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGBuYXRpdmUgJHt0aGlzLmJhc2VUeXBlTmFtZX0ke3Ro
aXMub3V0U2l6ZX0gb3BlcmF0b3IuJHt0aGlzLmNvbXBvbmVudHMuam9pbigiIil9KCR7dGhpcy5i
YXNlVHlwZU5hbWV9JHt0aGlzLmluU2l6ZX0gdilgOwotICAgIH0KLQotICAgIHN0YXRpYyBpbnRU
b1N0cmluZyh4KQotICAgIHsKLSAgICAgICAgc3dpdGNoICh4KSB7Ci0gICAgICAgIGNhc2UgMDoK
LSAgICAgICAgICAgIHJldHVybiAieCI7Ci0gICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgIHJl
dHVybiAieSI7Ci0gICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgIHJldHVybiAieiI7Ci0gICAg
ICAgIGNhc2UgMzoKLSAgICAgICAgICAgIHJldHVybiAidyI7Ci0gICAgICAgIGRlZmF1bHQ6Ci0g
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNvdWxkIG5vdCBnZW5lcmF0ZSBzdGFuZGFyZCBs
aWJyYXJ5LiIpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgc3RhdGljIGZ1bmN0aW9ucygpCi0g
ICAgewotICAgICAgICBpZiAoIXRoaXMuX2Z1bmN0aW9ucykgewotICAgICAgICAgICAgLy8gV2Ug
Y2FuJ3QgZGlyZWN0bHkgdXNlIHRoaXMuX2Z1bmN0aW9ucyBpbiBfZ2VuZXJhdGVTd2l6emxlcy4K
LSAgICAgICAgICAgIGNvbnN0IGZ1bmN0aW9ucyA9IFtdOwotCi0gICAgICAgICAgICBmdW5jdGlv
biBfZ2VuZXJhdGVTd2l6emxlKGJhc2VUeXBlTmFtZSwgbWF4RGVwdGgsIG1heEl0ZW1zLCBhcnJh
eSkgewotICAgICAgICAgICAgICAgIGlmICghYXJyYXkpCi0gICAgICAgICAgICAgICAgICAgIGFy
cmF5ID0gW107Ci0gICAgICAgICAgICAgICAgaWYgKGFycmF5Lmxlbmd0aCA9PSBtYXhEZXB0aCkg
ewotICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbnMucHVzaChuZXcgU3dpenpsZU9wKGJhc2VU
eXBlTmFtZSwgYXJyYXkubGVuZ3RoLCBhcnJheSwgbWF4SXRlbXMpKTsKLSAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBmb3IgKGxl
dCBpID0gMDsgaSA8IG1heEl0ZW1zOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgYXJyYXku
cHVzaChTd2l6emxlT3AuaW50VG9TdHJpbmcoaSkpOwotICAgICAgICAgICAgICAgICAgICBfZ2Vu
ZXJhdGVTd2l6emxlKGJhc2VUeXBlTmFtZSwgbWF4RGVwdGgsIG1heEl0ZW1zLCBhcnJheSk7Ci0g
ICAgICAgICAgICAgICAgICAgIGFycmF5LnBvcCgpOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH07Ci0KLSAgICAgICAgICAgIGZvciAobGV0IHR5cGVOYW1lIG9mIFZlY3RvckVsZW1l
bnRUeXBlcykgewotICAgICAgICAgICAgICAgIGZvciAobGV0IG1heERlcHRoIG9mIFZlY3RvckVs
ZW1lbnRTaXplcykgewotICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBtYXhJdGVtcyA9IDI7
IG1heEl0ZW1zIDw9IDQ7IG1heEl0ZW1zKyspCi0gICAgICAgICAgICAgICAgICAgICAgICBfZ2Vu
ZXJhdGVTd2l6emxlKHR5cGVOYW1lLCBtYXhEZXB0aCwgbWF4SXRlbXMpOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdGhpcy5fZnVuY3Rpb25zID0gZnVu
Y3Rpb25zOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aGlzLl9mdW5jdGlvbnM7Ci0gICAg
fQotCi0gICAgaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKQotICAgIHsKLSAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmVjXSwgbm9kZSkgPT4gewotICAgICAgICAgICAgY29u
c3Qgb3V0cHV0QnVmZmVyID0gbmV3IEVCdWZmZXIodGhpcy5vdXRTaXplKTsKLSAgICAgICAgICAg
IGNvbnN0IHJlYWRJbmRpY2VzID0geyAneCc6IDAsICd5JzogMSwgJ3onOiAyLCAndyc6IDMgfTsK
LSAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5vdXRTaXplOyBpKyspCi0gICAg
ICAgICAgICAgICAgb3V0cHV0QnVmZmVyLnNldChpLCB2ZWMuZ2V0KHJlYWRJbmRpY2VzW3RoaXMu
Y29tcG9uZW50c1tpXV0pKTsKLQotCi0gICAgICAgICAgICByZXR1cm4gbmV3IEVQdHIob3V0cHV0
QnVmZmVyLCAwKTsKLSAgICAgICAgfTsKLSAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbkRhdGEg
PSB0aGlzOwotICAgIH0KLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXplRGVmYXVsdENvbnN0cnVj
dG9yT3BlcmF0b3IuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXpl
RGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMKaW5kZXggM2EzZjc2NzM4NjdiOWFhYjAxMzIy
MTgwMzU2ODczOGMxNjNhNTY3ZS4uZGM1MDY1MzhkMWM2YzcxMDliMWFkMWVjYmEzY2VjMjc4ZDBm
N2I1YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6
ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcwpAQCAtNTEs
NiArNTEsMTIgQEAgZnVuY3Rpb24gc3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9y
KHByb2dyYW0pCiAgICAgICAgICAgICB0eXBlcy5hZGQobm9kZSk7CiAgICAgICAgICAgICBzdXBl
ci52aXNpdFZlY3RvclR5cGUobm9kZSk7CiAgICAgICAgIH0KKworICAgICAgICB2aXNpdE1hdHJp
eFR5cGUobm9kZSkKKyAgICAgICAgeworICAgICAgICAgICAgdHlwZXMuYWRkKG5vZGUpOworICAg
ICAgICAgICAgc3VwZXIudmlzaXRNYXRyaXhUeXBlKG5vZGUpOworICAgICAgICB9CiAgICAgfQog
CiAgICAgcHJvZ3JhbS52aXNpdChuZXcgRmluZEFsbFR5cGVzKCkpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZU9wZXJhdG9yQm9vbC5qcyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVPcGVyYXRvckJvb2wuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5NWZlMTM3NTNkMGEyNjQzYjA5NWI1MzRiMTE5
MjE3ZjYyNTM4YjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZU9wZXJhdG9yQm9vbC5q
cworKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotZnVuY3Rpb24gc3ludGhlc2l6
ZU9wZXJhdG9yQm9vbChwcm9ncmFtKQotewotICAgIGZvciAobGV0IHR5cGUgb2YgcHJvZ3JhbS50
eXBlcy52YWx1ZXMoKSkgewotICAgICAgICBpZiAoISh0eXBlIGluc3RhbmNlb2YgU3RydWN0VHlw
ZSkgJiYgISh0eXBlIGluc3RhbmNlb2YgRW51bVR5cGUpKQotICAgICAgICAgICAgY29udGludWU7
Ci0gICAgICAgIGNvbnN0IGZ1bmMgPSBuZXcgTmF0aXZlRnVuYyh0eXBlLm9yaWdpbiwgIm9wZXJh
dG9yIGNhc3QiLCBUeXBlUmVmLndyYXAocHJvZ3JhbS50eXBlcy5nZXQoImJvb2wiKSksIFsgbmV3
IEZ1bmNQYXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51bGwsIFR5cGVSZWYud3JhcCh0eXBlKSkgXSwg
dHJ1ZSwgbnVsbCk7Ci0gICAgICAgIGNvbnN0IG9wZXJhdG9yQm9vbCA9IG5ldyBPcGVyYXRvckJv
b2wodHlwZS5uYW1lKTsKLSAgICAgICAgb3BlcmF0b3JCb29sLmluc3RhbnRpYXRlSW1wbGVtZW50
YXRpb24oZnVuYyk7Ci0gICAgICAgIHByb2dyYW0uYWRkKGZ1bmMpOwotICAgIH0KLX0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbCBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbAppbmRleCA3ZDI2ZDI2MDdhOTVmOWJmNjRk
ZjFiY2E5MTY1OGYyZTc0OGMwNDNkLi4zNjBmZjE5MGEwNjk0ZWYzMjUzYjZmNTI4YWM1M2UwMzdi
NDU4OTMxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0
bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sCkBAIC0xMSw3
ICsxMSw2IEBACiA8c2NyaXB0IHNyYz0iQ3JlYXRlTGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iQ3JlYXRlTGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlBy
b3BlcnR5QWNjZXNzRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iU3dpenps
ZU9wLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOYXRpdmVUeXBlLmpzIj48L3NjcmlwdD4K
IAogPHNjcmlwdCBzcmM9IkFkZHJlc3NTcGFjZS5qcyI+PC9zY3JpcHQ+CkBAIC0yMywxMiArMjIs
MTAgQEAKIDxzY3JpcHQgc3JjPSJCbG9jay5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQm9v
bExpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkJyZWFrLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9yQ29uc3RydWN0b3JzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJCdWlsdGluTWF0cml4R2V0dGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJCdWlsdGluTWF0cml4U2V0dGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJCdWlsdGlu
VmVjdG9yR2V0dGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9yU2V0
dGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9ySW5kZXhHZXR0ZXIu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkJ1aWx0aW5WZWN0b3JJbmRleFNldHRlci5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iQnVpbHRpblZlY3RvckVxdWFsaXR5T3BlcmF0b3IuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNhbGxFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJDYWxsRnVuY3Rpb24uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNoZWNr
LmpzIj48L3NjcmlwdD4KQEAgLTkwLDYgKzg3LDcgQEAKIDxzY3JpcHQgc3JjPSJMb29wQ2hlY2tl
ci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTWFrZUFycmF5UmVmRXhwcmVzc2lvbi5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTWFrZVB0ckV4cHJlc3Npb24uanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ik1hdHJpeFR5cGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik5hbWVD
b250ZXh0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOYW1lRmluZGVyLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJOYW1lUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgpAQCAtOTcsOSArOTUs
OCBAQAogPHNjcmlwdCBzcmM9Ik5vcm1hbFVzZVByb3BlcnR5UmVzb2x2ZXIuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9Ik51bGxMaXRlcmFsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJO
dWxsVHlwZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iT3BlcmF0b3JBbmRlckluZGV4Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJPcGVyYXRvckFuZGVySW5kZXhlci5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iT3BlcmF0b3JBcnJheVJlZkxlbmd0aC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iT3BlcmF0b3JCb29sLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJPcmln
aW5LaW5kLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJPdmVybG9hZFJlc29sdXRpb25GYWls
dXJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJQYXJzZS5qcyI+PC9zY3JpcHQ+CkBAIC0x
MjcsNyArMTI0LDYgQEAKIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplQXJyYXlPcGVyYXRvckxlbmd0
aC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVPcGVyYXRvckJvb2wuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9y
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3Jp
cHQ+CkBAIC0xNTYsNyArMTUyLDcgQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiBkb1Rlc3RJbkJyb3dz
ZXIoKQogewotICAgIHZhciB0ZXN0ZXIgPSBkb1Rlc3QoLy4qLyk7CisgICAgdmFyIHRlc3RlciA9
IGRvVGVzdCgvdGV4dHVyZURpbWVuc2lvbnMvKTsKICAgICB2YXIgbGFzdFRpbWU7CiAgICAgZnVu
Y3Rpb24gbmV4dCgpCiAgICAgewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvVGVzdC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKaW5k
ZXggMWQwZmE5ZmMyYjExMzliMjkxNDRhY2M4MWQwM2RlMjY2Y2FiOTYwOS4uNTQ3M2JiZjA5MDI1
YTkzZGQ2ZjU4MmY5NmQ5N2M4YmI2MjU3ZTg2ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVGVzdC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UZXN0LmpzCkBAIC03OCw2ICs3OCw3NiBAQCBmdW5jdGlvbiBtYWtlRmxvYXQocHJvZ3JhbSwg
dmFsdWUpCiAgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljcy5mbG9h
dCwgdmFsdWUpOwogfQogCitmdW5jdGlvbiBtYWtlU2FtcGxlcihwcm9ncmFtLCBzYW1wbGVyRGF0
YSkKK3sKKyAgICAvLyBlbnVtIEFkZHJlc3NNb2RlIHsKKyAgICAvLyAgICAgImNsYW1wVG9FZGdl
IiwKKyAgICAvLyAgICAgIm1pcnJvckNsYW1wVG9FZGdlIiwKKyAgICAvLyAgICAgInJlcGVhdCIs
CisgICAgLy8gICAgICJtaXJyb3JSZXBlYXQiLAorICAgIC8vICAgICAiY2xhbXBUb0JvcmRlckNv
bG9yIgorICAgIC8vIH0KKyAgICAvLworICAgIC8vIGVudW0gRmlsdGVyIHsKKyAgICAvLyAgICAg
Im5lYXJlc3QiLAorICAgIC8vICAgICAibGluZWFyIgorICAgIC8vIH0KKyAgICAvLworICAgIC8v
IGVudW0gQ29tcGFyZUZ1bmN0aW9uIHsKKyAgICAvLyAgICAgIm5ldmVyIiwKKyAgICAvLyAgICAg
Imxlc3MiLAorICAgIC8vICAgICAiZXF1YWwiLAorICAgIC8vICAgICAibGVzc0VxdWFsIiwKKyAg
ICAvLyAgICAgImdyZWF0ZXIiLAorICAgIC8vICAgICAibm90RXF1YWwiLAorICAgIC8vICAgICAi
Z3JlYXRlckVxdWFsIiwKKyAgICAvLyAgICAgImFsd2F5cyIKKyAgICAvLyB9CisgICAgLy8KKyAg
ICAvLyBlbnVtIEJvcmRlckNvbG9yIHsKKyAgICAvLyAgICAgInRyYW5zcGFyZW50QmxhY2siLAor
ICAgIC8vICAgICAib3BhcXVlQmxhY2siLAorICAgIC8vICAgICAib3BhcXVlV2hpdGUiCisgICAg
Ly8gfQorICAgIC8vCisgICAgLy8gZGljdGlvbmFyeSBTYW1wbGVyRGF0YSB7CisgICAgLy8gICAg
IEFkZHJlc3NNb2RlIHJBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSIsCisgICAgLy8gICAgIEFk
ZHJlc3NNb2RlIHNBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSIsCisgICAgLy8gICAgIEFkZHJl
c3NNb2RlIHRBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSIsCisgICAgLy8gICAgIEZpbHRlciBt
aW5GaWx0ZXIgPSAibmVhcmVzdCIsCisgICAgLy8gICAgIEZpbHRlciBtYWdGaWx0ZXIgPSAibmVh
cmVzdCIsCisgICAgLy8gICAgIEZpbHRlciBtaXBGaWx0ZXIgPSAibmVhcmVzdCIsCisgICAgLy8g
ICAgIGZsb2F0IGxvZE1pbkNsYW1wID0gMCwKKyAgICAvLyAgICAgZmxvYXQgbG9kTWF4Q2xhbXAg
PSBGTFRfTUFYLAorICAgIC8vICAgICB1bnNpZ25lZCBsb25nIG1heEFuaXNvdHJvcHkgPSAxLAor
ICAgIC8vICAgICBib29sZWFuIG5vcm1hbGl6ZWRDb29yZGluYXRlcyA9IHRydWUsCisgICAgLy8g
ICAgIENvbXBhcmVGdW5jdGlvbiBjb21wYXJlRnVuY3Rpb24gPSAibmV2ZXIiLAorICAgIC8vICAg
ICBCb3JkZXJDb2xvciBib3JkZXJDb2xvciA9ICJ0cmFuc3BhcmVudEJsYWNrIgorICAgIC8vICAg
ICBmbG9hdCBiaWFzID0gMDsKKyAgICAvLyB9CisgICAgLy8KKyAgICByZXR1cm4gVHlwZWRWYWx1
ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzLnNhbXBsZXIsIHNhbXBsZXJEYXRhKTsKK30KKworZnVu
Y3Rpb24gbWFrZTFEVGV4dHVyZShwcm9ncmFtLCB0eXBlZEFycmF5KQoreworICAgIGlmICh0eXBl
ZEFycmF5IGluc3RhbmNlb2YgVWludDhBcnJheSkKKyAgICAgICAgcmV0dXJuIFR5cGVkVmFsdWUu
Ym94KHByb2dyYW0uaW50cmluc2ljc1siVGV4dHVyZTFEPHVjaGFyPiJdLCB0eXBlZEFycmF5KTsK
KyAgICBpZiAodHlwZWRBcnJheSBpbnN0YW5jZW9mIFVpbnQxNkFycmF5KQorICAgICAgICByZXR1
cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzWyJUZXh0dXJlMUQ8dXNob3J0PiJd
LCB0eXBlZEFycmF5KTsKKyAgICBpZiAodHlwZWRBcnJheSBpbnN0YW5jZW9mIFVpbnQzMkFycmF5
KQorICAgICAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzWyJUZXh0
dXJlMUQ8dWludD4iXSwgdHlwZWRBcnJheSk7CisgICAgaWYgKHR5cGVkQXJyYXkgaW5zdGFuY2Vv
ZiBJbnQ4QXJyYXkpCisgICAgICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJp
bnNpY3NbIlRleHR1cmUxRDxjaGFyPiJdLCB0eXBlZEFycmF5KTsKKyAgICBpZiAodHlwZWRBcnJh
eSBpbnN0YW5jZW9mIEludDE2QXJyYXkpCisgICAgICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChw
cm9ncmFtLmludHJpbnNpY3NbIlRleHR1cmUxRDxzaG9ydD4iXSwgdHlwZWRBcnJheSk7CisgICAg
aWYgKHR5cGVkQXJyYXkgaW5zdGFuY2VvZiBJbnQzMkFycmF5KQorICAgICAgICByZXR1cm4gVHlw
ZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzWyJUZXh0dXJlMUQ8aW50PiJdLCB0eXBlZEFy
cmF5KTsKKyAgICBpZiAodHlwZWRBcnJheSBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSkKKyAgICAg
ICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1siVGV4dHVyZTFEPGZs
b2F0PiJdLCB0eXBlZEFycmF5KTsKKyAgICB0aHJvdyBuZXcgRXJyb3IoIjFEIHRleHR1cmUgZm9y
bWF0IG5vdCBpbXBsZW1lbnRlZC92YWxpZCIpCit9CisKIGZ1bmN0aW9uIG1ha2VFbnVtKHByb2dy
YW0sIGVudW1OYW1lLCB2YWx1ZSkKIHsKICAgICBsZXQgZW51bVR5cGUgPSBwcm9ncmFtLnR5cGVz
LmdldChlbnVtTmFtZSk7CkBAIC0xODEsNiArMjUxLDE4IEBAIHRlc3RzID0gbmV3IFByb3h5KHt9
LCB7CiAgICAgfQogfSk7CiAKK3Rlc3RzLnRleHR1cmVEaW1lbnNpb25zID0gZnVuY3Rpb24oKSB7
CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICB1aW50IGZvbyhUZXh0dXJlMUQ8
ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1
aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAw
LCAmd2lkdGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7Cisg
ICAgICAgIH0KKyAgICBgKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZTFEVGV4dHVyZShwcm9ncmFtLCBuZXcgRmxvYXQzMkFycmF5KFsx
LCA3LCAxNF0pKV0pLCAzKTsKK30KKwogdGVzdHMuY29tbWVudFBhcnNpbmcgPSBmdW5jdGlvbigp
IHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIC8qIHRoaXMgY29tbWVudApA
QCAtMjIwLDE3ICszMDIsMTcgQEAgdGVzdHMudGVybmFyeUV4cHJlc3Npb24gPSBmdW5jdGlvbigp
IHsKICAgICAgICAgICAgIHJldHVybiAzIDwgNCA/IHggOiA1OwogICAgICAgICB9CiAgICAgYCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCA1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAyKV0pLCA0KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCAyKV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCAxKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJheiIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCA4KV0pLCAxMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJiYXoiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgMTEpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmF6IiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDEwKV0pLCAxNCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJiYXoiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMTEpXSksIDE0KTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJheiIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCAxMildKSwgMTUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiYmF6IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEzKV0pLCAxNSk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJxdXV4IiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDE0KV0pLCAxNCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3NjcpXSksIDUpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgMildKSwgNCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJiYXIiLCBbbWFrZUludChwcm9ncmFtLCAyKV0pLCA3KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFttYWtlSW50KHByb2dyYW0sIDgp
XSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmF6
IiwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgMTEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiYmF6IiwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgMTEpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmF6IiwgW21ha2VJ
bnQocHJvZ3JhbSwgMTApXSksIDE0KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImJheiIsIFttYWtlSW50KHByb2dyYW0sIDExKV0pLCAxNCk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBbbWFrZUludChwcm9n
cmFtLCAxMildKSwgMTUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiYmF6IiwgW21ha2VJbnQocHJvZ3JhbSwgMTMpXSksIDE1KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInF1dXgiLCBbbWFrZUludChwcm9ncmFtLCAx
NCldKSwgMTQpOwogICAgIGNoZWNrRmFpbCgKICAgICAgICAgKCkgPT4gZG9QcmVwKGAKICAgICAg
ICAgICAgIGludCBmb28oKQpAQCAtMjIxNSw0MSArMjI5Nyw2IEBAIHRlc3RzLm9wZXJhdG9yQm9v
bCA9IGZ1bmN0aW9uKCkKIAogICAgICAgICBib29sIGJvb2xGcm9tRmxvYXRGYWxzZSgpIHsgcmV0
dXJuIGJvb2woZmxvYXQoMCkpOyB9CiAgICAgICAgIGJvb2wgYm9vbEZyb21GbG9hdFRydWUoKSB7
IHJldHVybiBib29sKGZsb2F0KDEpKTsgfQotCi0gICAgICAgIGJvb2wgYm9vbEZyb21JbnQyRmFs
c2UoKSB7IHJldHVybiBib29sKGludDIoMCwgMCkpOyB9Ci0gICAgICAgIGJvb2wgYm9vbEZyb21J
bnQyVHJ1ZTEoKSB7IHJldHVybiBib29sKGludDIoMSwgMCkpOyB9Ci0gICAgICAgIGJvb2wgYm9v
bEZyb21JbnQyVHJ1ZTIoKSB7IHJldHVybiBib29sKGludDIoMCwgMSkpOyB9Ci0KLSAgICAgICAg
Ym9vbCBib29sRnJvbUZsb2F0M0ZhbHNlKCkgeyByZXR1cm4gYm9vbChmbG9hdDMoMCwgMCwgMCkp
OyB9Ci0gICAgICAgIGJvb2wgYm9vbEZyb21GbG9hdDNUcnVlMSgpIHsgcmV0dXJuIGJvb2woZmxv
YXQzKDEsIDAsIDApKTsgfQotICAgICAgICBib29sIGJvb2xGcm9tRmxvYXQzVHJ1ZTIoKSB7IHJl
dHVybiBib29sKGZsb2F0MygwLCAxLCAwKSk7IH0KLSAgICAgICAgYm9vbCBib29sRnJvbUZsb2F0
M1RydWUzKCkgeyByZXR1cm4gYm9vbChmbG9hdDMoMCwgMCwgMSkpOyB9Ci0KLSAgICAgICAgYm9v
bCBib29sRnJvbVVpbnQ0RmFsc2UoKSB7IHJldHVybiBib29sKHVpbnQ0KDAsIDAsIDAsIDApKTsg
fQotICAgICAgICBib29sIGJvb2xGcm9tVWludDRUcnVlMSgpIHsgcmV0dXJuIGJvb2wodWludDQo
MSwgMCwgMCwgMCkpOyB9Ci0gICAgICAgIGJvb2wgYm9vbEZyb21VaW50NFRydWUyKCkgeyByZXR1
cm4gYm9vbCh1aW50NCgwLCAxLCAwLCAwKSk7IH0KLSAgICAgICAgYm9vbCBib29sRnJvbVVpbnQ0
VHJ1ZTMoKSB7IHJldHVybiBib29sKHVpbnQ0KDAsIDAsIDEsIDApKTsgfQotICAgICAgICBib29s
IGJvb2xGcm9tVWludDRUcnVlNCgpIHsgcmV0dXJuIGJvb2wodWludDQoMCwgMCwgMCwgMSkpOyB9
Ci0KLSAgICAgICAgc3RydWN0IFggeyBpbnQgeDsgfQotCi0gICAgICAgIGJvb2wgYm9vbEZyb21T
dHJ1Y3RGYWxzZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFggeDsKLSAgICAgICAgICAgIHJl
dHVybiBib29sKHgpOwotICAgICAgICB9Ci0KLSAgICAgICAgYm9vbCBib29sRnJvbVN0cnVjdFRy
dWUoKQotICAgICAgICB7Ci0gICAgICAgICAgICBYIHg7Ci0gICAgICAgICAgICB4LnggPSAxOwot
ICAgICAgICAgICAgcmV0dXJuIGJvb2woeCk7Ci0gICAgICAgIH0KLQotICAgICAgICBlbnVtIFkg
eyBBLCBCIH0KLQotICAgICAgICBib29sIGJvb2xGcm9tRW51bUZhbHNlKCkgeyByZXR1cm4gYm9v
bChZLkEpOyB9Ci0gICAgICAgIGJvb2wgYm9vbEZyb21FbnVtVHJ1ZSgpIHsgcmV0dXJuIGJvb2wo
WS5CKTsgfQogICAgIGApOwogCiAgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiYm9vbEZyb21VY2hhckZhbHNlIiwgW10pLCBmYWxzZSk7CkBAIC0yMjYzLDI3ICsy
MzEwLDYgQEAgdGVzdHMub3BlcmF0b3JCb29sID0gZnVuY3Rpb24oKQogCiAgICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYm9vbEZyb21GbG9hdEZhbHNlIiwgW10p
LCBmYWxzZSk7CiAgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Ym9vbEZyb21GbG9hdFRydWUiLCBbXSksIHRydWUpOwotCi0gICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYm9vbEZyb21JbnQyRmFsc2UiLCBbXSksIGZhbHNlKTsK
LSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJib29sRnJvbUlu
dDJUcnVlMSIsIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiYm9vbEZyb21JbnQyVHJ1ZTIiLCBbXSksIHRydWUpOwotCi0gICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYm9vbEZyb21GbG9hdDNGYWxzZSIs
IFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImJvb2xGcm9tRmxvYXQzVHJ1ZTEiLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJvb2xGcm9tRmxvYXQzVHJ1ZTIiLCBbXSksIHRy
dWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJvb2xG
cm9tRmxvYXQzVHJ1ZTMiLCBbXSksIHRydWUpOwotCi0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiYm9vbEZyb21VaW50NEZhbHNlIiwgW10pLCBmYWxzZSk7Ci0g
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYm9vbEZyb21VaW50
NFRydWUxIiwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJib29sRnJvbVVpbnQ0VHJ1ZTIiLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJvb2xGcm9tVWludDRUcnVlMyIsIFtd
KSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Ym9vbEZyb21VaW50NFRydWU0IiwgW10pLCB0cnVlKTsKLQotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJvb2xGcm9tU3RydWN0RmFsc2UiLCBbXSksIGZhbHNl
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJib29sRnJv
bVN0cnVjdFRydWUiLCBbXSksIHRydWUpOwotCi0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiYm9vbEZyb21FbnVtRmFsc2UiLCBbXSksIGZhbHNlKTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJib29sRnJvbUVudW1UcnVl
IiwgW10pLCB0cnVlKTsKIH0KIAogdGVzdHMuYm9vbEJpdEFuZCA9IGZ1bmN0aW9uKCkKQEAgLTM1
NDgsNiArMzU3NCw3IEBAIHRlc3RzLnRyYXAgPSBmdW5jdGlvbigpCiAgICAgICAgIGUgPT4gZSBp
bnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCisvKgogdGVzdHMuc3dpenpsZSA9IGZ1bmN0aW9u
KCkKIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCkBAIC0zNTcyLDYgKzM1OTksNyBAQCB0
ZXN0cy5zd2l6emxlID0gZnVuY3Rpb24oKQogICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10pLCA2KTsKICAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdKSwgNCk7CiB9CisqLwogCiB0ZXN0cy5l
bnVtV2l0aEV4cGxpY2l0SW50QmFzZSA9IGZ1bmN0aW9uKCkKIHsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Zpc2l0b3IuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9WaXNpdG9yLmpzCmluZGV4IDFmMWY1NGQ4Y2NhNzVjMTEwMTk4ZTUwODQ1ODg3
OTA3OTFkZTBlNTguLmI5ZWE3ZTQ2M2M0ZTA4YmRmODZmZTkwNzZlYWQ0MDU4NzZkMTE1OTIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Zpc2l0b3IuanMKKysrIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcwpAQCAtMzQwLDUgKzM0MCwx
MiBAQCBjbGFzcyBWaXNpdG9yIHsKICAgICAgICAgbm9kZS5lbGVtZW50VHlwZS52aXNpdCh0aGlz
KTsKICAgICAgICAgbm9kZS5udW1FbGVtZW50cy52aXNpdCh0aGlzKTsKICAgICB9CisKKyAgICB2
aXNpdE1hdHJpeFR5cGUobm9kZSkKKyAgICB7CisgICAgICAgIG5vZGUuZWxlbWVudFR5cGUudmlz
aXQodGhpcyk7CisgICAgICAgIG5vZGUubnVtUm93cy52aXNpdCh0aGlzKTsKKyAgICAgICAgbm9k
ZS5udW1Db2x1bW5zLnZpc2l0KHRoaXMpOworICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL2luZGV4Lmh0bWwKaW5kZXggMmVmYWRiZDY0NzQ0ZWRmZjI2NzM3OGQ1YTk2ZDQ5
YmUyOTdiNDFjNS4uMGEzNjQ0NTMzNjdlOGE2NmYwMDRmMjM1MzAzZTA0MDZjOGY4MDNkMiAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbAorKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCkBAIC0xMSw3ICsxMSw2IEBA
CiA8c2NyaXB0IHNyYz0iQ3JlYXRlTGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
Q3JlYXRlTGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlByb3BlcnR5QWNj
ZXNzRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iU3dpenpsZU9wLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOYXRpdmVUeXBlLmpzIj48L3NjcmlwdD4KIAogPHNjcmlw
dCBzcmM9IkFkZHJlc3NTcGFjZS5qcyI+PC9zY3JpcHQ+CkBAIC0yMywxMiArMjIsMTAgQEAKIDxz
Y3JpcHQgc3JjPSJCbG9jay5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQm9vbExpdGVyYWwu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkJyZWFrLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJCdWlsdGluVmVjdG9yQ29uc3RydWN0b3JzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJCdWlsdGluTWF0cml4R2V0dGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJCdWlsdGlu
TWF0cml4U2V0dGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9yR2V0
dGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9yU2V0dGVyLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9ySW5kZXhHZXR0ZXIuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9IkJ1aWx0aW5WZWN0b3JJbmRleFNldHRlci5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iQnVpbHRpblZlY3RvckVxdWFsaXR5T3BlcmF0b3IuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IkNhbGxFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJDYWxsRnVuY3Rpb24uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNoZWNrLmpzIj48L3Nj
cmlwdD4KQEAgLTkwLDYgKzg3LDcgQEAKIDxzY3JpcHQgc3JjPSJMb29wQ2hlY2tlci5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iTWFrZUFycmF5UmVmRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iTWFrZVB0ckV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ik1hdHJpeFR5cGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik5hbWVDb250ZXh0Lmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOYW1lRmluZGVyLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJOYW1lUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgpAQCAtOTcsOSArOTUsOCBAQAogPHNj
cmlwdCBzcmM9Ik5vcm1hbFVzZVByb3BlcnR5UmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9Ik51bGxMaXRlcmFsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOdWxsVHlwZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iT3BlcmF0b3JBbmRlckluZGV4LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJPcGVyYXRvckFuZGVySW5kZXhlci5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iT3BlcmF0b3JBcnJheVJlZkxlbmd0aC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iT3BlcmF0b3JCb29sLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJPcmlnaW5LaW5kLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJQYXJzZS5qcyI+PC9zY3JpcHQ+CkBAIC0xMjcsNyArMTI0
LDYgQEAKIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplQXJyYXlPcGVyYXRvckxlbmd0aC5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9IlN5bnRoZXNpemVPcGVyYXRvckJvb2wuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IlN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348347</attachid>
            <date>2018-08-28 15:06:23 -0700</date>
            <delta_ts>2018-08-28 17:31:43 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188940-20180828150622.patch</filename>
            <type>text/plain</type>
            <size>200933</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NDM5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjQ2NDU3YjQ0MWYwNWQ2ZjU2ZGY2MmE4NmFlNTMxNjNi
MTk3MzkwOC4uZWRlYTBhOGU5OTg5MTBkNzNmOGU4ZTE4YzNiZmY0MTU1MmY0MGU1NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
NiBAQAorMjAxOC0wOC0yOCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRleHR1cmUgdHlwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5N
YXRyaXhHZXR0ZXIuanM6IENvcGllZCBmcm9tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0J1aWx0aW5WZWN0b3JJbmRleFNldHRlci5qcy4KKyAgICAgICAgKEJ1aWx0aW5NYXRyaXhHZXR0
ZXIpOgorICAgICAgICAoQnVpbHRpbk1hdHJpeEdldHRlci5wcm90b3R5cGUuZ2V0IGhlaWdodCk6
CisgICAgICAgIChCdWlsdGluTWF0cml4R2V0dGVyLnByb3RvdHlwZS5nZXQgd2lkdGgpOgorICAg
ICAgICAoQnVpbHRpbk1hdHJpeEdldHRlci5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAo
QnVpbHRpbk1hdHJpeEdldHRlci5mdW5jdGlvbnMpOgorICAgICAgICAoQnVpbHRpbk1hdHJpeEdl
dHRlci5wcm90b3R5cGUuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRpbk1hdHJpeFNldHRlci5qczogUmVuYW1lZCBmcm9t
IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JJbmRleFNldHRlci5q
cy4KKyAgICAgICAgKEJ1aWx0aW5NYXRyaXhTZXR0ZXIpOgorICAgICAgICAoQnVpbHRpbk1hdHJp
eFNldHRlci5wcm90b3R5cGUuZ2V0IGhlaWdodCk6CisgICAgICAgIChCdWlsdGluTWF0cml4U2V0
dGVyLnByb3RvdHlwZS5nZXQgd2lkdGgpOgorICAgICAgICAoQnVpbHRpbk1hdHJpeFNldHRlci5w
cm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoQnVpbHRpbk1hdHJpeFNldHRlci5mdW5jdGlv
bnMpOgorICAgICAgICAoQnVpbHRpbk1hdHJpeFNldHRlci5wcm90b3R5cGUuaW5zdGFudGlhdGVJ
bXBsZW1lbnRhdGlvbik6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRp
blZlY3RvckNvbnN0cnVjdG9ycy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9yRXF1YWxpdHlPcGVyYXRvci5qczogUmVtb3ZlZC4KKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9yR2V0dGVyLmpzOgor
ICAgICAgICAoQnVpbHRpblZlY3RvckdldHRlci5wcm90b3R5cGUuaW5zdGFudGlhdGVJbXBsZW1l
bnRhdGlvbik6CisgICAgICAgIChCdWlsdGluVmVjdG9yR2V0dGVyKToKKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9yU2V0dGVyLmpzOgorICAgICAgICAoQnVp
bHRpblZlY3RvclNldHRlci5mdW5jdGlvbnMpOgorICAgICAgICAoQnVpbHRpblZlY3RvclNldHRl
ci5wcm90b3R5cGUuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChCdWlsdGlu
VmVjdG9yU2V0dGVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRXhw
cmVzc2lvbi5qczoKKyAgICAgICAgKENhbGxFeHByZXNzaW9uLnByb3RvdHlwZS5yZXNvbHZlKToK
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja1R5cGVzV2l0aEFyZ3VtZW50
cy5qczoKKyAgICAgICAgKGNoZWNrVHlwZXNXaXRoQXJndW1lbnRzLlR5cGVXaXRoQXJndW1lbnRz
Q2hlY2tlci5wcm90b3R5cGUudmlzaXRUeXBlUmVmKToKKyAgICAgICAgKGNoZWNrVHlwZXNXaXRo
QXJndW1lbnRzLlR5cGVXaXRoQXJndW1lbnRzQ2hlY2tlcik6CisgICAgICAgIChjaGVja1R5cGVz
V2l0aEFyZ3VtZW50cyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tl
ci5qczoKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0VmVjdG9yVHlwZSk6CisgICAg
ICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdE1hdHJpeFR5cGUpOgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0NvbnN0ZXhwckZvbGRlci5qczoKKyAgICAgICAgKENvbnN0ZXhw
ckZvbGRlci5wcm90b3R5cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChDb25zdGV4
cHJGb2xkZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0V2YWx1YXRvci5q
czoKKyAgICAgICAgKEV2YWx1YXRvci5wcm90b3R5cGUudmlzaXRUZXJuYXJ5RXhwcmVzc2lvbik6
CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxhdHRlbmVkU3RydWN0T2Zmc2V0
R2F0aGVyZXIuanM6CisgICAgICAgIChGbGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5wcm90
b3R5cGUudmlzaXRNYXRyaXhUeXBlKToKKyAgICAgICAgKEZsYXR0ZW5lZFN0cnVjdE9mZnNldEdh
dGhlcmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWxU
eXBlLmpzOgorICAgICAgICAobGV0LkZsb2F0TGl0ZXJhbFR5cGUuY3JlYXRlTGl0ZXJhbFR5cGUu
dmVyaWZ5QXNBcmd1bWVudCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50
cmluc2ljcy5qczoKKyAgICAgICAgKEludHJpbnNpY3MuKToKKyAgICAgICAgKEludHJpbnNpY3Mp
OgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01hdHJpeFR5cGUuanM6IFJlbmFt
ZWQgZnJvbSBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9ySW5kZXhH
ZXR0ZXIuanMuCisgICAgICAgIChNYXRyaXhUeXBlKToKKyAgICAgICAgKE1hdHJpeFR5cGUucHJv
dG90eXBlLmdldCBlbGVtZW50VHlwZSk6CisgICAgICAgIChNYXRyaXhUeXBlLnByb3RvdHlwZS5n
ZXQgbnVtUm93cyk6CisgICAgICAgIChNYXRyaXhUeXBlLnByb3RvdHlwZS5nZXQgbnVtQ29sdW1u
cyk6CisgICAgICAgIChNYXRyaXhUeXBlLnByb3RvdHlwZS5nZXQgbnVtUm93c1ZhbHVlKToKKyAg
ICAgICAgKE1hdHJpeFR5cGUucHJvdG90eXBlLmdldCBudW1Db2x1bW5zVmFsdWUpOgorICAgICAg
ICAoTWF0cml4VHlwZS5wcm90b3R5cGUuZ2V0IHNpemUpOgorICAgICAgICAoTWF0cml4VHlwZS5w
cm90b3R5cGUudW5pZnlJbXBsKToKKyAgICAgICAgKE1hdHJpeFR5cGUucHJvdG90eXBlLnBvcHVs
YXRlRGVmYXVsdFZhbHVlKToKKyAgICAgICAgKE1hdHJpeFR5cGUucHJvdG90eXBlLnRvU3RyaW5n
KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5qczoKKyAg
ICAgICAgKE5hbWVDb250ZXh0LnByb3RvdHlwZS5hZGQpOgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL05hdGl2ZVR5cGUuanM6CisgICAgICAgIChOYXRpdmVUeXBlLmNyZWF0ZSk6
CisgICAgICAgIChOYXRpdmVUeXBlKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9PcGVyYXRvckFuZGVySW5kZXhlci5qczogUmVuYW1lZCBmcm9tIFRvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL09wZXJhdG9yQW5kZXJJbmRleC5qcy4KKyAgICAgICAgKE9wZXJhdG9yQW5k
ZXJJbmRleGVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9PcGVyYXRvckJv
b2wuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJlcGFy
ZS5qczoKKyAgICAgICAgKGxldC5wcmVwYXJlKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9Qcm9ncmFtLmpzOgorICAgICAgICAoUHJvZ3JhbS5wcm90b3R5cGUuYWRkKToKKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoKKyAgICAgICAgKFJl
d3JpdGVyLnByb3RvdHlwZS52aXNpdE1hdHJpeFR5cGUpOgorICAgICAgICAoUmV3cml0ZXIpOgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWw6CisgICAgICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAob3Bl
cmF0b3IuYm9vbCk6CisgICAgICAgIChib29sLm9wZXJhdG9yKToKKyAgICAgICAgKHVjaGFyLm9w
ZXJhdG9yKToKKyAgICAgICAgKHVzaG9ydC5vcGVyYXRvcik6CisgICAgICAgIChjaGFyLm9wZXJh
dG9yKToKKyAgICAgICAgKHNob3J0Lm9wZXJhdG9yKToKKyAgICAgICAgKHVpbnQub3BlcmF0b3Ip
OgorICAgICAgICAoaW50Lm9wZXJhdG9yKToKKyAgICAgICAgKGhhbGYub3BlcmF0b3IpOgorICAg
ICAgICAoZmxvYXQub3BlcmF0b3IpOgorICAgICAgICAob3BlcmF0b3IuYm9vbDIpOgorICAgICAg
ICAob3BlcmF0b3IuYm9vbDMpOgorICAgICAgICAob3BlcmF0b3IuYm9vbDQpOgorICAgICAgICAo
dWludC5vcGVyYXRvci5sZW5ndGgpOgorICAgICAgICAob3BlcmF0b3IudWNoYXIyKToKKyAgICAg
ICAgKG9wZXJhdG9yLnVjaGFyMyk6CisgICAgICAgIChvcGVyYXRvci51Y2hhcjQpOgorICAgICAg
ICAob3BlcmF0b3IudXNob3J0Mik6CisgICAgICAgIChvcGVyYXRvci51c2hvcnQzKToKKyAgICAg
ICAgKG9wZXJhdG9yLnVzaG9ydDQpOgorICAgICAgICAob3BlcmF0b3IudWludDIpOgorICAgICAg
ICAob3BlcmF0b3IudWludDMpOgorICAgICAgICAob3BlcmF0b3IudWludDQpOgorICAgICAgICAo
b3BlcmF0b3IuY2hhcjIpOgorICAgICAgICAob3BlcmF0b3IuY2hhcjMpOgorICAgICAgICAob3Bl
cmF0b3IuY2hhcjQpOgorICAgICAgICAob3BlcmF0b3Iuc2hvcnQyKToKKyAgICAgICAgKG9wZXJh
dG9yLnNob3J0Myk6CisgICAgICAgIChvcGVyYXRvci5zaG9ydDQpOgorICAgICAgICAob3BlcmF0
b3IuaW50Mik6CisgICAgICAgIChvcGVyYXRvci5pbnQzKToKKyAgICAgICAgKG9wZXJhdG9yLmlu
dDQpOgorICAgICAgICAob3BlcmF0b3IuaGFsZjIpOgorICAgICAgICAob3BlcmF0b3IuaGFsZjMp
OgorICAgICAgICAob3BlcmF0b3IuaGFsZjQpOgorICAgICAgICAob3BlcmF0b3IuZmxvYXQyKToK
KyAgICAgICAgKG9wZXJhdG9yLmZsb2F0Myk6CisgICAgICAgIChvcGVyYXRvci5mbG9hdDQpOgor
ICAgICAgICAoYm9vbDIub3BlcmF0b3IpOgorICAgICAgICAoYm9vbDMub3BlcmF0b3IpOgorICAg
ICAgICAoYm9vbDQub3BlcmF0b3IpOgorICAgICAgICAodWNoYXIyLm9wZXJhdG9yKToKKyAgICAg
ICAgKHVjaGFyMy5vcGVyYXRvcik6CisgICAgICAgICh1Y2hhcjQub3BlcmF0b3IpOgorICAgICAg
ICAodXNob3J0Mi5vcGVyYXRvcik6CisgICAgICAgICh1c2hvcnQzLm9wZXJhdG9yKToKKyAgICAg
ICAgKHVzaG9ydDQub3BlcmF0b3IpOgorICAgICAgICAodWludDIub3BlcmF0b3IpOgorICAgICAg
ICAodWludDMub3BlcmF0b3IpOgorICAgICAgICAodWludDQub3BlcmF0b3IpOgorICAgICAgICAo
Y2hhcjIub3BlcmF0b3IpOgorICAgICAgICAoY2hhcjMub3BlcmF0b3IpOgorICAgICAgICAoY2hh
cjQub3BlcmF0b3IpOgorICAgICAgICAoc2hvcnQyLm9wZXJhdG9yKToKKyAgICAgICAgKHNob3J0
My5vcGVyYXRvcik6CisgICAgICAgIChzaG9ydDQub3BlcmF0b3IpOgorICAgICAgICAoaW50Mi5v
cGVyYXRvcik6CisgICAgICAgIChpbnQzLm9wZXJhdG9yKToKKyAgICAgICAgKGludDQub3BlcmF0
b3IpOgorICAgICAgICAoaGFsZjIub3BlcmF0b3IpOgorICAgICAgICAoaGFsZjMub3BlcmF0b3Ip
OgorICAgICAgICAoaGFsZjQub3BlcmF0b3IpOgorICAgICAgICAoZmxvYXQyLm9wZXJhdG9yKToK
KyAgICAgICAgKGZsb2F0My5vcGVyYXRvcik6CisgICAgICAgIChmbG9hdDQub3BlcmF0b3IpOgor
ICAgICAgICAoYWxsVmVjdG9yVHlwZU5hbWVzKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9Td2l6emxlT3AuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzOgorICAgICAg
ICAoc3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLkZpbmRBbGxUeXBlcy5wcm90
b3R5cGUudmlzaXRNYXRyaXhUeXBlKToKKyAgICAgICAgKHN5bnRoZXNpemVEZWZhdWx0Q29uc3Ry
dWN0b3JPcGVyYXRvci5GaW5kQWxsVHlwZXMpOgorICAgICAgICAoc3ludGhlc2l6ZURlZmF1bHRD
b25zdHJ1Y3Rvck9wZXJhdG9yKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
eW50aGVzaXplT3BlcmF0b3JCb29sLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UZXN0LmpzOgorICAgICAgICAobWFrZVNhbXBsZXIpOgorICAgICAgICAobWFrZTFEVGV4dHVy
ZSk6CisgICAgICAgICh0ZXN0cy50ZXh0dXJlRGltZW5zaW9ucyk6CisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoKKyAgICAgICAgKFZpc2l0b3IucHJvdG90eXBl
LnZpc2l0TWF0cml4VHlwZSk6CisgICAgICAgIChWaXNpdG9yKToKKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sOgorCiAyMDE4LTA4LTI4ICBEYXZpZCBLaWx6ZXIg
IDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGluY29ycmVjdCB1c2Ugb2YgYHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7YCBmb3IgYnVpbHQgcHJvZHVjdHMgYW5kIGZyYW1ld29ya3Mg
aW4gWGNvZGUgcHJvamVjdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0FsbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwppbmRleCAz
MTViZWMyZTY4ODYyN2MzY2Q4MGJhNDZmYmEyNDAwMWUyOGY5ZjRjLi45YzJhMzcxNTBjMWU5NzZi
OTI2Y2ZiZWUyMzQzNzUyMGE4ZGU0YTQ3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9BbGwuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxs
LmpzCkBAIC0zNCw3ICszNCw2IEBAIGxvYWQoIlZpc2l0b3IuanMiKTsKIGxvYWQoIkNyZWF0ZUxp
dGVyYWwuanMiKTsKIGxvYWQoIkNyZWF0ZUxpdGVyYWxUeXBlLmpzIik7CiBsb2FkKCJQcm9wZXJ0
eUFjY2Vzc0V4cHJlc3Npb24uanMiKTsKLWxvYWQoIlN3aXp6bGVPcC5qcyIpOwogbG9hZCgiTmF0
aXZlVHlwZS5qcyIpOwogCiBsb2FkKCJBZGRyZXNzU3BhY2UuanMiKTsKQEAgLTQ2LDEyICs0NSwx
MCBAQCBsb2FkKCJBdXRvV3JhcHBlci5qcyIpOwogbG9hZCgiQmxvY2suanMiKTsKIGxvYWQoIkJv
b2xMaXRlcmFsLmpzIik7CiBsb2FkKCJCcmVhay5qcyIpOwotbG9hZCgiQnVpbHRpblZlY3RvckNv
bnN0cnVjdG9ycy5qcyIpOworbG9hZCgiQnVpbHRpbk1hdHJpeEdldHRlci5qcyIpOworbG9hZCgi
QnVpbHRpbk1hdHJpeFNldHRlci5qcyIpOwogbG9hZCgiQnVpbHRpblZlY3RvckdldHRlci5qcyIp
OwogbG9hZCgiQnVpbHRpblZlY3RvclNldHRlci5qcyIpOwotbG9hZCgiQnVpbHRpblZlY3Rvcklu
ZGV4R2V0dGVyLmpzIik7Ci1sb2FkKCJCdWlsdGluVmVjdG9ySW5kZXhTZXR0ZXIuanMiKTsKLWxv
YWQoIkJ1aWx0aW5WZWN0b3JFcXVhbGl0eU9wZXJhdG9yLmpzIik7CiBsb2FkKCJDYWxsRXhwcmVz
c2lvbi5qcyIpOwogbG9hZCgiQ2FsbEZ1bmN0aW9uLmpzIik7CiBsb2FkKCJDaGVjay5qcyIpOwpA
QCAtMTEzLDYgKzExMCw3IEBAIGxvYWQoIkxvZ2ljYWxOb3QuanMiKTsKIGxvYWQoIkxvb3BDaGVj
a2VyLmpzIik7CiBsb2FkKCJNYWtlQXJyYXlSZWZFeHByZXNzaW9uLmpzIik7CiBsb2FkKCJNYWtl
UHRyRXhwcmVzc2lvbi5qcyIpOworbG9hZCgiTWF0cml4VHlwZS5qcyIpOwogbG9hZCgiTmFtZUNv
bnRleHQuanMiKTsKIGxvYWQoIk5hbWVGaW5kZXIuanMiKTsKIGxvYWQoIk5hbWVSZXNvbHZlci5q
cyIpOwpAQCAtMTIwLDkgKzExOCw4IEBAIGxvYWQoIk5hdGl2ZUZ1bmMuanMiKTsKIGxvYWQoIk5v
cm1hbFVzZVByb3BlcnR5UmVzb2x2ZXIuanMiKTsKIGxvYWQoIk51bGxMaXRlcmFsLmpzIik7CiBs
b2FkKCJOdWxsVHlwZS5qcyIpOwotbG9hZCgiT3BlcmF0b3JBbmRlckluZGV4LmpzIik7Citsb2Fk
KCJPcGVyYXRvckFuZGVySW5kZXhlci5qcyIpOwogbG9hZCgiT3BlcmF0b3JBcnJheVJlZkxlbmd0
aC5qcyIpOwotbG9hZCgiT3BlcmF0b3JCb29sLmpzIik7CiBsb2FkKCJPcmlnaW5LaW5kLmpzIik7
CiBsb2FkKCJPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlLmpzIik7CiBsb2FkKCJQYXJzZS5qcyIp
OwpAQCAtMTUwLDcgKzE0Nyw2IEBAIGxvYWQoIlN3aXRjaFN0YXRlbWVudC5qcyIpOwogbG9hZCgi
U3ludGhlc2l6ZUFycmF5T3BlcmF0b3JMZW5ndGguanMiKTsKIGxvYWQoIlN5bnRoZXNpemVFbnVt
RnVuY3Rpb25zLmpzIik7CiBsb2FkKCJTeW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzIik7Ci1s
b2FkKCJTeW50aGVzaXplT3BlcmF0b3JCb29sLmpzIik7CiBsb2FkKCJTeW50aGVzaXplQ29weUNv
bnN0cnVjdG9yT3BlcmF0b3IuanMiKTsKIGxvYWQoIlN5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0
b3JPcGVyYXRvci5qcyIpOwogbG9hZCgiVGVybmFyeUV4cHJlc3Npb24uanMiKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5NYXRyaXhHZXR0ZXIuanMg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluTWF0cml4R2V0dGVyLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjg2YTMzMzk0NmNiZjRlNWRiN2E0OGRiODU4NTg4MTdmZjhjNjdkNmUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluTWF0cml4
R2V0dGVyLmpzCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworInVzZSBzdHJpY3QiOworCitjbGFzcyBCdWlsdGluTWF0cml4R2V0dGVy
IHsKKyAgICBjb25zdHJ1Y3RvcihiYXNlVHlwZU5hbWUsIGhlaWdodCwgd2lkdGgpCisgICAgewor
ICAgICAgICB0aGlzLl9iYXNlVHlwZU5hbWUgPSBiYXNlVHlwZU5hbWU7CisgICAgICAgIHRoaXMu
X2hlaWdodCA9IGhlaWdodDsKKyAgICAgICAgdGhpcy5fd2lkdGggPSB3aWR0aDsKKyAgICB9CisK
KyAgICBnZXQgYmFzZVR5cGVOYW1lKCkgeyByZXR1cm4gdGhpcy5fYmFzZVR5cGVOYW1lOyB9Cisg
ICAgZ2V0IGhlaWdodCgpIHsgcmV0dXJuIHRoaXMuX2hlaWdodDsgfQorICAgIGdldCB3aWR0aCgp
IHsgcmV0dXJuIHRoaXMuX3dpZHRoOyB9CisKKyAgICB0b1N0cmluZygpCisgICAgeworICAgICAg
ICByZXR1cm4gYG5hdGl2ZSAke3RoaXMuYmFzZVR5cGVOYW1lfSR7dGhpcy53aWR0aH0gb3BlcmF0
b3JbXSgke3RoaXMuYmFzZVR5cGVOYW1lfSR7dGhpcy5oZWlnaHR9eCR7dGhpcy53aWR0aH0sdWlu
dClgOworICAgIH0KKworICAgIHN0YXRpYyBmdW5jdGlvbnMoKQorICAgIHsKKyAgICAgICAgaWYg
KCF0aGlzLl9mdW5jdGlvbnMpIHsKKyAgICAgICAgICAgIHRoaXMuX2Z1bmN0aW9ucyA9IFtdOwor
CisgICAgICAgICAgICBmb3IgKGxldCB0eXBlTmFtZSBvZiBbImhhbGYiLCAiZmxvYXQiXSkgewor
ICAgICAgICAgICAgICAgIGZvciAobGV0IGhlaWdodCBvZiBbMiwgMywgNF0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgZm9yIChsZXQgd2lkdGggb2YgWzIsIDMsIDRdKQorICAgICAgICAgICAgICAg
ICAgICAgICAgdGhpcy5fZnVuY3Rpb25zLnB1c2gobmV3IEJ1aWx0aW5NYXRyaXhHZXR0ZXIodHlw
ZU5hbWUsIGhlaWdodCwgd2lkdGgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXMuX2Z1bmN0aW9uczsKKyAgICB9CisKKyAg
ICBpbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpCisgICAgeworICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFttYXQsIGluZGV4XSkgPT4geworICAgICAgICAgICAgY29uc3QgaW5k
ZXhWYWx1ZSA9IGluZGV4LmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgaWYgKGluZGV4VmFsdWUg
Pj0gMCAmJiBpbmRleFZhbHVlIDwgdGhpcy5oZWlnaHQpIHsKKyAgICAgICAgICAgICAgICBjb25z
dCByZXN1bHQgPSBuZXcgRVB0cihuZXcgRUJ1ZmZlcih0aGlzLndpZHRoKSwgMCk7CisgICAgICAg
ICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLndpZHRoOyBpKyspCisgICAgICAgICAg
ICAgICAgICAgIHJlc3VsdC5zZXQob2Zmc2V0KyssIG1hdC5nZXQoaW5kZXhWYWx1ZSAqIHRoaXMu
d2lkdGggKyBpKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbQnVpbHRpbiBt
YXRyaXggZ2V0dGVyXSIsICJPdXQtb2YtYm91bmRzIGluZGV4IHdoZW4gaW5kZXhpbmcgaW50byBh
IG1hdHJpeCIpOworICAgICAgICB9OworICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uRGF0YSA9
IHRoaXM7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvQnVpbHRpbk1hdHJpeFNldHRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0J1aWx0aW5NYXRyaXhTZXR0ZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdiODU3NDljZTFmMmQ3ZDFhZjI2
YjFjZGU4Zjc4ZjNmODRiNTUzOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0J1aWx0aW5NYXRyaXhTZXR0ZXIuanMKQEAgLTAsMCArMSw3MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworInVzZSBzdHJpY3QiOwor
CitjbGFzcyBCdWlsdGluTWF0cml4U2V0dGVyIHsKKyAgICBjb25zdHJ1Y3RvcihiYXNlVHlwZU5h
bWUsIGhlaWdodCwgd2lkdGgpCisgICAgeworICAgICAgICB0aGlzLl9iYXNlVHlwZU5hbWUgPSBi
YXNlVHlwZU5hbWU7CisgICAgICAgIHRoaXMuX2hlaWdodCA9IGhlaWdodDsKKyAgICAgICAgdGhp
cy5fd2lkdGggPSB3aWR0aDsKKyAgICB9CisKKyAgICBnZXQgYmFzZVR5cGVOYW1lKCkgeyByZXR1
cm4gdGhpcy5fYmFzZVR5cGVOYW1lOyB9CisgICAgZ2V0IGhlaWdodCgpIHsgcmV0dXJuIHRoaXMu
X2hlaWdodDsgfQorICAgIGdldCB3aWR0aCgpIHsgcmV0dXJuIHRoaXMuX3dpZHRoOyB9CisKKyAg
ICB0b1N0cmluZygpCisgICAgeworICAgICAgICByZXR1cm4gYG5hdGl2ZSAke3RoaXMuYmFzZVR5
cGVOYW1lfSR7dGhpcy5oZWlnaHR9eCR7dGhpcy53aWR0aH0gb3BlcmF0b3JbXT0oJHt0aGlzLmJh
c2VUeXBlTmFtZX0ke3RoaXMuaGVpZ2h0fXgke3RoaXMud2lkdGh9LHVpbnQsJHt0aGlzLmJhc2VU
eXBlTmFtZX0ke3RoaXMud2lkdGh9KWA7CisgICAgfQorCisgICAgc3RhdGljIGZ1bmN0aW9ucygp
CisgICAgeworICAgICAgICBpZiAoIXRoaXMuX2Z1bmN0aW9ucykgeworICAgICAgICAgICAgdGhp
cy5fZnVuY3Rpb25zID0gW107CisKKyAgICAgICAgICAgIGZvciAobGV0IHR5cGVOYW1lIG9mIFsi
aGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICAgICAgZm9yIChsZXQgaGVpZ2h0IG9mIFsy
LCAzLCA0XSkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCB3aWR0aCBvZiBbMiwgMywg
NF0pCisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9mdW5jdGlvbnMucHVzaChuZXcgQnVp
bHRpbk1hdHJpeFNldHRlcih0eXBlTmFtZSwgaGVpZ2h0LCB3aWR0aCkpOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpcy5fZnVu
Y3Rpb25zOworICAgIH0KKworICAgIGluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYykKKyAg
ICB7CisgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2Jhc2UsIGluZGV4LCB2YWx1ZV0p
ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGluZGV4VmFsdWUgPSBpbmRleC5sb2FkVmFsdWUoKTsK
KyAgICAgICAgICAgIGlmIChpbmRleFZhbHVlID49IDAgJiYgaW5kZXhWYWx1ZSA8IHRoaXMuaGVp
Z2h0KSB7CisgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBFUHRyKG5ldyBFQnVmZmVy
KHRoaXMud2lkdGggKiB0aGlzLmhlaWdodCksIDApOworICAgICAgICAgICAgICAgIHJlc3VsdC5j
b3B5RnJvbShiYXNlLCB0aGlzLndpZHRoICogdGhpcy5oZWlnaHQpOworICAgICAgICAgICAgICAg
IHJlc3VsdC5wbHVzKGluZGV4VmFsdWUgKiB0aGlzLndpZHRoKS5jb3B5RnJvbSh2YWx1ZSwgdGhp
cy53aWR0aCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbQnVpbHRpbiBtYXRy
aXggc2V0dGVyXSIsICJPdXQtb2YtYm91bmRzIGluZGV4IHdoZW4gaW5kZXhpbmcgaW50byBhIG1h
dHJpeCIpOworICAgICAgICB9OworICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uRGF0YSA9IHRo
aXM7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
QnVpbHRpblZlY3RvckNvbnN0cnVjdG9ycy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0J1aWx0aW5WZWN0b3JDb25zdHJ1Y3RvcnMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDI3MDRiNDNhMDZjMmZhZWQ5ZGZhNzNkZWFkMzNiYjBjNWM5NTU5ODUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvQnVpbHRpblZlY3RvckNvbnN0cnVjdG9ycy5qcworKysgL2Rldi9udWxsCkBA
IC0xLDg0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBCdWlsdGluVmVjdG9yQ29uc3RydWN0b3JzIHsKLSAg
ICBjb25zdHJ1Y3RvcihiYXNlVHlwZU5hbWUsIHBhcmFtZXRlclNpemVzKQotICAgIHsKLSAgICAg
ICAgdGhpcy5fYmFzZVR5cGVOYW1lID0gYmFzZVR5cGVOYW1lOwotICAgICAgICB0aGlzLl9wYXJh
bWV0ZXJTaXplcyA9IHBhcmFtZXRlclNpemVzOwotICAgIH0KLQotICAgIGdldCBiYXNlVHlwZU5h
bWUoKSB7IHJldHVybiB0aGlzLl9iYXNlVHlwZU5hbWU7IH0KLSAgICBnZXQgcGFyYW1ldGVyU2l6
ZXMoKSB7IHJldHVybiB0aGlzLl9wYXJhbWV0ZXJTaXplczsgfQotICAgIGdldCBvdXRwdXRTaXpl
KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnBhcmFtZXRlclNpemVzLnJlZHVjZSgoYSwg
YikgPT4gYSArIGIsIDApOwotICAgIH0KLQotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBgbmF0aXZlIG9wZXJhdG9yICR7dGhpcy5iYXNlVHlwZU5hbWV9JHt0aGlzLm91dHB1
dFNpemV9KCR7dGhpcy5wYXJhbWV0ZXJTaXplcy5tYXAoeCA9PiB4ID09IDEgPyB0aGlzLmJhc2VU
eXBlTmFtZSA6IHRoaXMuYmFzZVR5cGVOYW1lICsgeCkuam9pbigiLCIpfSlgOwotICAgIH0KLQot
ICAgIHN0YXRpYyBmdW5jdGlvbnMoKQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9mdW5jdGlv
bnMpIHsKLSAgICAgICAgICAgIHRoaXMuX2Z1bmN0aW9ucyA9IFtdOwotCi0gICAgICAgICAgICBm
b3IgKGxldCB0eXBlTmFtZSBvZiBWZWN0b3JFbGVtZW50VHlwZXMpIHsKLSAgICAgICAgICAgICAg
ICBmb3IgKGxldCBzaXplIG9mIFZlY3RvckVsZW1lbnRTaXplcykgewotICAgICAgICAgICAgICAg
ICAgICBmb3IgKGxldCBwYXJhbVNpemVzIG9mIHRoaXMuX3ZlY3RvclBhcmFtZXRlclNpemVzRm9y
TWF4aW11bVNpemUoc2l6ZSkpCi0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9mdW5jdGlv
bnMucHVzaChuZXcgQnVpbHRpblZlY3RvckNvbnN0cnVjdG9ycyh0eXBlTmFtZSwgcGFyYW1TaXpl
cykpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAg
ICByZXR1cm4gdGhpcy5fZnVuY3Rpb25zOwotICAgIH0KLQotICAgIHN0YXRpYyBfdmVjdG9yUGFy
YW1ldGVyU2l6ZXNGb3JNYXhpbXVtU2l6ZShtYXhTaXplKQotICAgIHsKLSAgICAgICAgbGV0IHZh
cmlhbnRzID0gWyBbIG1heFNpemUgXSBdOwotICAgICAgICBmb3IgKGxldCBzcGxpdFBvaW50ID0g
MTsgc3BsaXRQb2ludCA8IG1heFNpemU7IHNwbGl0UG9pbnQrKykgewotICAgICAgICAgICAgZm9y
IChsZXQgdiBvZiBCdWlsdGluVmVjdG9yQ29uc3RydWN0b3JzLl92ZWN0b3JQYXJhbWV0ZXJTaXpl
c0Zvck1heGltdW1TaXplKG1heFNpemUgLSBzcGxpdFBvaW50KSkKLSAgICAgICAgICAgICAgICB2
YXJpYW50cy5wdXNoKFsgc3BsaXRQb2ludCBdLmNvbmNhdCh2KSk7Ci0gICAgICAgIH0KLSAgICAg
ICAgcmV0dXJuIHZhcmlhbnRzOwotICAgIH0KLQotICAgIGluc3RhbnRpYXRlSW1wbGVtZW50YXRp
b24oZnVuYykKLSAgICB7Ci0gICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoYXJncykgPT4g
ewotICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IEVQdHIobmV3IEVCdWZmZXIodGhpcy5v
dXRwdXRTaXplKSwgMCk7Ci0gICAgICAgICAgICBsZXQgb2Zmc2V0ID0gMDsKLSAgICAgICAgICAg
IGZvciAobGV0IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICAg
IGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5wYXJhbWV0ZXJTaXplc1tpXTsgaisrKQotICAgICAg
ICAgICAgICAgICAgICByZXN1bHQuc2V0KG9mZnNldCsrLCBhcmdzW2ldLmdldChqKSk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9OwotICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uRGF0YSA9IHRoaXM7Ci0gICAgfQotfQpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0J1aWx0aW5WZWN0b3JFcXVhbGl0eU9wZXJhdG9yLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQnVpbHRpblZlY3RvckVxdWFsaXR5T3BlcmF0b3IuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGIxODNkMzU2ODYxOTQxYmMyNzZlNGQzYzY3YzVlNDdlY2FmZTQ3MDku
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRpblZlY3RvckVxdWFsaXR5T3BlcmF0b3IuanMKKysr
IC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgQnVpbHRpblZlY3RvckVxdWFs
aXR5T3BlcmF0b3IgewotICAgIGNvbnN0cnVjdG9yKGJhc2VUeXBlTmFtZSwgc2l6ZSkKLSAgICB7
Ci0gICAgICAgIHRoaXMuX2Jhc2VUeXBlTmFtZSA9IGJhc2VUeXBlTmFtZTsKLSAgICAgICAgdGhp
cy5fc2l6ZSA9IHNpemU7Ci0gICAgfQotCi0gICAgZ2V0IGJhc2VUeXBlTmFtZSgpIHsgcmV0dXJu
IHRoaXMuX2Jhc2VUeXBlTmFtZTsgfQotICAgIGdldCBzaXplKCkgeyByZXR1cm4gdGhpcy5fc2l6
ZTsgfQotCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGBuYXRpdmUgYm9v
bCBvcGVyYXRvcj09KCR7dGhpcy5iYXNlVHlwZU5hbWV9JHt0aGlzLnNpemV9LCR7dGhpcy5iYXNl
VHlwZU5hbWV9JHt0aGlzLnNpemV9KWA7Ci0gICAgfQotCi0gICAgc3RhdGljIGZ1bmN0aW9ucygp
Ci0gICAgewotICAgICAgICBpZiAoIXRoaXMuX2Z1bmN0aW9ucykgewotICAgICAgICAgICAgdGhp
cy5fZnVuY3Rpb25zID0gW107Ci0KLSAgICAgICAgICAgIGZvciAobGV0IHR5cGVOYW1lIG9mIFZl
Y3RvckVsZW1lbnRUeXBlcykgewotICAgICAgICAgICAgICAgIGZvciAobGV0IHNpemUgb2YgVmVj
dG9yRWxlbWVudFNpemVzKQotICAgICAgICAgICAgICAgICAgICB0aGlzLl9mdW5jdGlvbnMucHVz
aChuZXcgQnVpbHRpblZlY3RvckVxdWFsaXR5T3BlcmF0b3IodHlwZU5hbWUsIHNpemUpKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhpcy5fZnVuY3Rpb25zOwot
ICAgIH0KLQotICAgIGluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYykKLSAgICB7Ci0gICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3JlZjEsIHJlZjJdLCBub2RlKSA9PiB7Ci0gICAg
ICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc2l6ZTsgaSsrKSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKHJlZjEuZ2V0KGkpICE9IHJlZjIuZ2V0KGkpKQotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gRVB0ci5ib3goZmFsc2UpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0
dXJuIEVQdHIuYm94KHRydWUpOwotICAgICAgICB9OwotICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uRGF0YSA9IHRoaXM7Ci0gICAgfQotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JHZXR0
ZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9yR2V0dGVy
LmpzCmluZGV4IGMyNTNmNzYzMGVlOWRjNDdjZDFlMTk0NWJjODdmNDJlYWEzY2NiMjguLjQwODcy
YjRmOGUyYmIzYThlNGZmYjI2Mjc1ZDhkODNmZTcyMTgyZjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JHZXR0ZXIuanMKKysrIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRpblZlY3RvckdldHRlci5qcwpAQCAtNjIsOSAr
NjIsOSBAQCBjbGFzcyBCdWlsdGluVmVjdG9yR2V0dGVyIHsKIAogICAgIGluc3RhbnRpYXRlSW1w
bGVtZW50YXRpb24oZnVuYykKICAgICB7Ci0gICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZlY10sIG5vZGUpID0+IHsKKyAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmVjXSkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHZlYy5nZXQodGhpcy5pbmRleCkpOwog
ICAgICAgICB9OwogICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uRGF0YSA9IHRoaXM7CiAgICAg
fQotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JJbmRleEdldHRlci5qcyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JJbmRleEdldHRlci5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjcyNjJmYzljZTI3MzBmMDg3ZDYxNDU1ODc2YjMz
NWZlMDI0YWMzYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9ySW5kZXhHZXR0ZXIu
anMKKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgQnVpbHRpblZlY3Rv
ckluZGV4R2V0dGVyIHsKLSAgICBjb25zdHJ1Y3RvcihiYXNlVHlwZU5hbWUsIHNpemUpCi0gICAg
ewotICAgICAgICB0aGlzLl9iYXNlVHlwZU5hbWUgPSBiYXNlVHlwZU5hbWU7Ci0gICAgICAgIHRo
aXMuX3NpemUgPSBzaXplOwotICAgIH0KLQotICAgIGdldCBiYXNlVHlwZU5hbWUoKSB7IHJldHVy
biB0aGlzLl9iYXNlVHlwZU5hbWU7IH0KLSAgICBnZXQgc2l6ZSgpIHsgcmV0dXJuIHRoaXMuX3Np
emU7IH0KLQotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBgbmF0aXZlICR7
dGhpcy5iYXNlVHlwZU5hbWV9IG9wZXJhdG9yW10oJHt0aGlzLmJhc2VUeXBlTmFtZX0ke3RoaXMu
c2l6ZX0sdWludClgOwotICAgIH0KLQotICAgIHN0YXRpYyBmdW5jdGlvbnMoKQotICAgIHsKLSAg
ICAgICAgaWYgKCF0aGlzLl9hbGxJbmRleEdldHRlcnMpIHsKLSAgICAgICAgICAgIHRoaXMuX2Fs
bEluZGV4R2V0dGVycyA9IFtdOwotCi0gICAgICAgICAgICBmb3IgKGxldCB0eXBlTmFtZSBvZiBW
ZWN0b3JFbGVtZW50VHlwZXMpIHsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBzaXplIG9mIFZl
Y3RvckVsZW1lbnRTaXplcykKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWxsSW5kZXhHZXR0
ZXJzLnB1c2gobmV3IEJ1aWx0aW5WZWN0b3JJbmRleEdldHRlcih0eXBlTmFtZSwgc2l6ZSkpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aGlzLl9hbGxJbmRleEdl
dHRlcnM7Ci0gICAgfQotCi0gICAgaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKQotICAg
IHsKLSAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmVjLCBpbmRleF0sIG5vZGUpID0+
IHsKLSAgICAgICAgICAgIGNvbnN0IGluZGV4VmFsdWUgPSBpbmRleC5sb2FkVmFsdWUoKTsKLSAg
ICAgICAgICAgIGlmIChpbmRleFZhbHVlID49IDAgJiYgaW5kZXhWYWx1ZSA8IHRoaXMuc2l6ZSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3godmVjLmdldChpbmRleC5sb2FkVmFsdWUo
KSkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihg
JHtpbmRleFZhbHVlfSBvdXQgb2YgYm91bmRzIGZvciB2ZWN0b3Igb2Ygc2l6ZSAke3RoaXMuc2l6
ZX1gKTsKLSAgICAgICAgfTsKLSAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbkRhdGEgPSB0aGlz
OwotICAgIH0KLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9ySW5kZXhTZXR0ZXIuanMgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9ySW5kZXhTZXR0ZXIuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJmZTVkNjc4YWI3MDVmZTQwYjdkNjhlOTY5
M2RkOGFmYzRhZGVlOTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRpblZlY3RvckluZGV4U2V0
dGVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIEJ1aWx0aW5W
ZWN0b3JJbmRleFNldHRlciB7Ci0gICAgY29uc3RydWN0b3IoYmFzZVR5cGVOYW1lLCBzaXplKQot
ICAgIHsKLSAgICAgICAgdGhpcy5fYmFzZVR5cGVOYW1lID0gYmFzZVR5cGVOYW1lOwotICAgICAg
ICB0aGlzLl9zaXplID0gc2l6ZTsKLSAgICB9Ci0KLSAgICBnZXQgYmFzZVR5cGVOYW1lKCkgeyBy
ZXR1cm4gdGhpcy5fYmFzZVR5cGVOYW1lOyB9Ci0gICAgZ2V0IHNpemUoKSB7IHJldHVybiB0aGlz
Ll9zaXplOyB9Ci0gICAgZ2V0IGVsZW1lbnROYW1lKCkgeyByZXR1cm4gdGhpcy5fZWxlbWVudE5h
bWU7IH0KLSAgICBnZXQgaW5kZXgoKSB7IHJldHVybiB0aGlzLl9pbmRleDsgfQotCi0gICAgdG9T
dHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGBuYXRpdmUgJHt0aGlzLmJhc2VUeXBlTmFt
ZX0ke3RoaXMuc2l6ZX0gb3BlcmF0b3JbXT0oJHt0aGlzLmJhc2VUeXBlTmFtZX0ke3RoaXMuc2l6
ZX0sdWludCwke3RoaXMuYmFzZVR5cGVOYW1lfSlgOwotICAgIH0KLQotICAgIHN0YXRpYyBmdW5j
dGlvbnMoKQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9mdW5jdGlvbnMpIHsKLSAgICAgICAg
ICAgIHRoaXMuX2Z1bmN0aW9ucyA9IFtdOwotCi0gICAgICAgICAgICBmb3IgKGxldCB0eXBlTmFt
ZSBvZiBWZWN0b3JFbGVtZW50VHlwZXMpIHsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBzaXpl
IG9mIFZlY3RvckVsZW1lbnRTaXplcykKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fZnVuY3Rp
b25zLnB1c2gobmV3IEJ1aWx0aW5WZWN0b3JJbmRleFNldHRlcih0eXBlTmFtZSwgc2l6ZSkpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aGlzLl9mdW5jdGlvbnM7
Ci0gICAgfQotCi0gICAgaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKQotICAgIHsKLSAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbYmFzZSwgaW5kZXgsIHZhbHVlXSwgbm9kZSkg
PT4gewotICAgICAgICAgICAgY29uc3QgaW5kZXhWYWx1ZSA9IGluZGV4LmxvYWRWYWx1ZSgpOwot
ICAgICAgICAgICAgaWYgKGluZGV4VmFsdWUgPj0gMCAmJiBpbmRleFZhbHVlIDwgdGhpcy5zaXpl
KSB7Ci0gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBFUHRyKG5ldyBFQnVmZmVyKHRo
aXMuc2l6ZSksIDApOwotICAgICAgICAgICAgICAgIHJlc3VsdC5jb3B5RnJvbShiYXNlLCB0aGlz
LnNpemUpOwotICAgICAgICAgICAgICAgIHJlc3VsdC5wbHVzKGluZGV4VmFsdWUpLmNvcHlGcm9t
KHZhbHVlLCAxKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2luZGV4VmFsdWV9IG91
dCBvZiBib3VuZHMgZm9yIHZlY3RvciBvZiBzaXplICR7dGhpcy5zaXplfWApOwotICAgICAgICB9
OwotICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uRGF0YSA9IHRoaXM7Ci0gICAgfQotfQpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JTZXR0ZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9CdWlsdGluVmVjdG9yU2V0dGVyLmpzCmluZGV4IGEyZDc2M2I3NTA5OTk3YjI0MTBj
MjRiODAxMzE0YzM0YTNjNDg3YTAuLmQ1NTk1OTFlOTY4NjcxZWY5MDM1OTk2YTNmYjYxNTdlZjk3
YjI1ZWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5W
ZWN0b3JTZXR0ZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRp
blZlY3RvclNldHRlci5qcwpAQCAtNDcsNyArNDcsNyBAQCBjbGFzcyBCdWlsdGluVmVjdG9yU2V0
dGVyIHsKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fZnVuY3Rpb25zKSB7CiAgICAgICAgICAg
ICB0aGlzLl9mdW5jdGlvbnMgPSBbXTsKLSAgICAgICAgCisKICAgICAgICAgICAgIGNvbnN0IGVs
ZW1lbnRzID0gWyAieCIsICJ5IiwgInoiLCAidyIgXTsKIAogICAgICAgICAgICAgZm9yIChsZXQg
dHlwZU5hbWUgb2YgVmVjdG9yRWxlbWVudFR5cGVzKSB7CkBAIC02Miw3ICs2Miw3IEBAIGNsYXNz
IEJ1aWx0aW5WZWN0b3JTZXR0ZXIgewogCiAgICAgaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihm
dW5jKQogICAgIHsKLSAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbYmFzZSwgdmFsdWVd
LCBub2RlKSA9PiB7CisgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2Jhc2UsIHZhbHVl
XSkgPT4gewogICAgICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBFUHRyKG5ldyBFQnVmZmVyKHRo
aXMuc2l6ZSksIDApOwogICAgICAgICAgICAgcmVzdWx0LmNvcHlGcm9tKGJhc2UsIHRoaXMuc2l6
ZSk7CiAgICAgICAgICAgICByZXN1bHQucGx1cyh0aGlzLmluZGV4KS5jb3B5RnJvbSh2YWx1ZSwg
MSk7CkBAIC03MCw0ICs3MCw0IEBAIGNsYXNzIEJ1aWx0aW5WZWN0b3JTZXR0ZXIgewogICAgICAg
ICB9OwogICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uRGF0YSA9IHRoaXM7CiAgICAgfQotfQpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0NhbGxFeHByZXNzaW9uLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanMKaW5kZXggM2IxNTQ1NTk5MmU2NGUyNjc3YmEwYjAz
YWI2NTY4ZWY0M2Q1ZDg2NS4uNWZiZGQ1MDVmNzlkNGIzMjZlMDkzZTBmYjc2Y2QzNzVkMGEyYzVi
YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Np
b24uanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24u
anMKQEAgLTUyLDE5ICs1MiwyMiBAQCBjbGFzcyBDYWxsRXhwcmVzc2lvbiBleHRlbmRzIEV4cHJl
c3Npb24gewogCiAgICAgcmVzb2x2ZShwb3NzaWJsZU92ZXJsb2FkcywgcHJvZ3JhbSkKICAgICB7
Ci0gICAgICAgIGlmICghcG9zc2libGVPdmVybG9hZHMpCi0gICAgICAgICAgICB0aHJvdyBuZXcg
V1R5cGVFcnJvcih0aGlzLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJEaWQgbm90IGZpbmQgYW55IGZ1
bmN0aW9ucyBuYW1lZCAiICsgdGhpcy5uYW1lKTsKLQogICAgICAgICBsZXQgZmFpbHVyZXMgPSBb
XTsKLSAgICAgICAgbGV0IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbChwb3NzaWJsZU92
ZXJsb2FkcywgdGhpcy5hcmd1bWVudFR5cGVzLCB0aGlzLnJldHVyblR5cGUpOworICAgICAgICBs
ZXQgb3ZlcmxvYWQ7CisgICAgICAgIGlmIChwb3NzaWJsZU92ZXJsb2FkcykKKyAgICAgICAgICAg
IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbChwb3NzaWJsZU92ZXJsb2FkcywgdGhpcy5h
cmd1bWVudFR5cGVzLCB0aGlzLnJldHVyblR5cGUpOwogCi0gICAgICAgIGlmICghb3ZlcmxvYWQu
ZnVuYykgeworICAgICAgICBpZiAoIW92ZXJsb2FkIHx8ICFvdmVybG9hZC5mdW5jKSB7CisgICAg
ICAgICAgICBpZiAoIW92ZXJsb2FkKQorICAgICAgICAgICAgICAgIG92ZXJsb2FkID0ge307CiAg
ICAgICAgICAgICBjb25zdCBmdW5jID0gdGhpcy5fcmVzb2x2ZUJ5SW5zdGFudGlhdGlvbihwcm9n
cmFtKTsKICAgICAgICAgICAgIGlmIChmdW5jKQogICAgICAgICAgICAgICAgIG92ZXJsb2FkLmZ1
bmMgPSBmdW5jOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFvdmVybG9hZC5mdW5jKSB7Cisg
ICAgICAgICAgICBpZiAoIW92ZXJsb2FkLmZhaWx1cmVzKQorICAgICAgICAgICAgICAgIG92ZXJs
b2FkLmZhaWx1cmVzID0gW107CiAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKC4uLm92ZXJsb2Fk
LmZhaWx1cmVzKTsKICAgICAgICAgICAgIGxldCBtZXNzYWdlID0gIkRpZCBub3QgZmluZCBmdW5j
dGlvbiBuYW1lZCAiICsgdGhpcy5uYW1lICsgIiBmb3IgY2FsbCB3aXRoICI7CiAgICAgICAgICAg
ICBtZXNzYWdlICs9ICJhcmd1bWVudCB0eXBlcyAoIiArIHRoaXMuYXJndW1lbnRUeXBlcyArICIp
IjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrVHlwZXNX
aXRoQXJndW1lbnRzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tUeXBl
c1dpdGhBcmd1bWVudHMuanMKaW5kZXggYmI2YjJiZDQ5OGU3N2IxNDlkZjRjNjhmNGVmM2FjMWZm
MWNkYWFiMi4uMmY2OTE0MmEzNTE3ZDI5NDkwMDUzMGMwY2YwNjZjOWJmZDIyNzdhZiAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tUeXBlc1dpdGhBcmd1bWVu
dHMuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tUeXBlc1dpdGhB
cmd1bWVudHMuanMKQEAgLTI5LDggKzI5LDIwIEBAIGZ1bmN0aW9uIGNoZWNrVHlwZXNXaXRoQXJn
dW1lbnRzKHByb2dyYW0pCiAgICAgY2xhc3MgVHlwZVdpdGhBcmd1bWVudHNDaGVja2VyIGV4dGVu
ZHMgVmlzaXRvciB7CiAgICAgICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAgICAgICB7Ci0gICAg
ICAgICAgICBpZiAobm9kZS5uYW1lID09ICJ2ZWN0b3IiICYmIG5vZGUudHlwZUFyZ3VtZW50cy5s
ZW5ndGggPT0gMCkKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJ1aWx0aW4gdHlw
ZSAke25vZGUubmFtZX0gc2hvdWxkIGFsd2F5cyBoYXZlIHR5cGUgYXJndW1lbnRzLiIpOworICAg
ICAgICAgICAgaWYgKChub2RlLm5hbWUgPT0gInZlY3RvciIgJiYgbm9kZS50eXBlQXJndW1lbnRz
Lmxlbmd0aCAhPSAyKQorICAgICAgICAgICAgICAgIHx8IChub2RlLm5hbWUgPT0gIm1hdHJpeCIg
JiYgbm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCAhPSAzKQorICAgICAgICAgICAgICAgIHx8IChu
b2RlLm5hbWUgPT0gIlRleHR1cmUxRCIgJiYgbm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCAhPSAx
KQorICAgICAgICAgICAgICAgIHx8IChub2RlLm5hbWUgPT0gIlJXVGV4dHVyZTFEIiAmJiBub2Rl
LnR5cGVBcmd1bWVudHMubGVuZ3RoICE9IDEpCisgICAgICAgICAgICAgICAgfHwgKG5vZGUubmFt
ZSA9PSAiVGV4dHVyZTFEQXJyYXkiICYmIG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gMSkK
KyAgICAgICAgICAgICAgICB8fCAobm9kZS5uYW1lID09ICJSV1RleHR1cmUxREFycmF5IiAmJiBu
b2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoICE9IDEpCisgICAgICAgICAgICAgICAgfHwgKG5vZGUu
bmFtZSA9PSAiVGV4dHVyZTJEIiAmJiBub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoICE9IDEpCisg
ICAgICAgICAgICAgICAgfHwgKG5vZGUubmFtZSA9PSAiUldUZXh0dXJlMkQiICYmIG5vZGUudHlw
ZUFyZ3VtZW50cy5sZW5ndGggIT0gMSkKKyAgICAgICAgICAgICAgICB8fCAobm9kZS5uYW1lID09
ICJUZXh0dXJlMkRBcnJheSIgJiYgbm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCAhPSAxKQorICAg
ICAgICAgICAgICAgIHx8IChub2RlLm5hbWUgPT0gIlJXVGV4dHVyZTJEQXJyYXkiICYmIG5vZGUu
dHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gMSkKKyAgICAgICAgICAgICAgICB8fCAobm9kZS5uYW1l
ID09ICJUZXh0dXJlM0QiICYmIG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gMSkKKyAgICAg
ICAgICAgICAgICB8fCAobm9kZS5uYW1lID09ICJSV1RleHR1cmUzRCIgJiYgbm9kZS50eXBlQXJn
dW1lbnRzLmxlbmd0aCAhPSAxKQorICAgICAgICAgICAgICAgIHx8IChub2RlLm5hbWUgPT0gIlRl
eHR1cmVDdWJlIiAmJiBub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoICE9IDEpKQorICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcihgQnVpbHRpbiB0eXBlICR7bm9kZS5uYW1lfSBzaG91bGQg
YWx3YXlzIGhhdmUgdHlwZSBhcmd1bWVudHMuYCk7CiAgICAgICAgIH0KICAgICB9CiAgICAgcHJv
Z3JhbS52aXNpdChuZXcgVHlwZVdpdGhBcmd1bWVudHNDaGVja2VyKCkpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qcyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0NoZWNrZXIuanMKaW5kZXggYzY5ZDU1NDliYWQ5M2RiZDI0M2ZhNjY5
M2M4NmYwYjU5OTc4Y2M1OS4uNWY1OThiMmVlNzUyMmJiYzgxMDU0NWM5NDhkNzczZjJlNGY5OTQ3
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qcwor
KysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzCkBAIC0yNjMsNiAr
MjYzLDcgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgIHZpc2l0VmVjdG9y
VHlwZShub2RlKQogICAgIHsKICAgICAgICAgbm9kZS5lbGVtZW50VHlwZS52aXNpdCh0aGlzKTsK
KyAgICAgICAgbm9kZS5udW1FbGVtZW50cy52aXNpdCh0aGlzKTsKIAogICAgICAgICBsZXQgaXNL
bm93bkFsbG93ZWRWZWN0b3JFbGVtZW50VHlwZSA9IGZhbHNlOwogICAgICAgICBmb3IgKGxldCB2
ZWN0b3JFbGVtZW50VHlwZU5hbWUgb2YgVmVjdG9yRWxlbWVudFR5cGVzKSB7CkBAIC0yNzcsNiAr
Mjc4LDMzIEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKIAogICAgICAgICBpZiAo
IWlzS25vd25BbGxvd2VkVmVjdG9yRWxlbWVudFR5cGUpCiAgICAgICAgICAgICB0aHJvdyBuZXcg
V1R5cGVFcnJvcihgJHtub2RlLmVsZW1lbnRUeXBlfSBpcyBub3QgYSBwZXJtaXR0ZWQgdmVjdG9y
IGVsZW1lbnQgdHlwZS5gKTsKKyAgICAgICAgaWYgKG5vZGUubnVtRWxlbWVudHNWYWx1ZSAhPSAy
ICYmIG5vZGUubnVtRWxlbWVudHNWYWx1ZSAhPSAzICYmIG5vZGUubnVtRWxlbWVudHNWYWx1ZSAh
PSA0KQorICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoYCR7bm9kZS50b1N0cmluZygp
fTogJHtub2RlLm51bUVsZW1lbnRzVmFsdWV9IGlzIG5vdCAyLCAzLCBvciA0LmApOworICAgIH0K
KworICAgIHZpc2l0TWF0cml4VHlwZShub2RlKQorICAgIHsKKyAgICAgICAgbm9kZS5lbGVtZW50
VHlwZS52aXNpdCh0aGlzKTsKKyAgICAgICAgbm9kZS5udW1Sb3dzLnZpc2l0KHRoaXMpOworICAg
ICAgICBub2RlLm51bUNvbHVtbnMudmlzaXQodGhpcyk7CisKKyAgICAgICAgbGV0IGlzS25vd25B
bGxvd2VkVmVjdG9yRWxlbWVudFR5cGUgPSBmYWxzZTsKKyAgICAgICAgZm9yIChsZXQgZWxlbWVu
dFR5cGVOYW1lIG9mIFsiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICBjb25zdCBlbGVt
ZW50VHlwZSA9IHRoaXMuX3Byb2dyYW0uZ2xvYmFsTmFtZUNvbnRleHQuZ2V0KFR5cGUsIGVsZW1l
bnRUeXBlTmFtZSk7CisgICAgICAgICAgICBpZiAoIWVsZW1lbnRUeXBlKQorICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBXVHlwZUVycm9yKGAke2VsZW1lbnRUeXBlTmFtZX0gaXMgbm90IGEga25v
d24gbmF0aXZlIHR5cGUgaW4gdGhlIHN0YW5kYXJkIGxpYnJhcnkgb3IgaW50cmluc2ljcy5gKTsK
KyAgICAgICAgICAgIGlmIChlbGVtZW50VHlwZS5lcXVhbHMobm9kZS5lbGVtZW50VHlwZSkpIHsK
KyAgICAgICAgICAgICAgICBpc0tub3duQWxsb3dlZFZlY3RvckVsZW1lbnRUeXBlID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAg
ICAgIGlmICghaXNLbm93bkFsbG93ZWRWZWN0b3JFbGVtZW50VHlwZSkKKyAgICAgICAgICAgIHRo
cm93IG5ldyBXVHlwZUVycm9yKGAke25vZGUuZWxlbWVudFR5cGV9IGlzIG5vdCBhIHBlcm1pdHRl
ZCB2ZWN0b3IgZWxlbWVudCB0eXBlLmApOworICAgICAgICBpZiAobm9kZS5udW1Sb3dzVmFsdWUg
IT0gMiAmJiBub2RlLm51bVJvd3NWYWx1ZSAhPSAzICYmIG5vZGUubnVtUm93c1ZhbHVlICE9IDQp
CisgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihgJHtub2RlLnRvU3RyaW5nKCl9OiAk
e25vZGUubnVtUm93c1ZhbHVlfSBpcyBub3QgMiwgMywgb3IgNC5gKTsKKyAgICAgICAgaWYgKG5v
ZGUubnVtQ29sdW1uc1ZhbHVlICE9IDIgJiYgbm9kZS5udW1Db2x1bW5zVmFsdWUgIT0gMyAmJiBu
b2RlLm51bUNvbHVtbnNWYWx1ZSAhPSA0KQorICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJy
b3IoYCR7bm9kZS50b1N0cmluZygpfTogJHtub2RlLm51bUNvbHVtbnNWYWx1ZX0gaXMgbm90IDIs
IDMsIG9yIDQuYCk7CiAgICAgfQogICAgIAogICAgIHZpc2l0QXJyYXlUeXBlKG5vZGUpCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJGb2xkZXIuanMg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJGb2xkZXIuanMKaW5kZXgg
NTQ1MTMzMmQ3ZjEwYzQ5NWNlZTk0ZjYxMzk2NDU4NzhhYmIwNzFkMi4uMzZlNWY2ZjM1ZTU3OTEw
NzMzOWFiMzBiMjgzODA4ZDNkN2NmMWUwYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvQ29uc3RleHByRm9sZGVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0NvbnN0ZXhwckZvbGRlci5qcwpAQCAtMzUsOSArMzUsOSBAQCBjbGFzcyBDb25z
dGV4cHJGb2xkZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgCiAgICAgICAgIGlmIChub2Rl
Lm5hbWUgPT0gIm9wZXJhdG9yLSIKICAgICAgICAgICAgICYmIG5vZGUuYXJndW1lbnRMaXN0Lmxl
bmd0aCA9PSAxCi0gICAgICAgICAgICAmJiBub2RlLmFyZ3VtZW50TGlzdFswXS51bmlmeU5vZGUu
aXNDb25zdGV4cHIKLSAgICAgICAgICAgICYmIG5vZGUuYXJndW1lbnRMaXN0WzBdLnVuaWZ5Tm9k
ZS5uZWdDb25zdGV4cHIpIHsKLSAgICAgICAgICAgIG5vZGUuYmVjb21lKG5vZGUuYXJndW1lbnRM
aXN0WzBdLnVuaWZ5Tm9kZS5uZWdDb25zdGV4cHIobm9kZS5vcmlnaW4pKTsKKyAgICAgICAgICAg
ICYmIG5vZGUuYXJndW1lbnRMaXN0WzBdLmlzTGl0ZXJhbAorICAgICAgICAgICAgJiYgbm9kZS5h
cmd1bWVudExpc3RbMF0ubmVnQ29uc3RleHByKSB7CisgICAgICAgICAgICBub2RlLmJlY29tZShu
b2RlLmFyZ3VtZW50TGlzdFswXS5uZWdDb25zdGV4cHIobm9kZS5vcmlnaW4pKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0V2YWx1YXRvci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0V2YWx1YXRvci5qcwppbmRleCAwMjkwZGUyM2Q0NDFhYTJmM2E4YzEzMjkwZjIxZjFmY2Nh
NmQyYzdkLi5hZWUwYTIzMTJmZWQ3MmMwYzg3ZTczZjE4YWMzNDhlYTFhYzNjN2JhIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FdmFsdWF0b3IuanMKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRXZhbHVhdG9yLmpzCkBAIC0xNDgsNyArMTQ4LDYg
QEAgY2xhc3MgRXZhbHVhdG9yIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIGlmIChub2RlLnBy
ZWRpY2F0ZS52aXNpdCh0aGlzKS5sb2FkVmFsdWUoKSkKICAgICAgICAgICAgIHJldHVybiBub2Rl
LmJvZHlFeHByZXNzaW9uLnZpc2l0KHRoaXMpOwogICAgICAgICByZXR1cm4gbm9kZS5lbHNlRXhw
cmVzc2lvbi52aXNpdCh0aGlzKTsKLSAgICAgICAgCiAgICAgfQogICAgIAogICAgIHZpc2l0VmFy
aWFibGVSZWYobm9kZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0ZsYXR0ZW5lZFN0cnVjdE9mZnNldEdhdGhlcmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvRmxhdHRlbmVkU3RydWN0T2Zmc2V0R2F0aGVyZXIuanMKaW5kZXggNTNjODcxNmM0
NTA0NmY4N2ZjNGY2Y2Q1M2ZhOWY3YTQyYzUzZTE2NS4uMjczOWQ3YmY3ZmE0OTYyYzc3NWYyOGM3
OWNlNTg0NThiZmQ0YThlOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvRmxhdHRlbmVkU3RydWN0T2Zmc2V0R2F0aGVyZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvRmxhdHRlbmVkU3RydWN0T2Zmc2V0R2F0aGVyZXIuanMKQEAgLTczLDUg
KzczLDE3IEBAIGNsYXNzIEZsYXR0ZW5lZFN0cnVjdE9mZnNldEdhdGhlcmVyIGV4dGVuZHMgVmlz
aXRvciB7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfQogICAgIH0KKworICAgIHZpc2l0TWF0
cml4VHlwZShub2RlKQorICAgIHsKKyAgICAgICAgY29uc3QgZmllbGROYW1lcyA9IFsgInJvdzAi
LCAicm93MSIsICJyb3cyIiwgInJvdzMiIF07CisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
bm9kZS5udW1Sb3dzVmFsdWU7IGkrKykgeworICAgICAgICAgICAgdGhpcy5fcmVzdWx0LnB1c2go
eworICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuX25hbWUuam9pbigiLiIpICsgIi4iICsgZmll
bGROYW1lc1tpXSwKKyAgICAgICAgICAgICAgICBvZmZzZXQ6IHRoaXMuX29mZnNldCArIGkgKiBu
b2RlLmVsZW1lbnRUeXBlLnNpemUgKiBub2RlLm51bUNvbHVtbnNWYWx1ZSwKKyAgICAgICAgICAg
ICAgICB0eXBlOiBub2RlLmVsZW1lbnRUeXBlLm5hbWUgKyBub2RlLm51bUNvbHVtbnNWYWx1ZS50
b1N0cmluZygpCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxvYXRMaXRlcmFsVHlwZS5qcyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Zsb2F0TGl0ZXJhbFR5cGUuanMKaW5kZXgg
ZjdiYjdmMmM4YjAwY2IzODA2Y2M1NmE1ZDI1ZDhmZTA1Mzg3M2NkOS4uNjBlY2U0MTVjNjkzMzU3
ZGIxYmVhZjdlNjUxMDQ3NTI3ODAxYWVjOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvRmxvYXRMaXRlcmFsVHlwZS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWxUeXBlLmpzCkBAIC0zMiw4ICszMiw3IEBAIGxldCBGbG9h
dExpdGVyYWxUeXBlID0gY3JlYXRlTGl0ZXJhbFR5cGUoewogICAgICAgICBsZXQgcmVhbFRoaXMg
PSB1bmlmaWNhdGlvbkNvbnRleHQuZmluZCh0aGlzKTsKICAgICAgICAgaWYgKCFyZWFsVGhpcy5p
c0Zsb2F0aW5nKQogICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJD
YW5ub3QgdXNlIGZsb2F0IGxpdGVyYWwgd2l0aCBub24tZmxvYXRpbmcgdHlwZSAiICsgcmVhbFRo
aXN9OwotICAgICAgICBpZiAoIXJlYWxUaGlzLmNhblJlcHJlc2VudCh0aGlzLnZhbHVlKSkKLSAg
ICAgICAgICAgIHJldHVybiB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiRmxvYXQgbGl0ZXJhbCAi
ICsgdGhpcy52YWx1ZSArICIgZG9lcyBub3QgZml0IGluIHR5cGUgIiArIHJlYWxUaGlzfTsKKyAg
ICAgICAgLy8gRmxvYXRzIGNhbiByZXByZXNlbnQgYW55IG51bWJlci4KICAgICAgICAgcmV0dXJu
IHtyZXN1bHQ6IHRydWV9OwogICAgIH0KIH0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0ludHJpbnNpY3MuanMKaW5kZXggNzIyOTA2MzI5ODJlZTEwODQxMmU4OGIwODgyZTQxY2U4
NWE3MzAxZC4uMThkZWM5OGUwMjE1ZGFkNmRmNjFjOGJiZjdmOGYyYmEwZjE0NTk5ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcworKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCkBAIC0zMTYsOTAgKzMx
NiwyNDIgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAor
ICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFsiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAg
ICBmb3IgKGxldCBoZWlnaHQgPSAyOyBoZWlnaHQgPD0gNDsgKytoZWlnaHQpIHsKKyAgICAgICAg
ICAgICAgICBmb3IgKGxldCB3aWR0aCA9IDI7IHdpZHRoIDw9IDQ7ICsrd2lkdGgpIHsKKyAgICAg
ICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldChgbmF0aXZlIHR5cGVkZWYgbWF0cml4PCR7dHlw
ZX0sICR7aGVpZ2h0fSwgJHt3aWR0aH0+YCwgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICB0aGlzW2BtYXRyaXg8JHt0eXBlfSwgJHtoZWlnaHR9LCAke3dpZHRofT5gXSA9IHR5cGU7
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0
aXZlIG9wZXJhdG9yIGludCh1aW50KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVl
LmxvYWRWYWx1ZSgpIHwgMCk7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICJuYXRpdmUg
dHlwZWRlZiBzYW1wbGVyIiwKKyAgICAgICAgICAgIHR5cGUgPT4geworICAgICAgICAgICAgICAg
IHRoaXMuc2FtcGxlciA9IHR5cGU7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IEZpZ3VyZSBv
dXQgd2hhdCB0byBwdXQgaGVyZS4KKyAgICAgICAgICAgIH0pOworCisgICAgICAgIGZvciAobGV0
IHRleHR1cmVUeXBlIG9mIFsiVGV4dHVyZTFEIiwgIlJXVGV4dHVyZTFEIiwgIlRleHR1cmUxREFy
cmF5IiwgIlJXVGV4dHVyZTFEQXJyYXkiLCAiVGV4dHVyZTJEIiwgIlJXVGV4dHVyZTJEIiwgIlRl
eHR1cmUyREFycmF5IiwgIlJXVGV4dHVyZTJEQXJyYXkiLCAiVGV4dHVyZTNEIiwgIlJXVGV4dHVy
ZTNEIiwgIlRleHR1cmVDdWJlIl0pIHsKKyAgICAgICAgICAgIGZvciAobGV0IHR5cGVBcmd1bWVu
dCBvZiBbImJvb2wiLCAidWNoYXIiLCAidXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9ydCIs
ICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7
dHlwZUFyZ3VtZW50fT5gLAorICAgICAgICAgICAgICAgICAgICB0eXBlID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gXSA9
IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAg
ICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNl
dCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIHt9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDI7IGkgPD0gNDsgKytpKSB7CisgICAgICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
IHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9JHtpfT5gLAorICAgICAgICAg
ICAgICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp
c1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9JHtpfT5gXSA9IHR5cGU7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBi
dWZmZXIuc2V0KG9mZnNldCwge30pOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChs
ZXQgdGV4dHVyZVR5cGUgb2YgWyJUZXh0dXJlRGVwdGgyRCIsICJSV1RleHR1cmVEZXB0aDJEIiwg
IlRleHR1cmVEZXB0aDJEQXJyYXkiLCAiUldUZXh0dXJlRGVwdGgyREFycmF5IiwgIlRleHR1cmVE
ZXB0aEN1YmUiXSkgeworICAgICAgICAgICAgZm9yIChsZXQgdHlwZUFyZ3VtZW50IG9mIFsiZmxv
YXQiLCAiaGFsZiJdKSB7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50
fT5gLAorICAgICAgICAgICAgICAgICAgICB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gXSA9IHR5cGU7CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAg
Zm9yIChsZXQgcHJpbWl0aXZlVHlwZSBvZiBbInVzaG9ydCIsICJ1aW50IiwgImNoYXIiLCAic2hv
cnQiLCAiaW50IiwgImhhbGYiLCAiZmxvYXQiXSkgeworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIG9wZXJhdG9yIHVjaGFyKCR7cHJpbWl0aXZlVHlw
ZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUo
KSAmIDB4ZmYpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgZm9y
IChsZXQgcHJpbWl0aXZlVHlwZSBvZiBbInVjaGFyIiwgInVpbnQiLCAiY2hhciIsICJzaG9ydCIs
ICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgdXNob3J0KCR7cHJpbWl0aXZlVHlwZX0p
YCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSAm
IDB4ZmZmZik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBmb3Ig
KGxldCBwcmltaXRpdmVUeXBlIG9mIFsidWNoYXIiLCAidXNob3J0IiwgImNoYXIiLCAic2hvcnQi
LCAiaW50IiwgImhhbGYiLCAiZmxvYXQiXSkgeworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlIG9wZXJhdG9yIHVpbnQoJHtwcmltaXRpdmVUeXBlfSlg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpID4+
PiAwKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0
IHByaW1pdGl2ZVR5cGUgb2YgWyJ1Y2hhciIsICJ1c2hvcnQiLCAidWludCIsICJzaG9ydCIsICJp
bnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgY2hhcigke3ByaW1pdGl2ZVR5cGV9KWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdChJbnQ4QXJyYXksIHZhbHVlLmxv
YWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBm
b3IgKGxldCBwcmltaXRpdmVUeXBlIG9mIFsidWNoYXIiLCAidXNob3J0IiwgInVpbnQiLCAiY2hh
ciIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3Igc2hvcnQoJHtwcmltaXRpdmVUeXBl
fSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3QoSW50MTZBcnJheSwg
dmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisg
ICAgICAgIGZvciAobGV0IHByaW1pdGl2ZVR5cGUgb2YgWyJ1Y2hhciIsICJ1c2hvcnQiLCAidWlu
dCIsICJjaGFyIiwgInNob3J0IiwgImhhbGYiLCAiZmxvYXQiXSkgeworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIG9wZXJhdG9yIGludCgke3ByaW1p
dGl2ZVR5cGV9KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdChJbnQz
MkFycmF5LCB2YWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICB9CisKKyAgICAgICAgZm9yIChsZXQgcHJpbWl0aXZlVHlwZSBvZiBbInVjaGFyIiwgInVzaG9y
dCIsICJ1aW50IiwgImNoYXIiLCAic2hvcnQiLCAiaW50IiwgImZsb2F0Il0pIHsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciBoYWxm
KCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChj
YXN0VG9IYWxmKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0KKworICAgICAgICBmb3IgKGxldCBwcmltaXRpdmVUeXBlIG9mIFsidWNoYXIiLCAidXNo
b3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9ydCIsICJpbnQiLCAiaGFsZiJdKSB7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgZmxv
YXQoJHtwcmltaXRpdmVUeXBlfSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94
KE1hdGguZnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0KIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBv
cGVyYXRvciBpbnQodWNoYXIpIiwKKyAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgaW50KGF0
b21pY19pbnQpYCwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkg
fCAwKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+
IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAg
IHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIG9wZXJhdG9yIGludChmbG9hdCki
LAorICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciB1aW50KGF0b21pY191aW50KWAsCiAgICAg
ICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpIHwgMCk7CisgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5s
b2FkVmFsdWUoKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAot
ICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvciB1aW50KGludCkiLAorICAgICAgICAgICAgIm5h
dGl2ZSBib29sIG9wZXJhdG9yPT0oYm9vbCxib29sKSIsCiAgICAgICAgICAgICBmdW5jID0+IHsK
LSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIu
Ym94KHZhbHVlLmxvYWRWYWx1ZSgpID4+PiAwKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KGxlZnQubG9hZFZhbHVlKCkgPT0gcmlnaHQubG9hZFZhbHVlKCkpOwogICAgICAgICAgICAg
fSk7CiAKKyAgICAgICAgZm9yIChsZXQgcHJpbWl0aXZlVHlwZSBvZiBbInVpbnQiLCAiaW50Iiwg
ImZsb2F0Il0pIHsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSBib29sIG9wZXJhdG9yPT0oJHtwcmltaXRpdmVUeXBlfSwke3ByaW1pdGl2ZVR5cGV9
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAgICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPT0gcmlnaHQubG9hZFZhbHVlKCkpOworICAg
ICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgYm9vbCBvcGVyYXRvcjwoJHtwcmltaXRpdmVUeXBlfSwke3ByaW1pdGl2
ZVR5cGV9KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAgICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPCByaWdodC5sb2FkVmFsdWUoKSk7
CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSBib29sIG9wZXJhdG9yPD0oJHtwcmltaXRpdmVUeXBlfSwke3By
aW1pdGl2ZVR5cGV9KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAgICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPD0gcmlnaHQubG9hZFZh
bHVlKCkpOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgYm9vbCBvcGVyYXRvcj4oJHtwcmltaXRpdmVUeXBl
fSwke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAg
ICAgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPiByaWdodC5s
b2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSBib29sIG9wZXJhdG9yPj0oJHtwcmltaXRp
dmVUeXBlfSwke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KKyAgICAgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPj0g
cmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9CisKICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3IgdWludCh1
Y2hhcikiLAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3ItKGludCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
dmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSA+Pj4gMCk7CisgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAg
ICAgICBFUHRyLmJveCgoLXZhbHVlLmxvYWRWYWx1ZSgpKSB8IDApOwogICAgICAgICAgICAgfSk7
CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3Ig
dWludChmbG9hdCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvci0oZmxvYXQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgPj4+IDApOwor
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoLXZhbHVlLmxvYWRWYWx1ZSgpKSk7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAg
Im5hdGl2ZSBvcGVyYXRvciB1Y2hhcihpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgaW50IG9w
ZXJhdG9yKyhpbnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRW
YWx1ZSgpICYgMHhmZik7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
bGVmdCwgcmlnaHRdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2Fk
VmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwogICAgICAgICAgICAgfSk7CiAKICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3IgdWNoYXIo
dWludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3ItKGludCxpbnQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgJiAweGZmKTsKKyAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CisgICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZh
bHVlKCkpIHwgMCk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAot
ICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvciB1Y2hhcihmbG9hdCkiLAorICAgICAgICAgICAg
Im5hdGl2ZSBpbnQgb3BlcmF0b3IqKGludCxpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewot
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5i
b3godmFsdWUubG9hZFZhbHVlKCkgJiAweGZmKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KChsZWZ0LmxvYWRWYWx1ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CiAgICAgICAg
ICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBv
cGVyYXRvciBmbG9hdChpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yLyhp
bnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KE1hdGguZnJvdW5kKHZhbHVlLmxv
YWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFs
dWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwogICAgICAgICAgICAgfSk7CiAKICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3IgZmxvYXQodWlu
dCkiLAorICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yKyh1aW50LHVpbnQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goTWF0aC5mcm91bmQodmFsdWUubG9hZFZhbHVlKCkpKTsK
KyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICsgcmlnaHQu
bG9hZFZhbHVlKCkpID4+PiAwKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21h
cC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIG9wZXJhdG9yIGZsb2F0KHVjaGFyKSIsCisgICAg
ICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3ItKHVpbnQsdWludCkiLAogICAgICAgICAgICAg
ZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVd
KSA9PiBFUHRyLmJveChNYXRoLmZyb3VuZCh2YWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUo
KSkgPj4+IDApOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAg
ICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yKyhpbnQsaW50KSIsCisgICAgICAgICAgICAi
bmF0aXZlIHVpbnQgb3BlcmF0b3IqKHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7
CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9
PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSArIHJpZ2h0
LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5s
b2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CiAgICAgICAgICAgICB9KTsK
IAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJh
dG9yKyh1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvci8odWlu
dCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICsgcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAg
ICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2Fk
VmFsdWUoKSkgPj4+IDApOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKQEAgLTQxMCw2NyArNTYyLDY1IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAg
fSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgaW50IG9w
ZXJhdG9yLShpbnQsaW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yLShm
bG9hdCxmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAtIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgp
IC0gcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMu
X21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3ItKHVpbnQsdWludCki
LAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvciooZmxvYXQsZmxvYXQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQu
bG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAg
ICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpICogcmlnaHQubG9hZFZh
bHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAg
ICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yLShmbG9hdCxmbG9hdCkiLAorICAgICAgICAg
ICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvci8oZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1
bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJp
Z2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQobGVmdC5s
b2FkVmFsdWUoKSAtIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkp
OwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAg
ICJuYXRpdmUgaW50IG9wZXJhdG9yKihpbnQsaW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGlu
dCBvcGVyYXRvciYoaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0Lmxv
YWRWYWx1ZSgpKSB8IDApOwotICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgorICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwog
ICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJu
YXRpdmUgdWludCBvcGVyYXRvcioodWludCx1aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGlu
dCBvcGVyYXRvcnwoaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgp
KSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgp
IHwgcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0
aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvciooZmxvYXQs
ZmxvYXQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yXihpbnQsaW50KSIsCiAg
ICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGgu
ZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5sb2FkVmFsdWUoKSkpOworICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSBeIHJpZ2h0LmxvYWRWYWx1ZSgp
KSB8IDApOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAg
ICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yLyhpbnQsaW50KSIsCisgICAgICAgICAgICAibmF0
aXZlIGludCBvcGVyYXRvcn4oaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAg
ICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9hZFZhbHVl
KCkpIHwgMCk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVd
KSA9PiBFUHRyLmJveCgofnZhbHVlLmxvYWRWYWx1ZSgpKSB8IDApOwogICAgICAgICAgICAgfSk7
CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVy
YXRvci8odWludCx1aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcjw8KGlu
dCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAg
ICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgPDwgcmlnaHQubG9h
ZFZhbHVlKCkpIHwgMCk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0
KAotICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3ImKGludCxpbnQpIiwKKyAgICAgICAg
ICAgICJuYXRpdmUgaW50IG9wZXJhdG9yPj4oaW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMg
PT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0
XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSAmIHJp
Z2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9h
ZFZhbHVlKCkgPj4gcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CiAgICAgICAgICAgICB9KTsKIAog
ICAgICAgICB0aGlzLl9tYXAuc2V0KApAQCAtNDgxLDIyMyArNjMxLDMzMiBAQCBjbGFzcyBJbnRy
aW5zaWNzIHsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAg
ICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcnwoaW50LGludCkiLAorICAgICAgICAgICAgIm5h
dGl2ZSB1aW50IG9wZXJhdG9yfCh1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewog
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSB8IHJpZ2h0Lmxv
YWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVl
KCkgfCByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOwogICAgICAgICAgICAgfSk7CiAKICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcnwodWlu
dCx1aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3JeKHVpbnQsdWludCki
LAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgo
bGVmdC5sb2FkVmFsdWUoKSB8IHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmlnaHQubG9hZFZhbHVlKCkp
ID4+PiAwKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAg
ICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcl4oaW50LGludCkiLAorICAgICAgICAgICAgIm5h
dGl2ZSB1aW50IG9wZXJhdG9yfih1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgXiByaWdodC5sb2FkVmFs
dWUoKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PiBFUHRyLmJveCgofnZhbHVlLmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CiAgICAgICAgICAgICB9KTsK
IAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJh
dG9yXih1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcjw8KHVp
bnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSBeIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7Cisg
ICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIDw8IHJpZ2h0Lmxv
YWRWYWx1ZSgpKSA+Pj4gMCk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAu
c2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3I8PChpbnQsdWludCkiLAorICAg
ICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yPj4odWludCx1aW50KSIsCiAgICAgICAgICAg
ICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0
LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVl
KCkgPDwgcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgo
bGVmdC5sb2FkVmFsdWUoKSA+Pj4gcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKICAgICAgICAg
ICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIHVp
bnQgb3BlcmF0b3I8PCh1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgY29z
KGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIDw8IHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7Cisg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmNvcyh2YWx1ZS5sb2FkVmFs
dWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAg
ICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcj4+KGludCx1aW50KSIsCisgICAgICAgICAgICAi
bmF0aXZlIGZsb2F0IHNpbihmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID4+IHJpZ2h0LmxvYWRWYWx1
ZSgpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguc2luKHZhbHVl
LmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcj4+KHVpbnQsdWludCkiLAorICAg
ICAgICAgICAgIm5hdGl2ZSBmbG9hdCB0YW4oZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4g
ewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA+Pj4gcmln
aHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0
aC50YW4odmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0
aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3J+KGludCkiLAor
ICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBhY29zKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5j
ID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+
IEVQdHIuYm94KH52YWx1ZS5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChN
YXRoLmZyb3VuZChNYXRoLmFjb3ModmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9
KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9w
ZXJhdG9yfih1aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGFzaW4oZmxvYXQpIiwK
ICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goKH52YWx1ZS5sb2FkVmFsdWUoKSkgPj4+IDApOwor
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5hc2luKHZhbHVlLmxvYWRW
YWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAg
ICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3IvKGZsb2F0LGZsb2F0KSIsCisgICAgICAg
ICAgICAibmF0aXZlIGZsb2F0IGF0YW4oZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewot
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQobGVmdC5sb2FkVmFsdWUo
KSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZy
b3VuZChNYXRoLmF0YW4odmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAog
ICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9y
PT0oaW50LGludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBjb3NoKGZsb2F0KSIsCiAg
ICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQu
bG9hZFZhbHVlKCkgPT0gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goTWF0aC5mcm91bmQoTWF0aC5jb3NoKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAg
ICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9v
bCBvcGVyYXRvcj09KHVpbnQsdWludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBzaW5o
KGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPT0gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5zaW5oKHZhbHVlLmxvYWRWYWx1ZSgpKSkp
OwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAg
ICJuYXRpdmUgYm9vbCBvcGVyYXRvcj09KGJvb2wsYm9vbCkiLAorICAgICAgICAgICAgIm5hdGl2
ZSBmbG9hdCB0YW5oKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPT0gcmlnaHQubG9hZFZhbHVlKCkp
OworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAg
ICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC50YW5oKHZhbHVlLmxv
YWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgK
LSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcj09KGZsb2F0LGZsb2F0KSIsCisgICAg
ICAgICAgICAibmF0aXZlIGZsb2F0IGNlaWwoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4g
ewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA9PSByaWdo
dC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
dmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRo
LmNlaWwodmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0
aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPChpbnQsaW50
KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGV4cChmbG9hdCkiLAogICAgICAgICAgICAg
ZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwg
cmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgp
IDwgcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91
bmQoTWF0aC5leHAodmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAg
ICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPCh1
aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgZmxvb3IoZmxvYXQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5s
b2FkVmFsdWUoKSA8IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KE1hdGguZnJvdW5kKE1hdGguZmxvb3IodmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAg
ICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29s
IG9wZXJhdG9yPChmbG9hdCxmbG9hdCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBsb2co
ZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA8IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgubG9nKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwog
ICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJu
YXRpdmUgYm9vbCBvcGVyYXRvcjw9KGludCxpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxv
YXQgcm91bmQoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA8PSByaWdodC5sb2FkVmFsdWUoKSk7Cisg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnJvdW5kKHZhbHVlLmxvYWRW
YWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAg
ICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcjw9KHVpbnQsdWludCkiLAorICAgICAgICAg
ICAgIm5hdGl2ZSBmbG9hdCBzcXJ0KGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0g
ICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPD0gcmlnaHQubG9h
ZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVl
XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5zcXJ0
KHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5f
bWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcjw9KGZsb2F0LGZsb2F0
KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IHRydW5jKGZsb2F0KSIsCiAgICAgICAgICAg
ICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0
LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVl
KCkgPD0gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQoTWF0aC50cnVuYyh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwog
CiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0
b3I+KGludCxpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgZGR4KGZsb2F0KSIsCiAg
ICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQu
bG9hZFZhbHVlKCkgPiByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCgwKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3Bl
cmF0b3I+KHVpbnQsdWludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBkZHkoZmxvYXQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
bGVmdC5sb2FkVmFsdWUoKSA+IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KDApOwogICAgICAgICAg
ICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9v
bCBvcGVyYXRvcj4oZmxvYXQsZmxvYXQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgcG93
KGZsb2F0LGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPiByaWdodC5sb2FkVmFsdWUoKSk7CisgICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgucG93KGxlZnQubG9hZFZh
bHVlKCksIHJpZ2h0LmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAg
dGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcj49KGludCxp
bnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgYm9vbCBpc2Zpbml0ZShmbG9hdCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
bGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRW
YWx1ZSgpID49IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE51
bWJlci5pc0Zpbml0ZSh2YWx1ZS5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcj49
KHVpbnQsdWludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBib29sIGlzaW5mKGZsb2F0KSIsCiAg
ICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQu
bG9hZFZhbHVlKCkgPj0gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goKHZhbHVlLmxvYWRWYWx1ZSgpID09IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkgfHwgKHZh
bHVlLmxvYWRWYWx1ZSgpID09IE51bWJlci5ORUdBVElWRV9JTkZJTklUWSkpOwogICAgICAgICAg
ICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9v
bCBvcGVyYXRvcj49KGZsb2F0LGZsb2F0KSIsCisgICAgICAgICAgICAibmF0aXZlIGJvb2wgaXNu
YW4oZmxvYXQpIiwKKyAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goTnVtYmVyLmlzTmFOKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICB9KTsKKwor
ICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCisgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAibmF0aXZlIGJvb2wgaXNub3JtYWwoaGFsZikiLAorICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVd
KSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChpc05hTih2YWx1ZS5sb2FkVmFsdWUo
KSkpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlz
LgorICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5hdGl2ZSBib29sIGlzbm9y
bWFsKGZsb2F0KSIsCisgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KGlzTmFOKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICB9KTsKKworICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBhdGFuMihmbG9hdCxm
bG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRy
LmJveChsZWZ0LmxvYWRWYWx1ZSgpID49IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5hdGFuMihsZWZ0LmxvYWRWYWx1ZSgp
LCByaWdodC5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCi0gICAgICAgIGZvciAo
bGV0IG5hdGl2ZVZlY3RvclR5cGVOYW1lIG9mIGFsbFZlY3RvclR5cGVOYW1lcygpKQotICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldChgbmF0aXZlIHR5cGVkZWYgJHtuYXRpdmVWZWN0b3JUeXBlTmFt
ZX1gLCB0eXBlID0+IHsKLSAgICAgICAgICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsK
KyAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICJuYXRpdmUgaW50IGFzaW50KGZs
b2F0KSIsCisgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGJp
dHdpc2VDYXN0KEZsb2F0MzJBcnJheSwgSW50MzJBcnJheSwgdmFsdWUubG9hZFZhbHVlKCkpKTsK
ICAgICAgICAgICAgIH0pOwogCi0gICAgICAgIGZvciAobGV0IHN3aXp6bGUgb2YgU3dpenpsZU9w
LmZ1bmN0aW9ucygpKQotICAgICAgICAgICAgdGhpcy5fbWFwLnNldChzd2l6emxlLnRvU3RyaW5n
KCksIGZ1bmMgPT4gc3dpenpsZS5pbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsKKyAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICJuYXRpdmUgdWludCBhc3VpbnQoZmxv
YXQpIiwKKyAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goYml0
d2lzZUNhc3QoRmxvYXQzMkFycmF5LCBVaW50MzJBcnJheSwgdmFsdWUubG9hZFZhbHVlKCkpKTsK
KyAgICAgICAgICAgIH0pOwogCi0gICAgICAgIGZvciAobGV0IGJvb2xPcCBvZiBPcGVyYXRvckJv
b2wuZnVuY3Rpb25zKCkpCi0gICAgICAgICAgICB0aGlzLl9tYXAuc2V0KGJvb2xPcC50b1N0cmlu
ZygpLCBmdW5jID0+IGJvb2xPcC5pbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsKKyAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgYXNmbG9hdChp
bnQpIiwKKyAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goYml0
d2lzZUNhc3QoSW50MzJBcnJheSwgRmxvYXQzMkFycmF5LCB2YWx1ZS5sb2FkVmFsdWUoKSkpOwor
ICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgZm9yIChsZXQgYW5kZXJJbmRleCBvZiBPcGVyYXRv
ckFuZGVySW5kZXhlci5mdW5jdGlvbnMoKSkKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoYW5k
ZXJJbmRleC50b1N0cmluZygpLCBmdW5jID0+IGFuZGVySW5kZXguaW5zdGFudGlhdGVJbXBsZW1l
bnRhdGlvbihmdW5jKSk7CisgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAibmF0
aXZlIGZsb2F0IGFzZmxvYXQodWludCkiLAorICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveChiaXR3aXNlQ2FzdChVaW50MzJBcnJheSwgRmxvYXQzMkFycmF5LCB2
YWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgZm9yIChsZXQg
Y2FzdCBvZiBCdWlsdGluVmVjdG9yQ29uc3RydWN0b3JzLmZ1bmN0aW9ucygpKQotICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldChjYXN0LnRvU3RyaW5nKCksIGZ1bmMgPT4gY2FzdC5pbnN0YW50aWF0
ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsKKyAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlz
LgorICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBmMTZ0
b2YzMih1aW50KSIsCisgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KDApOworICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgZm9yIChsZXQgZ2V0dGVyIG9mIEJ1
aWx0aW5WZWN0b3JJbmRleEdldHRlci5mdW5jdGlvbnMoKSkKLSAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoZ2V0dGVyLnRvU3RyaW5nKCksIGZ1bmMgPT4gZ2V0dGVyLmluc3RhbnRpYXRlSW1wbGVt
ZW50YXRpb24oZnVuYykpOworICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCisgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIHVpbnQgZjMydG9mMTYoZmxv
YXQpIiwKKyAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goMCk7
CisgICAgICAgICAgICB9KTsKIAotICAgICAgICBmb3IgKGxldCBzZXR0ZXIgb2YgQnVpbHRpblZl
Y3RvckluZGV4U2V0dGVyLmZ1bmN0aW9ucygpKQotICAgICAgICAgICAgdGhpcy5fbWFwLnNldChz
ZXR0ZXIudG9TdHJpbmcoKSwgZnVuYyA9PiBzZXR0ZXIuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlv
bihmdW5jKSk7CisgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIHZv
aWQgQWxsTWVtb3J5QmFycmllcldpdGhHcm91cFN5bmMoKSIsCisgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oKSB7fTsK
KyAgICAgICAgICAgIH0pOwogCi0gICAgICAgIGZvciAobGV0IGVxdWFsaXR5T3BlcmF0b3Igb2Yg
QnVpbHRpblZlY3RvckVxdWFsaXR5T3BlcmF0b3IuZnVuY3Rpb25zKCkpCi0gICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KGVxdWFsaXR5T3BlcmF0b3IudG9TdHJpbmcoKSwgZnVuYyA9PiBlcXVhbGl0
eU9wZXJhdG9yLmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYykpOworICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgIm5hdGl2ZSB2b2lkIERldmljZU1lbW9yeUJhcnJpZXJX
aXRoR3JvdXBTeW5jKCkiLAorICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKCkge307CisgICAgICAgICAgICB9KTsKKwor
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5hdGl2ZSB2b2lkIEdyb3VwTWVt
b3J5QmFycmllcldpdGhHcm91cFN5bmMoKSIsCisgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oKSB7fTsKKyAgICAgICAg
ICAgIH0pOworCisgICAgICAgIGZvciAobGV0IG5hdGl2ZVZlY3RvclR5cGVOYW1lIG9mIGFsbFZl
Y3RvclR5cGVOYW1lcygpKSB7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KGBuYXRpdmUgdHlw
ZWRlZiAke25hdGl2ZVZlY3RvclR5cGVOYW1lfWAsIHR5cGUgPT4geworICAgICAgICAgICAgICAg
IHR5cGUuaXNQcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KIAog
ICAgICAgICBmb3IgKGxldCBnZXR0ZXIgb2YgQnVpbHRpblZlY3RvckdldHRlci5mdW5jdGlvbnMo
KSkKICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoZ2V0dGVyLnRvU3RyaW5nKCksIGZ1bmMgPT4g
Z2V0dGVyLmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYykpOwogCiAgICAgICAgIGZvciAo
bGV0IHNldHRlciBvZiBCdWlsdGluVmVjdG9yU2V0dGVyLmZ1bmN0aW9ucygpKQogICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldChzZXR0ZXIudG9TdHJpbmcoKSwgZnVuYyA9PiBzZXR0ZXIuaW5zdGFu
dGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKSk7CisKKyAgICAgICAgZm9yIChsZXQgZ2V0dGVyIG9m
IEJ1aWx0aW5NYXRyaXhHZXR0ZXIuZnVuY3Rpb25zKCkpCisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KGdldHRlci50b1N0cmluZygpLCBmdW5jID0+IGdldHRlci5pbnN0YW50aWF0ZUltcGxlbWVu
dGF0aW9uKGZ1bmMpKTsKKworICAgICAgICBmb3IgKGxldCBzZXR0ZXIgb2YgQnVpbHRpbk1hdHJp
eFNldHRlci5mdW5jdGlvbnMoKSkKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoc2V0dGVyLnRv
U3RyaW5nKCksIGZ1bmMgPT4gc2V0dGVyLmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYykp
OworCisgICAgICAgIGZvciAobGV0IHR5cGUgb2YgWyJ1Y2hhciIsICJ1c2hvcnQiLCAidWludCIs
ICJjaGFyIiwgInNob3J0IiwgImludCIsICJoYWxmIiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAg
IGZvciAobGV0IGxlbmd0aCBvZiBbIiIsICIyIiwgIjMiLCAiNCJdKSB7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHts
ZW5ndGh9IFNhbXBsZShUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdCBs
b2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0k
e2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQgbG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LGludDIg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+
LGludDIgbG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1
cmUxRDwke3R5cGV9JHtsZW5ndGh9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1
aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcGxldmVsLmxvYWRWYWx1ZSgpID09IDApIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4dHVyZS5sb2FkVmFsdWUoKS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3goMSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KICAgICB9CiAKICAgICBhZGQodGhpbmcpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9NYXRyaXhUeXBlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTWF0cml4VHlwZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDk5NmJmNDYzMzc3MDY4NTE0MGI5
MDA1MmZhYTE5ZGNhNjIxMmE4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTWF0cml4VHlwZS5qcwpAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyJ1c2Ugc3RyaWN0IjsKKworY2xhc3MgTWF0
cml4VHlwZSBleHRlbmRzIE5hdGl2ZVR5cGUgeworICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFt
ZSwgdHlwZUFyZ3VtZW50cykKKyAgICB7CisgICAgICAgIHN1cGVyKG9yaWdpbiwgbmFtZSwgdHlw
ZUFyZ3VtZW50cyk7CisgICAgfQorCisgICAgZ2V0IGVsZW1lbnRUeXBlKCkgeyByZXR1cm4gdGhp
cy50eXBlQXJndW1lbnRzWzBdOyB9CisgICAgZ2V0IG51bVJvd3MoKSB7IHJldHVybiB0aGlzLnR5
cGVBcmd1bWVudHNbMV07IH0KKyAgICBnZXQgbnVtQ29sdW1ucygpIHsgcmV0dXJuIHRoaXMudHlw
ZUFyZ3VtZW50c1syXTsgfQorICAgIGdldCBudW1Sb3dzVmFsdWUoKSB7IHJldHVybiB0aGlzLm51
bVJvd3MudmFsdWU7IH0KKyAgICBnZXQgbnVtQ29sdW1uc1ZhbHVlKCkgeyByZXR1cm4gdGhpcy5u
dW1Db2x1bW5zLnZhbHVlOyB9CisgICAgZ2V0IHNpemUoKSB7IHJldHVybiB0aGlzLmVsZW1lbnRU
eXBlLnNpemUgKiB0aGlzLm51bVJvd3NWYWx1ZSAqIHRoaXMubnVtQ29sdW1uc1ZhbHVlOyB9CisK
KyAgICB1bmlmeUltcGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcikKKyAgICB7CisgICAgICAg
IGlmICghKG90aGVyIGluc3RhbmNlb2YgTWF0cml4VHlwZSkpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICAgICAgaWYgKHRoaXMubnVtUm93c1ZhbHVlICE9PSBvdGhlci5udW1Sb3dz
VmFsdWUgfHwgdGhpcy5udW1Db2x1bW5zVmFsdWUgIT09IG90aGVyLm51bUNvbHVtbnNWYWx1ZSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50
VHlwZS51bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyLmVsZW1lbnRUeXBlKTsKKyAgICB9
CisKKyAgICBwb3B1bGF0ZURlZmF1bHRWYWx1ZShidWZmZXIsIG9mZnNldCkKKyAgICB7CisgICAg
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5udW1Sb3dzVmFsdWUgKiB0aGlzLnJ1bkNvbHVt
bnNWYWx1ZTsgKytpKQorICAgICAgICAgICAgdGhpcy5lbGVtZW50VHlwZS5wb3B1bGF0ZURlZmF1
bHRWYWx1ZShidWZmZXIsIG9mZnNldCArIGkgKiB0aGlzLmVsZW1lbnRUeXBlLnNpemUpOworICAg
IH0KKworICAgIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiBgbmF0aXZlIHR5cGVk
ZWYgbWF0cml4PCR7dGhpcy5lbGVtZW50VHlwZX0sICR7dGhpcy5udW1Sb3dzVmFsdWV9LCAke3Ro
aXMubnVtQ29sdW1uc1ZhbHVlfT5gOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL05hbWVDb250ZXh0LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmFtZUNvbnRleHQuanMKaW5kZXggZGM2ODU3OGZmNTU2YjMxMmIwOTI3ZWYzYzBk
ZmZhMDA2OGYxYmU2My4uYzg5OTY4Yzc3OTYwN2I3Y2FiY2M2YTVmOTY5YjRhYjkxM2U3MjYzZSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanMK
KysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanMKQEAgLTcx
LDcgKzcxLDcgQEAgY2xhc3MgTmFtZUNvbnRleHQgewogCiAgICAgICAgIGlmICh0aGluZy5raW5k
ID09IFR5cGUpIHsKICAgICAgICAgICAgIHRoaXMuX3NldC5hZGQodGhpbmcpOwotICAgICAgICAg
ICAgaWYgKHRoaW5nLm5hbWUgPT0gInZlY3RvciIpIHsKKyAgICAgICAgICAgIGlmICh0aGluZy50
eXBlQXJndW1lbnRzICYmIHRoaW5nLnR5cGVBcmd1bWVudHMubGVuZ3RoICE9IDApIHsKICAgICAg
ICAgICAgICAgICBsZXQgYXJyYXkgPSB0aGlzLl9tYXAuZ2V0KHRoaW5nLm5hbWUpOwogICAgICAg
ICAgICAgICAgIGlmICghYXJyYXkpIHsKICAgICAgICAgICAgICAgICAgICAgYXJyYXkgPSBbXTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZVR5cGUuanMg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVUeXBlLmpzCmluZGV4IDIzODFi
NWE2YjBiMDEwZTBmZGQ0ZGM1MzU1MGE4ZWE2YjRmODM0N2IuLmIzNjhhMmU4YjI0ZjU0OGVhYjg4
YTI4MjRiNDk1YmUyM2M4N2NiODUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL05hdGl2ZVR5cGUuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
TmF0aXZlVHlwZS5qcwpAQCAtNjYsNiArNjYsOCBAQCBjbGFzcyBOYXRpdmVUeXBlIGV4dGVuZHMg
VHlwZSB7CiAgICAgewogICAgICAgICBpZiAobmFtZSA9PSAidmVjdG9yIikKICAgICAgICAgICAg
IHJldHVybiBuZXcgVmVjdG9yVHlwZShvcmlnaW4sIG5hbWUsIHR5cGVBcmd1bWVudHMpOworICAg
ICAgICBpZiAobmFtZSA9PSAibWF0cml4IikKKyAgICAgICAgICAgIHJldHVybiBuZXcgTWF0cml4
VHlwZShvcmlnaW4sIG5hbWUsIHR5cGVBcmd1bWVudHMpOwogCiAgICAgICAgIHJldHVybiBuZXcg
TmF0aXZlVHlwZShvcmlnaW4sIG5hbWUsIHR5cGVBcmd1bWVudHMpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL09wZXJhdG9yQW5kZXJJbmRleC5qcyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL09wZXJhdG9yQW5kZXJJbmRleC5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjcwMzcxZmI5MGYyYTFmZDE1YzJkZGY2YzRhMzk2
YzBmMjM5Y2ViZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9PcGVyYXRvckFuZGVySW5kZXguanMKKysr
IC9kZXYvbnVsbApAQCAtMSw3MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgT3BlcmF0b3JBbmRlckluZGV4
ZXIgewotICAgIGNvbnN0cnVjdG9yKGJhc2VUeXBlTmFtZSwgYWRkcmVzc1NwYWNlKQotICAgIHsK
LSAgICAgICAgdGhpcy5fYmFzZVR5cGVOYW1lID0gYmFzZVR5cGVOYW1lOwotICAgICAgICB0aGlz
Ll9hZGRyZXNzU3BhY2UgPSBhZGRyZXNzU3BhY2U7Ci0gICAgfQotCi0gICAgZ2V0IGFkZHJlc3NT
cGFjZSgpIHsgcmV0dXJuIHRoaXMuX2FkZHJlc3NTcGFjZTsgfQotICAgIGdldCBiYXNlVHlwZU5h
bWUoKSB7IHJldHVybiB0aGlzLl9iYXNlVHlwZU5hbWU7IH0KLQotICAgIHRvU3RyaW5nKCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBgbmF0aXZlICR7dGhpcy5iYXNlVHlwZU5hbWV9KiAke3RoaXMu
YWRkcmVzc1NwYWNlfSBvcGVyYXRvciZbXSgke3RoaXMuYmFzZVR5cGVOYW1lfVtdICR7dGhpcy5h
ZGRyZXNzU3BhY2V9LHVpbnQpYDsKLSAgICB9Ci0KLSAgICBzdGF0aWMgZnVuY3Rpb25zKCkKLSAg
ICB7Ci0gICAgICAgIGlmICghdGhpcy5fZnVuY3Rpb25zKSB7Ci0gICAgICAgICAgICB0aGlzLl9m
dW5jdGlvbnMgPSBbXTsKLQotICAgICAgICAgICAgY29uc3QgdHlwZU5hbWVzID0gWyAidWludCIs
ICJpbnQiLCAiZmxvYXQiLCAiYm9vbCIgXS5jb25jYXQoYWxsVmVjdG9yVHlwZU5hbWVzKCkpOwot
ICAgICAgICAgICAgY29uc3QgYWRkcmVzc1NwYWNlcyA9IFsgInRocmVhZCIsICJ0aHJlYWRncm91
cCIsICJkZXZpY2UiLCAiY29uc3RhbnQiIF07Ci0KLSAgICAgICAgICAgIGZvciAobGV0IGFkZHJl
c3NTcGFjZSBvZiBhZGRyZXNzU3BhY2VzKSB7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgdHlw
ZU5hbWUgb2YgdHlwZU5hbWVzKQotICAgICAgICAgICAgICAgICAgICB0aGlzLl9mdW5jdGlvbnMu
cHVzaChuZXcgT3BlcmF0b3JBbmRlckluZGV4ZXIodHlwZU5hbWUsIGFkZHJlc3NTcGFjZSkpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aGlzLl9mdW5jdGlvbnM7
Ci0gICAgfQotCi0gICAgaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKQotICAgIHsKLSAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbcmVmLCBpbmRleF0sIG5vZGUpID0+IHsKLSAg
ICAgICAgICAgIHJlZiA9IHJlZi5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgIGlmICghcmVmKQot
ICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0
cmluZywgIk51bGwgZGVyZWZlcmVuY2UiKTsKLSAgICAgICAgICAgIGluZGV4ID0gaW5kZXgubG9h
ZFZhbHVlKCk7Ci0gICAgICAgICAgICBpZiAoaW5kZXggPiByZWYubGVuZ3RoKQotICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkFy
cmF5IGluZGV4ICIgKyBpbmRleCArICIgaXMgb3V0IG9mIGJvdW5kcyBvZiAiICsgcmVmKTsKLSAg
ICAgICAgICAgIHJldHVybiBFUHRyLmJveChyZWYucHRyLnBsdXMoaW5kZXggKiBub2RlLmFyZ3Vt
ZW50VHlwZXNbMF0uZWxlbWVudFR5cGUuc2l6ZSkpOwotICAgICAgICB9OwotICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uRGF0YSA9IHRoaXM7Ci0gICAgfQotfQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL09wZXJh
dG9yQW5kZXJJbmRleGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvT3BlcmF0
b3JBbmRlckluZGV4ZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDEyZjA2NzgwZjdhZDkzMjJkNmM3YmU0Nzkw
Y2Q0NDYxODFmODliNAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL09wZXJhdG9yQW5kZXJJbmRleGVyLmpzCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworInVzZSBzdHJpY3QiOworCitjbGFz
cyBPcGVyYXRvckFuZGVySW5kZXhlciB7CisgICAgY29uc3RydWN0b3IoYmFzZVR5cGVOYW1lLCBh
ZGRyZXNzU3BhY2UpCisgICAgeworICAgICAgICB0aGlzLl9iYXNlVHlwZU5hbWUgPSBiYXNlVHlw
ZU5hbWU7CisgICAgICAgIHRoaXMuX2FkZHJlc3NTcGFjZSA9IGFkZHJlc3NTcGFjZTsKKyAgICB9
CisKKyAgICBnZXQgYWRkcmVzc1NwYWNlKCkgeyByZXR1cm4gdGhpcy5fYWRkcmVzc1NwYWNlOyB9
CisgICAgZ2V0IGJhc2VUeXBlTmFtZSgpIHsgcmV0dXJuIHRoaXMuX2Jhc2VUeXBlTmFtZTsgfQor
CisgICAgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGBuYXRpdmUgJHt0aGlzLmJh
c2VUeXBlTmFtZX0qICR7dGhpcy5hZGRyZXNzU3BhY2V9IG9wZXJhdG9yJltdKCR7dGhpcy5iYXNl
VHlwZU5hbWV9W10gJHt0aGlzLmFkZHJlc3NTcGFjZX0sdWludClgOworICAgIH0KKworICAgIGlu
c3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYykKKyAgICB7CisgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3JlZiwgaW5kZXhdLCBub2RlKSA9PiB7CisgICAgICAgICAgICByZWYgPSBy
ZWYubG9hZFZhbHVlKCk7CisgICAgICAgICAgICBpZiAoIXJlZikKKyAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1RyYXBFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJOdWxsIGRlcmVm
ZXJlbmNlIik7CisgICAgICAgICAgICBpbmRleCA9IGluZGV4LmxvYWRWYWx1ZSgpOworICAgICAg
ICAgICAgaWYgKGluZGV4ID4gcmVmLmxlbmd0aCkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
V1RyYXBFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJBcnJheSBpbmRleCAiICsgaW5k
ZXggKyAiIGlzIG91dCBvZiBib3VuZHMgb2YgIiArIHJlZik7CisgICAgICAgICAgICByZXR1cm4g
RVB0ci5ib3gocmVmLnB0ci5wbHVzKGluZGV4ICogbm9kZS5hcmd1bWVudFR5cGVzWzBdLmVsZW1l
bnRUeXBlLnNpemUpKTsKKyAgICAgICAgfTsKKyAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbkRh
dGEgPSB0aGlzOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL09wZXJhdG9yQm9vbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL09w
ZXJhdG9yQm9vbC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNThiYjBlMDliODBi
ZWUxMDcwODliMWM5ZDIwMGNiYzY4YTVjYjlkMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9PcGVyYXRv
ckJvb2wuanMKKysrIC9kZXYvbnVsbApAQCAtMSw2OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgT3BlcmF0
b3JCb29sIHsKLSAgICBjb25zdHJ1Y3RvcihiYXNlVHlwZU5hbWUpCi0gICAgewotICAgICAgICB0
aGlzLl9iYXNlVHlwZU5hbWUgPSBiYXNlVHlwZU5hbWU7Ci0gICAgfQotCi0gICAgZ2V0IGJhc2VU
eXBlTmFtZSgpIHsgcmV0dXJuIHRoaXMuX2Jhc2VUeXBlTmFtZTsgfQotCi0gICAgdG9TdHJpbmco
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGBuYXRpdmUgb3BlcmF0b3IgYm9vbCgke3RoaXMuYmFz
ZVR5cGVOYW1lfSlgOwotICAgIH0KLQotICAgIHN0YXRpYyBmdW5jdGlvbnMoKQotICAgIHsKLSAg
ICAgICAgLy8gRklYTUU6IFRoZXNlIG9wZXJhdG9ycyBzaG91bGQgYmUgaW4gdGhlIHN0YW5kYXJk
IGxpYnJhcnkgd2hlcmUgcG9zc2libGUuCi0gICAgICAgIGlmICghT3BlcmF0b3JCb29sLl9mdW5j
dGlvbnMpIHsKLSAgICAgICAgICAgIE9wZXJhdG9yQm9vbC5fZnVuY3Rpb25zID0gW107Ci0KLSAg
ICAgICAgICAgIC8vIGJvb2wgaXMgbm90IGluY2x1ZGVkIGJlY2F1c2UgdGhpcyBpcyBnZW5lcmF0
ZWQgYnkgdGhlIGNvcHkgY29uc3RydWN0b3IuCi0gICAgICAgICAgICAvLyBGSVhNRTogSW5jbHVk
ZSBhbGwgbmF0aXZlIHR5cGVzLgotICAgICAgICAgICAgY29uc3QgdHlwZU5hbWVzID0gWyAidWNo
YXIiLCAidWludCIsICJpbnQiLCAiZmxvYXQiIF0uY29uY2F0KGFsbFZlY3RvclR5cGVOYW1lcygp
KTsKLQotICAgICAgICAgICAgZm9yIChsZXQgdHlwZU5hbWUgb2YgdHlwZU5hbWVzKQotICAgICAg
ICAgICAgICAgIE9wZXJhdG9yQm9vbC5fZnVuY3Rpb25zLnB1c2gobmV3IE9wZXJhdG9yQm9vbCh0
eXBlTmFtZSkpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBPcGVyYXRvckJvb2wuX2Z1bmN0
aW9uczsKLSAgICB9Ci0KLSAgICBpbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpCi0gICAg
ewotICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtyZWZdLCBub2RlKSA9PiB7Ci0gICAg
ICAgICAgICBjb25zdCBzaXplID0gbm9kZS5hcmd1bWVudFR5cGVzWzBdLnNpemU7Ci0gICAgICAg
ICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICAgICAgICAgIGlm
ICghIXJlZi5nZXQoaSkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0cnVl
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChmYWxzZSk7Ci0g
ICAgICAgIH0KLSAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbkRhdGEgPSB0aGlzOwotICAgIH0K
LX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9QcmVwYXJlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvUHJlcGFyZS5qcwppbmRleCA5ZmFjYTg2ZTIwNTc1NWIyYzZhNjZmNDEyYjU2OTJlOTllN2Iw
M2FmLi44MzQ1OTJkMzZmMzQ1N2RmYTg2YjU3NTFiYjcyNjI0NzJhM2YwYTJkIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QcmVwYXJlLmpzCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanMKQEAgLTQ2LDcgKzQ2LDYgQEAgbGV0IHBy
ZXBhcmUgPSAoKCkgPT4gewogICAgICAgICByZXNvbHZlVHlwZURlZnNJblR5cGVzKHByb2dyYW0p
OwogICAgICAgICBjaGVja1JlY3Vyc2l2ZVR5cGVzKHByb2dyYW0pOwogICAgICAgICBzeW50aGVz
aXplU3RydWN0QWNjZXNzb3JzKHByb2dyYW0pOwotICAgICAgICBzeW50aGVzaXplT3BlcmF0b3JC
b29sKHByb2dyYW0pOwogICAgICAgICBzeW50aGVzaXplRW51bUZ1bmN0aW9ucyhwcm9ncmFtKTsK
ICAgICAgICAgc3ludGhlc2l6ZUFycmF5T3BlcmF0b3JMZW5ndGgocHJvZ3JhbSk7CiAgICAgICAg
IHN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvcihwcm9ncmFtKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb2dyYW0uanMgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm9ncmFtLmpzCmluZGV4IDExMTZjNGY1Nzc1NjIyMTVmZGQ3NDI4
YTMxNzU3OWE5MjkxNjU0MTQuLmFjMWRlZmI0ZmJhYWE2ZThlMTM0Mjk3MzRjY2Y0OTE1MzM5YmE1
MzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb2dyYW0uanMK
KysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvZ3JhbS5qcwpAQCAtNTEsNyAr
NTEsNyBAQCBjbGFzcyBQcm9ncmFtIGV4dGVuZHMgTm9kZSB7CiAgICAgICAgICAgICAgICAgdGhp
cy5mdW5jdGlvbnMuc2V0KHN0YXRlbWVudC5uYW1lLCBhcnJheSA9IFtdKTsKICAgICAgICAgICAg
IGFycmF5LnB1c2goc3RhdGVtZW50KTsKICAgICAgICAgfSBlbHNlIGlmIChzdGF0ZW1lbnQgaW5z
dGFuY2VvZiBUeXBlKSB7Ci0gICAgICAgICAgICBpZiAoc3RhdGVtZW50LmlzTmF0aXZlICYmIHN0
YXRlbWVudC5uYW1lID09ICJ2ZWN0b3IiKSB7CisgICAgICAgICAgICBpZiAoc3RhdGVtZW50Lmlz
TmF0aXZlICYmIHN0YXRlbWVudC50eXBlQXJndW1lbnRzLmxlbmd0aCAhPSAwKSB7CiAgICAgICAg
ICAgICAgICAgbGV0IGFycmF5ID0gdGhpcy50eXBlcy5nZXQoc3RhdGVtZW50Lm5hbWUpOwogICAg
ICAgICAgICAgICAgIGlmICghYXJyYXkpCiAgICAgICAgICAgICAgICAgICAgIHRoaXMudHlwZXMu
c2V0KHN0YXRlbWVudC5uYW1lLCBhcnJheSA9IFtdKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvUmV3cml0ZXIuanMKaW5kZXggOTRkM2E3NjJlMzhmYjkyMWM1ODRjYmFmZmYxZjU5NDc4
ZWJiNzkxZC4uN2MyZGZiYTY5NTUzMzk4ODRkYmJmOTEwNDc4ZDQzZWZmZGVjNjVjZiAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanMKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanMKQEAgLTM5MSw1ICszOTEsMTEg
QEAgY2xhc3MgUmV3cml0ZXIgewogICAgICAgICB2ZWNUeXBlLl9lbGVtZW50VHlwZSA9IG5vZGUu
ZWxlbWVudFR5cGUudmlzaXQodGhpcyk7CiAgICAgICAgIHJldHVybiB2ZWNUeXBlOwogICAgIH0K
KworICAgIHZpc2l0TWF0cml4VHlwZShub2RlKQorICAgIHsKKyAgICAgICAgY29uc3QgbWF0VHlw
ZSA9IG5ldyBNYXRyaXhUeXBlKG5vZGUub3JpZ2luLCBub2RlLm5hbWUsIG5vZGUudHlwZUFyZ3Vt
ZW50cy5tYXAoYXJndW1lbnQgPT4gYXJndW1lbnQudmlzaXQodGhpcykpKTsKKyAgICAgICAgcmV0
dXJuIG1hdFR5cGU7CisgICAgfQogfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TUElSVi5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJ
UlYuaHRtbAppbmRleCBmZjJjMDJjN2JhZmNhNGQxZTJjZjgzM2M2Yzc5ZmExY2VjODkwMTNjLi43
OGQwMDhmODM1ZjllOWMyMzRlZjJkZjZkNmRlZWEzZjc0MjZjZTY1IDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKQEAgLTE3LDcgKzE3LDYgQEAgdGQgewogICAgIDxz
Y3JpcHQgc3JjPSJDcmVhdGVMaXRlcmFsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
Q3JlYXRlTGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJQcm9wZXJ0
eUFjY2Vzc0V4cHJlc3Npb24uanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJTd2l6emxl
T3AuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJOYXRpdmVUeXBlLmpzIj48L3Njcmlw
dD4KIAogICAgIDxzY3JpcHQgc3JjPSJBZGRyZXNzU3BhY2UuanMiPjwvc2NyaXB0PgpAQCAtMjks
MTIgKzI4LDEwIEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iQmxvY2suanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJCb29sTGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IkJyZWFrLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iQnVpbHRpblZlY3RvckNv
bnN0cnVjdG9ycy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IkJ1aWx0aW5NYXRyaXhH
ZXR0ZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJCdWlsdGluTWF0cml4U2V0dGVy
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQnVpbHRpblZlY3RvckdldHRlci5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkJ1aWx0aW5WZWN0b3JTZXR0ZXIuanMiPjwvc2Ny
aXB0PgotICAgIDxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9ySW5kZXhHZXR0ZXIuanMiPjwvc2Ny
aXB0PgotICAgIDxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9ySW5kZXhTZXR0ZXIuanMiPjwvc2Ny
aXB0PgotICAgIDxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9yRXF1YWxpdHlPcGVyYXRvci5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNhbGxFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iQ2FsbEZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iQ2hlY2suanMiPjwvc2NyaXB0PgpAQCAtOTYsNiArOTMsNyBAQCB0ZCB7CiAgICAgPHNj
cmlwdCBzcmM9Ikxvb3BDaGVja2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTWFr
ZUFycmF5UmVmRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1ha2VQ
dHJFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iTWF0cml4VHlwZS5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik5hbWVDb250ZXh0LmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iTmFtZUZpbmRlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9Ik5hbWVSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CkBAIC0xMDMsOSArMTAxLDggQEAgdGQgewog
ICAgIDxzY3JpcHQgc3JjPSJOb3JtYWxVc2VQcm9wZXJ0eVJlc29sdmVyLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iTnVsbExpdGVyYWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJOdWxsVHlwZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ik9wZXJhdG9yQW5k
ZXJJbmRleC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ik9wZXJhdG9yQW5kZXJJbmRl
eGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iT3BlcmF0b3JBcnJheVJlZkxlbmd0
aC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ik9wZXJhdG9yQm9vbC5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik9yaWdpbktpbmQuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iUGFyc2UuanMiPjwvc2NyaXB0PgpAQCAtMTMzLDcgKzEzMCw2IEBAIHRkIHsKICAg
ICA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUFycmF5T3BlcmF0b3JMZW5ndGguanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRW51bUZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMiPjwvc2NyaXB0
PgotICAgIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplT3BlcmF0b3JCb29sLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9w
ZXJhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVGVybmFyeUV4cHJlc3Npb24u
anMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3RhbmRhcmRMaWJyYXJ5LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRh
cmRMaWJyYXJ5LmpzCmluZGV4IDgxOTBhNDM1NjkyM2E2MWU1NDg1YmRkNGYxODBkMTM4Mzc3NDg5
OGIuLjJmNzExOWFkNWJiNmQ4OWRlNWNkMzQ2NDQyYjIzMjM3ODNhNjE0ZDcgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcworKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKQEAgLTMwLDYg
KzMwLDggQEAgbGV0IHN0YW5kYXJkTGlicmFyeSA9IGAKIC8vIEludHJpbnNpY3MuanMuCiAKIC8v
IE5lZWQgdG8gYm9vdHN0cmFwIHZvaWQgZmlyc3QuCisvLyBUaGlzIHdhcyBhdXRvZ2VuZXJhdGVk
IGZyb20gR2VuZXJhdGVfU3RhbmRhcmRfTGlicmFyeS5zd2lmdCEgRG8gbm90IGVkaXQhIQorCiBu
YXRpdmUgdHlwZWRlZiB2b2lkOwogbmF0aXZlIHR5cGVkZWYgYm9vbDsKIG5hdGl2ZSB0eXBlZGVm
IHVjaGFyOwpAQCAtNDIsNyArNDQsNiBAQCBuYXRpdmUgdHlwZWRlZiBoYWxmOwogbmF0aXZlIHR5
cGVkZWYgZmxvYXQ7CiBuYXRpdmUgdHlwZWRlZiBhdG9taWNfaW50OwogbmF0aXZlIHR5cGVkZWYg
YXRvbWljX3VpbnQ7Ci0KIG5hdGl2ZSB0eXBlZGVmIHZlY3Rvcjxib29sLCAyPjsKIHR5cGVkZWYg
Ym9vbDIgPSB2ZWN0b3I8Ym9vbCwgMj47CiBuYXRpdmUgdHlwZWRlZiB2ZWN0b3I8Ym9vbCwgMz47
CkBAIC05OCw0MCArOTksNTc3IEBAIHR5cGVkZWYgZmxvYXQzID0gdmVjdG9yPGZsb2F0LCAzPjsK
IG5hdGl2ZSB0eXBlZGVmIHZlY3RvcjxmbG9hdCwgND47CiB0eXBlZGVmIGZsb2F0NCA9IHZlY3Rv
cjxmbG9hdCwgND47CiAKLW5hdGl2ZSBvcGVyYXRvciBpbnQodWludCk7Ci1uYXRpdmUgb3BlcmF0
b3IgaW50KHVjaGFyKTsKLW5hdGl2ZSBvcGVyYXRvciBpbnQoZmxvYXQpOwotbmF0aXZlIG9wZXJh
dG9yIHVpbnQoaW50KTsKLW5hdGl2ZSBvcGVyYXRvciB1aW50KHVjaGFyKTsKLW5hdGl2ZSBvcGVy
YXRvciB1aW50KGZsb2F0KTsKLW5hdGl2ZSBvcGVyYXRvciB1Y2hhcihpbnQpOworbmF0aXZlIHR5
cGVkZWYgbWF0cml4PGhhbGYsIDIsIDI+OwordHlwZWRlZiBoYWxmMngyID0gbWF0cml4PGhhbGYs
IDIsIDI+OworbmF0aXZlIHR5cGVkZWYgbWF0cml4PGhhbGYsIDIsIDM+OwordHlwZWRlZiBoYWxm
MngzID0gbWF0cml4PGhhbGYsIDIsIDM+OworbmF0aXZlIHR5cGVkZWYgbWF0cml4PGhhbGYsIDIs
IDQ+OwordHlwZWRlZiBoYWxmMng0ID0gbWF0cml4PGhhbGYsIDIsIDQ+OworbmF0aXZlIHR5cGVk
ZWYgbWF0cml4PGhhbGYsIDMsIDI+OwordHlwZWRlZiBoYWxmM3gyID0gbWF0cml4PGhhbGYsIDMs
IDI+OworbmF0aXZlIHR5cGVkZWYgbWF0cml4PGhhbGYsIDMsIDM+OwordHlwZWRlZiBoYWxmM3gz
ID0gbWF0cml4PGhhbGYsIDMsIDM+OworbmF0aXZlIHR5cGVkZWYgbWF0cml4PGhhbGYsIDMsIDQ+
OwordHlwZWRlZiBoYWxmM3g0ID0gbWF0cml4PGhhbGYsIDMsIDQ+OworbmF0aXZlIHR5cGVkZWYg
bWF0cml4PGhhbGYsIDQsIDI+OwordHlwZWRlZiBoYWxmNHgyID0gbWF0cml4PGhhbGYsIDQsIDI+
OworbmF0aXZlIHR5cGVkZWYgbWF0cml4PGhhbGYsIDQsIDM+OwordHlwZWRlZiBoYWxmNHgzID0g
bWF0cml4PGhhbGYsIDQsIDM+OworbmF0aXZlIHR5cGVkZWYgbWF0cml4PGhhbGYsIDQsIDQ+Owor
dHlwZWRlZiBoYWxmNHg0ID0gbWF0cml4PGhhbGYsIDQsIDQ+OworbmF0aXZlIHR5cGVkZWYgbWF0
cml4PGZsb2F0LCAyLCAyPjsKK3R5cGVkZWYgZmxvYXQyeDIgPSBtYXRyaXg8ZmxvYXQsIDIsIDI+
OworbmF0aXZlIHR5cGVkZWYgbWF0cml4PGZsb2F0LCAyLCAzPjsKK3R5cGVkZWYgZmxvYXQyeDMg
PSBtYXRyaXg8ZmxvYXQsIDIsIDM+OworbmF0aXZlIHR5cGVkZWYgbWF0cml4PGZsb2F0LCAyLCA0
PjsKK3R5cGVkZWYgZmxvYXQyeDQgPSBtYXRyaXg8ZmxvYXQsIDIsIDQ+OworbmF0aXZlIHR5cGVk
ZWYgbWF0cml4PGZsb2F0LCAzLCAyPjsKK3R5cGVkZWYgZmxvYXQzeDIgPSBtYXRyaXg8ZmxvYXQs
IDMsIDI+OworbmF0aXZlIHR5cGVkZWYgbWF0cml4PGZsb2F0LCAzLCAzPjsKK3R5cGVkZWYgZmxv
YXQzeDMgPSBtYXRyaXg8ZmxvYXQsIDMsIDM+OworbmF0aXZlIHR5cGVkZWYgbWF0cml4PGZsb2F0
LCAzLCA0PjsKK3R5cGVkZWYgZmxvYXQzeDQgPSBtYXRyaXg8ZmxvYXQsIDMsIDQ+OworbmF0aXZl
IHR5cGVkZWYgbWF0cml4PGZsb2F0LCA0LCAyPjsKK3R5cGVkZWYgZmxvYXQ0eDIgPSBtYXRyaXg8
ZmxvYXQsIDQsIDI+OworbmF0aXZlIHR5cGVkZWYgbWF0cml4PGZsb2F0LCA0LCAzPjsKK3R5cGVk
ZWYgZmxvYXQ0eDMgPSBtYXRyaXg8ZmxvYXQsIDQsIDM+OworbmF0aXZlIHR5cGVkZWYgbWF0cml4
PGZsb2F0LCA0LCA0PjsKK3R5cGVkZWYgZmxvYXQ0eDQgPSBtYXRyaXg8ZmxvYXQsIDQsIDQ+Owor
bmF0aXZlIHR5cGVkZWYgc2FtcGxlcjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxib29sPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxib29sMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
MUQ8Ym9vbDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGJvb2w0PjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUxRDx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dWNoYXIyPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTFEPHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dXNob3J0PjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUxRDx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDx1c2hv
cnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUxRDx1aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDx1aW50Mj47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMUQ8dWludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVp
bnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUxRDxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8Y2hhcjM+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTFEPGNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxzaG9y
dD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUxRDxzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHNob3J0ND47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMUQ8aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxpbnQy
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUxRDxpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxoYWxmPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUxRDxoYWxmMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8aGFsZjM+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGhhbGY0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUx
RDxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8ZmxvYXQyPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUxRDxmbG9hdDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGZsb2F0ND47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxib29sPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTFEPGJvb2wyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGJvb2wzPjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFE
PHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHVjaGFyMj47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUxRDx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dWNo
YXI0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHVzaG9ydD47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUxRDx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHVzaG9y
dDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dXNob3J0ND47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUxRDx1aW50PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHVpbnQyPjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHVpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTFEPHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGNoYXI+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMUQ8Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8
Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8Y2hhcjQ+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMUQ8c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8c2hvcnQy
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUxRDxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8aW50PjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGludDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
MUQ8aW50Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxpbnQ0PjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTFEPGhhbGY+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8aGFsZjI+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8aGFsZjM+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMUQ8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8ZmxvYXQ+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8ZmxvYXQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTFEPGZsb2F0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxmbG9hdDQ+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURB
cnJheTxib29sMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxib29sMz47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxib29sND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
MURBcnJheTx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTx1Y2hhcjI+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dWNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUxREFycmF5PHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTx1c2hv
cnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dXNob3J0Mj47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlMURBcnJheTx1c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFy
cmF5PHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dWludD47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTx1aW50Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
MURBcnJheTx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTx1aW50ND47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUxREFycmF5PGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGNoYXIzPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUxREFycmF5PHNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHNob3J0
Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxzaG9ydDM+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTFEQXJyYXk8c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5
PGludD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxpbnQyPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUxREFycmF5PGludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8
aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxoYWxmPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUxREFycmF5PGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5
PGhhbGYzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGhhbGY0PjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUxREFycmF5PGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFy
cmF5PGZsb2F0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxmbG9hdDM+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTFEQXJyYXk8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGJvb2wy
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8Ym9vbDM+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMURBcnJheTxib29sND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFy
cmF5PHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8dWNoYXIyPjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8dWNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTFEQXJyYXk8dWNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8
dXNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8dXNob3J0Mj47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHVzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMURBcnJheTx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8
dWludD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHVpbnQyPjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8dWludDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
MURBcnJheTx1aW50ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGNoYXI+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUxREFycmF5PGNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8
Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxzaG9ydD47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUxREFycmF5PHNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHNob3J0
ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGludD47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUxREFycmF5PGludDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJh
eTxpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8aW50ND47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGhhbGY+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
MURBcnJheTxoYWxmMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGhhbGYzPjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlMURBcnJheTxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5
PGZsb2F0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGZsb2F0Mz47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGZsb2F0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlMkQ8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8Ym9vbDI+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTJEPGJvb2wzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxib29sND47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8dWNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTJEPHVjaGFyMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8dWNoYXIzPjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUyRDx1Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHVzaG9y
dD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8dXNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMkQ8dXNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8dXNob3J0ND47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8dWludD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8
dWludDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHVpbnQzPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUyRDx1aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8Y2hhcj47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMkQ8Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGNo
YXIzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxjaGFyND47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMkQ8c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHNob3J0Mj47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMkQ8c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxz
aG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGludD47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMkQ8aW50Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8aW50Mz47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlMkQ8aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8aGFsZj47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8aGFsZjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTJEPGhhbGYzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxoYWxmND47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlMkQ8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGZsb2F0Mj47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUyRDxmbG9hdDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8Ym9vbD47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUyRDxib29sMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxi
b29sMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxib29sND47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUyRDx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDx1Y2hhcjI+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8dWNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTJEPHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDx1c2hvcnQ+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8dXNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUyRDx1c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVzaG9ydDQ+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8dWludD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUyRDx1aW50Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDx1aW50Mz47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUyRDx1aW50ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxj
aGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTJEPGNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGNoYXI0PjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTJEPHNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxzaG9ydDM+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTJEPGludD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxpbnQyPjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTJEPGludDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8aW50ND47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxoYWxmPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTJEPGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGhhbGYzPjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGhhbGY0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJE
PGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGZsb2F0Mj47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUyRDxmbG9hdDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8Zmxv
YXQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGJvb2w+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTJEQXJyYXk8Ym9vbDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8
Ym9vbDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8Ym9vbDQ+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTJEQXJyYXk8dWNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJy
YXk8dWNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PHVjaGFyMz47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTJEQXJyYXk8dXNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PHVzaG9ydDI+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8dXNob3J0Mz47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlMkRBcnJheTx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5
PHVpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8dWludDI+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTJEQXJyYXk8dWludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJy
YXk8dWludDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8Y2hhcj47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlMkRBcnJheTxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRB
cnJheTxjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxjaGFyND47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxzaG9ydD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
MkRBcnJheTxzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8c2hvcnQzPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PHNob3J0ND47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMkRBcnJheTxpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8aW50Mj47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUyREFycmF5PGludDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8aGFsZj47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxoYWxmMj47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMkRBcnJheTxoYWxmMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxoYWxm
ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxmbG9hdD47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlMkRBcnJheTxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8
ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGZsb2F0ND47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGJvb2w+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
MkRBcnJheTxib29sMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGJvb2wzPjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlMkRBcnJheTx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5
PHVjaGFyMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHVjaGFyMz47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUyREFycmF5PHVzaG9ydD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHVz
aG9ydDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTx1c2hvcnQzPjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dXNob3J0ND47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUyREFycmF5PHVpbnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTx1aW50
Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHVpbnQzPjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTJEQXJyYXk8dWludDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRB
cnJheTxjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8Y2hhcjI+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxjaGFyMz47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUyREFycmF5PGNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8c2hv
cnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxzaG9ydDI+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMkRBcnJheTxzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
MkRBcnJheTxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxpbnQ+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTJEQXJyYXk8aW50Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGlu
dDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxoYWxmPjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTJEQXJyYXk8aGFsZjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRB
cnJheTxoYWxmMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGhhbGY0PjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMkRBcnJheTxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxm
bG9hdDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxmbG9hdDQ+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTNEPGJvb2w+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGJvb2wy
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxib29sMz47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlM0Q8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHVjaGFyPjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUzRDx1Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHVjaGFy
Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dWNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUzRDx1c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHVzaG9ydDI+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHVzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNE
PHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHVpbnQ+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTNEPHVpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDx1aW50Mz47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dWludDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNE
PGNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUzRDxjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8Y2hhcjQ+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxz
aG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHNob3J0Mz47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlM0Q8c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxpbnQ+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGludDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGlu
dDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGludDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTNEPGhhbGY+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGhhbGYyPjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUzRDxoYWxmMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8aGFsZjQ+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUzRDxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGZsb2F0Mz47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlM0Q8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGJv
b2w+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8Ym9vbDI+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlM0Q8Ym9vbDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8Ym9vbDQ+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8dWNoYXI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlM0Q8dWNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHVjaGFyMz47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
M0Q8dXNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHVzaG9ydDI+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlM0Q8dXNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUz
RDx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHVpbnQ+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlM0Q8dWludDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8dWlu
dDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8dWludDQ+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlM0Q8Y2hhcj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxjaGFyMj47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxjaGFyMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUzRDxjaGFyND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxzaG9ydD47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUzRDxzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8
c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHNob3J0ND47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUzRDxpbnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8aW50Mj47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTNEPGludDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8aGFsZj47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUzRDxoYWxmMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxo
YWxmMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxoYWxmND47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUzRDxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxmbG9hdDI+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTNEPGZsb2F0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxib29sPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGJvb2wyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVD
dWJlPGJvb2wzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGJvb2w0PjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmVDdWJlPHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHVj
aGFyMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1Y2hhcjM+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZUN1YmU8dWNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHVzaG9y
dD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmVDdWJlPHVzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8dXNob3J0
ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmVDdWJlPHVpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHVpbnQzPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVD
dWJlPGNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8Y2hhcjI+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZUN1YmU8Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8Y2hh
cjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZUN1YmU8c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHNob3J0Mz47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZUN1YmU8aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGludDI+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZUN1YmU8aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxp
bnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGhhbGY+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZUN1YmU8aGFsZjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8aGFsZjM+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZUN1YmU8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8ZmxvYXQyPjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGZsb2F0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3Vi
ZTxmbG9hdDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZURlcHRoMkQ8aGFsZj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmVE
ZXB0aDJEPGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZURlcHRoMkQ8aGFsZj47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmVEZXB0aDJEQXJyYXk8aGFsZj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmVEZXB0
aDJEQXJyYXk8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlRGVwdGgyREFycmF5PGhh
bGY+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZURlcHRoQ3ViZTxmbG9hdD47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlRGVwdGhDdWJlPGhhbGY+OworCituYXRpdmUgb3BlcmF0b3IgdWNoYXIodXNo
b3J0KTsKIG5hdGl2ZSBvcGVyYXRvciB1Y2hhcih1aW50KTsKK25hdGl2ZSBvcGVyYXRvciB1Y2hh
cihjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciB1Y2hhcihzaG9ydCk7CituYXRpdmUgb3BlcmF0b3Ig
dWNoYXIoaW50KTsKK25hdGl2ZSBvcGVyYXRvciB1Y2hhcihoYWxmKTsKIG5hdGl2ZSBvcGVyYXRv
ciB1Y2hhcihmbG9hdCk7Ci1uYXRpdmUgb3BlcmF0b3IgZmxvYXQoaW50KTsKLW5hdGl2ZSBvcGVy
YXRvciBmbG9hdCh1aW50KTsKK25hdGl2ZSBvcGVyYXRvciB1c2hvcnQodWNoYXIpOworbmF0aXZl
IG9wZXJhdG9yIHVzaG9ydCh1aW50KTsKK25hdGl2ZSBvcGVyYXRvciB1c2hvcnQoY2hhcik7Citu
YXRpdmUgb3BlcmF0b3IgdXNob3J0KHNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciB1c2hvcnQoaW50
KTsKK25hdGl2ZSBvcGVyYXRvciB1c2hvcnQoaGFsZik7CituYXRpdmUgb3BlcmF0b3IgdXNob3J0
KGZsb2F0KTsKK25hdGl2ZSBvcGVyYXRvciB1aW50KHVjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciB1
aW50KHVzaG9ydCk7CituYXRpdmUgb3BlcmF0b3IgdWludChjaGFyKTsKK25hdGl2ZSBvcGVyYXRv
ciB1aW50KHNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciB1aW50KGludCk7CituYXRpdmUgb3BlcmF0
b3IgdWludChoYWxmKTsKK25hdGl2ZSBvcGVyYXRvciB1aW50KGZsb2F0KTsKK25hdGl2ZSBvcGVy
YXRvciBjaGFyKHVjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciBjaGFyKHVzaG9ydCk7CituYXRpdmUg
b3BlcmF0b3IgY2hhcih1aW50KTsKK25hdGl2ZSBvcGVyYXRvciBjaGFyKHNob3J0KTsKK25hdGl2
ZSBvcGVyYXRvciBjaGFyKGludCk7CituYXRpdmUgb3BlcmF0b3IgY2hhcihoYWxmKTsKK25hdGl2
ZSBvcGVyYXRvciBjaGFyKGZsb2F0KTsKK25hdGl2ZSBvcGVyYXRvciBzaG9ydCh1Y2hhcik7Citu
YXRpdmUgb3BlcmF0b3Igc2hvcnQodXNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciBzaG9ydCh1aW50
KTsKK25hdGl2ZSBvcGVyYXRvciBzaG9ydChjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciBzaG9ydChp
bnQpOworbmF0aXZlIG9wZXJhdG9yIHNob3J0KGhhbGYpOworbmF0aXZlIG9wZXJhdG9yIHNob3J0
KGZsb2F0KTsKK25hdGl2ZSBvcGVyYXRvciBpbnQodWNoYXIpOworbmF0aXZlIG9wZXJhdG9yIGlu
dCh1c2hvcnQpOworbmF0aXZlIG9wZXJhdG9yIGludCh1aW50KTsKK25hdGl2ZSBvcGVyYXRvciBp
bnQoY2hhcik7CituYXRpdmUgb3BlcmF0b3IgaW50KHNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciBp
bnQoaGFsZik7CituYXRpdmUgb3BlcmF0b3IgaW50KGZsb2F0KTsKK25hdGl2ZSBvcGVyYXRvciBo
YWxmKHVjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciBoYWxmKHVzaG9ydCk7CituYXRpdmUgb3BlcmF0
b3IgaGFsZih1aW50KTsKK25hdGl2ZSBvcGVyYXRvciBoYWxmKGNoYXIpOworbmF0aXZlIG9wZXJh
dG9yIGhhbGYoc2hvcnQpOworbmF0aXZlIG9wZXJhdG9yIGhhbGYoaW50KTsKK25hdGl2ZSBvcGVy
YXRvciBoYWxmKGZsb2F0KTsKIG5hdGl2ZSBvcGVyYXRvciBmbG9hdCh1Y2hhcik7CituYXRpdmUg
b3BlcmF0b3IgZmxvYXQodXNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciBmbG9hdCh1aW50KTsKK25h
dGl2ZSBvcGVyYXRvciBmbG9hdChjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciBmbG9hdChzaG9ydCk7
CituYXRpdmUgb3BlcmF0b3IgZmxvYXQoaW50KTsKK25hdGl2ZSBvcGVyYXRvciBmbG9hdChoYWxm
KTsKKworb3BlcmF0b3IgYm9vbCh1Y2hhciB4KSB7CisgICAgcmV0dXJuIHggIT0gMDsKK30KK29w
ZXJhdG9yIGJvb2wodXNob3J0IHgpIHsKKyAgICByZXR1cm4geCAhPSAwOworfQorb3BlcmF0b3Ig
Ym9vbCh1aW50IHgpIHsKKyAgICByZXR1cm4geCAhPSAwOworfQorb3BlcmF0b3IgYm9vbChjaGFy
IHgpIHsKKyAgICByZXR1cm4geCAhPSAwOworfQorb3BlcmF0b3IgYm9vbChzaG9ydCB4KSB7Cisg
ICAgcmV0dXJuIHggIT0gMDsKK30KK29wZXJhdG9yIGJvb2woaW50IHgpIHsKKyAgICByZXR1cm4g
eCAhPSAwOworfQorb3BlcmF0b3IgYm9vbChoYWxmIHgpIHsKKyAgICByZXR1cm4geCAhPSAwOwor
fQorb3BlcmF0b3IgYm9vbChmbG9hdCB4KSB7CisgICAgcmV0dXJuIHggIT0gMDsKK30KIAorbmF0
aXZlIG9wZXJhdG9yIGludChhdG9taWNfaW50KTsKK25hdGl2ZSBvcGVyYXRvciB1aW50KGF0b21p
Y191aW50KTsKKworbmF0aXZlIGJvb2wgb3BlcmF0b3I9PShib29sLCBib29sKTsKK2Jvb2wgb3Bl
cmF0b3ImKGJvb2wgYSwgYm9vbCBiKSB7CisgICAgcmV0dXJuIGEgJiYgYjsKK30KK2Jvb2wgb3Bl
cmF0b3J8KGJvb2wgYSwgYm9vbCBiKSB7CisgICAgcmV0dXJuIGEgfHwgYjsKK30KK2Jvb2wgb3Bl
cmF0b3JeKGJvb2wgYSwgYm9vbCBiKSB7CisgICAgaWYgKGEpCisgICAgICAgIHJldHVybiAhYjsK
KyAgICByZXR1cm4gYjsKK30KK2Jvb2wgb3BlcmF0b3J+KGJvb2wgdmFsdWUpIHsKKyAgICByZXR1
cm4gIXZhbHVlOworfQogbmF0aXZlIGludCBvcGVyYXRvcisoaW50LCBpbnQpOwotbmF0aXZlIHVp
bnQgb3BlcmF0b3IrKHVpbnQsIHVpbnQpOwotdWNoYXIgb3BlcmF0b3IrKHVjaGFyIGEsIHVjaGFy
IGIpIHsgcmV0dXJuIHVjaGFyKHVpbnQoYSkgKyB1aW50KGIpKTsgfQotbmF0aXZlIGZsb2F0IG9w
ZXJhdG9yKyhmbG9hdCwgZmxvYXQpOwotaW50IG9wZXJhdG9yKysoaW50IHZhbHVlKSB7IHJldHVy
biB2YWx1ZSArIDE7IH0KLXVpbnQgb3BlcmF0b3IrKyh1aW50IHZhbHVlKSB7IHJldHVybiB2YWx1
ZSArIDE7IH0KLXVjaGFyIG9wZXJhdG9yKysodWNoYXIgdmFsdWUpIHsgcmV0dXJuIHZhbHVlICsg
MTsgfQogbmF0aXZlIGludCBvcGVyYXRvci0oaW50LCBpbnQpOwotbmF0aXZlIHVpbnQgb3BlcmF0
b3ItKHVpbnQsIHVpbnQpOwotdWNoYXIgb3BlcmF0b3ItKHVjaGFyIGEsIHVjaGFyIGIpIHsgcmV0
dXJuIHVjaGFyKHVpbnQoYSkgLSB1aW50KGIpKTsgfQotbmF0aXZlIGZsb2F0IG9wZXJhdG9yLShm
bG9hdCwgZmxvYXQpOwotaW50IG9wZXJhdG9yLS0oaW50IHZhbHVlKSB7IHJldHVybiB2YWx1ZSAt
IDE7IH0KLXVpbnQgb3BlcmF0b3ItLSh1aW50IHZhbHVlKSB7IHJldHVybiB2YWx1ZSAtIDE7IH0K
LXVjaGFyIG9wZXJhdG9yLS0odWNoYXIgdmFsdWUpIHsgcmV0dXJuIHZhbHVlIC0gMTsgfQogbmF0
aXZlIGludCBvcGVyYXRvciooaW50LCBpbnQpOwotbmF0aXZlIHVpbnQgb3BlcmF0b3IqKHVpbnQs
IHVpbnQpOwotdWNoYXIgb3BlcmF0b3IqKHVjaGFyIGEsIHVjaGFyIGIpIHsgcmV0dXJuIHVjaGFy
KHVpbnQoYSkgKiB1aW50KGIpKTsgfQotbmF0aXZlIGZsb2F0IG9wZXJhdG9yKihmbG9hdCwgZmxv
YXQpOwogbmF0aXZlIGludCBvcGVyYXRvci8oaW50LCBpbnQpOworbmF0aXZlIGJvb2wgb3BlcmF0
b3I9PShpbnQsIGludCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcjwoaW50LCBpbnQpOworbmF0aXZl
IGJvb2wgb3BlcmF0b3I8PShpbnQsIGludCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcj4oaW50LCBp
bnQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I+PShpbnQsIGludCk7CituYXRpdmUgdWludCBvcGVy
YXRvcisodWludCwgdWludCk7CituYXRpdmUgdWludCBvcGVyYXRvci0odWludCwgdWludCk7Citu
YXRpdmUgdWludCBvcGVyYXRvcioodWludCwgdWludCk7CiBuYXRpdmUgdWludCBvcGVyYXRvci8o
dWludCwgdWludCk7Ci11Y2hhciBvcGVyYXRvci8odWNoYXIgYSwgdWNoYXIgYikgeyByZXR1cm4g
dWNoYXIodWludChhKSAvIHVpbnQoYikpOyB9CituYXRpdmUgYm9vbCBvcGVyYXRvcj09KHVpbnQs
IHVpbnQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I8KHVpbnQsIHVpbnQpOworbmF0aXZlIGJvb2wg
b3BlcmF0b3I8PSh1aW50LCB1aW50KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPih1aW50LCB1aW50
KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPj0odWludCwgdWludCk7CituYXRpdmUgZmxvYXQgb3Bl
cmF0b3IrKGZsb2F0LCBmbG9hdCk7CituYXRpdmUgZmxvYXQgb3BlcmF0b3ItKGZsb2F0LCBmbG9h
dCk7CituYXRpdmUgZmxvYXQgb3BlcmF0b3IqKGZsb2F0LCBmbG9hdCk7CituYXRpdmUgZmxvYXQg
b3BlcmF0b3IvKGZsb2F0LCBmbG9hdCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcj09KGZsb2F0LCBm
bG9hdCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcjwoZmxvYXQsIGZsb2F0KTsKK25hdGl2ZSBib29s
IG9wZXJhdG9yPD0oZmxvYXQsIGZsb2F0KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPihmbG9hdCwg
ZmxvYXQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I+PShmbG9hdCwgZmxvYXQpOwogbmF0aXZlIGlu
dCBvcGVyYXRvciYoaW50LCBpbnQpOwogbmF0aXZlIGludCBvcGVyYXRvcnwoaW50LCBpbnQpOwog
bmF0aXZlIGludCBvcGVyYXRvcl4oaW50LCBpbnQpOwpAQCAtMTQ0LDYyICs2ODIsMjUzNCBAQCBu
YXRpdmUgdWludCBvcGVyYXRvcl4odWludCwgdWludCk7CiBuYXRpdmUgdWludCBvcGVyYXRvcn4o
dWludCk7CiBuYXRpdmUgdWludCBvcGVyYXRvcjw8KHVpbnQsIHVpbnQpOwogbmF0aXZlIHVpbnQg
b3BlcmF0b3I+Pih1aW50LCB1aW50KTsKLXVjaGFyIG9wZXJhdG9yJih1Y2hhciBhLCB1Y2hhciBi
KSB7IHJldHVybiB1Y2hhcih1aW50KGEpICYgdWludChiKSk7IH0KLXVjaGFyIG9wZXJhdG9yfCh1
Y2hhciBhLCB1Y2hhciBiKSB7IHJldHVybiB1Y2hhcih1aW50KGEpIHwgdWludChiKSk7IH0KLXVj
aGFyIG9wZXJhdG9yXih1Y2hhciBhLCB1Y2hhciBiKSB7IHJldHVybiB1Y2hhcih1aW50KGEpIF4g
dWludChiKSk7IH0KLXVjaGFyIG9wZXJhdG9yfih1Y2hhciB2YWx1ZSkgeyByZXR1cm4gdWNoYXIo
fnVpbnQodmFsdWUpKTsgfQotdWNoYXIgb3BlcmF0b3I8PCh1Y2hhciBhLCB1aW50IGIpIHsgcmV0
dXJuIHVjaGFyKHVpbnQoYSkgPDwgKGIgJiA3KSk7IH0KLXVjaGFyIG9wZXJhdG9yPj4odWNoYXIg
YSwgdWludCBiKSB7IHJldHVybiB1Y2hhcih1aW50KGEpID4+IChiICYgNykpOyB9Ci1uYXRpdmUg
ZmxvYXQgb3BlcmF0b3IvKGZsb2F0LCBmbG9hdCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj09KGlu
dCwgaW50KTsKLW5hdGl2ZSBib29sIG9wZXJhdG9yPT0odWludCwgdWludCk7Ci1ib29sIG9wZXJh
dG9yPT0odWNoYXIgYSwgdWNoYXIgYikgeyByZXR1cm4gdWludChhKSA9PSB1aW50KGIpOyB9Ci1u
YXRpdmUgYm9vbCBvcGVyYXRvcj09KGJvb2wsIGJvb2wpOwotbmF0aXZlIGJvb2wgb3BlcmF0b3I9
PShmbG9hdCwgZmxvYXQpOwotbmF0aXZlIGJvb2wgb3BlcmF0b3I8KGludCwgaW50KTsKLW5hdGl2
ZSBib29sIG9wZXJhdG9yPCh1aW50LCB1aW50KTsKLWJvb2wgb3BlcmF0b3I8KHVjaGFyIGEsIHVj
aGFyIGIpIHsgcmV0dXJuIHVpbnQoYSkgPCB1aW50KGIpOyB9Ci1uYXRpdmUgYm9vbCBvcGVyYXRv
cjwoZmxvYXQsIGZsb2F0KTsKLW5hdGl2ZSBib29sIG9wZXJhdG9yPD0oaW50LCBpbnQpOwotbmF0
aXZlIGJvb2wgb3BlcmF0b3I8PSh1aW50LCB1aW50KTsKLWJvb2wgb3BlcmF0b3I8PSh1Y2hhciBh
LCB1Y2hhciBiKSB7IHJldHVybiB1aW50KGEpIDw9IHVpbnQoYik7IH0KLW5hdGl2ZSBib29sIG9w
ZXJhdG9yPD0oZmxvYXQsIGZsb2F0KTsKLW5hdGl2ZSBib29sIG9wZXJhdG9yPihpbnQsIGludCk7
Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj4odWludCwgdWludCk7Ci1ib29sIG9wZXJhdG9yPih1Y2hh
ciBhLCB1Y2hhciBiKSB7IHJldHVybiB1aW50KGEpID4gdWludChiKTsgfQotbmF0aXZlIGJvb2wg
b3BlcmF0b3I+KGZsb2F0LCBmbG9hdCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj49KGludCwgaW50
KTsKLW5hdGl2ZSBib29sIG9wZXJhdG9yPj0odWludCwgdWludCk7Ci1ib29sIG9wZXJhdG9yPj0o
dWNoYXIgYSwgdWNoYXIgYikgeyByZXR1cm4gdWludChhKSA+PSB1aW50KGIpOyB9Ci1uYXRpdmUg
Ym9vbCBvcGVyYXRvcj49KGZsb2F0LCBmbG9hdCk7Ci0KLWJvb2wgb3BlcmF0b3ImKGJvb2wgYSwg
Ym9vbCBiKQotewotICAgIGlmIChhKQotICAgICAgICByZXR1cm4gYjsKLSAgICByZXR1cm4gZmFs
c2U7Cit1Y2hhciBvcGVyYXRvcisodWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVybiB1Y2hh
cih1aW50KGEpICsgdWludChiKSk7CiB9Ci0KLWJvb2wgb3BlcmF0b3J8KGJvb2wgYSwgYm9vbCBi
KQotewotICAgIGlmIChhKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAoYikKLSAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGZhbHNlOwordWNoYXIgb3BlcmF0b3ItKHVjaGFy
IGEsIHVjaGFyIGIpIHsKKyAgICByZXR1cm4gdWNoYXIodWludChhKSAtIHVpbnQoYikpOworfQor
dWNoYXIgb3BlcmF0b3IqKHVjaGFyIGEsIHVjaGFyIGIpIHsKKyAgICByZXR1cm4gdWNoYXIodWlu
dChhKSAqIHVpbnQoYikpOworfQordWNoYXIgb3BlcmF0b3IvKHVjaGFyIGEsIHVjaGFyIGIpIHsK
KyAgICByZXR1cm4gdWNoYXIodWludChhKSAvIHVpbnQoYikpOworfQordWNoYXIgb3BlcmF0b3Im
KHVjaGFyIGEsIHVjaGFyIGIpIHsKKyAgICByZXR1cm4gdWNoYXIodWludChhKSAmIHVpbnQoYikp
OworfQordWNoYXIgb3BlcmF0b3J8KHVjaGFyIGEsIHVjaGFyIGIpIHsKKyAgICByZXR1cm4gdWNo
YXIodWludChhKSB8IHVpbnQoYikpOworfQordWNoYXIgb3BlcmF0b3JeKHVjaGFyIGEsIHVjaGFy
IGIpIHsKKyAgICByZXR1cm4gdWNoYXIodWludChhKSBeIHVpbnQoYikpOworfQordWNoYXIgb3Bl
cmF0b3J+KHVjaGFyIGEpIHsKKyAgICByZXR1cm4gdWNoYXIofnVpbnQoYSkpOworfQorYm9vbCBv
cGVyYXRvcj09KHVjaGFyIGEsIHVjaGFyIGIpIHsKKyAgICByZXR1cm4gdWludChhKSA9PSB1aW50
KGIpOworfQorYm9vbCBvcGVyYXRvcjwodWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVybiB1
aW50KGEpIDwgdWludChiKTsKK30KK2Jvb2wgb3BlcmF0b3I8PSh1Y2hhciBhLCB1Y2hhciBiKSB7
CisgICAgcmV0dXJuIHVpbnQoYSkgPD0gdWludChiKTsKK30KK2Jvb2wgb3BlcmF0b3I+KHVjaGFy
IGEsIHVjaGFyIGIpIHsKKyAgICByZXR1cm4gdWludChhKSA+IHVpbnQoYik7Cit9Citib29sIG9w
ZXJhdG9yPj0odWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVybiB1aW50KGEpID49IHVpbnQo
Yik7Cit9Cit1c2hvcnQgb3BlcmF0b3IrKHVzaG9ydCBhLCB1c2hvcnQgYikgeworICAgIHJldHVy
biB1c2hvcnQodWludChhKSArIHVpbnQoYikpOworfQordXNob3J0IG9wZXJhdG9yLSh1c2hvcnQg
YSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gdXNob3J0KHVpbnQoYSkgLSB1aW50KGIpKTsKK30K
K3VzaG9ydCBvcGVyYXRvcioodXNob3J0IGEsIHVzaG9ydCBiKSB7CisgICAgcmV0dXJuIHVzaG9y
dCh1aW50KGEpICogdWludChiKSk7Cit9Cit1c2hvcnQgb3BlcmF0b3IvKHVzaG9ydCBhLCB1c2hv
cnQgYikgeworICAgIHJldHVybiB1c2hvcnQodWludChhKSAvIHVpbnQoYikpOworfQordXNob3J0
IG9wZXJhdG9yJih1c2hvcnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gdXNob3J0KHVpbnQo
YSkgJiB1aW50KGIpKTsKK30KK3VzaG9ydCBvcGVyYXRvcnwodXNob3J0IGEsIHVzaG9ydCBiKSB7
CisgICAgcmV0dXJuIHVzaG9ydCh1aW50KGEpIHwgdWludChiKSk7Cit9Cit1c2hvcnQgb3BlcmF0
b3JeKHVzaG9ydCBhLCB1c2hvcnQgYikgeworICAgIHJldHVybiB1c2hvcnQodWludChhKSBeIHVp
bnQoYikpOworfQordXNob3J0IG9wZXJhdG9yfih1c2hvcnQgYSkgeworICAgIHJldHVybiB1c2hv
cnQofnVpbnQoYSkpOworfQorYm9vbCBvcGVyYXRvcj09KHVzaG9ydCBhLCB1c2hvcnQgYikgewor
ICAgIHJldHVybiB1aW50KGEpID09IHVpbnQoYik7Cit9Citib29sIG9wZXJhdG9yPCh1c2hvcnQg
YSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gdWludChhKSA8IHVpbnQoYik7Cit9Citib29sIG9w
ZXJhdG9yPD0odXNob3J0IGEsIHVzaG9ydCBiKSB7CisgICAgcmV0dXJuIHVpbnQoYSkgPD0gdWlu
dChiKTsKK30KK2Jvb2wgb3BlcmF0b3I+KHVzaG9ydCBhLCB1c2hvcnQgYikgeworICAgIHJldHVy
biB1aW50KGEpID4gdWludChiKTsKK30KK2Jvb2wgb3BlcmF0b3I+PSh1c2hvcnQgYSwgdXNob3J0
IGIpIHsKKyAgICByZXR1cm4gdWludChhKSA+PSB1aW50KGIpOworfQordWNoYXIgb3BlcmF0b3I8
PCh1Y2hhciBhLCB1aW50IGIpIHsKKyAgICByZXR1cm4gdWNoYXIodWludChhKSA8PCAoYiAmIDI1
NSkpOworfQordXNob3J0IG9wZXJhdG9yPDwodXNob3J0IGEsIHVpbnQgYikgeworICAgIHJldHVy
biB1c2hvcnQodWludChhKSA8PCAoYiAmIDY1NTM1KSk7CiB9Cit1Y2hhciBvcGVyYXRvcj4+KHVj
aGFyIGEsIHVpbnQgYikgeworICAgIHJldHVybiB1Y2hhcih1aW50KGEpID4+IChiICYgMjU1KSk7
Cit9Cit1c2hvcnQgb3BlcmF0b3I+Pih1c2hvcnQgYSwgdWludCBiKSB7CisgICAgcmV0dXJuIHVz
aG9ydCh1aW50KGEpID4+IChiICYgNjU1MzUpKTsKK30KK2NoYXIgb3BlcmF0b3IrKGNoYXIgYSwg
Y2hhciBiKSB7CisgICAgcmV0dXJuIGNoYXIoaW50KGEpICsgaW50KGIpKTsKK30KK2NoYXIgb3Bl
cmF0b3ItKGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGNoYXIoaW50KGEpIC0gaW50KGIp
KTsKK30KK2NoYXIgb3BlcmF0b3IqKGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGNoYXIo
aW50KGEpICogaW50KGIpKTsKK30KK2NoYXIgb3BlcmF0b3IvKGNoYXIgYSwgY2hhciBiKSB7Cisg
ICAgcmV0dXJuIGNoYXIoaW50KGEpIC8gaW50KGIpKTsKK30KK2NoYXIgb3BlcmF0b3ImKGNoYXIg
YSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGNoYXIoaW50KGEpICYgaW50KGIpKTsKK30KK2NoYXIg
b3BlcmF0b3J8KGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGNoYXIoaW50KGEpIHwgaW50
KGIpKTsKK30KK2NoYXIgb3BlcmF0b3JeKGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGNo
YXIoaW50KGEpIF4gaW50KGIpKTsKK30KK2NoYXIgb3BlcmF0b3J+KGNoYXIgYSkgeworICAgIHJl
dHVybiBjaGFyKH5pbnQoYSkpOworfQorYm9vbCBvcGVyYXRvcj09KGNoYXIgYSwgY2hhciBiKSB7
CisgICAgcmV0dXJuIGludChhKSA9PSBpbnQoYik7Cit9Citib29sIG9wZXJhdG9yPihjaGFyIGEs
IGNoYXIgYikgeworICAgIHJldHVybiBpbnQoYSkgPiBpbnQoYik7Cit9Citib29sIG9wZXJhdG9y
Pj0oY2hhciBhLCBjaGFyIGIpIHsKKyAgICByZXR1cm4gaW50KGEpID49IGludChiKTsKK30KK2Jv
b2wgb3BlcmF0b3I8KGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGludChhKSA8IGludChi
KTsKK30KK2Jvb2wgb3BlcmF0b3I8PShjaGFyIGEsIGNoYXIgYikgeworICAgIHJldHVybiBpbnQo
YSkgPD0gaW50KGIpOworfQorc2hvcnQgb3BlcmF0b3IrKHNob3J0IGEsIHNob3J0IGIpIHsKKyAg
ICByZXR1cm4gc2hvcnQoaW50KGEpICsgaW50KGIpKTsKK30KK3Nob3J0IG9wZXJhdG9yLShzaG9y
dCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIHNob3J0KGludChhKSAtIGludChiKSk7Cit9Citz
aG9ydCBvcGVyYXRvciooc2hvcnQgYSwgc2hvcnQgYikgeworICAgIHJldHVybiBzaG9ydChpbnQo
YSkgKiBpbnQoYikpOworfQorc2hvcnQgb3BlcmF0b3IvKHNob3J0IGEsIHNob3J0IGIpIHsKKyAg
ICByZXR1cm4gc2hvcnQoaW50KGEpIC8gaW50KGIpKTsKK30KK3Nob3J0IG9wZXJhdG9yJihzaG9y
dCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIHNob3J0KGludChhKSAmIGludChiKSk7Cit9Citz
aG9ydCBvcGVyYXRvcnwoc2hvcnQgYSwgc2hvcnQgYikgeworICAgIHJldHVybiBzaG9ydChpbnQo
YSkgfCBpbnQoYikpOworfQorc2hvcnQgb3BlcmF0b3JeKHNob3J0IGEsIHNob3J0IGIpIHsKKyAg
ICByZXR1cm4gc2hvcnQoaW50KGEpIF4gaW50KGIpKTsKK30KK3Nob3J0IG9wZXJhdG9yfihzaG9y
dCBhKSB7CisgICAgcmV0dXJuIHNob3J0KH5pbnQoYSkpOworfQorYm9vbCBvcGVyYXRvcj09KHNo
b3J0IGEsIHNob3J0IGIpIHsKKyAgICByZXR1cm4gaW50KGEpID09IGludChiKTsKK30KK2Jvb2wg
b3BlcmF0b3I+KHNob3J0IGEsIHNob3J0IGIpIHsKKyAgICByZXR1cm4gaW50KGEpID4gaW50KGIp
OworfQorYm9vbCBvcGVyYXRvcj49KHNob3J0IGEsIHNob3J0IGIpIHsKKyAgICByZXR1cm4gaW50
KGEpID49IGludChiKTsKK30KK2Jvb2wgb3BlcmF0b3I8KHNob3J0IGEsIHNob3J0IGIpIHsKKyAg
ICByZXR1cm4gaW50KGEpIDwgaW50KGIpOworfQorYm9vbCBvcGVyYXRvcjw9KHNob3J0IGEsIHNo
b3J0IGIpIHsKKyAgICByZXR1cm4gaW50KGEpIDw9IGludChiKTsKK30KK2NoYXIgb3BlcmF0b3I8
PChjaGFyIGEsIHVpbnQgYikgeworICAgIHJldHVybiBjaGFyKGludChhKSA8PCAoYiAmIDI1NSkp
OworfQorc2hvcnQgb3BlcmF0b3I8PChzaG9ydCBhLCB1aW50IGIpIHsKKyAgICByZXR1cm4gc2hv
cnQoaW50KGEpIDw8IChiICYgNjU1MzUpKTsKK30KK2NoYXIgb3BlcmF0b3I+PihjaGFyIGEsIHVp
bnQgYikgeworICAgIHJldHVybiBjaGFyKGludChhKSA+PiAoYiAmIDI1NSkpOworfQorc2hvcnQg
b3BlcmF0b3I+PihzaG9ydCBhLCB1aW50IGIpIHsKKyAgICByZXR1cm4gc2hvcnQoaW50KGEpID4+
IChiICYgNjU1MzUpKTsKK30KK3VjaGFyIG9wZXJhdG9yKysodWNoYXIgdmFsdWUpIHsKKyAgICBy
ZXR1cm4gdmFsdWUgKyAxOworfQordWNoYXIgb3BlcmF0b3ItLSh1Y2hhciB2YWx1ZSkgeworICAg
IHJldHVybiB2YWx1ZSAtIDE7Cit9Cit1c2hvcnQgb3BlcmF0b3IrKyh1c2hvcnQgdmFsdWUpIHsK
KyAgICByZXR1cm4gdmFsdWUgKyAxOworfQordXNob3J0IG9wZXJhdG9yLS0odXNob3J0IHZhbHVl
KSB7CisgICAgcmV0dXJuIHZhbHVlIC0gMTsKK30KK3VpbnQgb3BlcmF0b3IrKyh1aW50IHZhbHVl
KSB7CisgICAgcmV0dXJuIHZhbHVlICsgMTsKK30KK3VpbnQgb3BlcmF0b3ItLSh1aW50IHZhbHVl
KSB7CisgICAgcmV0dXJuIHZhbHVlIC0gMTsKK30KK2NoYXIgb3BlcmF0b3IrKyhjaGFyIHZhbHVl
KSB7CisgICAgcmV0dXJuIHZhbHVlICsgMTsKK30KK2NoYXIgb3BlcmF0b3ItLShjaGFyIHZhbHVl
KSB7CisgICAgcmV0dXJuIHZhbHVlIC0gMTsKK30KK3Nob3J0IG9wZXJhdG9yKysoc2hvcnQgdmFs
dWUpIHsKKyAgICByZXR1cm4gdmFsdWUgKyAxOworfQorc2hvcnQgb3BlcmF0b3ItLShzaG9ydCB2
YWx1ZSkgeworICAgIHJldHVybiB2YWx1ZSAtIDE7Cit9CitpbnQgb3BlcmF0b3IrKyhpbnQgdmFs
dWUpIHsKKyAgICByZXR1cm4gdmFsdWUgKyAxOworfQoraW50IG9wZXJhdG9yLS0oaW50IHZhbHVl
KSB7CisgICAgcmV0dXJuIHZhbHVlIC0gMTsKK30KK2hhbGYgb3BlcmF0b3IrKyhoYWxmIHZhbHVl
KSB7CisgICAgcmV0dXJuIHZhbHVlICsgMTsKK30KK2hhbGYgb3BlcmF0b3ItLShoYWxmIHZhbHVl
KSB7CisgICAgcmV0dXJuIHZhbHVlIC0gMTsKK30KK2Zsb2F0IG9wZXJhdG9yKysoZmxvYXQgdmFs
dWUpIHsKKyAgICByZXR1cm4gdmFsdWUgKyAxOworfQorZmxvYXQgb3BlcmF0b3ItLShmbG9hdCB2
YWx1ZSkgeworICAgIHJldHVybiB2YWx1ZSAtIDE7Cit9CitoYWxmIG9wZXJhdG9yKyhoYWxmIGEs
IGhhbGYgYikgeworICAgIHJldHVybiBoYWxmKGZsb2F0KGEpICsgZmxvYXQoYikpOworfQoraGFs
ZiBvcGVyYXRvci0oaGFsZiBhLCBoYWxmIGIpIHsKKyAgICByZXR1cm4gaGFsZihmbG9hdChhKSAt
IGZsb2F0KGIpKTsKK30KK2hhbGYgb3BlcmF0b3IqKGhhbGYgYSwgaGFsZiBiKSB7CisgICAgcmV0
dXJuIGhhbGYoZmxvYXQoYSkgKiBmbG9hdChiKSk7Cit9CitoYWxmIG9wZXJhdG9yLyhoYWxmIGEs
IGhhbGYgYikgeworICAgIHJldHVybiBoYWxmKGZsb2F0KGEpIC8gZmxvYXQoYikpOworfQorYm9v
bCBvcGVyYXRvcj09KGhhbGYgYSwgaGFsZiBiKSB7CisgICAgcmV0dXJuIGZsb2F0KGEpID09IGZs
b2F0KGIpOworfQorYm9vbCBvcGVyYXRvcjwoaGFsZiBhLCBoYWxmIGIpIHsKKyAgICByZXR1cm4g
ZmxvYXQoYSkgPCBmbG9hdChiKTsKK30KK2Jvb2wgb3BlcmF0b3I8PShoYWxmIGEsIGhhbGYgYikg
eworICAgIHJldHVybiBmbG9hdChhKSA8PSBmbG9hdChiKTsKK30KK2Jvb2wgb3BlcmF0b3I+KGhh
bGYgYSwgaGFsZiBiKSB7CisgICAgcmV0dXJuIGZsb2F0KGEpIDwgZmxvYXQoYik7Cit9Citib29s
IG9wZXJhdG9yPj0oaGFsZiBhLCBoYWxmIGIpIHsKKyAgICByZXR1cm4gZmxvYXQoYSkgPD0gZmxv
YXQoYik7Cit9CitjaGFyIG9wZXJhdG9yLShjaGFyIHgpIHsKKyAgICByZXR1cm4gY2hhcigtaW50
KHgpKTsKK30KK3Nob3J0IG9wZXJhdG9yLShzaG9ydCB4KSB7CisgICAgcmV0dXJuIHNob3J0KC1p
bnQoeCkpOworfQoraGFsZiBvcGVyYXRvci0oaGFsZiB4KSB7CisgICAgcmV0dXJuIGhhbGYoLWZs
b2F0KHgpKTsKK30KK25hdGl2ZSBpbnQgb3BlcmF0b3ItKGludCk7CituYXRpdmUgZmxvYXQgb3Bl
cmF0b3ItKGZsb2F0KTsKIAotYm9vbCBvcGVyYXRvcl4oYm9vbCBhLCBib29sIGIpCi17Ci0gICAg
aWYgKGEpCi0gICAgICAgIHJldHVybiAhYjsKLSAgICByZXR1cm4gYjsKK29wZXJhdG9yIGJvb2wy
KGJvb2wgeCwgYm9vbCB5KSB7CisgICAgYm9vbDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsK
KyAgICByZXN1bHQueSA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGJvb2wz
KGJvb2wgeCwgYm9vbCB5LCBib29sIHopIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIGJvb2wzKGJvb2wyIHgsIGJvb2wgeSkgeworICAgIGJvb2wz
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICBy
ZXN1bHQueiA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGJvb2wzKGJvb2wg
eCwgYm9vbDIgeSkgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAg
cmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK29wZXJhdG9yIGJvb2w0KGJvb2wgeCwgYm9vbCB5LCBib29sIHosIGJvb2wgdykgeworICAg
IGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAg
IHJlc3VsdC56ID0gejsKKyAgICByZXN1bHQudyA9IHc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K29wZXJhdG9yIGJvb2w0KGJvb2wyIHgsIGJvb2wgeSwgYm9vbCB6KSB7CisgICAgYm9vbDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3Vs
dC56ID0geTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJh
dG9yIGJvb2w0KGJvb2wgeCwgYm9vbDIgeSwgYm9vbCB6KSB7CisgICAgYm9vbDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHku
eTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGJv
b2w0KGJvb2wgeCwgYm9vbCB5LCBib29sMiB6KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6Lng7CisgICAg
cmVzdWx0LncgPSB6Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGJvb2w0KGJv
b2wyIHgsIGJvb2wyIHkpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7
CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVzdWx0Lncg
PSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGJvb2w0KGJvb2wzIHgsIGJv
b2wgeSkgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1
bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHguejsKKyAgICByZXN1bHQudyA9IHk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGJvb2w0KGJvb2wgeCwgYm9vbDMgeSkgeworICAg
IGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7Cisg
ICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGJvb2wyKSB7CisgICAgcmV0dXJuIDI7Cit9Cit1
aW50IG9wZXJhdG9yLmxlbmd0aChib29sMykgeworICAgIHJldHVybiAzOworfQordWludCBvcGVy
YXRvci5sZW5ndGgoYm9vbDQpIHsKKyAgICByZXR1cm4gNDsKK30KK29wZXJhdG9yIHVjaGFyMih1
Y2hhciB4LCB1Y2hhciB5KSB7CisgICAgdWNoYXIyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7
CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1Y2hh
cjModWNoYXIgeCwgdWNoYXIgeSwgdWNoYXIgeikgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVjaGFyMyh1Y2hhcjIgeCwgdWNoYXIgeSkgewor
ICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4
Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1
Y2hhcjModWNoYXIgeCwgdWNoYXIyIHkpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWNoYXI0KHVjaGFyIHgsIHVjaGFyIHksIHVjaGFy
IHosIHVjaGFyIHcpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAg
ICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6OworICAgIHJlc3VsdC53ID0gdzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWNoYXI0KHVjaGFyMiB4LCB1Y2hhciB5LCB1
Y2hhciB6KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICBy
ZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmVzdWx0LncgPSB6OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1Y2hhcjQodWNoYXIgeCwgdWNoYXIyIHksIHVj
aGFyIHopIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1
bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHo7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVjaGFyNCh1Y2hhciB4LCB1Y2hhciB5LCB1Y2hh
cjIgeikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3Vs
dC55ID0geTsKKyAgICByZXN1bHQueiA9IHoueDsKKyAgICByZXN1bHQudyA9IHoueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWNoYXI0KHVjaGFyMiB4LCB1Y2hhcjIgeSkgewor
ICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4
Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVzdWx0LncgPSB5Lnk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIHVjaGFyNCh1Y2hhcjMgeCwgdWNoYXIgeSkgeworICAgIHVj
aGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7Cisg
ICAgcmVzdWx0LnogPSB4Lno7CisgICAgcmVzdWx0LncgPSB5OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitvcGVyYXRvciB1Y2hhcjQodWNoYXIgeCwgdWNoYXIzIHkpIHsKKyAgICB1Y2hhcjQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQu
eiA9IHkueTsKKyAgICByZXN1bHQudyA9IHkuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWlu
dCBvcGVyYXRvci5sZW5ndGgodWNoYXIyKSB7CisgICAgcmV0dXJuIDI7Cit9Cit1aW50IG9wZXJh
dG9yLmxlbmd0aCh1Y2hhcjMpIHsKKyAgICByZXR1cm4gMzsKK30KK3VpbnQgb3BlcmF0b3IubGVu
Z3RoKHVjaGFyNCkgeworICAgIHJldHVybiA0OworfQorb3BlcmF0b3IgdXNob3J0Mih1c2hvcnQg
eCwgdXNob3J0IHkpIHsKKyAgICB1c2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7Cisg
ICAgcmVzdWx0LnkgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQz
KHVzaG9ydCB4LCB1c2hvcnQgeSwgdXNob3J0IHopIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdXNob3J0Myh1c2hvcnQyIHgsIHVzaG9ydCB5
KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0
LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVy
YXRvciB1c2hvcnQzKHVzaG9ydCB4LCB1c2hvcnQyIHkpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5
Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVzaG9ydDQodXNob3J0IHgsIHVz
aG9ydCB5LCB1c2hvcnQgeiwgdXNob3J0IHcpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICBy
ZXN1bHQudyA9IHc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVzaG9ydDQodXNo
b3J0MiB4LCB1c2hvcnQgeSwgdXNob3J0IHopIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7Cisg
ICAgcmVzdWx0LncgPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQ0
KHVzaG9ydCB4LCB1c2hvcnQyIHksIHVzaG9ydCB6KSB7CisgICAgdXNob3J0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55
OworICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdXNo
b3J0NCh1c2hvcnQgeCwgdXNob3J0IHksIHVzaG9ydDIgeikgeworICAgIHVzaG9ydDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6
Lng7CisgICAgcmVzdWx0LncgPSB6Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9y
IHVzaG9ydDQodXNob3J0MiB4LCB1c2hvcnQyIHkpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHku
eDsKKyAgICByZXN1bHQudyA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Ig
dXNob3J0NCh1c2hvcnQzIHgsIHVzaG9ydCB5KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB4Lno7
CisgICAgcmVzdWx0LncgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hv
cnQ0KHVzaG9ydCB4LCB1c2hvcnQzIHkpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAg
cmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQgb3BlcmF0b3IubGVu
Z3RoKHVzaG9ydDIpIHsKKyAgICByZXR1cm4gMjsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHVz
aG9ydDMpIHsKKyAgICByZXR1cm4gMzsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHVzaG9ydDQp
IHsKKyAgICByZXR1cm4gNDsKK30KK29wZXJhdG9yIHVpbnQyKHVpbnQgeCwgdWludCB5KSB7Cisg
ICAgdWludDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQzKHVpbnQgeCwgdWludCB5LCB1aW50
IHopIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55
ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9y
IHVpbnQzKHVpbnQyIHgsIHVpbnQgeSkgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQzKHVpbnQgeCwgdWludDIgeSkgeworICAgIHVp
bnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAg
cmVzdWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQ0KHVp
bnQgeCwgdWludCB5LCB1aW50IHosIHVpbnQgdykgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICBy
ZXN1bHQudyA9IHc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQ0KHVpbnQy
IHgsIHVpbnQgeSwgdWludCB6KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
eC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geTsKKyAgICByZXN1bHQu
dyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQ0KHVpbnQgeCwgdWlu
dDIgeSwgdWludCB6KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAg
ICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHo7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQ0KHVpbnQgeCwgdWludCB5LCB1
aW50MiB6KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1
bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6Lng7CisgICAgcmVzdWx0LncgPSB6Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQ0KHVpbnQyIHgsIHVpbnQyIHkpIHsKKyAg
ICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7
CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVzdWx0LncgPSB5Lnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK29wZXJhdG9yIHVpbnQ0KHVpbnQzIHgsIHVpbnQgeSkgeworICAgIHVpbnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1
bHQueiA9IHguejsKKyAgICByZXN1bHQudyA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29w
ZXJhdG9yIHVpbnQ0KHVpbnQgeCwgdWludDMgeSkgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7Cisg
ICAgcmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQgb3BlcmF0b3Iu
bGVuZ3RoKHVpbnQyKSB7CisgICAgcmV0dXJuIDI7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aCh1
aW50MykgeworICAgIHJldHVybiAzOworfQordWludCBvcGVyYXRvci5sZW5ndGgodWludDQpIHsK
KyAgICByZXR1cm4gNDsKK30KK29wZXJhdG9yIGNoYXIyKGNoYXIgeCwgY2hhciB5KSB7CisgICAg
Y2hhcjIgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXIzKGNoYXIgeCwgY2hhciB5LCBjaGFyIHop
IHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0g
eTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNo
YXIzKGNoYXIyIHgsIGNoYXIgeSkgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXIzKGNoYXIgeCwgY2hhcjIgeSkgeworICAgIGNoYXIz
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVz
dWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXI0KGNoYXIg
eCwgY2hhciB5LCBjaGFyIHosIGNoYXIgdykgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXN1
bHQudyA9IHc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXI0KGNoYXIyIHgs
IGNoYXIgeSwgY2hhciB6KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54
OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geTsKKyAgICByZXN1bHQudyA9
IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXI0KGNoYXIgeCwgY2hhcjIg
eSwgY2hhciB6KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICBy
ZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHo7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXI0KGNoYXIgeCwgY2hhciB5LCBjaGFy
MiB6KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQu
eSA9IHk7CisgICAgcmVzdWx0LnogPSB6Lng7CisgICAgcmVzdWx0LncgPSB6Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXI0KGNoYXIyIHgsIGNoYXIyIHkpIHsKKyAgICBj
aGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7Cisg
ICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVzdWx0LncgPSB5Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK29wZXJhdG9yIGNoYXI0KGNoYXIzIHgsIGNoYXIgeSkgeworICAgIGNoYXI0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQu
eiA9IHguejsKKyAgICByZXN1bHQudyA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJh
dG9yIGNoYXI0KGNoYXIgeCwgY2hhcjMgeSkgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAg
cmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQgb3BlcmF0b3IubGVu
Z3RoKGNoYXIyKSB7CisgICAgcmV0dXJuIDI7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChjaGFy
MykgeworICAgIHJldHVybiAzOworfQordWludCBvcGVyYXRvci5sZW5ndGgoY2hhcjQpIHsKKyAg
ICByZXR1cm4gNDsKK30KK29wZXJhdG9yIHNob3J0MihzaG9ydCB4LCBzaG9ydCB5KSB7CisgICAg
c2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBzaG9ydDMoc2hvcnQgeCwgc2hvcnQgeSwgc2hv
cnQgeikgeworICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3Vs
dC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJh
dG9yIHNob3J0MyhzaG9ydDIgeCwgc2hvcnQgeSkgeworICAgIHNob3J0MyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBzaG9ydDMoc2hvcnQgeCwgc2hvcnQyIHkp
IHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9
IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0
b3Igc2hvcnQ0KHNob3J0IHgsIHNob3J0IHksIHNob3J0IHosIHNob3J0IHcpIHsKKyAgICBzaG9y
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVz
dWx0LnogPSB6OworICAgIHJlc3VsdC53ID0gdzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3Bl
cmF0b3Igc2hvcnQ0KHNob3J0MiB4LCBzaG9ydCB5LCBzaG9ydCB6KSB7CisgICAgc2hvcnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1
bHQueiA9IHk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVy
YXRvciBzaG9ydDQoc2hvcnQgeCwgc2hvcnQyIHksIHNob3J0IHopIHsKKyAgICBzaG9ydDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQu
eiA9IHkueTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJh
dG9yIHNob3J0NChzaG9ydCB4LCBzaG9ydCB5LCBzaG9ydDIgeikgeworICAgIHNob3J0NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9
IHoueDsKKyAgICByZXN1bHQudyA9IHoueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0
b3Igc2hvcnQ0KHNob3J0MiB4LCBzaG9ydDIgeSkgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7
CisgICAgcmVzdWx0LncgPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHNo
b3J0NChzaG9ydDMgeCwgc2hvcnQgeSkgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB4Lno7CisgICAg
cmVzdWx0LncgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBzaG9ydDQoc2hv
cnQgeCwgc2hvcnQzIHkpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsK
KyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9
IHkuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludCBvcGVyYXRvci5sZW5ndGgoc2hvcnQy
KSB7CisgICAgcmV0dXJuIDI7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChzaG9ydDMpIHsKKyAg
ICByZXR1cm4gMzsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHNob3J0NCkgeworICAgIHJldHVy
biA0OworfQorb3BlcmF0b3IgaW50MihpbnQgeCwgaW50IHkpIHsKKyAgICBpbnQyIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitvcGVyYXRvciBpbnQzKGludCB4LCBpbnQgeSwgaW50IHopIHsKKyAgICBpbnQzIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0g
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaW50MyhpbnQyIHgsIGludCB5KSB7
CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4
Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBp
bnQzKGludCB4LCBpbnQyIHkpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7
CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK29wZXJhdG9yIGludDQoaW50IHgsIGludCB5LCBpbnQgeiwgaW50IHcpIHsKKyAg
ICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAg
IHJlc3VsdC56ID0gejsKKyAgICByZXN1bHQudyA9IHc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K29wZXJhdG9yIGludDQoaW50MiB4LCBpbnQgeSwgaW50IHopIHsKKyAgICBpbnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9
IHk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBp
bnQ0KGludCB4LCBpbnQyIHksIGludCB6KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJl
c3VsdC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaW50NChpbnQgeCwg
aW50IHksIGludDIgeikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAg
ICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6Lng7CisgICAgcmVzdWx0LncgPSB6Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGludDQoaW50MiB4LCBpbnQyIHkpIHsK
KyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgu
eTsKKyAgICByZXN1bHQueiA9IHkueDsKKyAgICByZXN1bHQudyA9IHkueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorb3BlcmF0b3IgaW50NChpbnQzIHgsIGludCB5KSB7CisgICAgaW50NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0
LnogPSB4Lno7CisgICAgcmVzdWx0LncgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVy
YXRvciBpbnQ0KGludCB4LCBpbnQzIHkpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVz
dWx0LncgPSB5Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3Ro
KGludDIpIHsKKyAgICByZXR1cm4gMjsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGludDMpIHsK
KyAgICByZXR1cm4gMzsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGludDQpIHsKKyAgICByZXR1
cm4gNDsKK30KK29wZXJhdG9yIGhhbGYyKGhhbGYgeCwgaGFsZiB5KSB7CisgICAgaGFsZjIgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK29wZXJhdG9yIGhhbGYzKGhhbGYgeCwgaGFsZiB5LCBoYWxmIHopIHsKKyAgICBo
YWxmMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICBy
ZXN1bHQueiA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGYzKGhhbGYy
IHgsIGhhbGYgeSkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAg
ICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK29wZXJhdG9yIGhhbGYzKGhhbGYgeCwgaGFsZjIgeSkgeworICAgIGhhbGYzIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5
Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGY0KGhhbGYgeCwgaGFsZiB5
LCBoYWxmIHosIGhhbGYgdykgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7
CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXN1bHQudyA9IHc7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGY0KGhhbGYyIHgsIGhhbGYgeSwg
aGFsZiB6KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJl
c3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geTsKKyAgICByZXN1bHQudyA9IHo7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGY0KGhhbGYgeCwgaGFsZjIgeSwgaGFsZiB6
KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9
IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGY0KGhhbGYgeCwgaGFsZiB5LCBoYWxmMiB6KSB7Cisg
ICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7Cisg
ICAgcmVzdWx0LnogPSB6Lng7CisgICAgcmVzdWx0LncgPSB6Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK29wZXJhdG9yIGhhbGY0KGhhbGYyIHgsIGhhbGYyIHkpIHsKKyAgICBoYWxmNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0
LnogPSB5Lng7CisgICAgcmVzdWx0LncgPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29w
ZXJhdG9yIGhhbGY0KGhhbGYzIHgsIGhhbGYgeSkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHguejsK
KyAgICByZXN1bHQudyA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGY0
KGhhbGYgeCwgaGFsZjMgeSkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7
CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0Lncg
PSB5Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGhhbGYy
KSB7CisgICAgcmV0dXJuIDI7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChoYWxmMykgeworICAg
IHJldHVybiAzOworfQordWludCBvcGVyYXRvci5sZW5ndGgoaGFsZjQpIHsKKyAgICByZXR1cm4g
NDsKK30KK29wZXJhdG9yIGZsb2F0MihmbG9hdCB4LCBmbG9hdCB5KSB7CisgICAgZmxvYXQyIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9hdDMoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeikgewor
ICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsK
KyAgICByZXN1bHQueiA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGZsb2F0
MyhmbG9hdDIgeCwgZmxvYXQgeSkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9hdDMoZmxvYXQgeCwgZmxvYXQyIHkpIHsKKyAgICBm
bG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAg
ICByZXN1bHQueiA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgZmxvYXQ0
KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IHcpIHsKKyAgICBmbG9hdDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6
OworICAgIHJlc3VsdC53ID0gdzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgZmxv
YXQ0KGZsb2F0MiB4LCBmbG9hdCB5LCBmbG9hdCB6KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7
CisgICAgcmVzdWx0LncgPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9h
dDQoZmxvYXQgeCwgZmxvYXQyIHksIGZsb2F0IHopIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsK
KyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGZsb2F0
NChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdDIgeikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHoueDsKKyAg
ICByZXN1bHQudyA9IHoueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgZmxvYXQ0
KGZsb2F0MiB4LCBmbG9hdDIgeSkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVz
dWx0LncgPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGZsb2F0NChmbG9h
dDMgeCwgZmxvYXQgeSkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7
CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB4Lno7CisgICAgcmVzdWx0Lncg
PSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9hdDQoZmxvYXQgeCwgZmxv
YXQzIHkpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1
bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHkuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWludCBvcGVyYXRvci5sZW5ndGgoZmxvYXQyKSB7CisgICAg
cmV0dXJuIDI7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChmbG9hdDMpIHsKKyAgICByZXR1cm4g
MzsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGZsb2F0NCkgeworICAgIHJldHVybiA0OworfQor
Ym9vbCBvcGVyYXRvcj09KGJvb2wyIGEsIGJvb2wyIGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIu
eCAmJiBhLnkgPT0gYi55OworfQorYm9vbCBvcGVyYXRvcj09KGJvb2wzIGEsIGJvb2wzIGIpIHsK
KyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLno7Cit9Citi
b29sIG9wZXJhdG9yPT0oYm9vbDQgYSwgYm9vbDQgYikgeworICAgIHJldHVybiBhLnggPT0gYi54
ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIueiAmJiBhLncgPT0gYi53OworfQorbmF0aXZlIGJv
b2wgb3BlcmF0b3IueChib29sMik7CituYXRpdmUgYm9vbCBvcGVyYXRvci55KGJvb2wyKTsKK25h
dGl2ZSBib29sIG9wZXJhdG9yLngoYm9vbDMpOworbmF0aXZlIGJvb2wgb3BlcmF0b3IueShib29s
Myk7CituYXRpdmUgYm9vbCBvcGVyYXRvci56KGJvb2wzKTsKK25hdGl2ZSBib29sIG9wZXJhdG9y
LngoYm9vbDQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3IueShib29sNCk7CituYXRpdmUgYm9vbCBv
cGVyYXRvci56KGJvb2w0KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yLncoYm9vbDQpOworbmF0aXZl
IGJvb2wyIG9wZXJhdG9yLng9KGJvb2wyLCBib29sKTsKK25hdGl2ZSBib29sMiBvcGVyYXRvci55
PShib29sMiwgYm9vbCk7CituYXRpdmUgYm9vbDMgb3BlcmF0b3IueD0oYm9vbDMsIGJvb2wpOwor
bmF0aXZlIGJvb2wzIG9wZXJhdG9yLnk9KGJvb2wzLCBib29sKTsKK25hdGl2ZSBib29sMyBvcGVy
YXRvci56PShib29sMywgYm9vbCk7CituYXRpdmUgYm9vbDQgb3BlcmF0b3IueD0oYm9vbDQsIGJv
b2wpOworbmF0aXZlIGJvb2w0IG9wZXJhdG9yLnk9KGJvb2w0LCBib29sKTsKK25hdGl2ZSBib29s
NCBvcGVyYXRvci56PShib29sNCwgYm9vbCk7CituYXRpdmUgYm9vbDQgb3BlcmF0b3Iudz0oYm9v
bDQsIGJvb2wpOworYm9vbCBvcGVyYXRvcltdKGJvb2wyIHYsIHVpbnQgaW5kZXgpIHsKKyAgICBz
d2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiB2Lng7
CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiB2Lnk7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KK30KK2Jvb2wgb3BlcmF0b3JbXShib29sMyB2
LCB1aW50IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6Cisg
ICAgICAgICAgICByZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1
cm4gdi55OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gdi56OworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9Cit9Citib29sIG9wZXJhdG9yW10o
Ym9vbDQgdiwgdWludCBpbmRleCkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2Fz
ZSAwOgorICAgICAgICAgICAgcmV0dXJuIHYueDsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAg
ICAgcmV0dXJuIHYueTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmV0dXJuIHYuejsK
KyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgcmV0dXJuIHYudzsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorfQorYm9vbDIgb3BlcmF0b3JbXT0oYm9vbDIg
diwgdWludCBpbmRleCwgYm9vbCBhKSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBj
YXNlIDA6CisgICAgICAgICAgICB2LnggPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgMToKKyAgICAgICAgICAgIHYueSA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorICAgIHJldHVybiB2OworfQor
Ym9vbDMgb3BlcmF0b3JbXT0oYm9vbDMgdiwgdWludCBpbmRleCwgYm9vbCBhKSB7CisgICAgc3dp
dGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICB2LnggPSBhOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHYueSA9IGE7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgdi56ID0gYTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsK
KyAgICB9CisgICAgcmV0dXJuIHY7Cit9Citib29sNCBvcGVyYXRvcltdPShib29sNCB2LCB1aW50
IGluZGV4LCBib29sIGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoK
KyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAx
OgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDI6CisgICAgICAgICAgICB2LnogPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgMzoKKyAgICAgICAgICAgIHYudyA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorICAgIHJldHVybiB2OworfQorYm9v
bCBvcGVyYXRvcj09KHVjaGFyMiBhLCB1Y2hhcjIgYikgeworICAgIHJldHVybiBhLnggPT0gYi54
ICYmIGEueSA9PSBiLnk7Cit9Citib29sIG9wZXJhdG9yPT0odWNoYXIzIGEsIHVjaGFyMyBiKSB7
CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56OworfQor
Ym9vbCBvcGVyYXRvcj09KHVjaGFyNCBhLCB1Y2hhcjQgYikgeworICAgIHJldHVybiBhLnggPT0g
Yi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIueiAmJiBhLncgPT0gYi53OworfQorbmF0aXZl
IHVjaGFyIG9wZXJhdG9yLngodWNoYXIyKTsKK25hdGl2ZSB1Y2hhciBvcGVyYXRvci55KHVjaGFy
Mik7CituYXRpdmUgdWNoYXIgb3BlcmF0b3IueCh1Y2hhcjMpOworbmF0aXZlIHVjaGFyIG9wZXJh
dG9yLnkodWNoYXIzKTsKK25hdGl2ZSB1Y2hhciBvcGVyYXRvci56KHVjaGFyMyk7CituYXRpdmUg
dWNoYXIgb3BlcmF0b3IueCh1Y2hhcjQpOworbmF0aXZlIHVjaGFyIG9wZXJhdG9yLnkodWNoYXI0
KTsKK25hdGl2ZSB1Y2hhciBvcGVyYXRvci56KHVjaGFyNCk7CituYXRpdmUgdWNoYXIgb3BlcmF0
b3Iudyh1Y2hhcjQpOworbmF0aXZlIHVjaGFyMiBvcGVyYXRvci54PSh1Y2hhcjIsIHVjaGFyKTsK
K25hdGl2ZSB1Y2hhcjIgb3BlcmF0b3IueT0odWNoYXIyLCB1Y2hhcik7CituYXRpdmUgdWNoYXIz
IG9wZXJhdG9yLng9KHVjaGFyMywgdWNoYXIpOworbmF0aXZlIHVjaGFyMyBvcGVyYXRvci55PSh1
Y2hhcjMsIHVjaGFyKTsKK25hdGl2ZSB1Y2hhcjMgb3BlcmF0b3Iuej0odWNoYXIzLCB1Y2hhcik7
CituYXRpdmUgdWNoYXI0IG9wZXJhdG9yLng9KHVjaGFyNCwgdWNoYXIpOworbmF0aXZlIHVjaGFy
NCBvcGVyYXRvci55PSh1Y2hhcjQsIHVjaGFyKTsKK25hdGl2ZSB1Y2hhcjQgb3BlcmF0b3Iuej0o
dWNoYXI0LCB1Y2hhcik7CituYXRpdmUgdWNoYXI0IG9wZXJhdG9yLnc9KHVjaGFyNCwgdWNoYXIp
OwordWNoYXIgb3BlcmF0b3JbXSh1Y2hhcjIgdiwgdWludCBpbmRleCkgeworICAgIHN3aXRjaCAo
aW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIHYueDsKKyAgICAg
ICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIHYueTsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIHRyYXA7CisgICAgfQorfQordWNoYXIgb3BlcmF0b3JbXSh1Y2hhcjMgdiwgdWlu
dCBpbmRleCkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAg
ICAgICAgcmV0dXJuIHYueDsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIHYu
eTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmV0dXJuIHYuejsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorfQordWNoYXIgb3BlcmF0b3JbXSh1Y2hh
cjQgdiwgdWludCBpbmRleCkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAw
OgorICAgICAgICAgICAgcmV0dXJuIHYueDsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAg
cmV0dXJuIHYueTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmV0dXJuIHYuejsKKyAg
ICAgICAgY2FzZSAzOgorICAgICAgICAgICAgcmV0dXJuIHYudzsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIHRyYXA7CisgICAgfQorfQordWNoYXIyIG9wZXJhdG9yW109KHVjaGFyMiB2
LCB1aW50IGluZGV4LCB1Y2hhciBhKSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBj
YXNlIDA6CisgICAgICAgICAgICB2LnggPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgMToKKyAgICAgICAgICAgIHYueSA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorICAgIHJldHVybiB2OworfQor
dWNoYXIzIG9wZXJhdG9yW109KHVjaGFyMyB2LCB1aW50IGluZGV4LCB1Y2hhciBhKSB7CisgICAg
c3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICB2LnggPSBhOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHYueSA9IGE7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgdi56ID0g
YTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJh
cDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9Cit1Y2hhcjQgb3BlcmF0b3JbXT0odWNoYXI0IHYs
IHVpbnQgaW5kZXgsIHVjaGFyIGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNh
c2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDI6CisgICAgICAgICAgICB2LnogPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHYudyA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorICAgIHJldHVybiB2Owor
fQorYm9vbCBvcGVyYXRvcj09KHVzaG9ydDIgYSwgdXNob3J0MiBiKSB7CisgICAgcmV0dXJuIGEu
eCA9PSBiLnggJiYgYS55ID09IGIueTsKK30KK2Jvb2wgb3BlcmF0b3I9PSh1c2hvcnQzIGEsIHVz
aG9ydDMgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09
IGIuejsKK30KK2Jvb2wgb3BlcmF0b3I9PSh1c2hvcnQ0IGEsIHVzaG9ydDQgYikgeworICAgIHJl
dHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIueiAmJiBhLncgPT0gYi53
OworfQorbmF0aXZlIHVzaG9ydCBvcGVyYXRvci54KHVzaG9ydDIpOworbmF0aXZlIHVzaG9ydCBv
cGVyYXRvci55KHVzaG9ydDIpOworbmF0aXZlIHVzaG9ydCBvcGVyYXRvci54KHVzaG9ydDMpOwor
bmF0aXZlIHVzaG9ydCBvcGVyYXRvci55KHVzaG9ydDMpOworbmF0aXZlIHVzaG9ydCBvcGVyYXRv
ci56KHVzaG9ydDMpOworbmF0aXZlIHVzaG9ydCBvcGVyYXRvci54KHVzaG9ydDQpOworbmF0aXZl
IHVzaG9ydCBvcGVyYXRvci55KHVzaG9ydDQpOworbmF0aXZlIHVzaG9ydCBvcGVyYXRvci56KHVz
aG9ydDQpOworbmF0aXZlIHVzaG9ydCBvcGVyYXRvci53KHVzaG9ydDQpOworbmF0aXZlIHVzaG9y
dDIgb3BlcmF0b3IueD0odXNob3J0MiwgdXNob3J0KTsKK25hdGl2ZSB1c2hvcnQyIG9wZXJhdG9y
Lnk9KHVzaG9ydDIsIHVzaG9ydCk7CituYXRpdmUgdXNob3J0MyBvcGVyYXRvci54PSh1c2hvcnQz
LCB1c2hvcnQpOworbmF0aXZlIHVzaG9ydDMgb3BlcmF0b3IueT0odXNob3J0MywgdXNob3J0KTsK
K25hdGl2ZSB1c2hvcnQzIG9wZXJhdG9yLno9KHVzaG9ydDMsIHVzaG9ydCk7CituYXRpdmUgdXNo
b3J0NCBvcGVyYXRvci54PSh1c2hvcnQ0LCB1c2hvcnQpOworbmF0aXZlIHVzaG9ydDQgb3BlcmF0
b3IueT0odXNob3J0NCwgdXNob3J0KTsKK25hdGl2ZSB1c2hvcnQ0IG9wZXJhdG9yLno9KHVzaG9y
dDQsIHVzaG9ydCk7CituYXRpdmUgdXNob3J0NCBvcGVyYXRvci53PSh1c2hvcnQ0LCB1c2hvcnQp
OwordXNob3J0IG9wZXJhdG9yW10odXNob3J0MiB2LCB1aW50IGluZGV4KSB7CisgICAgc3dpdGNo
IChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gdi54OworICAg
ICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gdi55OworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgdHJhcDsKKyAgICB9Cit9Cit1c2hvcnQgb3BlcmF0b3JbXSh1c2hvcnQzIHYs
IHVpbnQgaW5kZXgpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAg
ICAgICAgICAgIHJldHVybiB2Lng7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVy
biB2Lnk7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVybiB2Lno7CisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KK30KK3VzaG9ydCBvcGVyYXRvcltd
KHVzaG9ydDQgdiwgdWludCBpbmRleCkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAg
Y2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIHYueDsKKyAgICAgICAgY2FzZSAxOgorICAgICAg
ICAgICAgcmV0dXJuIHYueTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmV0dXJuIHYu
ejsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgcmV0dXJuIHYudzsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorfQordXNob3J0MiBvcGVyYXRvcltdPSh1
c2hvcnQyIHYsIHVpbnQgaW5kZXgsIHVzaG9ydCBhKSB7CisgICAgc3dpdGNoIChpbmRleCkgewor
ICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICB2LnggPSBhOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHYueSA9IGE7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorICAgIHJldHVy
biB2OworfQordXNob3J0MyBvcGVyYXRvcltdPSh1c2hvcnQzIHYsIHVpbnQgaW5kZXgsIHVzaG9y
dCBhKSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAg
ICB2LnggPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAg
ICAgIHYueSA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAg
ICAgICAgdi56ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9Cit1c2hvcnQ0IG9wZXJhdG9y
W109KHVzaG9ydDQgdiwgdWludCBpbmRleCwgdXNob3J0IGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4
KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICB2LnogPSBhOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHYudyA9IGE7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQor
ICAgIHJldHVybiB2OworfQorYm9vbCBvcGVyYXRvcj09KHVpbnQyIGEsIHVpbnQyIGIpIHsKKyAg
ICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55OworfQorYm9vbCBvcGVyYXRvcj09KHVp
bnQzIGEsIHVpbnQzIGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55ICYm
IGEueiA9PSBiLno7Cit9Citib29sIG9wZXJhdG9yPT0odWludDQgYSwgdWludDQgYikgeworICAg
IHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIueiAmJiBhLncgPT0g
Yi53OworfQorbmF0aXZlIHVpbnQgb3BlcmF0b3IueCh1aW50Mik7CituYXRpdmUgdWludCBvcGVy
YXRvci55KHVpbnQyKTsKK25hdGl2ZSB1aW50IG9wZXJhdG9yLngodWludDMpOworbmF0aXZlIHVp
bnQgb3BlcmF0b3IueSh1aW50Myk7CituYXRpdmUgdWludCBvcGVyYXRvci56KHVpbnQzKTsKK25h
dGl2ZSB1aW50IG9wZXJhdG9yLngodWludDQpOworbmF0aXZlIHVpbnQgb3BlcmF0b3IueSh1aW50
NCk7CituYXRpdmUgdWludCBvcGVyYXRvci56KHVpbnQ0KTsKK25hdGl2ZSB1aW50IG9wZXJhdG9y
LncodWludDQpOworbmF0aXZlIHVpbnQyIG9wZXJhdG9yLng9KHVpbnQyLCB1aW50KTsKK25hdGl2
ZSB1aW50MiBvcGVyYXRvci55PSh1aW50MiwgdWludCk7CituYXRpdmUgdWludDMgb3BlcmF0b3Iu
eD0odWludDMsIHVpbnQpOworbmF0aXZlIHVpbnQzIG9wZXJhdG9yLnk9KHVpbnQzLCB1aW50KTsK
K25hdGl2ZSB1aW50MyBvcGVyYXRvci56PSh1aW50MywgdWludCk7CituYXRpdmUgdWludDQgb3Bl
cmF0b3IueD0odWludDQsIHVpbnQpOworbmF0aXZlIHVpbnQ0IG9wZXJhdG9yLnk9KHVpbnQ0LCB1
aW50KTsKK25hdGl2ZSB1aW50NCBvcGVyYXRvci56PSh1aW50NCwgdWludCk7CituYXRpdmUgdWlu
dDQgb3BlcmF0b3Iudz0odWludDQsIHVpbnQpOwordWludCBvcGVyYXRvcltdKHVpbnQyIHYsIHVp
bnQgaW5kZXgpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAg
ICAgICAgIHJldHVybiB2Lng7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiB2
Lnk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KK30KK3VpbnQg
b3BlcmF0b3JbXSh1aW50MyB2LCB1aW50IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkgewor
ICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6
CisgICAgICAgICAgICByZXR1cm4gdi55OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBy
ZXR1cm4gdi56OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9Cit9
Cit1aW50IG9wZXJhdG9yW10odWludDQgdiwgdWludCBpbmRleCkgeworICAgIHN3aXRjaCAoaW5k
ZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIHYueDsKKyAgICAgICAg
Y2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIHYueTsKKyAgICAgICAgY2FzZSAyOgorICAgICAg
ICAgICAgcmV0dXJuIHYuejsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgcmV0dXJuIHYu
dzsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorfQordWludDIg
b3BlcmF0b3JbXT0odWludDIgdiwgdWludCBpbmRleCwgdWludCBhKSB7CisgICAgc3dpdGNoIChp
bmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICB2LnggPSBhOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHYueSA9IGE7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQor
ICAgIHJldHVybiB2OworfQordWludDMgb3BlcmF0b3JbXT0odWludDMgdiwgdWludCBpbmRleCwg
dWludCBhKSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAg
ICAgICB2LnggPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAg
ICAgICAgIHYueSA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAg
ICAgICAgICAgdi56ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9Cit1aW50NCBvcGVyYXRv
cltdPSh1aW50NCB2LCB1aW50IGluZGV4LCB1aW50IGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7
CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICB2LnogPSBhOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHYudyA9IGE7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorICAg
IHJldHVybiB2OworfQorYm9vbCBvcGVyYXRvcj09KGNoYXIyIGEsIGNoYXIyIGIpIHsKKyAgICBy
ZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55OworfQorYm9vbCBvcGVyYXRvcj09KGNoYXIz
IGEsIGNoYXIzIGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55ICYmIGEu
eiA9PSBiLno7Cit9Citib29sIG9wZXJhdG9yPT0oY2hhcjQgYSwgY2hhcjQgYikgeworICAgIHJl
dHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIueiAmJiBhLncgPT0gYi53
OworfQorbmF0aXZlIGNoYXIgb3BlcmF0b3IueChjaGFyMik7CituYXRpdmUgY2hhciBvcGVyYXRv
ci55KGNoYXIyKTsKK25hdGl2ZSBjaGFyIG9wZXJhdG9yLngoY2hhcjMpOworbmF0aXZlIGNoYXIg
b3BlcmF0b3IueShjaGFyMyk7CituYXRpdmUgY2hhciBvcGVyYXRvci56KGNoYXIzKTsKK25hdGl2
ZSBjaGFyIG9wZXJhdG9yLngoY2hhcjQpOworbmF0aXZlIGNoYXIgb3BlcmF0b3IueShjaGFyNCk7
CituYXRpdmUgY2hhciBvcGVyYXRvci56KGNoYXI0KTsKK25hdGl2ZSBjaGFyIG9wZXJhdG9yLnco
Y2hhcjQpOworbmF0aXZlIGNoYXIyIG9wZXJhdG9yLng9KGNoYXIyLCBjaGFyKTsKK25hdGl2ZSBj
aGFyMiBvcGVyYXRvci55PShjaGFyMiwgY2hhcik7CituYXRpdmUgY2hhcjMgb3BlcmF0b3IueD0o
Y2hhcjMsIGNoYXIpOworbmF0aXZlIGNoYXIzIG9wZXJhdG9yLnk9KGNoYXIzLCBjaGFyKTsKK25h
dGl2ZSBjaGFyMyBvcGVyYXRvci56PShjaGFyMywgY2hhcik7CituYXRpdmUgY2hhcjQgb3BlcmF0
b3IueD0oY2hhcjQsIGNoYXIpOworbmF0aXZlIGNoYXI0IG9wZXJhdG9yLnk9KGNoYXI0LCBjaGFy
KTsKK25hdGl2ZSBjaGFyNCBvcGVyYXRvci56PShjaGFyNCwgY2hhcik7CituYXRpdmUgY2hhcjQg
b3BlcmF0b3Iudz0oY2hhcjQsIGNoYXIpOworY2hhciBvcGVyYXRvcltdKGNoYXIyIHYsIHVpbnQg
aW5kZXgpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAg
ICAgIHJldHVybiB2Lng7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiB2Lnk7
CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KK30KK2NoYXIgb3Bl
cmF0b3JbXShjaGFyMyB2LCB1aW50IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAg
ICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6Cisg
ICAgICAgICAgICByZXR1cm4gdi55OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1
cm4gdi56OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9Cit9Citj
aGFyIG9wZXJhdG9yW10oY2hhcjQgdiwgdWludCBpbmRleCkgeworICAgIHN3aXRjaCAoaW5kZXgp
IHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIHYueDsKKyAgICAgICAgY2Fz
ZSAxOgorICAgICAgICAgICAgcmV0dXJuIHYueTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAg
ICAgcmV0dXJuIHYuejsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgcmV0dXJuIHYudzsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorfQorY2hhcjIgb3Bl
cmF0b3JbXT0oY2hhcjIgdiwgdWludCBpbmRleCwgY2hhciBhKSB7CisgICAgc3dpdGNoIChpbmRl
eCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICB2LnggPSBhOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHYueSA9IGE7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorICAg
IHJldHVybiB2OworfQorY2hhcjMgb3BlcmF0b3JbXT0oY2hhcjMgdiwgdWludCBpbmRleCwgY2hh
ciBhKSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAg
ICB2LnggPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAg
ICAgIHYueSA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAg
ICAgICAgdi56ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9CitjaGFyNCBvcGVyYXRvcltd
PShjaGFyNCB2LCB1aW50IGluZGV4LCBjaGFyIGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7Cisg
ICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICB2LnogPSBhOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHYudyA9IGE7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorICAgIHJl
dHVybiB2OworfQorYm9vbCBvcGVyYXRvcj09KHNob3J0MiBhLCBzaG9ydDIgYikgeworICAgIHJl
dHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnk7Cit9Citib29sIG9wZXJhdG9yPT0oc2hvcnQz
IGEsIHNob3J0MyBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBh
LnogPT0gYi56OworfQorYm9vbCBvcGVyYXRvcj09KHNob3J0NCBhLCBzaG9ydDQgYikgeworICAg
IHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIueiAmJiBhLncgPT0g
Yi53OworfQorbmF0aXZlIHNob3J0IG9wZXJhdG9yLngoc2hvcnQyKTsKK25hdGl2ZSBzaG9ydCBv
cGVyYXRvci55KHNob3J0Mik7CituYXRpdmUgc2hvcnQgb3BlcmF0b3IueChzaG9ydDMpOworbmF0
aXZlIHNob3J0IG9wZXJhdG9yLnkoc2hvcnQzKTsKK25hdGl2ZSBzaG9ydCBvcGVyYXRvci56KHNo
b3J0Myk7CituYXRpdmUgc2hvcnQgb3BlcmF0b3IueChzaG9ydDQpOworbmF0aXZlIHNob3J0IG9w
ZXJhdG9yLnkoc2hvcnQ0KTsKK25hdGl2ZSBzaG9ydCBvcGVyYXRvci56KHNob3J0NCk7CituYXRp
dmUgc2hvcnQgb3BlcmF0b3IudyhzaG9ydDQpOworbmF0aXZlIHNob3J0MiBvcGVyYXRvci54PShz
aG9ydDIsIHNob3J0KTsKK25hdGl2ZSBzaG9ydDIgb3BlcmF0b3IueT0oc2hvcnQyLCBzaG9ydCk7
CituYXRpdmUgc2hvcnQzIG9wZXJhdG9yLng9KHNob3J0Mywgc2hvcnQpOworbmF0aXZlIHNob3J0
MyBvcGVyYXRvci55PShzaG9ydDMsIHNob3J0KTsKK25hdGl2ZSBzaG9ydDMgb3BlcmF0b3Iuej0o
c2hvcnQzLCBzaG9ydCk7CituYXRpdmUgc2hvcnQ0IG9wZXJhdG9yLng9KHNob3J0NCwgc2hvcnQp
OworbmF0aXZlIHNob3J0NCBvcGVyYXRvci55PShzaG9ydDQsIHNob3J0KTsKK25hdGl2ZSBzaG9y
dDQgb3BlcmF0b3Iuej0oc2hvcnQ0LCBzaG9ydCk7CituYXRpdmUgc2hvcnQ0IG9wZXJhdG9yLnc9
KHNob3J0NCwgc2hvcnQpOworc2hvcnQgb3BlcmF0b3JbXShzaG9ydDIgdiwgdWludCBpbmRleCkg
eworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0
dXJuIHYueDsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIHYueTsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorfQorc2hvcnQgb3BlcmF0b3Jb
XShzaG9ydDMgdiwgdWludCBpbmRleCkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAg
Y2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIHYueDsKKyAgICAgICAgY2FzZSAxOgorICAgICAg
ICAgICAgcmV0dXJuIHYueTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmV0dXJuIHYu
ejsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorfQorc2hvcnQg
b3BlcmF0b3JbXShzaG9ydDQgdiwgdWludCBpbmRleCkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsK
KyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIHYueDsKKyAgICAgICAgY2FzZSAx
OgorICAgICAgICAgICAgcmV0dXJuIHYueTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAg
cmV0dXJuIHYuejsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgcmV0dXJuIHYudzsKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorfQorc2hvcnQyIG9wZXJh
dG9yW109KHNob3J0MiB2LCB1aW50IGluZGV4LCBzaG9ydCBhKSB7CisgICAgc3dpdGNoIChpbmRl
eCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICB2LnggPSBhOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHYueSA9IGE7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorICAg
IHJldHVybiB2OworfQorc2hvcnQzIG9wZXJhdG9yW109KHNob3J0MyB2LCB1aW50IGluZGV4LCBz
aG9ydCBhKSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAg
ICAgICB2LnggPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAg
ICAgICAgIHYueSA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAg
ICAgICAgICAgdi56ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9CitzaG9ydDQgb3BlcmF0
b3JbXT0oc2hvcnQ0IHYsIHVpbnQgaW5kZXgsIHNob3J0IGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4
KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICB2LnogPSBhOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHYudyA9IGE7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQor
ICAgIHJldHVybiB2OworfQorYm9vbCBvcGVyYXRvcj09KGludDIgYSwgaW50MiBiKSB7CisgICAg
cmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueTsKK30KK2Jvb2wgb3BlcmF0b3I9PShpbnQz
IGEsIGludDMgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56
ID09IGIuejsKK30KK2Jvb2wgb3BlcmF0b3I9PShpbnQ0IGEsIGludDQgYikgeworICAgIHJldHVy
biBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIueiAmJiBhLncgPT0gYi53Owor
fQorbmF0aXZlIGludCBvcGVyYXRvci54KGludDIpOworbmF0aXZlIGludCBvcGVyYXRvci55KGlu
dDIpOworbmF0aXZlIGludCBvcGVyYXRvci54KGludDMpOworbmF0aXZlIGludCBvcGVyYXRvci55
KGludDMpOworbmF0aXZlIGludCBvcGVyYXRvci56KGludDMpOworbmF0aXZlIGludCBvcGVyYXRv
ci54KGludDQpOworbmF0aXZlIGludCBvcGVyYXRvci55KGludDQpOworbmF0aXZlIGludCBvcGVy
YXRvci56KGludDQpOworbmF0aXZlIGludCBvcGVyYXRvci53KGludDQpOworbmF0aXZlIGludDIg
b3BlcmF0b3IueD0oaW50MiwgaW50KTsKK25hdGl2ZSBpbnQyIG9wZXJhdG9yLnk9KGludDIsIGlu
dCk7CituYXRpdmUgaW50MyBvcGVyYXRvci54PShpbnQzLCBpbnQpOworbmF0aXZlIGludDMgb3Bl
cmF0b3IueT0oaW50MywgaW50KTsKK25hdGl2ZSBpbnQzIG9wZXJhdG9yLno9KGludDMsIGludCk7
CituYXRpdmUgaW50NCBvcGVyYXRvci54PShpbnQ0LCBpbnQpOworbmF0aXZlIGludDQgb3BlcmF0
b3IueT0oaW50NCwgaW50KTsKK25hdGl2ZSBpbnQ0IG9wZXJhdG9yLno9KGludDQsIGludCk7Citu
YXRpdmUgaW50NCBvcGVyYXRvci53PShpbnQ0LCBpbnQpOworaW50IG9wZXJhdG9yW10oaW50MiB2
LCB1aW50IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6Cisg
ICAgICAgICAgICByZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1
cm4gdi55OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9Cit9Citp
bnQgb3BlcmF0b3JbXShpbnQzIHYsIHVpbnQgaW5kZXgpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7
CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiB2Lng7CisgICAgICAgIGNhc2Ug
MToKKyAgICAgICAgICAgIHJldHVybiB2Lnk7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAg
IHJldHVybiB2Lno7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0K
K30KK2ludCBvcGVyYXRvcltdKGludDQgdiwgdWludCBpbmRleCkgeworICAgIHN3aXRjaCAoaW5k
ZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIHYueDsKKyAgICAgICAg
Y2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIHYueTsKKyAgICAgICAgY2FzZSAyOgorICAgICAg
ICAgICAgcmV0dXJuIHYuejsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgcmV0dXJuIHYu
dzsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorfQoraW50MiBv
cGVyYXRvcltdPShpbnQyIHYsIHVpbnQgaW5kZXgsIGludCBhKSB7CisgICAgc3dpdGNoIChpbmRl
eCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICB2LnggPSBhOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHYueSA9IGE7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorICAg
IHJldHVybiB2OworfQoraW50MyBvcGVyYXRvcltdPShpbnQzIHYsIHVpbnQgaW5kZXgsIGludCBh
KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICB2
LnggPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAg
IHYueSA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAg
ICAgdi56ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9CitpbnQ0IG9wZXJhdG9yW109KGlu
dDQgdiwgdWludCBpbmRleCwgaW50IGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAg
IGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDI6CisgICAgICAgICAgICB2LnogPSBhOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHYudyA9IGE7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorICAgIHJldHVybiB2
OworfQorYm9vbCBvcGVyYXRvcj09KGhhbGYyIGEsIGhhbGYyIGIpIHsKKyAgICByZXR1cm4gYS54
ID09IGIueCAmJiBhLnkgPT0gYi55OworfQorYm9vbCBvcGVyYXRvcj09KGhhbGYzIGEsIGhhbGYz
IGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLno7
Cit9Citib29sIG9wZXJhdG9yPT0oaGFsZjQgYSwgaGFsZjQgYikgeworICAgIHJldHVybiBhLngg
PT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIueiAmJiBhLncgPT0gYi53OworfQorbmF0
aXZlIGhhbGYgb3BlcmF0b3IueChoYWxmMik7CituYXRpdmUgaGFsZiBvcGVyYXRvci55KGhhbGYy
KTsKK25hdGl2ZSBoYWxmIG9wZXJhdG9yLngoaGFsZjMpOworbmF0aXZlIGhhbGYgb3BlcmF0b3Iu
eShoYWxmMyk7CituYXRpdmUgaGFsZiBvcGVyYXRvci56KGhhbGYzKTsKK25hdGl2ZSBoYWxmIG9w
ZXJhdG9yLngoaGFsZjQpOworbmF0aXZlIGhhbGYgb3BlcmF0b3IueShoYWxmNCk7CituYXRpdmUg
aGFsZiBvcGVyYXRvci56KGhhbGY0KTsKK25hdGl2ZSBoYWxmIG9wZXJhdG9yLncoaGFsZjQpOwor
bmF0aXZlIGhhbGYyIG9wZXJhdG9yLng9KGhhbGYyLCBoYWxmKTsKK25hdGl2ZSBoYWxmMiBvcGVy
YXRvci55PShoYWxmMiwgaGFsZik7CituYXRpdmUgaGFsZjMgb3BlcmF0b3IueD0oaGFsZjMsIGhh
bGYpOworbmF0aXZlIGhhbGYzIG9wZXJhdG9yLnk9KGhhbGYzLCBoYWxmKTsKK25hdGl2ZSBoYWxm
MyBvcGVyYXRvci56PShoYWxmMywgaGFsZik7CituYXRpdmUgaGFsZjQgb3BlcmF0b3IueD0oaGFs
ZjQsIGhhbGYpOworbmF0aXZlIGhhbGY0IG9wZXJhdG9yLnk9KGhhbGY0LCBoYWxmKTsKK25hdGl2
ZSBoYWxmNCBvcGVyYXRvci56PShoYWxmNCwgaGFsZik7CituYXRpdmUgaGFsZjQgb3BlcmF0b3Iu
dz0oaGFsZjQsIGhhbGYpOworaGFsZiBvcGVyYXRvcltdKGhhbGYyIHYsIHVpbnQgaW5kZXgpIHsK
KyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVy
biB2Lng7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiB2Lnk7CisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KK30KK2hhbGYgb3BlcmF0b3JbXSho
YWxmMyB2LCB1aW50IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNl
IDA6CisgICAgICAgICAgICByZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAg
ICByZXR1cm4gdi55OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gdi56Owor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9Cit9CitoYWxmIG9wZXJh
dG9yW10oaGFsZjQgdiwgdWludCBpbmRleCkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAg
ICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIHYueDsKKyAgICAgICAgY2FzZSAxOgorICAg
ICAgICAgICAgcmV0dXJuIHYueTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmV0dXJu
IHYuejsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgcmV0dXJuIHYudzsKKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorfQoraGFsZjIgb3BlcmF0b3JbXT0o
aGFsZjIgdiwgdWludCBpbmRleCwgaGFsZiBhKSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAg
ICAgICBjYXNlIDA6CisgICAgICAgICAgICB2LnggPSBhOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHYueSA9IGE7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorICAgIHJldHVybiB2
OworfQoraGFsZjMgb3BlcmF0b3JbXT0oaGFsZjMgdiwgdWludCBpbmRleCwgaGFsZiBhKSB7Cisg
ICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICB2LnggPSBh
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHYueSA9
IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgdi56
ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
dHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9CitoYWxmNCBvcGVyYXRvcltdPShoYWxmNCB2
LCB1aW50IGluZGV4LCBoYWxmIGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNh
c2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDI6CisgICAgICAgICAgICB2LnogPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHYudyA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorICAgIHJldHVybiB2Owor
fQorYm9vbCBvcGVyYXRvcj09KGZsb2F0MiBhLCBmbG9hdDIgYikgeworICAgIHJldHVybiBhLngg
PT0gYi54ICYmIGEueSA9PSBiLnk7Cit9Citib29sIG9wZXJhdG9yPT0oZmxvYXQzIGEsIGZsb2F0
MyBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56
OworfQorYm9vbCBvcGVyYXRvcj09KGZsb2F0NCBhLCBmbG9hdDQgYikgeworICAgIHJldHVybiBh
LnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIueiAmJiBhLncgPT0gYi53OworfQor
bmF0aXZlIGZsb2F0IG9wZXJhdG9yLngoZmxvYXQyKTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRvci55
KGZsb2F0Mik7CituYXRpdmUgZmxvYXQgb3BlcmF0b3IueChmbG9hdDMpOworbmF0aXZlIGZsb2F0
IG9wZXJhdG9yLnkoZmxvYXQzKTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRvci56KGZsb2F0Myk7Citu
YXRpdmUgZmxvYXQgb3BlcmF0b3IueChmbG9hdDQpOworbmF0aXZlIGZsb2F0IG9wZXJhdG9yLnko
ZmxvYXQ0KTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRvci56KGZsb2F0NCk7CituYXRpdmUgZmxvYXQg
b3BlcmF0b3IudyhmbG9hdDQpOworbmF0aXZlIGZsb2F0MiBvcGVyYXRvci54PShmbG9hdDIsIGZs
b2F0KTsKK25hdGl2ZSBmbG9hdDIgb3BlcmF0b3IueT0oZmxvYXQyLCBmbG9hdCk7CituYXRpdmUg
ZmxvYXQzIG9wZXJhdG9yLng9KGZsb2F0MywgZmxvYXQpOworbmF0aXZlIGZsb2F0MyBvcGVyYXRv
ci55PShmbG9hdDMsIGZsb2F0KTsKK25hdGl2ZSBmbG9hdDMgb3BlcmF0b3Iuej0oZmxvYXQzLCBm
bG9hdCk7CituYXRpdmUgZmxvYXQ0IG9wZXJhdG9yLng9KGZsb2F0NCwgZmxvYXQpOworbmF0aXZl
IGZsb2F0NCBvcGVyYXRvci55PShmbG9hdDQsIGZsb2F0KTsKK25hdGl2ZSBmbG9hdDQgb3BlcmF0
b3Iuej0oZmxvYXQ0LCBmbG9hdCk7CituYXRpdmUgZmxvYXQ0IG9wZXJhdG9yLnc9KGZsb2F0NCwg
ZmxvYXQpOworZmxvYXQgb3BlcmF0b3JbXShmbG9hdDIgdiwgdWludCBpbmRleCkgeworICAgIHN3
aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIHYueDsK
KyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIHYueTsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorfQorZmxvYXQgb3BlcmF0b3JbXShmbG9hdDMg
diwgdWludCBpbmRleCkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgor
ICAgICAgICAgICAgcmV0dXJuIHYueDsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0
dXJuIHYueTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmV0dXJuIHYuejsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorfQorZmxvYXQgb3BlcmF0b3Jb
XShmbG9hdDQgdiwgdWludCBpbmRleCkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAg
Y2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIHYueDsKKyAgICAgICAgY2FzZSAxOgorICAgICAg
ICAgICAgcmV0dXJuIHYueTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmV0dXJuIHYu
ejsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgcmV0dXJuIHYudzsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorfQorZmxvYXQyIG9wZXJhdG9yW109KGZs
b2F0MiB2LCB1aW50IGluZGV4LCBmbG9hdCBhKSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAg
ICAgICBjYXNlIDA6CisgICAgICAgICAgICB2LnggPSBhOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHYueSA9IGE7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorICAgIHJldHVybiB2
OworfQorZmxvYXQzIG9wZXJhdG9yW109KGZsb2F0MyB2LCB1aW50IGluZGV4LCBmbG9hdCBhKSB7
CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICB2Lngg
PSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHYu
eSA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAg
di56ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9CitmbG9hdDQgb3BlcmF0b3JbXT0oZmxv
YXQ0IHYsIHVpbnQgaW5kZXgsIGZsb2F0IGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAg
ICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICB2LnogPSBhOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHYudyA9IGE7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorICAgIHJldHVy
biB2OwogfQogCi1ib29sIG9wZXJhdG9yfihib29sIHZhbHVlKQotewotICAgIHJldHVybiAhdmFs
dWU7CituYXRpdmUgaGFsZjIgb3BlcmF0b3JbXShoYWxmMngyLCB1aW50KTsKK25hdGl2ZSBoYWxm
MngyIG9wZXJhdG9yW109KGhhbGYyeDIsIHVpbnQsIGhhbGYyKTsKK25hdGl2ZSBoYWxmMyBvcGVy
YXRvcltdKGhhbGYyeDMsIHVpbnQpOworbmF0aXZlIGhhbGYyeDMgb3BlcmF0b3JbXT0oaGFsZjJ4
MywgdWludCwgaGFsZjMpOworbmF0aXZlIGhhbGY0IG9wZXJhdG9yW10oaGFsZjJ4NCwgdWludCk7
CituYXRpdmUgaGFsZjJ4NCBvcGVyYXRvcltdPShoYWxmMng0LCB1aW50LCBoYWxmNCk7CituYXRp
dmUgaGFsZjIgb3BlcmF0b3JbXShoYWxmM3gyLCB1aW50KTsKK25hdGl2ZSBoYWxmM3gyIG9wZXJh
dG9yW109KGhhbGYzeDIsIHVpbnQsIGhhbGYyKTsKK25hdGl2ZSBoYWxmMyBvcGVyYXRvcltdKGhh
bGYzeDMsIHVpbnQpOworbmF0aXZlIGhhbGYzeDMgb3BlcmF0b3JbXT0oaGFsZjN4MywgdWludCwg
aGFsZjMpOworbmF0aXZlIGhhbGY0IG9wZXJhdG9yW10oaGFsZjN4NCwgdWludCk7CituYXRpdmUg
aGFsZjN4NCBvcGVyYXRvcltdPShoYWxmM3g0LCB1aW50LCBoYWxmNCk7CituYXRpdmUgaGFsZjIg
b3BlcmF0b3JbXShoYWxmNHgyLCB1aW50KTsKK25hdGl2ZSBoYWxmNHgyIG9wZXJhdG9yW109KGhh
bGY0eDIsIHVpbnQsIGhhbGYyKTsKK25hdGl2ZSBoYWxmMyBvcGVyYXRvcltdKGhhbGY0eDMsIHVp
bnQpOworbmF0aXZlIGhhbGY0eDMgb3BlcmF0b3JbXT0oaGFsZjR4MywgdWludCwgaGFsZjMpOwor
bmF0aXZlIGhhbGY0IG9wZXJhdG9yW10oaGFsZjR4NCwgdWludCk7CituYXRpdmUgaGFsZjR4NCBv
cGVyYXRvcltdPShoYWxmNHg0LCB1aW50LCBoYWxmNCk7CituYXRpdmUgZmxvYXQyIG9wZXJhdG9y
W10oZmxvYXQyeDIsIHVpbnQpOworbmF0aXZlIGZsb2F0MngyIG9wZXJhdG9yW109KGZsb2F0Mngy
LCB1aW50LCBmbG9hdDIpOworbmF0aXZlIGZsb2F0MyBvcGVyYXRvcltdKGZsb2F0MngzLCB1aW50
KTsKK25hdGl2ZSBmbG9hdDJ4MyBvcGVyYXRvcltdPShmbG9hdDJ4MywgdWludCwgZmxvYXQzKTsK
K25hdGl2ZSBmbG9hdDQgb3BlcmF0b3JbXShmbG9hdDJ4NCwgdWludCk7CituYXRpdmUgZmxvYXQy
eDQgb3BlcmF0b3JbXT0oZmxvYXQyeDQsIHVpbnQsIGZsb2F0NCk7CituYXRpdmUgZmxvYXQyIG9w
ZXJhdG9yW10oZmxvYXQzeDIsIHVpbnQpOworbmF0aXZlIGZsb2F0M3gyIG9wZXJhdG9yW109KGZs
b2F0M3gyLCB1aW50LCBmbG9hdDIpOworbmF0aXZlIGZsb2F0MyBvcGVyYXRvcltdKGZsb2F0M3gz
LCB1aW50KTsKK25hdGl2ZSBmbG9hdDN4MyBvcGVyYXRvcltdPShmbG9hdDN4MywgdWludCwgZmxv
YXQzKTsKK25hdGl2ZSBmbG9hdDQgb3BlcmF0b3JbXShmbG9hdDN4NCwgdWludCk7CituYXRpdmUg
ZmxvYXQzeDQgb3BlcmF0b3JbXT0oZmxvYXQzeDQsIHVpbnQsIGZsb2F0NCk7CituYXRpdmUgZmxv
YXQyIG9wZXJhdG9yW10oZmxvYXQ0eDIsIHVpbnQpOworbmF0aXZlIGZsb2F0NHgyIG9wZXJhdG9y
W109KGZsb2F0NHgyLCB1aW50LCBmbG9hdDIpOworbmF0aXZlIGZsb2F0MyBvcGVyYXRvcltdKGZs
b2F0NHgzLCB1aW50KTsKK25hdGl2ZSBmbG9hdDR4MyBvcGVyYXRvcltdPShmbG9hdDR4MywgdWlu
dCwgZmxvYXQzKTsKK25hdGl2ZSBmbG9hdDQgb3BlcmF0b3JbXShmbG9hdDR4NCwgdWludCk7Citu
YXRpdmUgZmxvYXQ0eDQgb3BlcmF0b3JbXT0oZmxvYXQ0eDQsIHVpbnQsIGZsb2F0NCk7CisKK2Jv
b2wgb3BlcmF0b3I9PShoYWxmMngyIGEsIGhhbGYyeDIgYikgeworICAgIHJldHVybgorICAgICAg
ICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAgICAgICAgYVswXVsxXSA9PSBiWzBdWzFdICYmCisg
ICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAmJgorICAgICAgICBhWzFdWzFdID09IGJbMV1bMV0g
JiYKKyAgICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGhhbGYyeDMgYSwgaGFsZjJ4MyBiKSB7
CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0gYlswXVswXSAmJgorICAgICAgICBhWzBd
WzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVswXVsyXSA9PSBiWzBdWzJdICYmCisgICAgICAg
IGFbMV1bMF0gPT0gYlsxXVswXSAmJgorICAgICAgICBhWzFdWzFdID09IGJbMV1bMV0gJiYKKyAg
ICAgICAgYVsxXVsyXSA9PSBiWzFdWzJdICYmCisgICAgdHJ1ZTsKK30KK2Jvb2wgb3BlcmF0b3I9
PShoYWxmMng0IGEsIGhhbGYyeDQgYikgeworICAgIHJldHVybgorICAgICAgICBhWzBdWzBdID09
IGJbMF1bMF0gJiYKKyAgICAgICAgYVswXVsxXSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFbMF1b
Ml0gPT0gYlswXVsyXSAmJgorICAgICAgICBhWzBdWzNdID09IGJbMF1bM10gJiYKKyAgICAgICAg
YVsxXVswXSA9PSBiWzFdWzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAg
ICAgICBhWzFdWzJdID09IGJbMV1bMl0gJiYKKyAgICAgICAgYVsxXVszXSA9PSBiWzFdWzNdICYm
CisgICAgdHJ1ZTsKK30KK2Jvb2wgb3BlcmF0b3I9PShoYWxmM3gyIGEsIGhhbGYzeDIgYikgewor
ICAgIHJldHVybgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAgICAgICAgYVswXVsx
XSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAmJgorICAgICAgICBh
WzFdWzFdID09IGJbMV1bMV0gJiYKKyAgICAgICAgYVsyXVswXSA9PSBiWzJdWzBdICYmCisgICAg
ICAgIGFbMl1bMV0gPT0gYlsyXVsxXSAmJgorICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0o
aGFsZjN4MyBhLCBoYWxmM3gzIGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBi
WzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAgICAgICBhWzBdWzJd
ID09IGJbMF1bMl0gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFdWzBdICYmCisgICAgICAgIGFb
MV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBhWzFdWzJdID09IGJbMV1bMl0gJiYKKyAgICAg
ICAgYVsyXVswXSA9PSBiWzJdWzBdICYmCisgICAgICAgIGFbMl1bMV0gPT0gYlsyXVsxXSAmJgor
ICAgICAgICBhWzJdWzJdID09IGJbMl1bMl0gJiYKKyAgICB0cnVlOworfQorYm9vbCBvcGVyYXRv
cj09KGhhbGYzeDQgYSwgaGFsZjN4NCBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0g
PT0gYlswXVswXSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVsw
XVsyXSA9PSBiWzBdWzJdICYmCisgICAgICAgIGFbMF1bM10gPT0gYlswXVszXSAmJgorICAgICAg
ICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYmCisg
ICAgICAgIGFbMV1bMl0gPT0gYlsxXVsyXSAmJgorICAgICAgICBhWzFdWzNdID09IGJbMV1bM10g
JiYKKyAgICAgICAgYVsyXVswXSA9PSBiWzJdWzBdICYmCisgICAgICAgIGFbMl1bMV0gPT0gYlsy
XVsxXSAmJgorICAgICAgICBhWzJdWzJdID09IGJbMl1bMl0gJiYKKyAgICAgICAgYVsyXVszXSA9
PSBiWzJdWzNdICYmCisgICAgdHJ1ZTsKK30KK2Jvb2wgb3BlcmF0b3I9PShoYWxmNHgyIGEsIGhh
bGY0eDIgYikgeworICAgIHJldHVybgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAg
ICAgICAgYVswXVsxXSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAm
JgorICAgICAgICBhWzFdWzFdID09IGJbMV1bMV0gJiYKKyAgICAgICAgYVsyXVswXSA9PSBiWzJd
WzBdICYmCisgICAgICAgIGFbMl1bMV0gPT0gYlsyXVsxXSAmJgorICAgICAgICBhWzNdWzBdID09
IGJbM11bMF0gJiYKKyAgICAgICAgYVszXVsxXSA9PSBiWzNdWzFdICYmCisgICAgdHJ1ZTsKK30K
K2Jvb2wgb3BlcmF0b3I9PShoYWxmNHgzIGEsIGhhbGY0eDMgYikgeworICAgIHJldHVybgorICAg
ICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAgICAgICAgYVswXVsxXSA9PSBiWzBdWzFdICYm
CisgICAgICAgIGFbMF1bMl0gPT0gYlswXVsyXSAmJgorICAgICAgICBhWzFdWzBdID09IGJbMV1b
MF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYmCisgICAgICAgIGFbMV1bMl0gPT0g
YlsxXVsyXSAmJgorICAgICAgICBhWzJdWzBdID09IGJbMl1bMF0gJiYKKyAgICAgICAgYVsyXVsx
XSA9PSBiWzJdWzFdICYmCisgICAgICAgIGFbMl1bMl0gPT0gYlsyXVsyXSAmJgorICAgICAgICBh
WzNdWzBdID09IGJbM11bMF0gJiYKKyAgICAgICAgYVszXVsxXSA9PSBiWzNdWzFdICYmCisgICAg
ICAgIGFbM11bMl0gPT0gYlszXVsyXSAmJgorICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0o
aGFsZjR4NCBhLCBoYWxmNHg0IGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBi
WzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAgICAgICBhWzBdWzJd
ID09IGJbMF1bMl0gJiYKKyAgICAgICAgYVswXVszXSA9PSBiWzBdWzNdICYmCisgICAgICAgIGFb
MV1bMF0gPT0gYlsxXVswXSAmJgorICAgICAgICBhWzFdWzFdID09IGJbMV1bMV0gJiYKKyAgICAg
ICAgYVsxXVsyXSA9PSBiWzFdWzJdICYmCisgICAgICAgIGFbMV1bM10gPT0gYlsxXVszXSAmJgor
ICAgICAgICBhWzJdWzBdID09IGJbMl1bMF0gJiYKKyAgICAgICAgYVsyXVsxXSA9PSBiWzJdWzFd
ICYmCisgICAgICAgIGFbMl1bMl0gPT0gYlsyXVsyXSAmJgorICAgICAgICBhWzJdWzNdID09IGJb
Ml1bM10gJiYKKyAgICAgICAgYVszXVswXSA9PSBiWzNdWzBdICYmCisgICAgICAgIGFbM11bMV0g
PT0gYlszXVsxXSAmJgorICAgICAgICBhWzNdWzJdID09IGJbM11bMl0gJiYKKyAgICAgICAgYVsz
XVszXSA9PSBiWzNdWzNdICYmCisgICAgdHJ1ZTsKK30KK2Jvb2wgb3BlcmF0b3I9PShmbG9hdDJ4
MiBhLCBmbG9hdDJ4MiBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0gYlswXVsw
XSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVsxXVswXSA9PSBi
WzFdWzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgIHRydWU7CiB9Citi
b29sIG9wZXJhdG9yPT0oZmxvYXQyeDMgYSwgZmxvYXQyeDMgYikgeworICAgIHJldHVybgorICAg
ICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAgICAgICAgYVswXVsxXSA9PSBiWzBdWzFdICYm
CisgICAgICAgIGFbMF1bMl0gPT0gYlswXVsyXSAmJgorICAgICAgICBhWzFdWzBdID09IGJbMV1b
MF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYmCisgICAgICAgIGFbMV1bMl0gPT0g
YlsxXVsyXSAmJgorICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0oZmxvYXQyeDQgYSwgZmxv
YXQyeDQgYikgeworICAgIHJldHVybgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAg
ICAgICAgYVswXVsxXSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFbMF1bMl0gPT0gYlswXVsyXSAm
JgorICAgICAgICBhWzBdWzNdID09IGJbMF1bM10gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFd
WzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBhWzFdWzJdID09
IGJbMV1bMl0gJiYKKyAgICAgICAgYVsxXVszXSA9PSBiWzFdWzNdICYmCisgICAgdHJ1ZTsKK30K
K2Jvb2wgb3BlcmF0b3I9PShmbG9hdDN4MiBhLCBmbG9hdDN4MiBiKSB7CisgICAgcmV0dXJuCisg
ICAgICAgIGFbMF1bMF0gPT0gYlswXVswXSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1bMV0g
JiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFdWzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0gYlsx
XVsxXSAmJgorICAgICAgICBhWzJdWzBdID09IGJbMl1bMF0gJiYKKyAgICAgICAgYVsyXVsxXSA9
PSBiWzJdWzFdICYmCisgICAgdHJ1ZTsKK30KK2Jvb2wgb3BlcmF0b3I9PShmbG9hdDN4MyBhLCBm
bG9hdDN4MyBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0gYlswXVswXSAmJgor
ICAgICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVswXVsyXSA9PSBiWzBdWzJd
ICYmCisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAmJgorICAgICAgICBhWzFdWzFdID09IGJb
MV1bMV0gJiYKKyAgICAgICAgYVsxXVsyXSA9PSBiWzFdWzJdICYmCisgICAgICAgIGFbMl1bMF0g
PT0gYlsyXVswXSAmJgorICAgICAgICBhWzJdWzFdID09IGJbMl1bMV0gJiYKKyAgICAgICAgYVsy
XVsyXSA9PSBiWzJdWzJdICYmCisgICAgdHJ1ZTsKK30KK2Jvb2wgb3BlcmF0b3I9PShmbG9hdDN4
NCBhLCBmbG9hdDN4NCBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0gYlswXVsw
XSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVswXVsyXSA9PSBi
WzBdWzJdICYmCisgICAgICAgIGFbMF1bM10gPT0gYlswXVszXSAmJgorICAgICAgICBhWzFdWzBd
ID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYmCisgICAgICAgIGFb
MV1bMl0gPT0gYlsxXVsyXSAmJgorICAgICAgICBhWzFdWzNdID09IGJbMV1bM10gJiYKKyAgICAg
ICAgYVsyXVswXSA9PSBiWzJdWzBdICYmCisgICAgICAgIGFbMl1bMV0gPT0gYlsyXVsxXSAmJgor
ICAgICAgICBhWzJdWzJdID09IGJbMl1bMl0gJiYKKyAgICAgICAgYVsyXVszXSA9PSBiWzJdWzNd
ICYmCisgICAgdHJ1ZTsKK30KK2Jvb2wgb3BlcmF0b3I9PShmbG9hdDR4MiBhLCBmbG9hdDR4MiBi
KSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0gYlswXVswXSAmJgorICAgICAgICBh
WzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFdWzBdICYmCisgICAg
ICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBhWzJdWzBdID09IGJbMl1bMF0gJiYK
KyAgICAgICAgYVsyXVsxXSA9PSBiWzJdWzFdICYmCisgICAgICAgIGFbM11bMF0gPT0gYlszXVsw
XSAmJgorICAgICAgICBhWzNdWzFdID09IGJbM11bMV0gJiYKKyAgICB0cnVlOworfQorYm9vbCBv
cGVyYXRvcj09KGZsb2F0NHgzIGEsIGZsb2F0NHgzIGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAg
YVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAg
ICAgICBhWzBdWzJdID09IGJbMF1bMl0gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFdWzBdICYm
CisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBhWzFdWzJdID09IGJbMV1b
Ml0gJiYKKyAgICAgICAgYVsyXVswXSA9PSBiWzJdWzBdICYmCisgICAgICAgIGFbMl1bMV0gPT0g
YlsyXVsxXSAmJgorICAgICAgICBhWzJdWzJdID09IGJbMl1bMl0gJiYKKyAgICAgICAgYVszXVsw
XSA9PSBiWzNdWzBdICYmCisgICAgICAgIGFbM11bMV0gPT0gYlszXVsxXSAmJgorICAgICAgICBh
WzNdWzJdID09IGJbM11bMl0gJiYKKyAgICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGZsb2F0
NHg0IGEsIGZsb2F0NHg0IGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBd
WzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAgICAgICBhWzBdWzJdID09
IGJbMF1bMl0gJiYKKyAgICAgICAgYVswXVszXSA9PSBiWzBdWzNdICYmCisgICAgICAgIGFbMV1b
MF0gPT0gYlsxXVswXSAmJgorICAgICAgICBhWzFdWzFdID09IGJbMV1bMV0gJiYKKyAgICAgICAg
YVsxXVsyXSA9PSBiWzFdWzJdICYmCisgICAgICAgIGFbMV1bM10gPT0gYlsxXVszXSAmJgorICAg
ICAgICBhWzJdWzBdID09IGJbMl1bMF0gJiYKKyAgICAgICAgYVsyXVsxXSA9PSBiWzJdWzFdICYm
CisgICAgICAgIGFbMl1bMl0gPT0gYlsyXVsyXSAmJgorICAgICAgICBhWzJdWzNdID09IGJbMl1b
M10gJiYKKyAgICAgICAgYVszXVswXSA9PSBiWzNdWzBdICYmCisgICAgICAgIGFbM11bMV0gPT0g
YlszXVsxXSAmJgorICAgICAgICBhWzNdWzJdID09IGJbM11bMl0gJiYKKyAgICAgICAgYVszXVsz
XSA9PSBiWzNdWzNdICYmCisgICAgdHJ1ZTsKK30KKworbmF0aXZlIHVjaGFyIFNhbXBsZShUZXh0
dXJlMUQ8dWNoYXI+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUgdWNoYXIgU2Ft
cGxlKFRleHR1cmUxRDx1Y2hhcj4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0
KTsKK25hdGl2ZSB1Y2hhciBMb2FkKFRleHR1cmUxRDx1Y2hhcj4sIGludDIgbG9jYXRpb24pOwor
bmF0aXZlIHVjaGFyIExvYWQoVGV4dHVyZTFEPHVjaGFyPiwgaW50MiBsb2NhdGlvbiwgaW50IG9m
ZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDx1Y2hhcj4sIHVpbnQg
TWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxz
KTsKK25hdGl2ZSB1Y2hhcjIgU2FtcGxlKFRleHR1cmUxRDx1Y2hhcjI+LCBzYW1wbGVyLCBmbG9h
dCBsb2NhdGlvbik7CituYXRpdmUgdWNoYXIyIFNhbXBsZShUZXh0dXJlMUQ8dWNoYXIyPiwgc2Ft
cGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHVjaGFyMiBMb2FkKFRl
eHR1cmUxRDx1Y2hhcjI+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSB1Y2hhcjIgTG9hZChUZXh0
dXJlMUQ8dWNoYXIyPiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBH
ZXREaW1lbnNpb25zKFRleHR1cmUxRDx1Y2hhcjI+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWlu
dCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7CituYXRpdmUgdWNoYXIzIFNh
bXBsZShUZXh0dXJlMUQ8dWNoYXIzPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pOworbmF0aXZl
IHVjaGFyMyBTYW1wbGUoVGV4dHVyZTFEPHVjaGFyMz4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9u
LCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB1Y2hhcjMgTG9hZChUZXh0dXJlMUQ8dWNoYXIzPiwgaW50
MiBsb2NhdGlvbik7CituYXRpdmUgdWNoYXIzIExvYWQoVGV4dHVyZTFEPHVjaGFyMz4sIGludDIg
bG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJl
MUQ8dWNoYXIzPiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWlu
dCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIHVjaGFyNCBTYW1wbGUoVGV4dHVyZTFEPHVjaGFy
ND4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSB1Y2hhcjQgU2FtcGxlKFRleHR1
cmUxRDx1Y2hhcjQ+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRp
dmUgdWNoYXI0IExvYWQoVGV4dHVyZTFEPHVjaGFyND4sIGludDIgbG9jYXRpb24pOworbmF0aXZl
IHVjaGFyNCBMb2FkKFRleHR1cmUxRDx1Y2hhcjQ+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0
KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPHVjaGFyND4sIHVpbnQgTWlw
TGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsK
K25hdGl2ZSB1c2hvcnQgU2FtcGxlKFRleHR1cmUxRDx1c2hvcnQ+LCBzYW1wbGVyLCBmbG9hdCBs
b2NhdGlvbik7CituYXRpdmUgdXNob3J0IFNhbXBsZShUZXh0dXJlMUQ8dXNob3J0Piwgc2FtcGxl
ciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHVzaG9ydCBMb2FkKFRleHR1
cmUxRDx1c2hvcnQ+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSB1c2hvcnQgTG9hZChUZXh0dXJl
MUQ8dXNob3J0PiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXRE
aW1lbnNpb25zKFRleHR1cmUxRDx1c2hvcnQ+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCog
V2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7CituYXRpdmUgdXNob3J0MiBTYW1w
bGUoVGV4dHVyZTFEPHVzaG9ydDI+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUg
dXNob3J0MiBTYW1wbGUoVGV4dHVyZTFEPHVzaG9ydDI+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlv
biwgaW50IG9mZnNldCk7CituYXRpdmUgdXNob3J0MiBMb2FkKFRleHR1cmUxRDx1c2hvcnQyPiwg
aW50MiBsb2NhdGlvbik7CituYXRpdmUgdXNob3J0MiBMb2FkKFRleHR1cmUxRDx1c2hvcnQyPiwg
aW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRl
eHR1cmUxRDx1c2hvcnQyPiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJl
YWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIHVzaG9ydDMgU2FtcGxlKFRleHR1cmUx
RDx1c2hvcnQzPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pOworbmF0aXZlIHVzaG9ydDMgU2Ft
cGxlKFRleHR1cmUxRDx1c2hvcnQzPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZz
ZXQpOworbmF0aXZlIHVzaG9ydDMgTG9hZChUZXh0dXJlMUQ8dXNob3J0Mz4sIGludDIgbG9jYXRp
b24pOworbmF0aXZlIHVzaG9ydDMgTG9hZChUZXh0dXJlMUQ8dXNob3J0Mz4sIGludDIgbG9jYXRp
b24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8dXNo
b3J0Mz4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51
bWJlck9mTGV2ZWxzKTsKK25hdGl2ZSB1c2hvcnQ0IFNhbXBsZShUZXh0dXJlMUQ8dXNob3J0ND4s
IHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSB1c2hvcnQ0IFNhbXBsZShUZXh0dXJl
MUQ8dXNob3J0ND4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2
ZSB1c2hvcnQ0IExvYWQoVGV4dHVyZTFEPHVzaG9ydDQ+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2
ZSB1c2hvcnQ0IExvYWQoVGV4dHVyZTFEPHVzaG9ydDQ+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zm
c2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPHVzaG9ydDQ+LCB1aW50
IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVs
cyk7CituYXRpdmUgdWludCBTYW1wbGUoVGV4dHVyZTFEPHVpbnQ+LCBzYW1wbGVyLCBmbG9hdCBs
b2NhdGlvbik7CituYXRpdmUgdWludCBTYW1wbGUoVGV4dHVyZTFEPHVpbnQ+LCBzYW1wbGVyLCBm
bG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdWludCBMb2FkKFRleHR1cmUxRDx1
aW50PiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUgdWludCBMb2FkKFRleHR1cmUxRDx1aW50Piwg
aW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRl
eHR1cmUxRDx1aW50PiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQg
dWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIHVpbnQyIFNhbXBsZShUZXh0dXJlMUQ8dWlu
dDI+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUgdWludDIgU2FtcGxlKFRleHR1
cmUxRDx1aW50Mj4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2
ZSB1aW50MiBMb2FkKFRleHR1cmUxRDx1aW50Mj4sIGludDIgbG9jYXRpb24pOworbmF0aXZlIHVp
bnQyIExvYWQoVGV4dHVyZTFEPHVpbnQyPiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7Citu
YXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDx1aW50Mj4sIHVpbnQgTWlwTGV2ZWws
IHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsKK25hdGl2
ZSB1aW50MyBTYW1wbGUoVGV4dHVyZTFEPHVpbnQzPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24p
OworbmF0aXZlIHVpbnQzIFNhbXBsZShUZXh0dXJlMUQ8dWludDM+LCBzYW1wbGVyLCBmbG9hdCBs
b2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdWludDMgTG9hZChUZXh0dXJlMUQ8dWludDM+
LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSB1aW50MyBMb2FkKFRleHR1cmUxRDx1aW50Mz4sIGlu
dDIgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0
dXJlMUQ8dWludDM+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1
aW50KiBOdW1iZXJPZkxldmVscyk7CituYXRpdmUgdWludDQgU2FtcGxlKFRleHR1cmUxRDx1aW50
ND4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSB1aW50NCBTYW1wbGUoVGV4dHVy
ZTFEPHVpbnQ0Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZl
IHVpbnQ0IExvYWQoVGV4dHVyZTFEPHVpbnQ0PiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUgdWlu
dDQgTG9hZChUZXh0dXJlMUQ8dWludDQ+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25h
dGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPHVpbnQ0PiwgdWludCBNaXBMZXZlbCwg
dGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZl
IGNoYXIgU2FtcGxlKFRleHR1cmUxRDxjaGFyPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pOwor
bmF0aXZlIGNoYXIgU2FtcGxlKFRleHR1cmUxRDxjaGFyPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRp
b24sIGludCBvZmZzZXQpOworbmF0aXZlIGNoYXIgTG9hZChUZXh0dXJlMUQ8Y2hhcj4sIGludDIg
bG9jYXRpb24pOworbmF0aXZlIGNoYXIgTG9hZChUZXh0dXJlMUQ8Y2hhcj4sIGludDIgbG9jYXRp
b24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8Y2hh
cj4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJl
ck9mTGV2ZWxzKTsKK25hdGl2ZSBjaGFyMiBTYW1wbGUoVGV4dHVyZTFEPGNoYXIyPiwgc2FtcGxl
ciwgZmxvYXQgbG9jYXRpb24pOworbmF0aXZlIGNoYXIyIFNhbXBsZShUZXh0dXJlMUQ8Y2hhcjI+
LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgY2hhcjIgTG9h
ZChUZXh0dXJlMUQ8Y2hhcjI+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSBjaGFyMiBMb2FkKFRl
eHR1cmUxRDxjaGFyMj4sIGludDIgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQg
R2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8Y2hhcjI+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWlu
dCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7CituYXRpdmUgY2hhcjMgU2Ft
cGxlKFRleHR1cmUxRDxjaGFyMz4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSBj
aGFyMyBTYW1wbGUoVGV4dHVyZTFEPGNoYXIzPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGlu
dCBvZmZzZXQpOworbmF0aXZlIGNoYXIzIExvYWQoVGV4dHVyZTFEPGNoYXIzPiwgaW50MiBsb2Nh
dGlvbik7CituYXRpdmUgY2hhcjMgTG9hZChUZXh0dXJlMUQ8Y2hhcjM+LCBpbnQyIGxvY2F0aW9u
LCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPGNoYXIz
PiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogTnVtYmVy
T2ZMZXZlbHMpOworbmF0aXZlIGNoYXI0IFNhbXBsZShUZXh0dXJlMUQ8Y2hhcjQ+LCBzYW1wbGVy
LCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUgY2hhcjQgU2FtcGxlKFRleHR1cmUxRDxjaGFyND4s
IHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSBjaGFyNCBMb2Fk
KFRleHR1cmUxRDxjaGFyND4sIGludDIgbG9jYXRpb24pOworbmF0aXZlIGNoYXI0IExvYWQoVGV4
dHVyZTFEPGNoYXI0PiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBH
ZXREaW1lbnNpb25zKFRleHR1cmUxRDxjaGFyND4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50
KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsKK25hdGl2ZSBzaG9ydCBTYW1w
bGUoVGV4dHVyZTFEPHNob3J0Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pOworbmF0aXZlIHNo
b3J0IFNhbXBsZShUZXh0dXJlMUQ8c2hvcnQ+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50
IG9mZnNldCk7CituYXRpdmUgc2hvcnQgTG9hZChUZXh0dXJlMUQ8c2hvcnQ+LCBpbnQyIGxvY2F0
aW9uKTsKK25hdGl2ZSBzaG9ydCBMb2FkKFRleHR1cmUxRDxzaG9ydD4sIGludDIgbG9jYXRpb24s
IGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8c2hvcnQ+
LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJP
ZkxldmVscyk7CituYXRpdmUgc2hvcnQyIFNhbXBsZShUZXh0dXJlMUQ8c2hvcnQyPiwgc2FtcGxl
ciwgZmxvYXQgbG9jYXRpb24pOworbmF0aXZlIHNob3J0MiBTYW1wbGUoVGV4dHVyZTFEPHNob3J0
Mj4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSBzaG9ydDIg
TG9hZChUZXh0dXJlMUQ8c2hvcnQyPiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUgc2hvcnQyIExv
YWQoVGV4dHVyZTFEPHNob3J0Mj4sIGludDIgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZl
IHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8c2hvcnQyPiwgdWludCBNaXBMZXZlbCwgdGhy
ZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIHNo
b3J0MyBTYW1wbGUoVGV4dHVyZTFEPHNob3J0Mz4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsK
K25hdGl2ZSBzaG9ydDMgU2FtcGxlKFRleHR1cmUxRDxzaG9ydDM+LCBzYW1wbGVyLCBmbG9hdCBs
b2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgc2hvcnQzIExvYWQoVGV4dHVyZTFEPHNob3J0
Mz4sIGludDIgbG9jYXRpb24pOworbmF0aXZlIHNob3J0MyBMb2FkKFRleHR1cmUxRDxzaG9ydDM+
LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMo
VGV4dHVyZTFEPHNob3J0Mz4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhy
ZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsKK25hdGl2ZSBzaG9ydDQgU2FtcGxlKFRleHR1cmUx
RDxzaG9ydDQ+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUgc2hvcnQ0IFNhbXBs
ZShUZXh0dXJlMUQ8c2hvcnQ0Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQp
OworbmF0aXZlIHNob3J0NCBMb2FkKFRleHR1cmUxRDxzaG9ydDQ+LCBpbnQyIGxvY2F0aW9uKTsK
K25hdGl2ZSBzaG9ydDQgTG9hZChUZXh0dXJlMUQ8c2hvcnQ0PiwgaW50MiBsb2NhdGlvbiwgaW50
IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDxzaG9ydDQ+LCB1
aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxl
dmVscyk7CituYXRpdmUgaW50IFNhbXBsZShUZXh0dXJlMUQ8aW50Piwgc2FtcGxlciwgZmxvYXQg
bG9jYXRpb24pOworbmF0aXZlIGludCBTYW1wbGUoVGV4dHVyZTFEPGludD4sIHNhbXBsZXIsIGZs
b2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSBpbnQgTG9hZChUZXh0dXJlMUQ8aW50
PiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUgaW50IExvYWQoVGV4dHVyZTFEPGludD4sIGludDIg
bG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJl
MUQ8aW50PiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCog
TnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIGludDIgU2FtcGxlKFRleHR1cmUxRDxpbnQyPiwgc2Ft
cGxlciwgZmxvYXQgbG9jYXRpb24pOworbmF0aXZlIGludDIgU2FtcGxlKFRleHR1cmUxRDxpbnQy
Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIGludDIgTG9h
ZChUZXh0dXJlMUQ8aW50Mj4sIGludDIgbG9jYXRpb24pOworbmF0aXZlIGludDIgTG9hZChUZXh0
dXJlMUQ8aW50Mj4sIGludDIgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0
RGltZW5zaW9ucyhUZXh0dXJlMUQ8aW50Mj4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBX
aWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsKK25hdGl2ZSBpbnQzIFNhbXBsZShU
ZXh0dXJlMUQ8aW50Mz4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSBpbnQzIFNh
bXBsZShUZXh0dXJlMUQ8aW50Mz4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0
KTsKK25hdGl2ZSBpbnQzIExvYWQoVGV4dHVyZTFEPGludDM+LCBpbnQyIGxvY2F0aW9uKTsKK25h
dGl2ZSBpbnQzIExvYWQoVGV4dHVyZTFEPGludDM+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0
KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPGludDM+LCB1aW50IE1pcExl
dmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7Citu
YXRpdmUgaW50NCBTYW1wbGUoVGV4dHVyZTFEPGludDQ+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlv
bik7CituYXRpdmUgaW50NCBTYW1wbGUoVGV4dHVyZTFEPGludDQ+LCBzYW1wbGVyLCBmbG9hdCBs
b2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgaW50NCBMb2FkKFRleHR1cmUxRDxpbnQ0Piwg
aW50MiBsb2NhdGlvbik7CituYXRpdmUgaW50NCBMb2FkKFRleHR1cmUxRDxpbnQ0PiwgaW50MiBs
b2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUx
RDxpbnQ0PiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCog
TnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIGhhbGYgU2FtcGxlKFRleHR1cmUxRDxoYWxmPiwgc2Ft
cGxlciwgZmxvYXQgbG9jYXRpb24pOworbmF0aXZlIGhhbGYgU2FtcGxlKFRleHR1cmUxRDxoYWxm
Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIGhhbGYgTG9h
ZChUZXh0dXJlMUQ8aGFsZj4sIGludDIgbG9jYXRpb24pOworbmF0aXZlIGhhbGYgTG9hZChUZXh0
dXJlMUQ8aGFsZj4sIGludDIgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0
RGltZW5zaW9ucyhUZXh0dXJlMUQ8aGFsZj4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBX
aWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsKK25hdGl2ZSBoYWxmMiBTYW1wbGUo
VGV4dHVyZTFEPGhhbGYyPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pOworbmF0aXZlIGhhbGYy
IFNhbXBsZShUZXh0dXJlMUQ8aGFsZjI+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9m
ZnNldCk7CituYXRpdmUgaGFsZjIgTG9hZChUZXh0dXJlMUQ8aGFsZjI+LCBpbnQyIGxvY2F0aW9u
KTsKK25hdGl2ZSBoYWxmMiBMb2FkKFRleHR1cmUxRDxoYWxmMj4sIGludDIgbG9jYXRpb24sIGlu
dCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8aGFsZjI+LCB1
aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxl
dmVscyk7CituYXRpdmUgaGFsZjMgU2FtcGxlKFRleHR1cmUxRDxoYWxmMz4sIHNhbXBsZXIsIGZs
b2F0IGxvY2F0aW9uKTsKK25hdGl2ZSBoYWxmMyBTYW1wbGUoVGV4dHVyZTFEPGhhbGYzPiwgc2Ft
cGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIGhhbGYzIExvYWQoVGV4
dHVyZTFEPGhhbGYzPiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUgaGFsZjMgTG9hZChUZXh0dXJl
MUQ8aGFsZjM+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERp
bWVuc2lvbnMoVGV4dHVyZTFEPGhhbGYzPiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdp
ZHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIGhhbGY0IFNhbXBsZShU
ZXh0dXJlMUQ8aGFsZjQ+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUgaGFsZjQg
U2FtcGxlKFRleHR1cmUxRDxoYWxmND4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zm
c2V0KTsKK25hdGl2ZSBoYWxmNCBMb2FkKFRleHR1cmUxRDxoYWxmND4sIGludDIgbG9jYXRpb24p
OworbmF0aXZlIGhhbGY0IExvYWQoVGV4dHVyZTFEPGhhbGY0PiwgaW50MiBsb2NhdGlvbiwgaW50
IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDxoYWxmND4sIHVp
bnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2
ZWxzKTsKK25hdGl2ZSBmbG9hdCBTYW1wbGUoVGV4dHVyZTFEPGZsb2F0Piwgc2FtcGxlciwgZmxv
YXQgbG9jYXRpb24pOworbmF0aXZlIGZsb2F0IFNhbXBsZShUZXh0dXJlMUQ8ZmxvYXQ+LCBzYW1w
bGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgZmxvYXQgTG9hZChUZXh0
dXJlMUQ8ZmxvYXQ+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSBmbG9hdCBMb2FkKFRleHR1cmUx
RDxmbG9hdD4sIGludDIgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0RGlt
ZW5zaW9ucyhUZXh0dXJlMUQ8ZmxvYXQ+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lk
dGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7CituYXRpdmUgZmxvYXQyIFNhbXBsZShU
ZXh0dXJlMUQ8ZmxvYXQyPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pOworbmF0aXZlIGZsb2F0
MiBTYW1wbGUoVGV4dHVyZTFEPGZsb2F0Mj4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQg
b2Zmc2V0KTsKK25hdGl2ZSBmbG9hdDIgTG9hZChUZXh0dXJlMUQ8ZmxvYXQyPiwgaW50MiBsb2Nh
dGlvbik7CituYXRpdmUgZmxvYXQyIExvYWQoVGV4dHVyZTFEPGZsb2F0Mj4sIGludDIgbG9jYXRp
b24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8Zmxv
YXQyPiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogTnVt
YmVyT2ZMZXZlbHMpOworbmF0aXZlIGZsb2F0MyBTYW1wbGUoVGV4dHVyZTFEPGZsb2F0Mz4sIHNh
bXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSBmbG9hdDMgU2FtcGxlKFRleHR1cmUxRDxm
bG9hdDM+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgZmxv
YXQzIExvYWQoVGV4dHVyZTFEPGZsb2F0Mz4sIGludDIgbG9jYXRpb24pOworbmF0aXZlIGZsb2F0
MyBMb2FkKFRleHR1cmUxRDxmbG9hdDM+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25h
dGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPGZsb2F0Mz4sIHVpbnQgTWlwTGV2ZWws
IHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsKK25hdGl2
ZSBmbG9hdDQgU2FtcGxlKFRleHR1cmUxRDxmbG9hdDQ+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlv
bik7CituYXRpdmUgZmxvYXQ0IFNhbXBsZShUZXh0dXJlMUQ8ZmxvYXQ0Piwgc2FtcGxlciwgZmxv
YXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIGZsb2F0NCBMb2FkKFRleHR1cmUxRDxm
bG9hdDQ+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSBmbG9hdDQgTG9hZChUZXh0dXJlMUQ8Zmxv
YXQ0PiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNp
b25zKFRleHR1cmUxRDxmbG9hdDQ+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgs
IHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7CisKIGA7CiAKIC8vIEZJWE1FOiBPbmNlIHRo
ZSBzdGFuZGFyZCBsaWJyYXJ5IGhhcyBiZWVuIHJlcGxhY2VkIHdpdGggYSBuZXcgdmVyc2lvbiwg
dGhpcyBjb21tZW50cyBzaG91bGQgYmUgcmVtb3ZlZC4KQEAgLTIxNywyMiArMzIyNywzIEBAIGZ1
bmN0aW9uIGFsbFZlY3RvclR5cGVOYW1lcygpCiAgICAgfQogICAgIHJldHVybiBuYW1lczsKIH0K
LQotLy8gUHJvdmlkZXMgb3BlcmF0b3ImW10KLXN0YW5kYXJkTGlicmFyeSArPSBPcGVyYXRvckFu
ZGVySW5kZXhlci5mdW5jdGlvbnMoKS5qb2luKCI7XG4iKSArICI7XG4iOwotCi0vLyBOYXRpdmUg
dmVjdG9yIHR5cGVzIGFyZSBsaWtlIHN0cnVjdHMgaW4gdGhlIGxhbmdhdWdlLCBidXQgdGhleSBk
byBub3QgaGF2ZSB0aGUgYW5kZXIgZmllbGQgYWNjZXNzLgotLy8gSXQgaXMgbm90IHBvc3NpYmxl
IHRvIHRha2UgdGhlIGFkZHJlc3Mgb2YgYSB2ZWN0b3IgZmllbGQuCi1zdGFuZGFyZExpYnJhcnkg
Kz0gQnVpbHRpblZlY3RvckdldHRlci5mdW5jdGlvbnMoKS5qb2luKCI7XG4iKSArICI7XG4iOwot
c3RhbmRhcmRMaWJyYXJ5ICs9IEJ1aWx0aW5WZWN0b3JTZXR0ZXIuZnVuY3Rpb25zKCkuam9pbigi
O1xuIikgKyAiO1xuIjsKLXN0YW5kYXJkTGlicmFyeSArPSBCdWlsdGluVmVjdG9ySW5kZXhHZXR0
ZXIuZnVuY3Rpb25zKCkuam9pbigiO1xuIikgKyAiO1xuIjsKLXN0YW5kYXJkTGlicmFyeSArPSBC
dWlsdGluVmVjdG9ySW5kZXhTZXR0ZXIuZnVuY3Rpb25zKCkuam9pbigiO1xuIikgKyAiO1xuIjsK
LQotLy8gRklYTUU6IEZvciBuYXRpdmUgdHlwZXMgdGhlc2UgY291bGQgYmUgaW5jbHVkZWQgYXMg
c291cmNlIGluIHRoZSBzdGFuZGFyZCBsaWJyYXJ5LgotLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4ODY4NQotc3RhbmRhcmRMaWJyYXJ5ICs9IE9wZXJhdG9yQm9v
bC5mdW5jdGlvbnMoKS5qb2luKCI7XG4iKSArICI7XG4iOwotc3RhbmRhcmRMaWJyYXJ5ICs9IEJ1
aWx0aW5WZWN0b3JFcXVhbGl0eU9wZXJhdG9yLmZ1bmN0aW9ucygpLmpvaW4oIjtcbiIpICsgIjtc
biI7Ci0KLS8vIEZJWE1FOiBUaGVzZSBuZWVkIHRvIGJlIGluY2x1ZGVkIGFzIHNvdXJjZSBpbiB0
aGUgc3RhbmRhcmQgbGlicmFyeS4KLXN0YW5kYXJkTGlicmFyeSArPSBTd2l6emxlT3AuZnVuY3Rp
b25zKCkuam9pbigiO1xuIikgKyAiO1xuIjsKLXN0YW5kYXJkTGlicmFyeSArPSBCdWlsdGluVmVj
dG9yQ29uc3RydWN0b3JzLmZ1bmN0aW9ucygpLmpvaW4oIjtcbiIpICsgIjtcbiI7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Td2l6emxlT3AuanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Td2l6emxlT3AuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDI1OTk4ZWY3OWQ5OGE1Mjg4MjA5ODc1ZDM0NmNmNTUwOWU5YmE3MjYuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU3dpenpsZU9wLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTA3ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotInVzZSBzdHJp
Y3QiOwotCi1jbGFzcyBTd2l6emxlT3AgewotICAgIGNvbnN0cnVjdG9yKGJhc2VUeXBlTmFtZSwg
b3V0U2l6ZSwgY29tcG9uZW50cywgaW5TaXplKQotICAgIHsKLSAgICAgICAgdGhpcy5fYmFzZVR5
cGVOYW1lID0gYmFzZVR5cGVOYW1lOwotICAgICAgICB0aGlzLl9vdXRTaXplID0gb3V0U2l6ZTsK
LSAgICAgICAgdGhpcy5fY29tcG9uZW50cyA9IGNvbXBvbmVudHMuc2xpY2UoKTsgLy8gU2hhbGxv
dyBjbG9uZQotICAgICAgICB0aGlzLl9pblNpemUgPSBpblNpemU7Ci0gICAgfQotCi0gICAgZ2V0
IGJhc2VUeXBlTmFtZSgpIHsgcmV0dXJuIHRoaXMuX2Jhc2VUeXBlTmFtZTsgfQotICAgIGdldCBv
dXRTaXplKCkgeyByZXR1cm4gdGhpcy5fb3V0U2l6ZTsgfQotICAgIGdldCBjb21wb25lbnRzKCkg
eyByZXR1cm4gdGhpcy5fY29tcG9uZW50czsgfQotICAgIGdldCBpblNpemUoKSB7IHJldHVybiB0
aGlzLl9pblNpemU7IH0KLQotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBg
bmF0aXZlICR7dGhpcy5iYXNlVHlwZU5hbWV9JHt0aGlzLm91dFNpemV9IG9wZXJhdG9yLiR7dGhp
cy5jb21wb25lbnRzLmpvaW4oIiIpfSgke3RoaXMuYmFzZVR5cGVOYW1lfSR7dGhpcy5pblNpemV9
IHYpYDsKLSAgICB9Ci0KLSAgICBzdGF0aWMgaW50VG9TdHJpbmcoeCkKLSAgICB7Ci0gICAgICAg
IHN3aXRjaCAoeCkgewotICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICByZXR1cm4gIngiOwot
ICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgICByZXR1cm4gInkiOwotICAgICAgICBjYXNlIDI6
Ci0gICAgICAgICAgICByZXR1cm4gInoiOwotICAgICAgICBjYXNlIDM6Ci0gICAgICAgICAgICBy
ZXR1cm4gInciOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJDb3VsZCBub3QgZ2VuZXJhdGUgc3RhbmRhcmQgbGlicmFyeS4iKTsKLSAgICAgICAgfQotICAg
IH0KLQotICAgIHN0YXRpYyBmdW5jdGlvbnMoKQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9m
dW5jdGlvbnMpIHsKLSAgICAgICAgICAgIC8vIFdlIGNhbid0IGRpcmVjdGx5IHVzZSB0aGlzLl9m
dW5jdGlvbnMgaW4gX2dlbmVyYXRlU3dpenpsZXMuCi0gICAgICAgICAgICBjb25zdCBmdW5jdGlv
bnMgPSBbXTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gX2dlbmVyYXRlU3dpenpsZShiYXNlVHlw
ZU5hbWUsIG1heERlcHRoLCBtYXhJdGVtcywgYXJyYXkpIHsKLSAgICAgICAgICAgICAgICBpZiAo
IWFycmF5KQotICAgICAgICAgICAgICAgICAgICBhcnJheSA9IFtdOwotICAgICAgICAgICAgICAg
IGlmIChhcnJheS5sZW5ndGggPT0gbWF4RGVwdGgpIHsKLSAgICAgICAgICAgICAgICAgICAgZnVu
Y3Rpb25zLnB1c2gobmV3IFN3aXp6bGVPcChiYXNlVHlwZU5hbWUsIGFycmF5Lmxlbmd0aCwgYXJy
YXksIG1heEl0ZW1zKSk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXhJdGVtczsgKytp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGFycmF5LnB1c2goU3dpenpsZU9wLmludFRvU3RyaW5n
KGkpKTsKLSAgICAgICAgICAgICAgICAgICAgX2dlbmVyYXRlU3dpenpsZShiYXNlVHlwZU5hbWUs
IG1heERlcHRoLCBtYXhJdGVtcywgYXJyYXkpOwotICAgICAgICAgICAgICAgICAgICBhcnJheS5w
b3AoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9OwotCi0gICAgICAgICAgICBm
b3IgKGxldCB0eXBlTmFtZSBvZiBWZWN0b3JFbGVtZW50VHlwZXMpIHsKLSAgICAgICAgICAgICAg
ICBmb3IgKGxldCBtYXhEZXB0aCBvZiBWZWN0b3JFbGVtZW50U2l6ZXMpIHsKLSAgICAgICAgICAg
ICAgICAgICAgZm9yIChsZXQgbWF4SXRlbXMgPSAyOyBtYXhJdGVtcyA8PSA0OyBtYXhJdGVtcysr
KQotICAgICAgICAgICAgICAgICAgICAgICAgX2dlbmVyYXRlU3dpenpsZSh0eXBlTmFtZSwgbWF4
RGVwdGgsIG1heEl0ZW1zKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIHRoaXMuX2Z1bmN0aW9ucyA9IGZ1bmN0aW9uczsKLSAgICAgICAgfQotICAgICAg
ICByZXR1cm4gdGhpcy5fZnVuY3Rpb25zOwotICAgIH0KLQotICAgIGluc3RhbnRpYXRlSW1wbGVt
ZW50YXRpb24oZnVuYykKLSAgICB7Ci0gICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3Zl
Y10sIG5vZGUpID0+IHsKLSAgICAgICAgICAgIGNvbnN0IG91dHB1dEJ1ZmZlciA9IG5ldyBFQnVm
ZmVyKHRoaXMub3V0U2l6ZSk7Ci0gICAgICAgICAgICBjb25zdCByZWFkSW5kaWNlcyA9IHsgJ3gn
OiAwLCAneSc6IDEsICd6JzogMiwgJ3cnOiAzIH07Ci0gICAgICAgICAgICBmb3IgKGxldCBpID0g
MDsgaSA8IHRoaXMub3V0U2l6ZTsgaSsrKQotICAgICAgICAgICAgICAgIG91dHB1dEJ1ZmZlci5z
ZXQoaSwgdmVjLmdldChyZWFkSW5kaWNlc1t0aGlzLmNvbXBvbmVudHNbaV1dKSk7Ci0KLQotICAg
ICAgICAgICAgcmV0dXJuIG5ldyBFUHRyKG91dHB1dEJ1ZmZlciwgMCk7Ci0gICAgICAgIH07Ci0g
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb25EYXRhID0gdGhpczsKLSAgICB9Ci19ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9y
LmpzCmluZGV4IDNhM2Y3NjczODY3YjlhYWIwMTMyMjE4MDM1Njg3MzhjMTYzYTU2N2UuLmRjNTA2
NTM4ZDFjNmM3MTA5YjFhZDFlY2JhM2NlYzI3OGQwZjdiNWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRv
ci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXplRGVmYXVs
dENvbnN0cnVjdG9yT3BlcmF0b3IuanMKQEAgLTUxLDYgKzUxLDEyIEBAIGZ1bmN0aW9uIHN5bnRo
ZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvcihwcm9ncmFtKQogICAgICAgICAgICAgdHlw
ZXMuYWRkKG5vZGUpOwogICAgICAgICAgICAgc3VwZXIudmlzaXRWZWN0b3JUeXBlKG5vZGUpOwog
ICAgICAgICB9CisKKyAgICAgICAgdmlzaXRNYXRyaXhUeXBlKG5vZGUpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIHR5cGVzLmFkZChub2RlKTsKKyAgICAgICAgICAgIHN1cGVyLnZpc2l0TWF0cml4
VHlwZShub2RlKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHByb2dyYW0udmlzaXQobmV3IEZp
bmRBbGxUeXBlcygpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1N5bnRoZXNpemVPcGVyYXRvckJvb2wuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9TeW50aGVzaXplT3BlcmF0b3JCb29sLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA2OTVmZTEzNzUzZDBhMjY0M2IwOTViNTM0YjExOTIxN2Y2MjUzOGIzLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1N5bnRoZXNpemVPcGVyYXRvckJvb2wuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzNyAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNl
IHN0cmljdCI7Ci0KLWZ1bmN0aW9uIHN5bnRoZXNpemVPcGVyYXRvckJvb2wocHJvZ3JhbSkKLXsK
LSAgICBmb3IgKGxldCB0eXBlIG9mIHByb2dyYW0udHlwZXMudmFsdWVzKCkpIHsKLSAgICAgICAg
aWYgKCEodHlwZSBpbnN0YW5jZW9mIFN0cnVjdFR5cGUpICYmICEodHlwZSBpbnN0YW5jZW9mIEVu
dW1UeXBlKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBjb25zdCBmdW5jID0gbmV3
IE5hdGl2ZUZ1bmModHlwZS5vcmlnaW4sICJvcGVyYXRvciBjYXN0IiwgVHlwZVJlZi53cmFwKHBy
b2dyYW0udHlwZXMuZ2V0KCJib29sIikpLCBbIG5ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2lu
LCBudWxsLCBUeXBlUmVmLndyYXAodHlwZSkpIF0sIHRydWUsIG51bGwpOwotICAgICAgICBjb25z
dCBvcGVyYXRvckJvb2wgPSBuZXcgT3BlcmF0b3JCb29sKHR5cGUubmFtZSk7Ci0gICAgICAgIG9w
ZXJhdG9yQm9vbC5pbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpOwotICAgICAgICBwcm9n
cmFtLmFkZChmdW5jKTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UZXN0Lmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0
Lmh0bWwKaW5kZXggN2QyNmQyNjA3YTk1ZjliZjY0ZGYxYmNhOTE2NThmMmU3NDhjMDQzZC4uMzYw
ZmYxOTBhMDY5NGVmMzI1M2I2ZjUyOGFjNTNlMDM3YjQ1ODkzMSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1Rlc3QuaHRtbApAQCAtMTEsNyArMTEsNiBAQAogPHNjcmlwdCBzcmM9IkNy
ZWF0ZUxpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNyZWF0ZUxpdGVyYWxUeXBl
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24uanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlN3aXp6bGVPcC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iTmF0aXZlVHlwZS5qcyI+PC9zY3JpcHQ+CiAKIDxzY3JpcHQgc3JjPSJBZGRyZXNzU3Bh
Y2UuanMiPjwvc2NyaXB0PgpAQCAtMjMsMTIgKzIyLDEwIEBACiA8c2NyaXB0IHNyYz0iQmxvY2su
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkJvb2xMaXRlcmFsLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJCcmVhay5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iQnVpbHRpblZlY3Rv
ckNvbnN0cnVjdG9ycy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQnVpbHRpbk1hdHJpeEdl
dHRlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQnVpbHRpbk1hdHJpeFNldHRlci5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQnVpbHRpblZlY3RvckdldHRlci5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iQnVpbHRpblZlY3RvclNldHRlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iQnVpbHRpblZlY3RvckluZGV4R2V0dGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJCdWlsdGluVmVjdG9ySW5kZXhTZXR0ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkJ1
aWx0aW5WZWN0b3JFcXVhbGl0eU9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJD
YWxsRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2FsbEZ1bmN0aW9uLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDaGVjay5qcyI+PC9zY3JpcHQ+CkBAIC05MCw2ICs4
Nyw3IEBACiA8c2NyaXB0IHNyYz0iTG9vcENoZWNrZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9Ik1ha2VBcnJheVJlZkV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik1h
a2VQdHJFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJNYXRyaXhUeXBlLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOYW1lQ29udGV4dC5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iTmFtZUZpbmRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTmFtZVJlc29s
dmVyLmpzIj48L3NjcmlwdD4KQEAgLTk3LDkgKzk1LDggQEAKIDxzY3JpcHQgc3JjPSJOb3JtYWxV
c2VQcm9wZXJ0eVJlc29sdmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOdWxsTGl0ZXJh
bC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTnVsbFR5cGUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ik9wZXJhdG9yQW5kZXJJbmRleC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
T3BlcmF0b3JBbmRlckluZGV4ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik9wZXJhdG9y
QXJyYXlSZWZMZW5ndGguanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ik9wZXJhdG9yQm9vbC5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iT3JpZ2luS2luZC5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iT3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iUGFyc2UuanMiPjwvc2NyaXB0PgpAQCAtMTI3LDcgKzEyNCw2IEBACiA8c2NyaXB0IHNy
Yz0iU3ludGhlc2l6ZUFycmF5T3BlcmF0b3JMZW5ndGguanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9IlN5bnRoZXNpemVFbnVtRnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJT
eW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJTeW50
aGVzaXplT3BlcmF0b3JCb29sLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTeW50aGVzaXpl
Q29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN5bnRo
ZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iVGVybmFyeUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgpAQCAtMTU2LDcgKzE1Miw3IEBACiA8
c2NyaXB0PgogZnVuY3Rpb24gZG9UZXN0SW5Ccm93c2VyKCkKIHsKLSAgICB2YXIgdGVzdGVyID0g
ZG9UZXN0KC8uKi8pOworICAgIHZhciB0ZXN0ZXIgPSBkb1Rlc3QoL3RleHR1cmVEaW1lbnNpb25z
Lyk7CiAgICAgdmFyIGxhc3RUaW1lOwogICAgIGZ1bmN0aW9uIG5leHQoKQogICAgIHsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCmluZGV4IDRmMzk1YTk0Y2M3MjgzZGQ2MmEwMDRm
YTFkNGMzYjlmYWFkMzBhNjEuLjU0NzNiYmYwOTAyNWE5M2RkNmY1ODJmOTZkOTdjOGJiNjI1N2U4
NmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKKysr
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwpAQCAtNzgsNiArNzgsNzYg
QEAgZnVuY3Rpb24gbWFrZUZsb2F0KHByb2dyYW0sIHZhbHVlKQogICAgIHJldHVybiBUeXBlZFZh
bHVlLmJveChwcm9ncmFtLmludHJpbnNpY3MuZmxvYXQsIHZhbHVlKTsKIH0KIAorZnVuY3Rpb24g
bWFrZVNhbXBsZXIocHJvZ3JhbSwgc2FtcGxlckRhdGEpCit7CisgICAgLy8gZW51bSBBZGRyZXNz
TW9kZSB7CisgICAgLy8gICAgICJjbGFtcFRvRWRnZSIsCisgICAgLy8gICAgICJtaXJyb3JDbGFt
cFRvRWRnZSIsCisgICAgLy8gICAgICJyZXBlYXQiLAorICAgIC8vICAgICAibWlycm9yUmVwZWF0
IiwKKyAgICAvLyAgICAgImNsYW1wVG9Cb3JkZXJDb2xvciIKKyAgICAvLyB9CisgICAgLy8KKyAg
ICAvLyBlbnVtIEZpbHRlciB7CisgICAgLy8gICAgICJuZWFyZXN0IiwKKyAgICAvLyAgICAgImxp
bmVhciIKKyAgICAvLyB9CisgICAgLy8KKyAgICAvLyBlbnVtIENvbXBhcmVGdW5jdGlvbiB7Cisg
ICAgLy8gICAgICJuZXZlciIsCisgICAgLy8gICAgICJsZXNzIiwKKyAgICAvLyAgICAgImVxdWFs
IiwKKyAgICAvLyAgICAgImxlc3NFcXVhbCIsCisgICAgLy8gICAgICJncmVhdGVyIiwKKyAgICAv
LyAgICAgIm5vdEVxdWFsIiwKKyAgICAvLyAgICAgImdyZWF0ZXJFcXVhbCIsCisgICAgLy8gICAg
ICJhbHdheXMiCisgICAgLy8gfQorICAgIC8vCisgICAgLy8gZW51bSBCb3JkZXJDb2xvciB7Cisg
ICAgLy8gICAgICJ0cmFuc3BhcmVudEJsYWNrIiwKKyAgICAvLyAgICAgIm9wYXF1ZUJsYWNrIiwK
KyAgICAvLyAgICAgIm9wYXF1ZVdoaXRlIgorICAgIC8vIH0KKyAgICAvLworICAgIC8vIGRpY3Rp
b25hcnkgU2FtcGxlckRhdGEgeworICAgIC8vICAgICBBZGRyZXNzTW9kZSByQWRkcmVzc01vZGUg
PSAiY2xhbXBUb0VkZ2UiLAorICAgIC8vICAgICBBZGRyZXNzTW9kZSBzQWRkcmVzc01vZGUgPSAi
Y2xhbXBUb0VkZ2UiLAorICAgIC8vICAgICBBZGRyZXNzTW9kZSB0QWRkcmVzc01vZGUgPSAiY2xh
bXBUb0VkZ2UiLAorICAgIC8vICAgICBGaWx0ZXIgbWluRmlsdGVyID0gIm5lYXJlc3QiLAorICAg
IC8vICAgICBGaWx0ZXIgbWFnRmlsdGVyID0gIm5lYXJlc3QiLAorICAgIC8vICAgICBGaWx0ZXIg
bWlwRmlsdGVyID0gIm5lYXJlc3QiLAorICAgIC8vICAgICBmbG9hdCBsb2RNaW5DbGFtcCA9IDAs
CisgICAgLy8gICAgIGZsb2F0IGxvZE1heENsYW1wID0gRkxUX01BWCwKKyAgICAvLyAgICAgdW5z
aWduZWQgbG9uZyBtYXhBbmlzb3Ryb3B5ID0gMSwKKyAgICAvLyAgICAgYm9vbGVhbiBub3JtYWxp
emVkQ29vcmRpbmF0ZXMgPSB0cnVlLAorICAgIC8vICAgICBDb21wYXJlRnVuY3Rpb24gY29tcGFy
ZUZ1bmN0aW9uID0gIm5ldmVyIiwKKyAgICAvLyAgICAgQm9yZGVyQ29sb3IgYm9yZGVyQ29sb3Ig
PSAidHJhbnNwYXJlbnRCbGFjayIKKyAgICAvLyAgICAgZmxvYXQgYmlhcyA9IDA7CisgICAgLy8g
fQorICAgIC8vCisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljcy5z
YW1wbGVyLCBzYW1wbGVyRGF0YSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UxRFRleHR1cmUocHJvZ3Jh
bSwgdHlwZWRBcnJheSkKK3sKKyAgICBpZiAodHlwZWRBcnJheSBpbnN0YW5jZW9mIFVpbnQ4QXJy
YXkpCisgICAgICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbIlRl
eHR1cmUxRDx1Y2hhcj4iXSwgdHlwZWRBcnJheSk7CisgICAgaWYgKHR5cGVkQXJyYXkgaW5zdGFu
Y2VvZiBVaW50MTZBcnJheSkKKyAgICAgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0u
aW50cmluc2ljc1siVGV4dHVyZTFEPHVzaG9ydD4iXSwgdHlwZWRBcnJheSk7CisgICAgaWYgKHR5
cGVkQXJyYXkgaW5zdGFuY2VvZiBVaW50MzJBcnJheSkKKyAgICAgICAgcmV0dXJuIFR5cGVkVmFs
dWUuYm94KHByb2dyYW0uaW50cmluc2ljc1siVGV4dHVyZTFEPHVpbnQ+Il0sIHR5cGVkQXJyYXkp
OworICAgIGlmICh0eXBlZEFycmF5IGluc3RhbmNlb2YgSW50OEFycmF5KQorICAgICAgICByZXR1
cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzWyJUZXh0dXJlMUQ8Y2hhcj4iXSwg
dHlwZWRBcnJheSk7CisgICAgaWYgKHR5cGVkQXJyYXkgaW5zdGFuY2VvZiBJbnQxNkFycmF5KQor
ICAgICAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzWyJUZXh0dXJl
MUQ8c2hvcnQ+Il0sIHR5cGVkQXJyYXkpOworICAgIGlmICh0eXBlZEFycmF5IGluc3RhbmNlb2Yg
SW50MzJBcnJheSkKKyAgICAgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmlu
c2ljc1siVGV4dHVyZTFEPGludD4iXSwgdHlwZWRBcnJheSk7CisgICAgaWYgKHR5cGVkQXJyYXkg
aW5zdGFuY2VvZiBGbG9hdDMyQXJyYXkpCisgICAgICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChw
cm9ncmFtLmludHJpbnNpY3NbIlRleHR1cmUxRDxmbG9hdD4iXSwgdHlwZWRBcnJheSk7CisgICAg
dGhyb3cgbmV3IEVycm9yKCIxRCB0ZXh0dXJlIGZvcm1hdCBub3QgaW1wbGVtZW50ZWQvdmFsaWQi
KQorfQorCiBmdW5jdGlvbiBtYWtlRW51bShwcm9ncmFtLCBlbnVtTmFtZSwgdmFsdWUpCiB7CiAg
ICAgbGV0IGVudW1UeXBlID0gcHJvZ3JhbS50eXBlcy5nZXQoZW51bU5hbWUpOwpAQCAtMTgxLDYg
KzI1MSwxOCBAQCB0ZXN0cyA9IG5ldyBQcm94eSh7fSwgewogICAgIH0KIH0pOwogCit0ZXN0cy50
ZXh0dXJlRGltZW5zaW9ucyA9IGZ1bmN0aW9uKCkgeworICAgIGxldCBwcm9ncmFtID0gZG9QcmVw
KGAKKyAgICAgICAgdWludCBmb28oVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAg
ICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAg
ICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmbnVtYmVyT2ZMZXZlbHMp
OworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgYCk7CisgICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2UxRFRleHR1
cmUocHJvZ3JhbSwgbmV3IEZsb2F0MzJBcnJheShbMSwgNywgMTRdKSldKSwgMyk7Cit9CisKIHRl
c3RzLmNvbW1lbnRQYXJzaW5nID0gZnVuY3Rpb24oKSB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1By
ZXAoYAogICAgICAgICAvKiB0aGlzIGNvbW1lbnQKQEAgLTIyMTUsNDEgKzIyOTcsNiBAQCB0ZXN0
cy5vcGVyYXRvckJvb2wgPSBmdW5jdGlvbigpCiAKICAgICAgICAgYm9vbCBib29sRnJvbUZsb2F0
RmFsc2UoKSB7IHJldHVybiBib29sKGZsb2F0KDApKTsgfQogICAgICAgICBib29sIGJvb2xGcm9t
RmxvYXRUcnVlKCkgeyByZXR1cm4gYm9vbChmbG9hdCgxKSk7IH0KLQotICAgICAgICBib29sIGJv
b2xGcm9tSW50MkZhbHNlKCkgeyByZXR1cm4gYm9vbChpbnQyKDAsIDApKTsgfQotICAgICAgICBi
b29sIGJvb2xGcm9tSW50MlRydWUxKCkgeyByZXR1cm4gYm9vbChpbnQyKDEsIDApKTsgfQotICAg
ICAgICBib29sIGJvb2xGcm9tSW50MlRydWUyKCkgeyByZXR1cm4gYm9vbChpbnQyKDAsIDEpKTsg
fQotCi0gICAgICAgIGJvb2wgYm9vbEZyb21GbG9hdDNGYWxzZSgpIHsgcmV0dXJuIGJvb2woZmxv
YXQzKDAsIDAsIDApKTsgfQotICAgICAgICBib29sIGJvb2xGcm9tRmxvYXQzVHJ1ZTEoKSB7IHJl
dHVybiBib29sKGZsb2F0MygxLCAwLCAwKSk7IH0KLSAgICAgICAgYm9vbCBib29sRnJvbUZsb2F0
M1RydWUyKCkgeyByZXR1cm4gYm9vbChmbG9hdDMoMCwgMSwgMCkpOyB9Ci0gICAgICAgIGJvb2wg
Ym9vbEZyb21GbG9hdDNUcnVlMygpIHsgcmV0dXJuIGJvb2woZmxvYXQzKDAsIDAsIDEpKTsgfQot
Ci0gICAgICAgIGJvb2wgYm9vbEZyb21VaW50NEZhbHNlKCkgeyByZXR1cm4gYm9vbCh1aW50NCgw
LCAwLCAwLCAwKSk7IH0KLSAgICAgICAgYm9vbCBib29sRnJvbVVpbnQ0VHJ1ZTEoKSB7IHJldHVy
biBib29sKHVpbnQ0KDEsIDAsIDAsIDApKTsgfQotICAgICAgICBib29sIGJvb2xGcm9tVWludDRU
cnVlMigpIHsgcmV0dXJuIGJvb2wodWludDQoMCwgMSwgMCwgMCkpOyB9Ci0gICAgICAgIGJvb2wg
Ym9vbEZyb21VaW50NFRydWUzKCkgeyByZXR1cm4gYm9vbCh1aW50NCgwLCAwLCAxLCAwKSk7IH0K
LSAgICAgICAgYm9vbCBib29sRnJvbVVpbnQ0VHJ1ZTQoKSB7IHJldHVybiBib29sKHVpbnQ0KDAs
IDAsIDAsIDEpKTsgfQotCi0gICAgICAgIHN0cnVjdCBYIHsgaW50IHg7IH0KLQotICAgICAgICBi
b29sIGJvb2xGcm9tU3RydWN0RmFsc2UoKQotICAgICAgICB7Ci0gICAgICAgICAgICBYIHg7Ci0g
ICAgICAgICAgICByZXR1cm4gYm9vbCh4KTsKLSAgICAgICAgfQotCi0gICAgICAgIGJvb2wgYm9v
bEZyb21TdHJ1Y3RUcnVlKCkKLSAgICAgICAgewotICAgICAgICAgICAgWCB4OwotICAgICAgICAg
ICAgeC54ID0gMTsKLSAgICAgICAgICAgIHJldHVybiBib29sKHgpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgZW51bSBZIHsgQSwgQiB9Ci0KLSAgICAgICAgYm9vbCBib29sRnJvbUVudW1GYWxzZSgp
IHsgcmV0dXJuIGJvb2woWS5BKTsgfQotICAgICAgICBib29sIGJvb2xGcm9tRW51bVRydWUoKSB7
IHJldHVybiBib29sKFkuQik7IH0KICAgICBgKTsKIAogICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJvb2xGcm9tVWNoYXJGYWxzZSIsIFtdKSwgZmFsc2UpOwpA
QCAtMjI2MywyNyArMjMxMCw2IEBAIHRlc3RzLm9wZXJhdG9yQm9vbCA9IGZ1bmN0aW9uKCkKIAog
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJvb2xGcm9tRmxv
YXRGYWxzZSIsIFtdKSwgZmFsc2UpOwogICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImJvb2xGcm9tRmxvYXRUcnVlIiwgW10pLCB0cnVlKTsKLQotICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJvb2xGcm9tSW50MkZhbHNlIiwg
W10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiYm9vbEZyb21JbnQyVHJ1ZTEiLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJvb2xGcm9tSW50MlRydWUyIiwgW10pLCB0cnVlKTsK
LQotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJvb2xGcm9t
RmxvYXQzRmFsc2UiLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJib29sRnJvbUZsb2F0M1RydWUxIiwgW10pLCB0cnVlKTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJib29sRnJvbUZsb2F0M1Ry
dWUyIiwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJib29sRnJvbUZsb2F0M1RydWUzIiwgW10pLCB0cnVlKTsKLQotICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJvb2xGcm9tVWludDRGYWxzZSIsIFtd
KSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImJvb2xGcm9tVWludDRUcnVlMSIsIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYm9vbEZyb21VaW50NFRydWUyIiwgW10pLCB0cnVlKTsK
LSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJib29sRnJvbVVp
bnQ0VHJ1ZTMiLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImJvb2xGcm9tVWludDRUcnVlNCIsIFtdKSwgdHJ1ZSk7Ci0KLSAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJib29sRnJvbVN0cnVjdEZhbHNl
IiwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiYm9vbEZyb21TdHJ1Y3RUcnVlIiwgW10pLCB0cnVlKTsKLQotICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJvb2xGcm9tRW51bUZhbHNlIiwgW10pLCBm
YWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYm9v
bEZyb21FbnVtVHJ1ZSIsIFtdKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLmJvb2xCaXRBbmQgPSBmdW5j
dGlvbigpCkBAIC0zNTQ4LDYgKzM1NzQsNyBAQCB0ZXN0cy50cmFwID0gZnVuY3Rpb24oKQogICAg
ICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIAorLyoKIHRlc3RzLnN3aXp6
bGUgPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYApAQCAtMzU3Miw2
ICszNTk5LDcgQEAgdGVzdHMuc3dpenpsZSA9IGZ1bmN0aW9uKCkKICAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdKSwgNik7CiAgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSksIDQpOwogfQor
Ki8KIAogdGVzdHMuZW51bVdpdGhFeHBsaWNpdEludEJhc2UgPSBmdW5jdGlvbigpCiB7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9WaXNpdG9yLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcwppbmRleCAxZjFmNTRkOGNjYTc1YzEx
MDE5OGU1MDg0NTg4NzkwNzkxZGUwZTU4Li5iOWVhN2U0NjNjNGUwOGJkZjg2ZmU5MDc2ZWFkNDA1
ODc2ZDExNTkyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9WaXNp
dG9yLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Zpc2l0b3IuanMKQEAg
LTM0MCw1ICszNDAsMTIgQEAgY2xhc3MgVmlzaXRvciB7CiAgICAgICAgIG5vZGUuZWxlbWVudFR5
cGUudmlzaXQodGhpcyk7CiAgICAgICAgIG5vZGUubnVtRWxlbWVudHMudmlzaXQodGhpcyk7CiAg
ICAgfQorCisgICAgdmlzaXRNYXRyaXhUeXBlKG5vZGUpCisgICAgeworICAgICAgICBub2RlLmVs
ZW1lbnRUeXBlLnZpc2l0KHRoaXMpOworICAgICAgICBub2RlLm51bVJvd3MudmlzaXQodGhpcyk7
CisgICAgICAgIG5vZGUubnVtQ29sdW1ucy52aXNpdCh0aGlzKTsKKyAgICB9CiB9CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCmluZGV4IDE3ZDBjMjBjOWZkNjM4ZmIz
MGVlZDdiYjYyMjA0YWEwOTdjNWFjYmQuLjY1YTg2NDExYjNlNzcwYjU1N2I0MWFjYzdlNDE0ZGVm
NDI0MDMwMTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4
Lmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbApAQCAt
MTEsNyArMTEsNiBAQAogPHNjcmlwdCBzcmM9IkNyZWF0ZUxpdGVyYWwuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IkNyZWF0ZUxpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlN3
aXp6bGVPcC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTmF0aXZlVHlwZS5qcyI+PC9zY3Jp
cHQ+CiAKIDxzY3JpcHQgc3JjPSJBZGRyZXNzU3BhY2UuanMiPjwvc2NyaXB0PgpAQCAtMjMsMTIg
KzIyLDEwIEBACiA8c2NyaXB0IHNyYz0iQmxvY2suanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
IkJvb2xMaXRlcmFsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJCcmVhay5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iQnVpbHRpblZlY3RvckNvbnN0cnVjdG9ycy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iQnVpbHRpbk1hdHJpeEdldHRlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iQnVpbHRpbk1hdHJpeFNldHRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQnVp
bHRpblZlY3RvckdldHRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQnVpbHRpblZlY3Rv
clNldHRlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iQnVpbHRpblZlY3RvckluZGV4R2V0
dGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9ySW5kZXhTZXR0ZXIu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkJ1aWx0aW5WZWN0b3JFcXVhbGl0eU9wZXJhdG9y
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDYWxsRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iQ2FsbEZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJD
aGVjay5qcyI+PC9zY3JpcHQ+CkBAIC05MCw2ICs4Nyw3IEBACiA8c2NyaXB0IHNyYz0iTG9vcENo
ZWNrZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik1ha2VBcnJheVJlZkV4cHJlc3Npb24u
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik1ha2VQdHJFeHByZXNzaW9uLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJNYXRyaXhUeXBlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJO
YW1lQ29udGV4dC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTmFtZUZpbmRlci5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iTmFtZVJlc29sdmVyLmpzIj48L3NjcmlwdD4KQEAgLTk3LDkg
Kzk1LDggQEAKIDxzY3JpcHQgc3JjPSJOb3JtYWxVc2VQcm9wZXJ0eVJlc29sdmVyLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJOdWxsTGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iTnVsbFR5cGUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ik9wZXJhdG9yQW5kZXJJbmRl
eC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iT3BlcmF0b3JBbmRlckluZGV4ZXIuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9Ik9wZXJhdG9yQXJyYXlSZWZMZW5ndGguanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ik9wZXJhdG9yQm9vbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
T3JpZ2luS2luZC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iT3ZlcmxvYWRSZXNvbHV0aW9u
RmFpbHVyZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUGFyc2UuanMiPjwvc2NyaXB0PgpA
QCAtMTI3LDcgKzEyNCw2IEBACiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUFycmF5T3BlcmF0b3JM
ZW5ndGguanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVFbnVtRnVuY3Rpb25z
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJTeW50aGVzaXplT3BlcmF0b3JCb29sLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVy
YXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVGVybmFyeUV4cHJlc3Npb24uanMiPjwv
c2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348365</attachid>
            <date>2018-08-28 17:31:44 -0700</date>
            <delta_ts>2018-08-28 19:24:43 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188940-20180828173143.patch</filename>
            <type>text/plain</type>
            <size>208752</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NDM5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjQ2NDU3YjQ0MWYwNWQ2ZjU2ZGY2MmE4NmFlNTMxNjNi
MTk3MzkwOC4uZWRlYTBhOGU5OTg5MTBkNzNmOGU4ZTE4YzNiZmY0MTU1MmY0MGU1NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
NiBAQAorMjAxOC0wOC0yOCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRleHR1cmUgdHlwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5N
YXRyaXhHZXR0ZXIuanM6IENvcGllZCBmcm9tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0J1aWx0aW5WZWN0b3JJbmRleFNldHRlci5qcy4KKyAgICAgICAgKEJ1aWx0aW5NYXRyaXhHZXR0
ZXIpOgorICAgICAgICAoQnVpbHRpbk1hdHJpeEdldHRlci5wcm90b3R5cGUuZ2V0IGhlaWdodCk6
CisgICAgICAgIChCdWlsdGluTWF0cml4R2V0dGVyLnByb3RvdHlwZS5nZXQgd2lkdGgpOgorICAg
ICAgICAoQnVpbHRpbk1hdHJpeEdldHRlci5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAo
QnVpbHRpbk1hdHJpeEdldHRlci5mdW5jdGlvbnMpOgorICAgICAgICAoQnVpbHRpbk1hdHJpeEdl
dHRlci5wcm90b3R5cGUuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRpbk1hdHJpeFNldHRlci5qczogUmVuYW1lZCBmcm9t
IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JJbmRleFNldHRlci5q
cy4KKyAgICAgICAgKEJ1aWx0aW5NYXRyaXhTZXR0ZXIpOgorICAgICAgICAoQnVpbHRpbk1hdHJp
eFNldHRlci5wcm90b3R5cGUuZ2V0IGhlaWdodCk6CisgICAgICAgIChCdWlsdGluTWF0cml4U2V0
dGVyLnByb3RvdHlwZS5nZXQgd2lkdGgpOgorICAgICAgICAoQnVpbHRpbk1hdHJpeFNldHRlci5w
cm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoQnVpbHRpbk1hdHJpeFNldHRlci5mdW5jdGlv
bnMpOgorICAgICAgICAoQnVpbHRpbk1hdHJpeFNldHRlci5wcm90b3R5cGUuaW5zdGFudGlhdGVJ
bXBsZW1lbnRhdGlvbik6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRp
blZlY3RvckNvbnN0cnVjdG9ycy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9yRXF1YWxpdHlPcGVyYXRvci5qczogUmVtb3ZlZC4KKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9yR2V0dGVyLmpzOgor
ICAgICAgICAoQnVpbHRpblZlY3RvckdldHRlci5wcm90b3R5cGUuaW5zdGFudGlhdGVJbXBsZW1l
bnRhdGlvbik6CisgICAgICAgIChCdWlsdGluVmVjdG9yR2V0dGVyKToKKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9yU2V0dGVyLmpzOgorICAgICAgICAoQnVp
bHRpblZlY3RvclNldHRlci5mdW5jdGlvbnMpOgorICAgICAgICAoQnVpbHRpblZlY3RvclNldHRl
ci5wcm90b3R5cGUuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChCdWlsdGlu
VmVjdG9yU2V0dGVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRXhw
cmVzc2lvbi5qczoKKyAgICAgICAgKENhbGxFeHByZXNzaW9uLnByb3RvdHlwZS5yZXNvbHZlKToK
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja1R5cGVzV2l0aEFyZ3VtZW50
cy5qczoKKyAgICAgICAgKGNoZWNrVHlwZXNXaXRoQXJndW1lbnRzLlR5cGVXaXRoQXJndW1lbnRz
Q2hlY2tlci5wcm90b3R5cGUudmlzaXRUeXBlUmVmKToKKyAgICAgICAgKGNoZWNrVHlwZXNXaXRo
QXJndW1lbnRzLlR5cGVXaXRoQXJndW1lbnRzQ2hlY2tlcik6CisgICAgICAgIChjaGVja1R5cGVz
V2l0aEFyZ3VtZW50cyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tl
ci5qczoKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0VmVjdG9yVHlwZSk6CisgICAg
ICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdE1hdHJpeFR5cGUpOgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0NvbnN0ZXhwckZvbGRlci5qczoKKyAgICAgICAgKENvbnN0ZXhw
ckZvbGRlci5wcm90b3R5cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChDb25zdGV4
cHJGb2xkZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0V2YWx1YXRvci5q
czoKKyAgICAgICAgKEV2YWx1YXRvci5wcm90b3R5cGUudmlzaXRUZXJuYXJ5RXhwcmVzc2lvbik6
CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxhdHRlbmVkU3RydWN0T2Zmc2V0
R2F0aGVyZXIuanM6CisgICAgICAgIChGbGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5wcm90
b3R5cGUudmlzaXRNYXRyaXhUeXBlKToKKyAgICAgICAgKEZsYXR0ZW5lZFN0cnVjdE9mZnNldEdh
dGhlcmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWxU
eXBlLmpzOgorICAgICAgICAobGV0LkZsb2F0TGl0ZXJhbFR5cGUuY3JlYXRlTGl0ZXJhbFR5cGUu
dmVyaWZ5QXNBcmd1bWVudCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50
cmluc2ljcy5qczoKKyAgICAgICAgKEludHJpbnNpY3MuKToKKyAgICAgICAgKEludHJpbnNpY3Mp
OgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01hdHJpeFR5cGUuanM6IFJlbmFt
ZWQgZnJvbSBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9ySW5kZXhH
ZXR0ZXIuanMuCisgICAgICAgIChNYXRyaXhUeXBlKToKKyAgICAgICAgKE1hdHJpeFR5cGUucHJv
dG90eXBlLmdldCBlbGVtZW50VHlwZSk6CisgICAgICAgIChNYXRyaXhUeXBlLnByb3RvdHlwZS5n
ZXQgbnVtUm93cyk6CisgICAgICAgIChNYXRyaXhUeXBlLnByb3RvdHlwZS5nZXQgbnVtQ29sdW1u
cyk6CisgICAgICAgIChNYXRyaXhUeXBlLnByb3RvdHlwZS5nZXQgbnVtUm93c1ZhbHVlKToKKyAg
ICAgICAgKE1hdHJpeFR5cGUucHJvdG90eXBlLmdldCBudW1Db2x1bW5zVmFsdWUpOgorICAgICAg
ICAoTWF0cml4VHlwZS5wcm90b3R5cGUuZ2V0IHNpemUpOgorICAgICAgICAoTWF0cml4VHlwZS5w
cm90b3R5cGUudW5pZnlJbXBsKToKKyAgICAgICAgKE1hdHJpeFR5cGUucHJvdG90eXBlLnBvcHVs
YXRlRGVmYXVsdFZhbHVlKToKKyAgICAgICAgKE1hdHJpeFR5cGUucHJvdG90eXBlLnRvU3RyaW5n
KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5qczoKKyAg
ICAgICAgKE5hbWVDb250ZXh0LnByb3RvdHlwZS5hZGQpOgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL05hdGl2ZVR5cGUuanM6CisgICAgICAgIChOYXRpdmVUeXBlLmNyZWF0ZSk6
CisgICAgICAgIChOYXRpdmVUeXBlKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9PcGVyYXRvckFuZGVySW5kZXhlci5qczogUmVuYW1lZCBmcm9tIFRvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL09wZXJhdG9yQW5kZXJJbmRleC5qcy4KKyAgICAgICAgKE9wZXJhdG9yQW5k
ZXJJbmRleGVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9PcGVyYXRvckJv
b2wuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJlcGFy
ZS5qczoKKyAgICAgICAgKGxldC5wcmVwYXJlKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9Qcm9ncmFtLmpzOgorICAgICAgICAoUHJvZ3JhbS5wcm90b3R5cGUuYWRkKToKKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoKKyAgICAgICAgKFJl
d3JpdGVyLnByb3RvdHlwZS52aXNpdE1hdHJpeFR5cGUpOgorICAgICAgICAoUmV3cml0ZXIpOgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWw6CisgICAgICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAob3Bl
cmF0b3IuYm9vbCk6CisgICAgICAgIChib29sLm9wZXJhdG9yKToKKyAgICAgICAgKHVjaGFyLm9w
ZXJhdG9yKToKKyAgICAgICAgKHVzaG9ydC5vcGVyYXRvcik6CisgICAgICAgIChjaGFyLm9wZXJh
dG9yKToKKyAgICAgICAgKHNob3J0Lm9wZXJhdG9yKToKKyAgICAgICAgKHVpbnQub3BlcmF0b3Ip
OgorICAgICAgICAoaW50Lm9wZXJhdG9yKToKKyAgICAgICAgKGhhbGYub3BlcmF0b3IpOgorICAg
ICAgICAoZmxvYXQub3BlcmF0b3IpOgorICAgICAgICAob3BlcmF0b3IuYm9vbDIpOgorICAgICAg
ICAob3BlcmF0b3IuYm9vbDMpOgorICAgICAgICAob3BlcmF0b3IuYm9vbDQpOgorICAgICAgICAo
dWludC5vcGVyYXRvci5sZW5ndGgpOgorICAgICAgICAob3BlcmF0b3IudWNoYXIyKToKKyAgICAg
ICAgKG9wZXJhdG9yLnVjaGFyMyk6CisgICAgICAgIChvcGVyYXRvci51Y2hhcjQpOgorICAgICAg
ICAob3BlcmF0b3IudXNob3J0Mik6CisgICAgICAgIChvcGVyYXRvci51c2hvcnQzKToKKyAgICAg
ICAgKG9wZXJhdG9yLnVzaG9ydDQpOgorICAgICAgICAob3BlcmF0b3IudWludDIpOgorICAgICAg
ICAob3BlcmF0b3IudWludDMpOgorICAgICAgICAob3BlcmF0b3IudWludDQpOgorICAgICAgICAo
b3BlcmF0b3IuY2hhcjIpOgorICAgICAgICAob3BlcmF0b3IuY2hhcjMpOgorICAgICAgICAob3Bl
cmF0b3IuY2hhcjQpOgorICAgICAgICAob3BlcmF0b3Iuc2hvcnQyKToKKyAgICAgICAgKG9wZXJh
dG9yLnNob3J0Myk6CisgICAgICAgIChvcGVyYXRvci5zaG9ydDQpOgorICAgICAgICAob3BlcmF0
b3IuaW50Mik6CisgICAgICAgIChvcGVyYXRvci5pbnQzKToKKyAgICAgICAgKG9wZXJhdG9yLmlu
dDQpOgorICAgICAgICAob3BlcmF0b3IuaGFsZjIpOgorICAgICAgICAob3BlcmF0b3IuaGFsZjMp
OgorICAgICAgICAob3BlcmF0b3IuaGFsZjQpOgorICAgICAgICAob3BlcmF0b3IuZmxvYXQyKToK
KyAgICAgICAgKG9wZXJhdG9yLmZsb2F0Myk6CisgICAgICAgIChvcGVyYXRvci5mbG9hdDQpOgor
ICAgICAgICAoYm9vbDIub3BlcmF0b3IpOgorICAgICAgICAoYm9vbDMub3BlcmF0b3IpOgorICAg
ICAgICAoYm9vbDQub3BlcmF0b3IpOgorICAgICAgICAodWNoYXIyLm9wZXJhdG9yKToKKyAgICAg
ICAgKHVjaGFyMy5vcGVyYXRvcik6CisgICAgICAgICh1Y2hhcjQub3BlcmF0b3IpOgorICAgICAg
ICAodXNob3J0Mi5vcGVyYXRvcik6CisgICAgICAgICh1c2hvcnQzLm9wZXJhdG9yKToKKyAgICAg
ICAgKHVzaG9ydDQub3BlcmF0b3IpOgorICAgICAgICAodWludDIub3BlcmF0b3IpOgorICAgICAg
ICAodWludDMub3BlcmF0b3IpOgorICAgICAgICAodWludDQub3BlcmF0b3IpOgorICAgICAgICAo
Y2hhcjIub3BlcmF0b3IpOgorICAgICAgICAoY2hhcjMub3BlcmF0b3IpOgorICAgICAgICAoY2hh
cjQub3BlcmF0b3IpOgorICAgICAgICAoc2hvcnQyLm9wZXJhdG9yKToKKyAgICAgICAgKHNob3J0
My5vcGVyYXRvcik6CisgICAgICAgIChzaG9ydDQub3BlcmF0b3IpOgorICAgICAgICAoaW50Mi5v
cGVyYXRvcik6CisgICAgICAgIChpbnQzLm9wZXJhdG9yKToKKyAgICAgICAgKGludDQub3BlcmF0
b3IpOgorICAgICAgICAoaGFsZjIub3BlcmF0b3IpOgorICAgICAgICAoaGFsZjMub3BlcmF0b3Ip
OgorICAgICAgICAoaGFsZjQub3BlcmF0b3IpOgorICAgICAgICAoZmxvYXQyLm9wZXJhdG9yKToK
KyAgICAgICAgKGZsb2F0My5vcGVyYXRvcik6CisgICAgICAgIChmbG9hdDQub3BlcmF0b3IpOgor
ICAgICAgICAoYWxsVmVjdG9yVHlwZU5hbWVzKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9Td2l6emxlT3AuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzOgorICAgICAg
ICAoc3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLkZpbmRBbGxUeXBlcy5wcm90
b3R5cGUudmlzaXRNYXRyaXhUeXBlKToKKyAgICAgICAgKHN5bnRoZXNpemVEZWZhdWx0Q29uc3Ry
dWN0b3JPcGVyYXRvci5GaW5kQWxsVHlwZXMpOgorICAgICAgICAoc3ludGhlc2l6ZURlZmF1bHRD
b25zdHJ1Y3Rvck9wZXJhdG9yKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
eW50aGVzaXplT3BlcmF0b3JCb29sLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UZXN0LmpzOgorICAgICAgICAobWFrZVNhbXBsZXIpOgorICAgICAgICAobWFrZTFEVGV4dHVy
ZSk6CisgICAgICAgICh0ZXN0cy50ZXh0dXJlRGltZW5zaW9ucyk6CisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoKKyAgICAgICAgKFZpc2l0b3IucHJvdG90eXBl
LnZpc2l0TWF0cml4VHlwZSk6CisgICAgICAgIChWaXNpdG9yKToKKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sOgorCiAyMDE4LTA4LTI4ICBEYXZpZCBLaWx6ZXIg
IDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGluY29ycmVjdCB1c2Ugb2YgYHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7YCBmb3IgYnVpbHQgcHJvZHVjdHMgYW5kIGZyYW1ld29ya3Mg
aW4gWGNvZGUgcHJvamVjdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0FsbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwppbmRleCAz
MTViZWMyZTY4ODYyN2MzY2Q4MGJhNDZmYmEyNDAwMWUyOGY5ZjRjLi45YzJhMzcxNTBjMWU5NzZi
OTI2Y2ZiZWUyMzQzNzUyMGE4ZGU0YTQ3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9BbGwuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxs
LmpzCkBAIC0zNCw3ICszNCw2IEBAIGxvYWQoIlZpc2l0b3IuanMiKTsKIGxvYWQoIkNyZWF0ZUxp
dGVyYWwuanMiKTsKIGxvYWQoIkNyZWF0ZUxpdGVyYWxUeXBlLmpzIik7CiBsb2FkKCJQcm9wZXJ0
eUFjY2Vzc0V4cHJlc3Npb24uanMiKTsKLWxvYWQoIlN3aXp6bGVPcC5qcyIpOwogbG9hZCgiTmF0
aXZlVHlwZS5qcyIpOwogCiBsb2FkKCJBZGRyZXNzU3BhY2UuanMiKTsKQEAgLTQ2LDEyICs0NSwx
MCBAQCBsb2FkKCJBdXRvV3JhcHBlci5qcyIpOwogbG9hZCgiQmxvY2suanMiKTsKIGxvYWQoIkJv
b2xMaXRlcmFsLmpzIik7CiBsb2FkKCJCcmVhay5qcyIpOwotbG9hZCgiQnVpbHRpblZlY3RvckNv
bnN0cnVjdG9ycy5qcyIpOworbG9hZCgiQnVpbHRpbk1hdHJpeEdldHRlci5qcyIpOworbG9hZCgi
QnVpbHRpbk1hdHJpeFNldHRlci5qcyIpOwogbG9hZCgiQnVpbHRpblZlY3RvckdldHRlci5qcyIp
OwogbG9hZCgiQnVpbHRpblZlY3RvclNldHRlci5qcyIpOwotbG9hZCgiQnVpbHRpblZlY3Rvcklu
ZGV4R2V0dGVyLmpzIik7Ci1sb2FkKCJCdWlsdGluVmVjdG9ySW5kZXhTZXR0ZXIuanMiKTsKLWxv
YWQoIkJ1aWx0aW5WZWN0b3JFcXVhbGl0eU9wZXJhdG9yLmpzIik7CiBsb2FkKCJDYWxsRXhwcmVz
c2lvbi5qcyIpOwogbG9hZCgiQ2FsbEZ1bmN0aW9uLmpzIik7CiBsb2FkKCJDaGVjay5qcyIpOwpA
QCAtMTEzLDYgKzExMCw3IEBAIGxvYWQoIkxvZ2ljYWxOb3QuanMiKTsKIGxvYWQoIkxvb3BDaGVj
a2VyLmpzIik7CiBsb2FkKCJNYWtlQXJyYXlSZWZFeHByZXNzaW9uLmpzIik7CiBsb2FkKCJNYWtl
UHRyRXhwcmVzc2lvbi5qcyIpOworbG9hZCgiTWF0cml4VHlwZS5qcyIpOwogbG9hZCgiTmFtZUNv
bnRleHQuanMiKTsKIGxvYWQoIk5hbWVGaW5kZXIuanMiKTsKIGxvYWQoIk5hbWVSZXNvbHZlci5q
cyIpOwpAQCAtMTIwLDkgKzExOCw4IEBAIGxvYWQoIk5hdGl2ZUZ1bmMuanMiKTsKIGxvYWQoIk5v
cm1hbFVzZVByb3BlcnR5UmVzb2x2ZXIuanMiKTsKIGxvYWQoIk51bGxMaXRlcmFsLmpzIik7CiBs
b2FkKCJOdWxsVHlwZS5qcyIpOwotbG9hZCgiT3BlcmF0b3JBbmRlckluZGV4LmpzIik7Citsb2Fk
KCJPcGVyYXRvckFuZGVySW5kZXhlci5qcyIpOwogbG9hZCgiT3BlcmF0b3JBcnJheVJlZkxlbmd0
aC5qcyIpOwotbG9hZCgiT3BlcmF0b3JCb29sLmpzIik7CiBsb2FkKCJPcmlnaW5LaW5kLmpzIik7
CiBsb2FkKCJPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlLmpzIik7CiBsb2FkKCJQYXJzZS5qcyIp
OwpAQCAtMTUwLDcgKzE0Nyw2IEBAIGxvYWQoIlN3aXRjaFN0YXRlbWVudC5qcyIpOwogbG9hZCgi
U3ludGhlc2l6ZUFycmF5T3BlcmF0b3JMZW5ndGguanMiKTsKIGxvYWQoIlN5bnRoZXNpemVFbnVt
RnVuY3Rpb25zLmpzIik7CiBsb2FkKCJTeW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzIik7Ci1s
b2FkKCJTeW50aGVzaXplT3BlcmF0b3JCb29sLmpzIik7CiBsb2FkKCJTeW50aGVzaXplQ29weUNv
bnN0cnVjdG9yT3BlcmF0b3IuanMiKTsKIGxvYWQoIlN5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0
b3JPcGVyYXRvci5qcyIpOwogbG9hZCgiVGVybmFyeUV4cHJlc3Npb24uanMiKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5NYXRyaXhHZXR0ZXIuanMg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluTWF0cml4R2V0dGVyLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjg2YTMzMzk0NmNiZjRlNWRiN2E0OGRiODU4NTg4MTdmZjhjNjdkNmUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluTWF0cml4
R2V0dGVyLmpzCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworInVzZSBzdHJpY3QiOworCitjbGFzcyBCdWlsdGluTWF0cml4R2V0dGVy
IHsKKyAgICBjb25zdHJ1Y3RvcihiYXNlVHlwZU5hbWUsIGhlaWdodCwgd2lkdGgpCisgICAgewor
ICAgICAgICB0aGlzLl9iYXNlVHlwZU5hbWUgPSBiYXNlVHlwZU5hbWU7CisgICAgICAgIHRoaXMu
X2hlaWdodCA9IGhlaWdodDsKKyAgICAgICAgdGhpcy5fd2lkdGggPSB3aWR0aDsKKyAgICB9CisK
KyAgICBnZXQgYmFzZVR5cGVOYW1lKCkgeyByZXR1cm4gdGhpcy5fYmFzZVR5cGVOYW1lOyB9Cisg
ICAgZ2V0IGhlaWdodCgpIHsgcmV0dXJuIHRoaXMuX2hlaWdodDsgfQorICAgIGdldCB3aWR0aCgp
IHsgcmV0dXJuIHRoaXMuX3dpZHRoOyB9CisKKyAgICB0b1N0cmluZygpCisgICAgeworICAgICAg
ICByZXR1cm4gYG5hdGl2ZSAke3RoaXMuYmFzZVR5cGVOYW1lfSR7dGhpcy53aWR0aH0gb3BlcmF0
b3JbXSgke3RoaXMuYmFzZVR5cGVOYW1lfSR7dGhpcy5oZWlnaHR9eCR7dGhpcy53aWR0aH0sdWlu
dClgOworICAgIH0KKworICAgIHN0YXRpYyBmdW5jdGlvbnMoKQorICAgIHsKKyAgICAgICAgaWYg
KCF0aGlzLl9mdW5jdGlvbnMpIHsKKyAgICAgICAgICAgIHRoaXMuX2Z1bmN0aW9ucyA9IFtdOwor
CisgICAgICAgICAgICBmb3IgKGxldCB0eXBlTmFtZSBvZiBbImhhbGYiLCAiZmxvYXQiXSkgewor
ICAgICAgICAgICAgICAgIGZvciAobGV0IGhlaWdodCBvZiBbMiwgMywgNF0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgZm9yIChsZXQgd2lkdGggb2YgWzIsIDMsIDRdKQorICAgICAgICAgICAgICAg
ICAgICAgICAgdGhpcy5fZnVuY3Rpb25zLnB1c2gobmV3IEJ1aWx0aW5NYXRyaXhHZXR0ZXIodHlw
ZU5hbWUsIGhlaWdodCwgd2lkdGgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXMuX2Z1bmN0aW9uczsKKyAgICB9CisKKyAg
ICBpbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpCisgICAgeworICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFttYXQsIGluZGV4XSkgPT4geworICAgICAgICAgICAgY29uc3QgaW5k
ZXhWYWx1ZSA9IGluZGV4LmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgaWYgKGluZGV4VmFsdWUg
Pj0gMCAmJiBpbmRleFZhbHVlIDwgdGhpcy5oZWlnaHQpIHsKKyAgICAgICAgICAgICAgICBjb25z
dCByZXN1bHQgPSBuZXcgRVB0cihuZXcgRUJ1ZmZlcih0aGlzLndpZHRoKSwgMCk7CisgICAgICAg
ICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLndpZHRoOyBpKyspCisgICAgICAgICAg
ICAgICAgICAgIHJlc3VsdC5zZXQob2Zmc2V0KyssIG1hdC5nZXQoaW5kZXhWYWx1ZSAqIHRoaXMu
d2lkdGggKyBpKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbQnVpbHRpbiBt
YXRyaXggZ2V0dGVyXSIsICJPdXQtb2YtYm91bmRzIGluZGV4IHdoZW4gaW5kZXhpbmcgaW50byBh
IG1hdHJpeCIpOworICAgICAgICB9OworICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uRGF0YSA9
IHRoaXM7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvQnVpbHRpbk1hdHJpeFNldHRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0J1aWx0aW5NYXRyaXhTZXR0ZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdiODU3NDljZTFmMmQ3ZDFhZjI2
YjFjZGU4Zjc4ZjNmODRiNTUzOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0J1aWx0aW5NYXRyaXhTZXR0ZXIuanMKQEAgLTAsMCArMSw3MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworInVzZSBzdHJpY3QiOwor
CitjbGFzcyBCdWlsdGluTWF0cml4U2V0dGVyIHsKKyAgICBjb25zdHJ1Y3RvcihiYXNlVHlwZU5h
bWUsIGhlaWdodCwgd2lkdGgpCisgICAgeworICAgICAgICB0aGlzLl9iYXNlVHlwZU5hbWUgPSBi
YXNlVHlwZU5hbWU7CisgICAgICAgIHRoaXMuX2hlaWdodCA9IGhlaWdodDsKKyAgICAgICAgdGhp
cy5fd2lkdGggPSB3aWR0aDsKKyAgICB9CisKKyAgICBnZXQgYmFzZVR5cGVOYW1lKCkgeyByZXR1
cm4gdGhpcy5fYmFzZVR5cGVOYW1lOyB9CisgICAgZ2V0IGhlaWdodCgpIHsgcmV0dXJuIHRoaXMu
X2hlaWdodDsgfQorICAgIGdldCB3aWR0aCgpIHsgcmV0dXJuIHRoaXMuX3dpZHRoOyB9CisKKyAg
ICB0b1N0cmluZygpCisgICAgeworICAgICAgICByZXR1cm4gYG5hdGl2ZSAke3RoaXMuYmFzZVR5
cGVOYW1lfSR7dGhpcy5oZWlnaHR9eCR7dGhpcy53aWR0aH0gb3BlcmF0b3JbXT0oJHt0aGlzLmJh
c2VUeXBlTmFtZX0ke3RoaXMuaGVpZ2h0fXgke3RoaXMud2lkdGh9LHVpbnQsJHt0aGlzLmJhc2VU
eXBlTmFtZX0ke3RoaXMud2lkdGh9KWA7CisgICAgfQorCisgICAgc3RhdGljIGZ1bmN0aW9ucygp
CisgICAgeworICAgICAgICBpZiAoIXRoaXMuX2Z1bmN0aW9ucykgeworICAgICAgICAgICAgdGhp
cy5fZnVuY3Rpb25zID0gW107CisKKyAgICAgICAgICAgIGZvciAobGV0IHR5cGVOYW1lIG9mIFsi
aGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICAgICAgZm9yIChsZXQgaGVpZ2h0IG9mIFsy
LCAzLCA0XSkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCB3aWR0aCBvZiBbMiwgMywg
NF0pCisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9mdW5jdGlvbnMucHVzaChuZXcgQnVp
bHRpbk1hdHJpeFNldHRlcih0eXBlTmFtZSwgaGVpZ2h0LCB3aWR0aCkpOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpcy5fZnVu
Y3Rpb25zOworICAgIH0KKworICAgIGluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYykKKyAg
ICB7CisgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2Jhc2UsIGluZGV4LCB2YWx1ZV0p
ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGluZGV4VmFsdWUgPSBpbmRleC5sb2FkVmFsdWUoKTsK
KyAgICAgICAgICAgIGlmIChpbmRleFZhbHVlID49IDAgJiYgaW5kZXhWYWx1ZSA8IHRoaXMuaGVp
Z2h0KSB7CisgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBFUHRyKG5ldyBFQnVmZmVy
KHRoaXMud2lkdGggKiB0aGlzLmhlaWdodCksIDApOworICAgICAgICAgICAgICAgIHJlc3VsdC5j
b3B5RnJvbShiYXNlLCB0aGlzLndpZHRoICogdGhpcy5oZWlnaHQpOworICAgICAgICAgICAgICAg
IHJlc3VsdC5wbHVzKGluZGV4VmFsdWUgKiB0aGlzLndpZHRoKS5jb3B5RnJvbSh2YWx1ZSwgdGhp
cy53aWR0aCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbQnVpbHRpbiBtYXRy
aXggc2V0dGVyXSIsICJPdXQtb2YtYm91bmRzIGluZGV4IHdoZW4gaW5kZXhpbmcgaW50byBhIG1h
dHJpeCIpOworICAgICAgICB9OworICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uRGF0YSA9IHRo
aXM7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
QnVpbHRpblZlY3RvckNvbnN0cnVjdG9ycy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0J1aWx0aW5WZWN0b3JDb25zdHJ1Y3RvcnMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDI3MDRiNDNhMDZjMmZhZWQ5ZGZhNzNkZWFkMzNiYjBjNWM5NTU5ODUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvQnVpbHRpblZlY3RvckNvbnN0cnVjdG9ycy5qcworKysgL2Rldi9udWxsCkBA
IC0xLDg0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBCdWlsdGluVmVjdG9yQ29uc3RydWN0b3JzIHsKLSAg
ICBjb25zdHJ1Y3RvcihiYXNlVHlwZU5hbWUsIHBhcmFtZXRlclNpemVzKQotICAgIHsKLSAgICAg
ICAgdGhpcy5fYmFzZVR5cGVOYW1lID0gYmFzZVR5cGVOYW1lOwotICAgICAgICB0aGlzLl9wYXJh
bWV0ZXJTaXplcyA9IHBhcmFtZXRlclNpemVzOwotICAgIH0KLQotICAgIGdldCBiYXNlVHlwZU5h
bWUoKSB7IHJldHVybiB0aGlzLl9iYXNlVHlwZU5hbWU7IH0KLSAgICBnZXQgcGFyYW1ldGVyU2l6
ZXMoKSB7IHJldHVybiB0aGlzLl9wYXJhbWV0ZXJTaXplczsgfQotICAgIGdldCBvdXRwdXRTaXpl
KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnBhcmFtZXRlclNpemVzLnJlZHVjZSgoYSwg
YikgPT4gYSArIGIsIDApOwotICAgIH0KLQotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBgbmF0aXZlIG9wZXJhdG9yICR7dGhpcy5iYXNlVHlwZU5hbWV9JHt0aGlzLm91dHB1
dFNpemV9KCR7dGhpcy5wYXJhbWV0ZXJTaXplcy5tYXAoeCA9PiB4ID09IDEgPyB0aGlzLmJhc2VU
eXBlTmFtZSA6IHRoaXMuYmFzZVR5cGVOYW1lICsgeCkuam9pbigiLCIpfSlgOwotICAgIH0KLQot
ICAgIHN0YXRpYyBmdW5jdGlvbnMoKQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9mdW5jdGlv
bnMpIHsKLSAgICAgICAgICAgIHRoaXMuX2Z1bmN0aW9ucyA9IFtdOwotCi0gICAgICAgICAgICBm
b3IgKGxldCB0eXBlTmFtZSBvZiBWZWN0b3JFbGVtZW50VHlwZXMpIHsKLSAgICAgICAgICAgICAg
ICBmb3IgKGxldCBzaXplIG9mIFZlY3RvckVsZW1lbnRTaXplcykgewotICAgICAgICAgICAgICAg
ICAgICBmb3IgKGxldCBwYXJhbVNpemVzIG9mIHRoaXMuX3ZlY3RvclBhcmFtZXRlclNpemVzRm9y
TWF4aW11bVNpemUoc2l6ZSkpCi0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9mdW5jdGlv
bnMucHVzaChuZXcgQnVpbHRpblZlY3RvckNvbnN0cnVjdG9ycyh0eXBlTmFtZSwgcGFyYW1TaXpl
cykpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAg
ICByZXR1cm4gdGhpcy5fZnVuY3Rpb25zOwotICAgIH0KLQotICAgIHN0YXRpYyBfdmVjdG9yUGFy
YW1ldGVyU2l6ZXNGb3JNYXhpbXVtU2l6ZShtYXhTaXplKQotICAgIHsKLSAgICAgICAgbGV0IHZh
cmlhbnRzID0gWyBbIG1heFNpemUgXSBdOwotICAgICAgICBmb3IgKGxldCBzcGxpdFBvaW50ID0g
MTsgc3BsaXRQb2ludCA8IG1heFNpemU7IHNwbGl0UG9pbnQrKykgewotICAgICAgICAgICAgZm9y
IChsZXQgdiBvZiBCdWlsdGluVmVjdG9yQ29uc3RydWN0b3JzLl92ZWN0b3JQYXJhbWV0ZXJTaXpl
c0Zvck1heGltdW1TaXplKG1heFNpemUgLSBzcGxpdFBvaW50KSkKLSAgICAgICAgICAgICAgICB2
YXJpYW50cy5wdXNoKFsgc3BsaXRQb2ludCBdLmNvbmNhdCh2KSk7Ci0gICAgICAgIH0KLSAgICAg
ICAgcmV0dXJuIHZhcmlhbnRzOwotICAgIH0KLQotICAgIGluc3RhbnRpYXRlSW1wbGVtZW50YXRp
b24oZnVuYykKLSAgICB7Ci0gICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoYXJncykgPT4g
ewotICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IEVQdHIobmV3IEVCdWZmZXIodGhpcy5v
dXRwdXRTaXplKSwgMCk7Ci0gICAgICAgICAgICBsZXQgb2Zmc2V0ID0gMDsKLSAgICAgICAgICAg
IGZvciAobGV0IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICAg
IGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5wYXJhbWV0ZXJTaXplc1tpXTsgaisrKQotICAgICAg
ICAgICAgICAgICAgICByZXN1bHQuc2V0KG9mZnNldCsrLCBhcmdzW2ldLmdldChqKSk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9OwotICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uRGF0YSA9IHRoaXM7Ci0gICAgfQotfQpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0J1aWx0aW5WZWN0b3JFcXVhbGl0eU9wZXJhdG9yLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQnVpbHRpblZlY3RvckVxdWFsaXR5T3BlcmF0b3IuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGIxODNkMzU2ODYxOTQxYmMyNzZlNGQzYzY3YzVlNDdlY2FmZTQ3MDku
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRpblZlY3RvckVxdWFsaXR5T3BlcmF0b3IuanMKKysr
IC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgQnVpbHRpblZlY3RvckVxdWFs
aXR5T3BlcmF0b3IgewotICAgIGNvbnN0cnVjdG9yKGJhc2VUeXBlTmFtZSwgc2l6ZSkKLSAgICB7
Ci0gICAgICAgIHRoaXMuX2Jhc2VUeXBlTmFtZSA9IGJhc2VUeXBlTmFtZTsKLSAgICAgICAgdGhp
cy5fc2l6ZSA9IHNpemU7Ci0gICAgfQotCi0gICAgZ2V0IGJhc2VUeXBlTmFtZSgpIHsgcmV0dXJu
IHRoaXMuX2Jhc2VUeXBlTmFtZTsgfQotICAgIGdldCBzaXplKCkgeyByZXR1cm4gdGhpcy5fc2l6
ZTsgfQotCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGBuYXRpdmUgYm9v
bCBvcGVyYXRvcj09KCR7dGhpcy5iYXNlVHlwZU5hbWV9JHt0aGlzLnNpemV9LCR7dGhpcy5iYXNl
VHlwZU5hbWV9JHt0aGlzLnNpemV9KWA7Ci0gICAgfQotCi0gICAgc3RhdGljIGZ1bmN0aW9ucygp
Ci0gICAgewotICAgICAgICBpZiAoIXRoaXMuX2Z1bmN0aW9ucykgewotICAgICAgICAgICAgdGhp
cy5fZnVuY3Rpb25zID0gW107Ci0KLSAgICAgICAgICAgIGZvciAobGV0IHR5cGVOYW1lIG9mIFZl
Y3RvckVsZW1lbnRUeXBlcykgewotICAgICAgICAgICAgICAgIGZvciAobGV0IHNpemUgb2YgVmVj
dG9yRWxlbWVudFNpemVzKQotICAgICAgICAgICAgICAgICAgICB0aGlzLl9mdW5jdGlvbnMucHVz
aChuZXcgQnVpbHRpblZlY3RvckVxdWFsaXR5T3BlcmF0b3IodHlwZU5hbWUsIHNpemUpKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhpcy5fZnVuY3Rpb25zOwot
ICAgIH0KLQotICAgIGluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYykKLSAgICB7Ci0gICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3JlZjEsIHJlZjJdLCBub2RlKSA9PiB7Ci0gICAg
ICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc2l6ZTsgaSsrKSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKHJlZjEuZ2V0KGkpICE9IHJlZjIuZ2V0KGkpKQotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gRVB0ci5ib3goZmFsc2UpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0
dXJuIEVQdHIuYm94KHRydWUpOwotICAgICAgICB9OwotICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uRGF0YSA9IHRoaXM7Ci0gICAgfQotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JHZXR0
ZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9yR2V0dGVy
LmpzCmluZGV4IGMyNTNmNzYzMGVlOWRjNDdjZDFlMTk0NWJjODdmNDJlYWEzY2NiMjguLjQwODcy
YjRmOGUyYmIzYThlNGZmYjI2Mjc1ZDhkODNmZTcyMTgyZjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JHZXR0ZXIuanMKKysrIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRpblZlY3RvckdldHRlci5qcwpAQCAtNjIsOSAr
NjIsOSBAQCBjbGFzcyBCdWlsdGluVmVjdG9yR2V0dGVyIHsKIAogICAgIGluc3RhbnRpYXRlSW1w
bGVtZW50YXRpb24oZnVuYykKICAgICB7Ci0gICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZlY10sIG5vZGUpID0+IHsKKyAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmVjXSkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHZlYy5nZXQodGhpcy5pbmRleCkpOwog
ICAgICAgICB9OwogICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uRGF0YSA9IHRoaXM7CiAgICAg
fQotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JJbmRleEdldHRlci5qcyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JJbmRleEdldHRlci5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjcyNjJmYzljZTI3MzBmMDg3ZDYxNDU1ODc2YjMz
NWZlMDI0YWMzYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9ySW5kZXhHZXR0ZXIu
anMKKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgQnVpbHRpblZlY3Rv
ckluZGV4R2V0dGVyIHsKLSAgICBjb25zdHJ1Y3RvcihiYXNlVHlwZU5hbWUsIHNpemUpCi0gICAg
ewotICAgICAgICB0aGlzLl9iYXNlVHlwZU5hbWUgPSBiYXNlVHlwZU5hbWU7Ci0gICAgICAgIHRo
aXMuX3NpemUgPSBzaXplOwotICAgIH0KLQotICAgIGdldCBiYXNlVHlwZU5hbWUoKSB7IHJldHVy
biB0aGlzLl9iYXNlVHlwZU5hbWU7IH0KLSAgICBnZXQgc2l6ZSgpIHsgcmV0dXJuIHRoaXMuX3Np
emU7IH0KLQotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBgbmF0aXZlICR7
dGhpcy5iYXNlVHlwZU5hbWV9IG9wZXJhdG9yW10oJHt0aGlzLmJhc2VUeXBlTmFtZX0ke3RoaXMu
c2l6ZX0sdWludClgOwotICAgIH0KLQotICAgIHN0YXRpYyBmdW5jdGlvbnMoKQotICAgIHsKLSAg
ICAgICAgaWYgKCF0aGlzLl9hbGxJbmRleEdldHRlcnMpIHsKLSAgICAgICAgICAgIHRoaXMuX2Fs
bEluZGV4R2V0dGVycyA9IFtdOwotCi0gICAgICAgICAgICBmb3IgKGxldCB0eXBlTmFtZSBvZiBW
ZWN0b3JFbGVtZW50VHlwZXMpIHsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBzaXplIG9mIFZl
Y3RvckVsZW1lbnRTaXplcykKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWxsSW5kZXhHZXR0
ZXJzLnB1c2gobmV3IEJ1aWx0aW5WZWN0b3JJbmRleEdldHRlcih0eXBlTmFtZSwgc2l6ZSkpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aGlzLl9hbGxJbmRleEdl
dHRlcnM7Ci0gICAgfQotCi0gICAgaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKQotICAg
IHsKLSAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmVjLCBpbmRleF0sIG5vZGUpID0+
IHsKLSAgICAgICAgICAgIGNvbnN0IGluZGV4VmFsdWUgPSBpbmRleC5sb2FkVmFsdWUoKTsKLSAg
ICAgICAgICAgIGlmIChpbmRleFZhbHVlID49IDAgJiYgaW5kZXhWYWx1ZSA8IHRoaXMuc2l6ZSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3godmVjLmdldChpbmRleC5sb2FkVmFsdWUo
KSkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihg
JHtpbmRleFZhbHVlfSBvdXQgb2YgYm91bmRzIGZvciB2ZWN0b3Igb2Ygc2l6ZSAke3RoaXMuc2l6
ZX1gKTsKLSAgICAgICAgfTsKLSAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbkRhdGEgPSB0aGlz
OwotICAgIH0KLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9ySW5kZXhTZXR0ZXIuanMgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9ySW5kZXhTZXR0ZXIuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJmZTVkNjc4YWI3MDVmZTQwYjdkNjhlOTY5
M2RkOGFmYzRhZGVlOTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRpblZlY3RvckluZGV4U2V0
dGVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIEJ1aWx0aW5W
ZWN0b3JJbmRleFNldHRlciB7Ci0gICAgY29uc3RydWN0b3IoYmFzZVR5cGVOYW1lLCBzaXplKQot
ICAgIHsKLSAgICAgICAgdGhpcy5fYmFzZVR5cGVOYW1lID0gYmFzZVR5cGVOYW1lOwotICAgICAg
ICB0aGlzLl9zaXplID0gc2l6ZTsKLSAgICB9Ci0KLSAgICBnZXQgYmFzZVR5cGVOYW1lKCkgeyBy
ZXR1cm4gdGhpcy5fYmFzZVR5cGVOYW1lOyB9Ci0gICAgZ2V0IHNpemUoKSB7IHJldHVybiB0aGlz
Ll9zaXplOyB9Ci0gICAgZ2V0IGVsZW1lbnROYW1lKCkgeyByZXR1cm4gdGhpcy5fZWxlbWVudE5h
bWU7IH0KLSAgICBnZXQgaW5kZXgoKSB7IHJldHVybiB0aGlzLl9pbmRleDsgfQotCi0gICAgdG9T
dHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGBuYXRpdmUgJHt0aGlzLmJhc2VUeXBlTmFt
ZX0ke3RoaXMuc2l6ZX0gb3BlcmF0b3JbXT0oJHt0aGlzLmJhc2VUeXBlTmFtZX0ke3RoaXMuc2l6
ZX0sdWludCwke3RoaXMuYmFzZVR5cGVOYW1lfSlgOwotICAgIH0KLQotICAgIHN0YXRpYyBmdW5j
dGlvbnMoKQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9mdW5jdGlvbnMpIHsKLSAgICAgICAg
ICAgIHRoaXMuX2Z1bmN0aW9ucyA9IFtdOwotCi0gICAgICAgICAgICBmb3IgKGxldCB0eXBlTmFt
ZSBvZiBWZWN0b3JFbGVtZW50VHlwZXMpIHsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBzaXpl
IG9mIFZlY3RvckVsZW1lbnRTaXplcykKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fZnVuY3Rp
b25zLnB1c2gobmV3IEJ1aWx0aW5WZWN0b3JJbmRleFNldHRlcih0eXBlTmFtZSwgc2l6ZSkpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aGlzLl9mdW5jdGlvbnM7
Ci0gICAgfQotCi0gICAgaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKQotICAgIHsKLSAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbYmFzZSwgaW5kZXgsIHZhbHVlXSwgbm9kZSkg
PT4gewotICAgICAgICAgICAgY29uc3QgaW5kZXhWYWx1ZSA9IGluZGV4LmxvYWRWYWx1ZSgpOwot
ICAgICAgICAgICAgaWYgKGluZGV4VmFsdWUgPj0gMCAmJiBpbmRleFZhbHVlIDwgdGhpcy5zaXpl
KSB7Ci0gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBFUHRyKG5ldyBFQnVmZmVyKHRo
aXMuc2l6ZSksIDApOwotICAgICAgICAgICAgICAgIHJlc3VsdC5jb3B5RnJvbShiYXNlLCB0aGlz
LnNpemUpOwotICAgICAgICAgICAgICAgIHJlc3VsdC5wbHVzKGluZGV4VmFsdWUpLmNvcHlGcm9t
KHZhbHVlLCAxKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2luZGV4VmFsdWV9IG91
dCBvZiBib3VuZHMgZm9yIHZlY3RvciBvZiBzaXplICR7dGhpcy5zaXplfWApOwotICAgICAgICB9
OwotICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uRGF0YSA9IHRoaXM7Ci0gICAgfQotfQpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JTZXR0ZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9CdWlsdGluVmVjdG9yU2V0dGVyLmpzCmluZGV4IGEyZDc2M2I3NTA5OTk3YjI0MTBj
MjRiODAxMzE0YzM0YTNjNDg3YTAuLmQ1NTk1OTFlOTY4NjcxZWY5MDM1OTk2YTNmYjYxNTdlZjk3
YjI1ZWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5W
ZWN0b3JTZXR0ZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRp
blZlY3RvclNldHRlci5qcwpAQCAtNDcsNyArNDcsNyBAQCBjbGFzcyBCdWlsdGluVmVjdG9yU2V0
dGVyIHsKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fZnVuY3Rpb25zKSB7CiAgICAgICAgICAg
ICB0aGlzLl9mdW5jdGlvbnMgPSBbXTsKLSAgICAgICAgCisKICAgICAgICAgICAgIGNvbnN0IGVs
ZW1lbnRzID0gWyAieCIsICJ5IiwgInoiLCAidyIgXTsKIAogICAgICAgICAgICAgZm9yIChsZXQg
dHlwZU5hbWUgb2YgVmVjdG9yRWxlbWVudFR5cGVzKSB7CkBAIC02Miw3ICs2Miw3IEBAIGNsYXNz
IEJ1aWx0aW5WZWN0b3JTZXR0ZXIgewogCiAgICAgaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihm
dW5jKQogICAgIHsKLSAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbYmFzZSwgdmFsdWVd
LCBub2RlKSA9PiB7CisgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2Jhc2UsIHZhbHVl
XSkgPT4gewogICAgICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBFUHRyKG5ldyBFQnVmZmVyKHRo
aXMuc2l6ZSksIDApOwogICAgICAgICAgICAgcmVzdWx0LmNvcHlGcm9tKGJhc2UsIHRoaXMuc2l6
ZSk7CiAgICAgICAgICAgICByZXN1bHQucGx1cyh0aGlzLmluZGV4KS5jb3B5RnJvbSh2YWx1ZSwg
MSk7CkBAIC03MCw0ICs3MCw0IEBAIGNsYXNzIEJ1aWx0aW5WZWN0b3JTZXR0ZXIgewogICAgICAg
ICB9OwogICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uRGF0YSA9IHRoaXM7CiAgICAgfQotfQpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0NhbGxFeHByZXNzaW9uLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanMKaW5kZXggM2IxNTQ1NTk5MmU2NGUyNjc3YmEwYjAz
YWI2NTY4ZWY0M2Q1ZDg2NS4uNWZiZGQ1MDVmNzlkNGIzMjZlMDkzZTBmYjc2Y2QzNzVkMGEyYzVi
YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Np
b24uanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24u
anMKQEAgLTUyLDE5ICs1MiwyMiBAQCBjbGFzcyBDYWxsRXhwcmVzc2lvbiBleHRlbmRzIEV4cHJl
c3Npb24gewogCiAgICAgcmVzb2x2ZShwb3NzaWJsZU92ZXJsb2FkcywgcHJvZ3JhbSkKICAgICB7
Ci0gICAgICAgIGlmICghcG9zc2libGVPdmVybG9hZHMpCi0gICAgICAgICAgICB0aHJvdyBuZXcg
V1R5cGVFcnJvcih0aGlzLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJEaWQgbm90IGZpbmQgYW55IGZ1
bmN0aW9ucyBuYW1lZCAiICsgdGhpcy5uYW1lKTsKLQogICAgICAgICBsZXQgZmFpbHVyZXMgPSBb
XTsKLSAgICAgICAgbGV0IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbChwb3NzaWJsZU92
ZXJsb2FkcywgdGhpcy5hcmd1bWVudFR5cGVzLCB0aGlzLnJldHVyblR5cGUpOworICAgICAgICBs
ZXQgb3ZlcmxvYWQ7CisgICAgICAgIGlmIChwb3NzaWJsZU92ZXJsb2FkcykKKyAgICAgICAgICAg
IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbChwb3NzaWJsZU92ZXJsb2FkcywgdGhpcy5h
cmd1bWVudFR5cGVzLCB0aGlzLnJldHVyblR5cGUpOwogCi0gICAgICAgIGlmICghb3ZlcmxvYWQu
ZnVuYykgeworICAgICAgICBpZiAoIW92ZXJsb2FkIHx8ICFvdmVybG9hZC5mdW5jKSB7CisgICAg
ICAgICAgICBpZiAoIW92ZXJsb2FkKQorICAgICAgICAgICAgICAgIG92ZXJsb2FkID0ge307CiAg
ICAgICAgICAgICBjb25zdCBmdW5jID0gdGhpcy5fcmVzb2x2ZUJ5SW5zdGFudGlhdGlvbihwcm9n
cmFtKTsKICAgICAgICAgICAgIGlmIChmdW5jKQogICAgICAgICAgICAgICAgIG92ZXJsb2FkLmZ1
bmMgPSBmdW5jOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFvdmVybG9hZC5mdW5jKSB7Cisg
ICAgICAgICAgICBpZiAoIW92ZXJsb2FkLmZhaWx1cmVzKQorICAgICAgICAgICAgICAgIG92ZXJs
b2FkLmZhaWx1cmVzID0gW107CiAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKC4uLm92ZXJsb2Fk
LmZhaWx1cmVzKTsKICAgICAgICAgICAgIGxldCBtZXNzYWdlID0gIkRpZCBub3QgZmluZCBmdW5j
dGlvbiBuYW1lZCAiICsgdGhpcy5uYW1lICsgIiBmb3IgY2FsbCB3aXRoICI7CiAgICAgICAgICAg
ICBtZXNzYWdlICs9ICJhcmd1bWVudCB0eXBlcyAoIiArIHRoaXMuYXJndW1lbnRUeXBlcyArICIp
IjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrVHlwZXNX
aXRoQXJndW1lbnRzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tUeXBl
c1dpdGhBcmd1bWVudHMuanMKaW5kZXggYmI2YjJiZDQ5OGU3N2IxNDlkZjRjNjhmNGVmM2FjMWZm
MWNkYWFiMi4uMmY2OTE0MmEzNTE3ZDI5NDkwMDUzMGMwY2YwNjZjOWJmZDIyNzdhZiAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tUeXBlc1dpdGhBcmd1bWVu
dHMuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tUeXBlc1dpdGhB
cmd1bWVudHMuanMKQEAgLTI5LDggKzI5LDIwIEBAIGZ1bmN0aW9uIGNoZWNrVHlwZXNXaXRoQXJn
dW1lbnRzKHByb2dyYW0pCiAgICAgY2xhc3MgVHlwZVdpdGhBcmd1bWVudHNDaGVja2VyIGV4dGVu
ZHMgVmlzaXRvciB7CiAgICAgICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAgICAgICB7Ci0gICAg
ICAgICAgICBpZiAobm9kZS5uYW1lID09ICJ2ZWN0b3IiICYmIG5vZGUudHlwZUFyZ3VtZW50cy5s
ZW5ndGggPT0gMCkKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJ1aWx0aW4gdHlw
ZSAke25vZGUubmFtZX0gc2hvdWxkIGFsd2F5cyBoYXZlIHR5cGUgYXJndW1lbnRzLiIpOworICAg
ICAgICAgICAgaWYgKChub2RlLm5hbWUgPT0gInZlY3RvciIgJiYgbm9kZS50eXBlQXJndW1lbnRz
Lmxlbmd0aCAhPSAyKQorICAgICAgICAgICAgICAgIHx8IChub2RlLm5hbWUgPT0gIm1hdHJpeCIg
JiYgbm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCAhPSAzKQorICAgICAgICAgICAgICAgIHx8IChu
b2RlLm5hbWUgPT0gIlRleHR1cmUxRCIgJiYgbm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCAhPSAx
KQorICAgICAgICAgICAgICAgIHx8IChub2RlLm5hbWUgPT0gIlJXVGV4dHVyZTFEIiAmJiBub2Rl
LnR5cGVBcmd1bWVudHMubGVuZ3RoICE9IDEpCisgICAgICAgICAgICAgICAgfHwgKG5vZGUubmFt
ZSA9PSAiVGV4dHVyZTFEQXJyYXkiICYmIG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gMSkK
KyAgICAgICAgICAgICAgICB8fCAobm9kZS5uYW1lID09ICJSV1RleHR1cmUxREFycmF5IiAmJiBu
b2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoICE9IDEpCisgICAgICAgICAgICAgICAgfHwgKG5vZGUu
bmFtZSA9PSAiVGV4dHVyZTJEIiAmJiBub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoICE9IDEpCisg
ICAgICAgICAgICAgICAgfHwgKG5vZGUubmFtZSA9PSAiUldUZXh0dXJlMkQiICYmIG5vZGUudHlw
ZUFyZ3VtZW50cy5sZW5ndGggIT0gMSkKKyAgICAgICAgICAgICAgICB8fCAobm9kZS5uYW1lID09
ICJUZXh0dXJlMkRBcnJheSIgJiYgbm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCAhPSAxKQorICAg
ICAgICAgICAgICAgIHx8IChub2RlLm5hbWUgPT0gIlJXVGV4dHVyZTJEQXJyYXkiICYmIG5vZGUu
dHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gMSkKKyAgICAgICAgICAgICAgICB8fCAobm9kZS5uYW1l
ID09ICJUZXh0dXJlM0QiICYmIG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gMSkKKyAgICAg
ICAgICAgICAgICB8fCAobm9kZS5uYW1lID09ICJSV1RleHR1cmUzRCIgJiYgbm9kZS50eXBlQXJn
dW1lbnRzLmxlbmd0aCAhPSAxKQorICAgICAgICAgICAgICAgIHx8IChub2RlLm5hbWUgPT0gIlRl
eHR1cmVDdWJlIiAmJiBub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoICE9IDEpKQorICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcihgQnVpbHRpbiB0eXBlICR7bm9kZS5uYW1lfSBzaG91bGQg
YWx3YXlzIGhhdmUgdHlwZSBhcmd1bWVudHMuYCk7CiAgICAgICAgIH0KICAgICB9CiAgICAgcHJv
Z3JhbS52aXNpdChuZXcgVHlwZVdpdGhBcmd1bWVudHNDaGVja2VyKCkpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qcyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0NoZWNrZXIuanMKaW5kZXggYzY5ZDU1NDliYWQ5M2RiZDI0M2ZhNjY5
M2M4NmYwYjU5OTc4Y2M1OS4uNWY1OThiMmVlNzUyMmJiYzgxMDU0NWM5NDhkNzczZjJlNGY5OTQ3
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qcwor
KysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzCkBAIC0yNjMsNiAr
MjYzLDcgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgIHZpc2l0VmVjdG9y
VHlwZShub2RlKQogICAgIHsKICAgICAgICAgbm9kZS5lbGVtZW50VHlwZS52aXNpdCh0aGlzKTsK
KyAgICAgICAgbm9kZS5udW1FbGVtZW50cy52aXNpdCh0aGlzKTsKIAogICAgICAgICBsZXQgaXNL
bm93bkFsbG93ZWRWZWN0b3JFbGVtZW50VHlwZSA9IGZhbHNlOwogICAgICAgICBmb3IgKGxldCB2
ZWN0b3JFbGVtZW50VHlwZU5hbWUgb2YgVmVjdG9yRWxlbWVudFR5cGVzKSB7CkBAIC0yNzcsNiAr
Mjc4LDMzIEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKIAogICAgICAgICBpZiAo
IWlzS25vd25BbGxvd2VkVmVjdG9yRWxlbWVudFR5cGUpCiAgICAgICAgICAgICB0aHJvdyBuZXcg
V1R5cGVFcnJvcihgJHtub2RlLmVsZW1lbnRUeXBlfSBpcyBub3QgYSBwZXJtaXR0ZWQgdmVjdG9y
IGVsZW1lbnQgdHlwZS5gKTsKKyAgICAgICAgaWYgKG5vZGUubnVtRWxlbWVudHNWYWx1ZSAhPSAy
ICYmIG5vZGUubnVtRWxlbWVudHNWYWx1ZSAhPSAzICYmIG5vZGUubnVtRWxlbWVudHNWYWx1ZSAh
PSA0KQorICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoYCR7bm9kZS50b1N0cmluZygp
fTogJHtub2RlLm51bUVsZW1lbnRzVmFsdWV9IGlzIG5vdCAyLCAzLCBvciA0LmApOworICAgIH0K
KworICAgIHZpc2l0TWF0cml4VHlwZShub2RlKQorICAgIHsKKyAgICAgICAgbm9kZS5lbGVtZW50
VHlwZS52aXNpdCh0aGlzKTsKKyAgICAgICAgbm9kZS5udW1Sb3dzLnZpc2l0KHRoaXMpOworICAg
ICAgICBub2RlLm51bUNvbHVtbnMudmlzaXQodGhpcyk7CisKKyAgICAgICAgbGV0IGlzS25vd25B
bGxvd2VkVmVjdG9yRWxlbWVudFR5cGUgPSBmYWxzZTsKKyAgICAgICAgZm9yIChsZXQgZWxlbWVu
dFR5cGVOYW1lIG9mIFsiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICBjb25zdCBlbGVt
ZW50VHlwZSA9IHRoaXMuX3Byb2dyYW0uZ2xvYmFsTmFtZUNvbnRleHQuZ2V0KFR5cGUsIGVsZW1l
bnRUeXBlTmFtZSk7CisgICAgICAgICAgICBpZiAoIWVsZW1lbnRUeXBlKQorICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBXVHlwZUVycm9yKGAke2VsZW1lbnRUeXBlTmFtZX0gaXMgbm90IGEga25v
d24gbmF0aXZlIHR5cGUgaW4gdGhlIHN0YW5kYXJkIGxpYnJhcnkgb3IgaW50cmluc2ljcy5gKTsK
KyAgICAgICAgICAgIGlmIChlbGVtZW50VHlwZS5lcXVhbHMobm9kZS5lbGVtZW50VHlwZSkpIHsK
KyAgICAgICAgICAgICAgICBpc0tub3duQWxsb3dlZFZlY3RvckVsZW1lbnRUeXBlID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAg
ICAgIGlmICghaXNLbm93bkFsbG93ZWRWZWN0b3JFbGVtZW50VHlwZSkKKyAgICAgICAgICAgIHRo
cm93IG5ldyBXVHlwZUVycm9yKGAke25vZGUuZWxlbWVudFR5cGV9IGlzIG5vdCBhIHBlcm1pdHRl
ZCB2ZWN0b3IgZWxlbWVudCB0eXBlLmApOworICAgICAgICBpZiAobm9kZS5udW1Sb3dzVmFsdWUg
IT0gMiAmJiBub2RlLm51bVJvd3NWYWx1ZSAhPSAzICYmIG5vZGUubnVtUm93c1ZhbHVlICE9IDQp
CisgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihgJHtub2RlLnRvU3RyaW5nKCl9OiAk
e25vZGUubnVtUm93c1ZhbHVlfSBpcyBub3QgMiwgMywgb3IgNC5gKTsKKyAgICAgICAgaWYgKG5v
ZGUubnVtQ29sdW1uc1ZhbHVlICE9IDIgJiYgbm9kZS5udW1Db2x1bW5zVmFsdWUgIT0gMyAmJiBu
b2RlLm51bUNvbHVtbnNWYWx1ZSAhPSA0KQorICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJy
b3IoYCR7bm9kZS50b1N0cmluZygpfTogJHtub2RlLm51bUNvbHVtbnNWYWx1ZX0gaXMgbm90IDIs
IDMsIG9yIDQuYCk7CiAgICAgfQogICAgIAogICAgIHZpc2l0QXJyYXlUeXBlKG5vZGUpCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJGb2xkZXIuanMg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJGb2xkZXIuanMKaW5kZXgg
NTQ1MTMzMmQ3ZjEwYzQ5NWNlZTk0ZjYxMzk2NDU4NzhhYmIwNzFkMi4uMzZlNWY2ZjM1ZTU3OTEw
NzMzOWFiMzBiMjgzODA4ZDNkN2NmMWUwYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvQ29uc3RleHByRm9sZGVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0NvbnN0ZXhwckZvbGRlci5qcwpAQCAtMzUsOSArMzUsOSBAQCBjbGFzcyBDb25z
dGV4cHJGb2xkZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgCiAgICAgICAgIGlmIChub2Rl
Lm5hbWUgPT0gIm9wZXJhdG9yLSIKICAgICAgICAgICAgICYmIG5vZGUuYXJndW1lbnRMaXN0Lmxl
bmd0aCA9PSAxCi0gICAgICAgICAgICAmJiBub2RlLmFyZ3VtZW50TGlzdFswXS51bmlmeU5vZGUu
aXNDb25zdGV4cHIKLSAgICAgICAgICAgICYmIG5vZGUuYXJndW1lbnRMaXN0WzBdLnVuaWZ5Tm9k
ZS5uZWdDb25zdGV4cHIpIHsKLSAgICAgICAgICAgIG5vZGUuYmVjb21lKG5vZGUuYXJndW1lbnRM
aXN0WzBdLnVuaWZ5Tm9kZS5uZWdDb25zdGV4cHIobm9kZS5vcmlnaW4pKTsKKyAgICAgICAgICAg
ICYmIG5vZGUuYXJndW1lbnRMaXN0WzBdLmlzTGl0ZXJhbAorICAgICAgICAgICAgJiYgbm9kZS5h
cmd1bWVudExpc3RbMF0ubmVnQ29uc3RleHByKSB7CisgICAgICAgICAgICBub2RlLmJlY29tZShu
b2RlLmFyZ3VtZW50TGlzdFswXS5uZWdDb25zdGV4cHIobm9kZS5vcmlnaW4pKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0V2YWx1YXRvci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0V2YWx1YXRvci5qcwppbmRleCAwMjkwZGUyM2Q0NDFhYTJmM2E4YzEzMjkwZjIxZjFmY2Nh
NmQyYzdkLi5hZWUwYTIzMTJmZWQ3MmMwYzg3ZTczZjE4YWMzNDhlYTFhYzNjN2JhIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FdmFsdWF0b3IuanMKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRXZhbHVhdG9yLmpzCkBAIC0xNDgsNyArMTQ4LDYg
QEAgY2xhc3MgRXZhbHVhdG9yIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIGlmIChub2RlLnBy
ZWRpY2F0ZS52aXNpdCh0aGlzKS5sb2FkVmFsdWUoKSkKICAgICAgICAgICAgIHJldHVybiBub2Rl
LmJvZHlFeHByZXNzaW9uLnZpc2l0KHRoaXMpOwogICAgICAgICByZXR1cm4gbm9kZS5lbHNlRXhw
cmVzc2lvbi52aXNpdCh0aGlzKTsKLSAgICAgICAgCiAgICAgfQogICAgIAogICAgIHZpc2l0VmFy
aWFibGVSZWYobm9kZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0ZsYXR0ZW5lZFN0cnVjdE9mZnNldEdhdGhlcmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvRmxhdHRlbmVkU3RydWN0T2Zmc2V0R2F0aGVyZXIuanMKaW5kZXggNTNjODcxNmM0
NTA0NmY4N2ZjNGY2Y2Q1M2ZhOWY3YTQyYzUzZTE2NS4uMjczOWQ3YmY3ZmE0OTYyYzc3NWYyOGM3
OWNlNTg0NThiZmQ0YThlOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvRmxhdHRlbmVkU3RydWN0T2Zmc2V0R2F0aGVyZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvRmxhdHRlbmVkU3RydWN0T2Zmc2V0R2F0aGVyZXIuanMKQEAgLTczLDUg
KzczLDE3IEBAIGNsYXNzIEZsYXR0ZW5lZFN0cnVjdE9mZnNldEdhdGhlcmVyIGV4dGVuZHMgVmlz
aXRvciB7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfQogICAgIH0KKworICAgIHZpc2l0TWF0
cml4VHlwZShub2RlKQorICAgIHsKKyAgICAgICAgY29uc3QgZmllbGROYW1lcyA9IFsgInJvdzAi
LCAicm93MSIsICJyb3cyIiwgInJvdzMiIF07CisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
bm9kZS5udW1Sb3dzVmFsdWU7IGkrKykgeworICAgICAgICAgICAgdGhpcy5fcmVzdWx0LnB1c2go
eworICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuX25hbWUuam9pbigiLiIpICsgIi4iICsgZmll
bGROYW1lc1tpXSwKKyAgICAgICAgICAgICAgICBvZmZzZXQ6IHRoaXMuX29mZnNldCArIGkgKiBu
b2RlLmVsZW1lbnRUeXBlLnNpemUgKiBub2RlLm51bUNvbHVtbnNWYWx1ZSwKKyAgICAgICAgICAg
ICAgICB0eXBlOiBub2RlLmVsZW1lbnRUeXBlLm5hbWUgKyBub2RlLm51bUNvbHVtbnNWYWx1ZS50
b1N0cmluZygpCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxvYXRMaXRlcmFsVHlwZS5qcyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Zsb2F0TGl0ZXJhbFR5cGUuanMKaW5kZXgg
ZjdiYjdmMmM4YjAwY2IzODA2Y2M1NmE1ZDI1ZDhmZTA1Mzg3M2NkOS4uNjBlY2U0MTVjNjkzMzU3
ZGIxYmVhZjdlNjUxMDQ3NTI3ODAxYWVjOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvRmxvYXRMaXRlcmFsVHlwZS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWxUeXBlLmpzCkBAIC0zMiw4ICszMiw3IEBAIGxldCBGbG9h
dExpdGVyYWxUeXBlID0gY3JlYXRlTGl0ZXJhbFR5cGUoewogICAgICAgICBsZXQgcmVhbFRoaXMg
PSB1bmlmaWNhdGlvbkNvbnRleHQuZmluZCh0aGlzKTsKICAgICAgICAgaWYgKCFyZWFsVGhpcy5p
c0Zsb2F0aW5nKQogICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJD
YW5ub3QgdXNlIGZsb2F0IGxpdGVyYWwgd2l0aCBub24tZmxvYXRpbmcgdHlwZSAiICsgcmVhbFRo
aXN9OwotICAgICAgICBpZiAoIXJlYWxUaGlzLmNhblJlcHJlc2VudCh0aGlzLnZhbHVlKSkKLSAg
ICAgICAgICAgIHJldHVybiB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiRmxvYXQgbGl0ZXJhbCAi
ICsgdGhpcy52YWx1ZSArICIgZG9lcyBub3QgZml0IGluIHR5cGUgIiArIHJlYWxUaGlzfTsKKyAg
ICAgICAgLy8gRmxvYXRzIGNhbiByZXByZXNlbnQgYW55IG51bWJlci4KICAgICAgICAgcmV0dXJu
IHtyZXN1bHQ6IHRydWV9OwogICAgIH0KIH0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0ludHJpbnNpY3MuanMKaW5kZXggNzIyOTA2MzI5ODJlZTEwODQxMmU4OGIwODgyZTQxY2U4
NWE3MzAxZC4uNTU0N2MxYWQ2NDI3ODk5NzM3ODY2M2Y1MTFkZDE2M2E5NDJlYjFhZiAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcworKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCkBAIC0zMTYsOTAgKzMx
NiwyNDIgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAor
ICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFsiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAg
ICBmb3IgKGxldCBoZWlnaHQgPSAyOyBoZWlnaHQgPD0gNDsgKytoZWlnaHQpIHsKKyAgICAgICAg
ICAgICAgICBmb3IgKGxldCB3aWR0aCA9IDI7IHdpZHRoIDw9IDQ7ICsrd2lkdGgpIHsKKyAgICAg
ICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldChgbmF0aXZlIHR5cGVkZWYgbWF0cml4PCR7dHlw
ZX0sICR7aGVpZ2h0fSwgJHt3aWR0aH0+YCwgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICB0aGlzW2BtYXRyaXg8JHt0eXBlfSwgJHtoZWlnaHR9LCAke3dpZHRofT5gXSA9IHR5cGU7
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0
aXZlIG9wZXJhdG9yIGludCh1aW50KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVl
LmxvYWRWYWx1ZSgpIHwgMCk7CisgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgc2FtcGxlciIs
CisgICAgICAgICAgICB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICB0aGlzLnNhbXBsZXIgPSB0
eXBlOworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gcHV0IGhl
cmUuCiAgICAgICAgICAgICB9KTsKIAorICAgICAgICBmb3IgKGxldCB0ZXh0dXJlVHlwZSBvZiBb
IlRleHR1cmUxRCIsICJSV1RleHR1cmUxRCIsICJUZXh0dXJlMURBcnJheSIsICJSV1RleHR1cmUx
REFycmF5IiwgIlRleHR1cmUyRCIsICJSV1RleHR1cmUyRCIsICJUZXh0dXJlMkRBcnJheSIsICJS
V1RleHR1cmUyREFycmF5IiwgIlRleHR1cmUzRCIsICJSV1RleHR1cmUzRCIsICJUZXh0dXJlQ3Vi
ZSJdKSB7CisgICAgICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQgb2YgWyJib29sIiwgInVj
aGFyIiwgInVzaG9ydCIsICJ1aW50IiwgImNoYXIiLCAic2hvcnQiLCAiaW50IiwgImhhbGYiLCAi
ZmxvYXQiXSkgeworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgdHlwZWRlZiAke3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YCwK
KyAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICB0
aGlzW2Ake3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YF0gPSB0eXBlOworICAgICAgICAg
ICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5
cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQo
b2Zmc2V0LCB7fSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGZv
ciAobGV0IGkgPSAyOyBpIDw9IDQ7ICsraSkgeworICAgICAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVy
ZVR5cGV9PCR7dHlwZUFyZ3VtZW50fSR7aX0+YCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5
cGUgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9
PCR7dHlwZUFyZ3VtZW50fSR7aX0+YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1
bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQs
IHt9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHRleHR1cmVUeXBlIG9m
IFsiVGV4dHVyZURlcHRoMkQiLCAiUldUZXh0dXJlRGVwdGgyRCIsICJUZXh0dXJlRGVwdGgyREFy
cmF5IiwgIlJXVGV4dHVyZURlcHRoMkRBcnJheSIsICJUZXh0dXJlRGVwdGhDdWJlIl0pIHsKKyAg
ICAgICAgICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiBbImZsb2F0IiwgImhhbGYiXSkgewor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgdHlwZWRlZiAke3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YCwKKyAgICAgICAgICAg
ICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1
cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHByaW1pdGl2
ZVR5cGUgb2YgWyJ1c2hvcnQiLCAidWludCIsICJjaGFyIiwgInNob3J0IiwgImludCIsICJoYWxm
IiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSBvcGVyYXRvciB1Y2hhcigke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgJiAweGZmKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHByaW1pdGl2ZVR5
cGUgb2YgWyJ1Y2hhciIsICJ1aW50IiwgImNoYXIiLCAic2hvcnQiLCAiaW50IiwgImhhbGYiLCAi
ZmxvYXQiXSkgeworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlIG9wZXJhdG9yIHVzaG9ydCgke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgJiAweGZmZmYpOworICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgcHJpbWl0aXZlVHlw
ZSBvZiBbInVjaGFyIiwgInVzaG9ydCIsICJjaGFyIiwgInNob3J0IiwgImludCIsICJoYWxmIiwg
ImZsb2F0Il0pIHsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSBvcGVyYXRvciB1aW50KCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
dmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSA+Pj4gMCk7CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCBwcmltaXRpdmVUeXBlIG9m
IFsidWNoYXIiLCAidXNob3J0IiwgInVpbnQiLCAic2hvcnQiLCAiaW50IiwgImhhbGYiLCAiZmxv
YXQiXSkgeworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlIG9wZXJhdG9yIGNoYXIoJHtwcmltaXRpdmVUeXBlfSlgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1
ZV0pID0+IEVQdHIuYm94KGNhc3QoSW50OEFycmF5LCB2YWx1ZS5sb2FkVmFsdWUoKSkpOworICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgcHJpbWl0aXZl
VHlwZSBvZiBbInVjaGFyIiwgInVzaG9ydCIsICJ1aW50IiwgImNoYXIiLCAiaW50IiwgImhhbGYi
LCAiZmxvYXQiXSkgeworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlIG9wZXJhdG9yIHNob3J0KCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0KEludDE2QXJyYXksIHZhbHVlLmxvYWRWYWx1ZSgp
KSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCBw
cmltaXRpdmVUeXBlIG9mIFsidWNoYXIiLCAidXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9y
dCIsICJoYWxmIiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciBpbnQoJHtwcmltaXRpdmVUeXBlfSlgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3QoSW50MzJBcnJheSwgdmFsdWUubG9h
ZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIGZv
ciAobGV0IHByaW1pdGl2ZVR5cGUgb2YgWyJ1Y2hhciIsICJ1c2hvcnQiLCAidWludCIsICJjaGFy
IiwgInNob3J0IiwgImludCIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgaGFsZigke3ByaW1pdGl2ZVR5cGV9
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdFRvSGFsZih2YWx1ZS5s
b2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAg
Zm9yIChsZXQgcHJpbWl0aXZlVHlwZSBvZiBbInVjaGFyIiwgInVzaG9ydCIsICJ1aW50IiwgImNo
YXIiLCAic2hvcnQiLCAiaW50IiwgImhhbGYiXSkgeworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIG9wZXJhdG9yIGZsb2F0KCR7cHJpbWl0aXZlVHlw
ZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChNYXRoLmZyb3VuZCh2YWx1
ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9CisKICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3IgaW50KHVjaGFy
KSIsCisgICAgICAgICAgICBgbmF0aXZlIG9wZXJhdG9yIGludChhdG9taWNfaW50KWAsCiAgICAg
ICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpIHwgMCk7CisgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5s
b2FkVmFsdWUoKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAot
ICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvciBpbnQoZmxvYXQpIiwKKyAgICAgICAgICAgIGBu
YXRpdmUgb3BlcmF0b3IgdWludChhdG9taWNfdWludClgLAogICAgICAgICAgICAgZnVuYyA9PiB7
Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRy
LmJveCh2YWx1ZS5sb2FkVmFsdWUoKSB8IDApOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkpOwogICAg
ICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRp
dmUgb3BlcmF0b3IgdWludChpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRv
cj09KGJvb2wsYm9vbCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFs
dWUoKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1
ZSgpID09IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKICAgICAgICAgICAgIH0pOwogCisgICAgICAgIGZv
ciAobGV0IHByaW1pdGl2ZVR5cGUgb2YgWyJ1aW50IiwgImludCIsICJmbG9hdCJdKSB7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgYm9vbCBvcGVy
YXRvcj09KCR7cHJpbWl0aXZlVHlwZX0sJHtwcmltaXRpdmVUeXBlfSlgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFtsZWZ0LCByaWdodF0pID0+CisgICAgICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0
LmxvYWRWYWx1ZSgpID09IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICB9KTsK
KworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIGJv
b2wgb3BlcmF0b3I8KCR7cHJpbWl0aXZlVHlwZX0sJHtwcmltaXRpdmVUeXBlfSlgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CisgICAgICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChsZWZ0LmxvYWRWYWx1ZSgpIDwgcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAg
IH0pOworCisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgYm9vbCBvcGVyYXRvcjw9KCR7cHJpbWl0aXZlVHlwZX0sJHtwcmltaXRpdmVUeXBlfSlgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CisgICAgICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpIDw9IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAg
ICAgICAgICB9KTsKKworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlIGJvb2wgb3BlcmF0b3I+KCR7cHJpbWl0aXZlVHlwZX0sJHtwcmltaXRpdmVUeXBl
fSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CisgICAgICAgICAgICAgICAgICAg
ICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID4gcmlnaHQubG9hZFZhbHVlKCkpOworICAg
ICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgYm9vbCBvcGVyYXRvcj49KCR7cHJpbWl0aXZlVHlwZX0sJHtwcmltaXRp
dmVUeXBlfSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CisgICAgICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID49IHJpZ2h0LmxvYWRWYWx1ZSgp
KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCiAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCi0gICAgICAgICAgICAibmF0aXZlIG9wZXJhdG9yIHVpbnQodWNoYXIpIiwKKyAgICAgICAg
ICAgICJuYXRpdmUgaW50IG9wZXJhdG9yLShpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewot
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5i
b3godmFsdWUubG9hZFZhbHVlKCkgPj4+IDApOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKC12
YWx1ZS5sb2FkVmFsdWUoKSkgfCAwKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMu
X21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIG9wZXJhdG9yIHVpbnQoZmxvYXQpIiwKKyAg
ICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3ItKGZsb2F0KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0p
ID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpID4+PiAwKTsKKyAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KE1hdGguZnJvdW5kKC12YWx1ZS5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7
CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3Ig
dWNoYXIoaW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcisoaW50LGludCki
LAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSAmIDB4ZmYpOwor
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
KyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5s
b2FkVmFsdWUoKSkgfCAwKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCi0gICAgICAgICAgICAibmF0aXZlIG9wZXJhdG9yIHVjaGFyKHVpbnQpIiwKKyAgICAgICAg
ICAgICJuYXRpdmUgaW50IG9wZXJhdG9yLShpbnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+
IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQ
dHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpICYgMHhmZik7CisgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgorICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAtIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwogICAg
ICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRp
dmUgb3BlcmF0b3IgdWNoYXIoZmxvYXQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJh
dG9yKihpbnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1
ZSgpICYgMHhmZik7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFs
dWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwogICAgICAgICAgICAgfSk7CiAKICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3IgZmxvYXQoaW50
KSIsCisgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvci8oaW50LGludCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
dmFsdWVdKSA9PiBFUHRyLmJveChNYXRoLmZyb3VuZCh2YWx1ZS5sb2FkVmFsdWUoKSkpOworICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAg
ICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2Fk
VmFsdWUoKSkgfCAwKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQo
Ci0gICAgICAgICAgICAibmF0aXZlIG9wZXJhdG9yIGZsb2F0KHVpbnQpIiwKKyAgICAgICAgICAg
ICJuYXRpdmUgdWludCBvcGVyYXRvcisodWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+
IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQ
dHIuYm94KE1hdGguZnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgorICAgICAgICAgICAgICAg
ICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4g
MCk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAg
ICAgIm5hdGl2ZSBvcGVyYXRvciBmbG9hdCh1Y2hhcikiLAorICAgICAgICAgICAgIm5hdGl2ZSB1
aW50IG9wZXJhdG9yLSh1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goTWF0
aC5mcm91bmQodmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKICAgICAg
ICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZl
IGludCBvcGVyYXRvcisoaW50LGludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJh
dG9yKih1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFsdWUoKSkgfCAw
KTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKiByaWdo
dC5sb2FkVmFsdWUoKSkgPj4+IDApOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5f
bWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcisodWludCx1aW50KSIs
CisgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3IvKHVpbnQsdWludCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
bGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2Fk
VmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsK
ICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCkBAIC00MTAsNjcgKzU2
Miw2NSBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvci0oaW50LGludCki
LAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvci0oZmxvYXQsZmxvYXQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQu
bG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3goTWF0aC5mcm91bmQobGVmdC5sb2FkVmFsdWUoKSAtIHJpZ2h0LmxvYWRWYWx1
ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAg
ICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yLSh1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJu
YXRpdmUgZmxvYXQgb3BlcmF0b3IqKGZsb2F0LGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+
IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0p
ID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmln
aHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0
aC5mcm91bmQobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAg
ICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBm
bG9hdCBvcGVyYXRvci0oZmxvYXQsZmxvYXQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQg
b3BlcmF0b3IvKGZsb2F0LGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAg
ICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgLSByaWdo
dC5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3Vu
ZChsZWZ0LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGludCBvcGVy
YXRvciooaW50LGludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3ImKGludCxp
bnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4gewotICAgICAgICAgICAgICAgICAgICByZXR1
cm4gRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsK
LSAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQu
bG9hZFZhbHVlKCkgJiByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKICAgICAgICAgICAgIH0pOwog
CiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0
b3IqKHVpbnQsdWludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3J8KGludCxp
bnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goKGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSB8IHJpZ2h0LmxvYWRWYWx1
ZSgpKSB8IDApOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAg
ICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3IqKGZsb2F0LGZsb2F0KSIsCisgICAgICAg
ICAgICAibmF0aXZlIGludCBvcGVyYXRvcl4oaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9
PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRd
KSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRW
YWx1ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goKGxlZnQubG9hZFZhbHVlKCkgXiByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKICAgICAgICAg
ICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGlu
dCBvcGVyYXRvci8oaW50LGludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3J+
KGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRy
LmJveCgobGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goKH52
YWx1ZS5sb2FkVmFsdWUoKSkgfCAwKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMu
X21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3IvKHVpbnQsdWludCki
LAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3I8PChpbnQsdWludCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
bGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2Fk
VmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIDw8IHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwog
ICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJu
YXRpdmUgaW50IG9wZXJhdG9yJihpbnQsaW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGludCBv
cGVyYXRvcj4+KGludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgJiByaWdodC5sb2FkVmFsdWUoKSk7
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpID4+IHJpZ2h0
LmxvYWRWYWx1ZSgpKSB8IDApOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFw
LnNldCgKQEAgLTQ4MSwyMjMgKzYzMSw0MTUgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAg
ICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBp
bnQgb3BlcmF0b3J8KGludCxpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRv
cnwodWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgfCByaWdodC5sb2FkVmFsdWUoKSk7CisgICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIHwgcmlnaHQubG9hZFZh
bHVlKCkpID4+PiAwKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQo
Ci0gICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3J8KHVpbnQsdWludCkiLAorICAgICAg
ICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yXih1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1
bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJp
Z2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkg
fCByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eCgobGVmdC5sb2FkVmFsdWUoKSBeIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CiAgICAgICAg
ICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBp
bnQgb3BlcmF0b3JeKGludCxpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRv
cn4odWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goKH52YWx1
ZS5sb2FkVmFsdWUoKSkgPj4+IDApOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5f
bWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcl4odWludCx1aW50KSIs
CisgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3I8PCh1aW50LHVpbnQpIiwKICAgICAg
ICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9h
ZFZhbHVlKCkgXiByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSA8PCByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDAp
OwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAg
ICJuYXRpdmUgaW50IG9wZXJhdG9yPDwoaW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUg
dWludCBvcGVyYXRvcj4+KHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpIDw8IHJpZ2h0LmxvYWRW
YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkg
Pj4+IHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yPDwodWlu
dCx1aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNvcyhmbG9hdCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
bGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2Fk
VmFsdWUoKSA8PCByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goTWF0aC5mcm91bmQoTWF0aC5jb3ModmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAg
ICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBp
bnQgb3BlcmF0b3I+PihpbnQsdWludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBzaW4o
ZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA+PiByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAg
ICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnNpbih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsK
ICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAi
bmF0aXZlIHVpbnQgb3BlcmF0b3I+Pih1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUg
ZmxvYXQgdGFuKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPj4+IHJpZ2h0LmxvYWRWYWx1ZSgpKTsK
KyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgudGFuKHZhbHVlLmxvYWRW
YWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAg
ICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yfihpbnQpIiwKKyAgICAgICAgICAgICJuYXRp
dmUgZmxvYXQgYWNvcyhmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh+dmFsdWUu
bG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3Zh
bHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5h
Y29zKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhp
cy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcn4odWludCkiLAor
ICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBhc2luKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5j
ID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+
IEVQdHIuYm94KCh+dmFsdWUubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KE1hdGguZnJvdW5kKE1hdGguYXNpbih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAg
ICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZl
IGZsb2F0IG9wZXJhdG9yLyhmbG9hdCxmbG9hdCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9h
dCBhdGFuKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFs
dWUoKSkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkg
PT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5hdGFuKHZh
bHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFw
LnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcj09KGludCxpbnQpIiwKKyAg
ICAgICAgICAgICJuYXRpdmUgZmxvYXQgY29zaChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9
PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRd
KSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID09IHJp
Z2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1h
dGguY29zaCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAg
IHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I9PSh1aW50
LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgc2luaChmbG9hdCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
bGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRW
YWx1ZSgpID09IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1h
dGguZnJvdW5kKE1hdGguc2luaCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3Bl
cmF0b3I9PShib29sLGJvb2wpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgdGFuaChmbG9h
dCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChsZWZ0LmxvYWRWYWx1ZSgpID09IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgudGFuaCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAg
ICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0
aXZlIGJvb2wgb3BlcmF0b3I9PShmbG9hdCxmbG9hdCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBm
bG9hdCBjZWlsKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPT0gcmlnaHQubG9hZFZhbHVlKCkpOwor
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5jZWlsKHZhbHVlLmxvYWRW
YWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAg
ICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcjwoaW50LGludCkiLAorICAgICAgICAgICAg
Im5hdGl2ZSBmbG9hdCBleHAoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA8IHJpZ2h0LmxvYWRWYWx1
ZSgpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguZXhwKHZhbHVl
LmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcjwodWludCx1aW50KSIsCisgICAg
ICAgICAgICAibmF0aXZlIGZsb2F0IGZsb29yKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+
IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0p
ID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPCByaWdo
dC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
dmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRo
LmZsb29yKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAg
dGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcjwoZmxvYXQs
ZmxvYXQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgbG9nKGZsb2F0KSIsCiAgICAgICAg
ICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFts
ZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZh
bHVlKCkgPCByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRo
LmZyb3VuZChNYXRoLmxvZyh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwog
CiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0
b3I8PShpbnQsaW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IHJvdW5kKGZsb2F0KSIs
CiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxl
ZnQubG9hZFZhbHVlKCkgPD0gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goTWF0aC5mcm91bmQoTWF0aC5yb3VuZCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAg
ICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZl
IGJvb2wgb3BlcmF0b3I8PSh1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQg
c3FydChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpIDw9IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguc3FydCh2YWx1ZS5sb2FkVmFsdWUo
KSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAg
ICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I8PShmbG9hdCxmbG9hdCkiLAorICAgICAgICAgICAg
Im5hdGl2ZSBmbG9hdCB0cnVuYyhmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpIDw9IHJpZ2h0LmxvYWRW
YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0p
ID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgudHJ1bmMo
dmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9t
YXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPihpbnQsaW50KSIsCisg
ICAgICAgICAgICAibmF0aXZlIGZsb2F0IGRkeChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9
PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRd
KSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID4gcmln
aHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZhbHVlXSkgPT4gRVB0ci5ib3goMCk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlz
Ll9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPih1aW50LHVpbnQp
IiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgZGR5KGZsb2F0KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCBy
aWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkg
PiByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCgwKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAg
IHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I+KGZsb2F0
LGZsb2F0KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IHBvdyhmbG9hdCxmbG9hdCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0
LmxvYWRWYWx1ZSgpID4gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnBvdyhsZWZ0LmxvYWRWYWx1ZSgpLCByaWdodC5sb2Fk
VmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0g
ICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I+PShpbnQsaW50KSIsCisgICAgICAgICAg
ICAibmF0aXZlIGJvb2wgaXNmaW5pdGUoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewot
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA+PSByaWdodC5s
b2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFs
dWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChOdW1iZXIuaXNGaW5pdGUodmFs
dWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I+PSh1aW50LHVpbnQpIiwKKyAg
ICAgICAgICAgICJuYXRpdmUgYm9vbCBpc2luZihmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9
PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRd
KSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID49IHJp
Z2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KCh2YWx1ZS5sb2FkVmFs
dWUoKSA9PSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpIHx8ICh2YWx1ZS5sb2FkVmFsdWUoKSA9
PSBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkpKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIGJvb2wgaXNuYW4oZmxvYXQpIiwK
KyAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTnVtYmVyLmlz
TmFOKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAvLyBG
SVhNRTogSW1wbGVtZW50IHRoaXMuCisgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAibmF0aXZlIGJvb2wgaXNub3JtYWwoaGFsZikiLAorICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChpc05hTih2YWx1ZS5sb2FkVmFsdWUoKSkpOwogICAgICAg
ICAgICAgfSk7CiAKKyAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgogICAgICAgICB0
aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPj0oZmxvYXQs
ZmxvYXQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgYm9vbCBpc25vcm1hbChmbG9hdCkiLAorICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChpc05hTih2YWx1ZS5s
b2FkVmFsdWUoKSkpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgYXRhbjIoZmxvYXQsZmxvYXQpIiwKICAgICAgICAg
ICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xl
ZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFs
dWUoKSA+PSByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KE1hdGguZnJvdW5kKE1hdGguYXRhbjIobGVmdC5sb2FkVmFsdWUoKSwgcmlnaHQubG9hZFZhbHVl
KCkpKSk7CiAgICAgICAgICAgICB9KTsKIAotICAgICAgICBmb3IgKGxldCBuYXRpdmVWZWN0b3JU
eXBlTmFtZSBvZiBhbGxWZWN0b3JUeXBlTmFtZXMoKSkKLSAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoYG5hdGl2ZSB0eXBlZGVmICR7bmF0aXZlVmVjdG9yVHlwZU5hbWV9YCwgdHlwZSA9PiB7Ci0g
ICAgICAgICAgICAgICAgdHlwZS5pc1ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIGludCBhc2ludChmbG9hdCkiLAorICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFs
dWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChiaXR3aXNlQ2FzdChGbG9hdDMy
QXJyYXksIEludDMyQXJyYXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsK
IAotICAgICAgICBmb3IgKGxldCBzd2l6emxlIG9mIFN3aXp6bGVPcC5mdW5jdGlvbnMoKSkKLSAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoc3dpenpsZS50b1N0cmluZygpLCBmdW5jID0+IHN3aXp6
bGUuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKSk7CisgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAibmF0aXZlIHVpbnQgYXN1aW50KGZsb2F0KSIsCisgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1
ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGJpdHdpc2VDYXN0KEZsb2F0MzJB
cnJheSwgVWludDMyQXJyYXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICB9KTsK
IAotICAgICAgICBmb3IgKGxldCBib29sT3Agb2YgT3BlcmF0b3JCb29sLmZ1bmN0aW9ucygpKQot
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldChib29sT3AudG9TdHJpbmcoKSwgZnVuYyA9PiBib29s
T3AuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKSk7CisgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGFzZmxvYXQoaW50KSIsCisgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1
ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGJpdHdpc2VDYXN0KEludDMyQXJy
YXksIEZsb2F0MzJBcnJheSwgdmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgIH0pOwog
Ci0gICAgICAgIGZvciAobGV0IGFuZGVySW5kZXggb2YgT3BlcmF0b3JBbmRlckluZGV4ZXIuZnVu
Y3Rpb25zKCkpCi0gICAgICAgICAgICB0aGlzLl9tYXAuc2V0KGFuZGVySW5kZXgudG9TdHJpbmco
KSwgZnVuYyA9PiBhbmRlckluZGV4Lmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYykpOwor
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBhc2Zsb2F0
KHVpbnQpIiwKKyAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
Yml0d2lzZUNhc3QoVWludDMyQXJyYXksIEZsb2F0MzJBcnJheSwgdmFsdWUubG9hZFZhbHVlKCkp
KTsKKyAgICAgICAgICAgIH0pOwogCi0gICAgICAgIGZvciAobGV0IGNhc3Qgb2YgQnVpbHRpblZl
Y3RvckNvbnN0cnVjdG9ycy5mdW5jdGlvbnMoKSkKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
Y2FzdC50b1N0cmluZygpLCBmdW5jID0+IGNhc3QuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihm
dW5jKSk7CisgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KKyAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgZjE2dG9mMzIodWludCkiLAorICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgwKTsKKyAgICAgICAg
ICAgIH0pOwogCi0gICAgICAgIGZvciAobGV0IGdldHRlciBvZiBCdWlsdGluVmVjdG9ySW5kZXhH
ZXR0ZXIuZnVuY3Rpb25zKCkpCi0gICAgICAgICAgICB0aGlzLl9tYXAuc2V0KGdldHRlci50b1N0
cmluZygpLCBmdW5jID0+IGdldHRlci5pbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsK
KyAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgIm5hdGl2ZSB1aW50IGYzMnRvZjE2KGZsb2F0KSIsCisgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1
ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KDApOworICAgICAgICAgICAgfSk7
CiAKLSAgICAgICAgZm9yIChsZXQgc2V0dGVyIG9mIEJ1aWx0aW5WZWN0b3JJbmRleFNldHRlci5m
dW5jdGlvbnMoKSkKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoc2V0dGVyLnRvU3RyaW5nKCks
IGZ1bmMgPT4gc2V0dGVyLmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYykpOworICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5hdGl2ZSB2b2lkIEFsbE1lbW9yeUJhcnJp
ZXJXaXRoR3JvdXBTeW5jKCkiLAorICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKCkge307CisgICAgICAgICAgICB9KTsK
KworICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5hdGl2ZSB2b2lkIERldmlj
ZU1lbW9yeUJhcnJpZXJXaXRoR3JvdXBTeW5jKCkiLAorICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKCkge307CisgICAg
ICAgICAgICB9KTsKIAotICAgICAgICBmb3IgKGxldCBlcXVhbGl0eU9wZXJhdG9yIG9mIEJ1aWx0
aW5WZWN0b3JFcXVhbGl0eU9wZXJhdG9yLmZ1bmN0aW9ucygpKQotICAgICAgICAgICAgdGhpcy5f
bWFwLnNldChlcXVhbGl0eU9wZXJhdG9yLnRvU3RyaW5nKCksIGZ1bmMgPT4gZXF1YWxpdHlPcGVy
YXRvci5pbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsKKyAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICJuYXRpdmUgdm9pZCBHcm91cE1lbW9yeUJhcnJpZXJXaXRoR3Jv
dXBTeW5jKCkiLAorICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKCkge307CisgICAgICAgICAgICB9KTsKKworICAgICAg
ICBmb3IgKGxldCBuYXRpdmVWZWN0b3JUeXBlTmFtZSBvZiBhbGxWZWN0b3JUeXBlTmFtZXMoKSkg
eworICAgICAgICAgICAgdGhpcy5fbWFwLnNldChgbmF0aXZlIHR5cGVkZWYgJHtuYXRpdmVWZWN0
b3JUeXBlTmFtZX1gLCB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICB0eXBlLmlzUHJpbWl0aXZl
ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CiAKICAgICAgICAgZm9yIChsZXQg
Z2V0dGVyIG9mIEJ1aWx0aW5WZWN0b3JHZXR0ZXIuZnVuY3Rpb25zKCkpCiAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KGdldHRlci50b1N0cmluZygpLCBmdW5jID0+IGdldHRlci5pbnN0YW50aWF0
ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsKIAogICAgICAgICBmb3IgKGxldCBzZXR0ZXIgb2YgQnVp
bHRpblZlY3RvclNldHRlci5mdW5jdGlvbnMoKSkKICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
c2V0dGVyLnRvU3RyaW5nKCksIGZ1bmMgPT4gc2V0dGVyLmluc3RhbnRpYXRlSW1wbGVtZW50YXRp
b24oZnVuYykpOworCisgICAgICAgIGZvciAobGV0IGdldHRlciBvZiBCdWlsdGluTWF0cml4R2V0
dGVyLmZ1bmN0aW9ucygpKQorICAgICAgICAgICAgdGhpcy5fbWFwLnNldChnZXR0ZXIudG9TdHJp
bmcoKSwgZnVuYyA9PiBnZXR0ZXIuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKSk7CisK
KyAgICAgICAgZm9yIChsZXQgc2V0dGVyIG9mIEJ1aWx0aW5NYXRyaXhTZXR0ZXIuZnVuY3Rpb25z
KCkpCisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KHNldHRlci50b1N0cmluZygpLCBmdW5jID0+
IHNldHRlci5pbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsKKworICAgICAgICBmb3Ig
KGxldCB0eXBlIG9mIFsiYm9vbCIsICJ1Y2hhciIsICJ1c2hvcnQiLCAidWludCIsICJjaGFyIiwg
InNob3J0IiwgImludCIsICJoYWxmIiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlMUQ8
JHt0eXBlfT4sc2FtcGxlcixmbG9hdCBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQgbG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZTFEPCR7dHlwZX0+LGludDIgbG9j
YXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHZhciBtaXBJRCA9IGxvY2F0aW9uLmdldCgwKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA8IDAgfHwgbWlwSUQgPj0gdGV4Lmxlbmd0aCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRd
IiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIG1pcCA9IHRleFttaXBJRF07CisgICAgICAgICAgICAg
ICAgICAgICAgICB2YXIgcG9zaXRpb24gPSBsb2NhdGlvbi5nZXQoMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAocG9zaXRpb24gPCAwIHx8IHBvc2l0aW9uID49IHRleC5taXApCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJU
ZXh0dXJlIHJlYWQgbm90IGluIGJvdW5kcyIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIEVQdHIuYm94KG1pcFtwb3NpdGlvbl0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmUxRDwke3R5cGV9PixpbnQyIGxvY2F0aW9u
LGludCBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24s
IG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ZXggPSB0ZXh0dXJlLmxv
YWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1pcElEID0gbG9jYXRpb24u
Z2V0KDApOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEIDwgMCB8fCBtaXBJRCA+
PSB0ZXgubGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJh
cEVycm9yKCJbbG9hZF0iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0
ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWlwID0gdGV4W21pcElEXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwb3NpdGlvbiA9IGxvY2F0aW9uLmdldCgxKSAr
IG9mZnNldC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3NpdGlv
biA8IDAgfHwgcG9zaXRpb24gPj0gdGV4Lm1pcCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgcmVhZCBub3QgaW4gYm91
bmRzIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3gobWlwW3Bvc2l0
aW9uXSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERp
bWVuc2lvbnMoVGV4dHVyZTFEPCR7dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdp
ZHRoLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICB2YXIgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHZhciBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZW5ndGgpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJSZWFkaW5nIGZyb20g
bm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFttaXBJRF0ubGVuZ3Ro
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUo
KS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgZm9yIChsZXQgbGVuZ3RoIG9m
IFsyLCAzLCA0XSkgeworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlw
ZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0
aH0gU2FtcGxlKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0IGxvY2F0
aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1
cmUxRDwke3R5cGV9JHtsZW5ndGh9PixpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdmFyIHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdmFyIG1pcElEID0gbG9jYXRpb24uZ2V0KDApOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChtaXBJRCA8IDAgfHwgbWlwSUQgPj0gdGV4Lmxlbmd0aCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIs
ICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWlwID0gdGV4W21pcElEXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YXIgcG9zaXRpb24gPSBsb2NhdGlvbi5nZXQoMSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHBvc2l0aW9uIDwgMCB8fCBwb3NpdGlvbiA+PSB0ZXgu
bWlwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJv
cigiW2xvYWRdIiwgIlRleHR1cmUgcmVhZCBub3QgaW4gYm91bmRzIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBtaXBbcG9zaXRpb25dOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBuZXcgRVB0cihuZXcgRUJ1ZmZlcig0KSwgMCk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7
ICsraSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNldChpLCBlbGVt
ZW50W2ldKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4saW50MiBsb2NhdGlv
bixpbnQgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwg
bG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGV4
ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIg
bWlwSUQgPSBsb2NhdGlvbi5nZXQoMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KG1pcElEIDwgMCB8fCBtaXBJRCA+PSB0ZXgubGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlJlYWRpbmcgZnJvbSBu
b25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHZhciBtaXAgPSB0ZXhbbWlwSURdOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZhciBwb3NpdGlvbiA9IGxvY2F0aW9uLmdldCgxKSArIG9mZnNldC5sb2FkVmFsdWUoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9zaXRpb24gPCAwIHx8IHBvc2l0aW9uID49
IHRleC5taXApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJh
cEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSByZWFkIG5vdCBpbiBib3VuZHMiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2YXIgZWxlbWVudCA9IG1pcFtwb3NpdGlvbl07CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBFUHRyKG5ldyBFQnVmZmVyKDQp
LCAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxl
bmd0aDsgKytpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuc2V0KGks
IGVsZW1lbnRbaV0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
dm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9Pix1aW50IE1pcExl
dmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgbnVt
YmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRleCA9IHRl
eHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1pcElE
ID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KG1pcElEID49IHRleC5sZW5ndGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1p
cCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4W21pcElEXS5sZW5ndGgpLCAxKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5
RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAg
fQogCiAgICAgYWRkKHRoaW5nKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvTWF0cml4VHlwZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01hdHJp
eFR5cGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYmQ5OTZiZjQ2MzM3NzA2ODUxNDBiOTAwNTJmYWExOWRjYTYy
MTJhOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01h
dHJpeFR5cGUuanMKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisidXNlIHN0cmljdCI7CisKK2NsYXNzIE1hdHJpeFR5cGUgZXh0ZW5k
cyBOYXRpdmVUeXBlIHsKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGVBcmd1bWVu
dHMpCisgICAgeworICAgICAgICBzdXBlcihvcmlnaW4sIG5hbWUsIHR5cGVBcmd1bWVudHMpOwor
ICAgIH0KKworICAgIGdldCBlbGVtZW50VHlwZSgpIHsgcmV0dXJuIHRoaXMudHlwZUFyZ3VtZW50
c1swXTsgfQorICAgIGdldCBudW1Sb3dzKCkgeyByZXR1cm4gdGhpcy50eXBlQXJndW1lbnRzWzFd
OyB9CisgICAgZ2V0IG51bUNvbHVtbnMoKSB7IHJldHVybiB0aGlzLnR5cGVBcmd1bWVudHNbMl07
IH0KKyAgICBnZXQgbnVtUm93c1ZhbHVlKCkgeyByZXR1cm4gdGhpcy5udW1Sb3dzLnZhbHVlOyB9
CisgICAgZ2V0IG51bUNvbHVtbnNWYWx1ZSgpIHsgcmV0dXJuIHRoaXMubnVtQ29sdW1ucy52YWx1
ZTsgfQorICAgIGdldCBzaXplKCkgeyByZXR1cm4gdGhpcy5lbGVtZW50VHlwZS5zaXplICogdGhp
cy5udW1Sb3dzVmFsdWUgKiB0aGlzLm51bUNvbHVtbnNWYWx1ZTsgfQorCisgICAgdW5pZnlJbXBs
KHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIpCisgICAgeworICAgICAgICBpZiAoIShvdGhlciBp
bnN0YW5jZW9mIE1hdHJpeFR5cGUpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
ICAgIGlmICh0aGlzLm51bVJvd3NWYWx1ZSAhPT0gb3RoZXIubnVtUm93c1ZhbHVlIHx8IHRoaXMu
bnVtQ29sdW1uc1ZhbHVlICE9PSBvdGhlci5udW1Db2x1bW5zVmFsdWUpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFR5cGUudW5pZnkodW5p
ZmljYXRpb25Db250ZXh0LCBvdGhlci5lbGVtZW50VHlwZSk7CisgICAgfQorCisgICAgcG9wdWxh
dGVEZWZhdWx0VmFsdWUoYnVmZmVyLCBvZmZzZXQpCisgICAgeworICAgICAgICBmb3IgKGxldCBp
ID0gMDsgaSA8IHRoaXMubnVtUm93c1ZhbHVlICogdGhpcy5ydW5Db2x1bW5zVmFsdWU7ICsraSkK
KyAgICAgICAgICAgIHRoaXMuZWxlbWVudFR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUoYnVmZmVy
LCBvZmZzZXQgKyBpICogdGhpcy5lbGVtZW50VHlwZS5zaXplKTsKKyAgICB9CisKKyAgICB0b1N0
cmluZygpCisgICAgeworICAgICAgICByZXR1cm4gYG5hdGl2ZSB0eXBlZGVmIG1hdHJpeDwke3Ro
aXMuZWxlbWVudFR5cGV9LCAke3RoaXMubnVtUm93c1ZhbHVlfSwgJHt0aGlzLm51bUNvbHVtbnNW
YWx1ZX0+YDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9OYW1lQ29udGV4dC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVD
b250ZXh0LmpzCmluZGV4IGRjNjg1NzhmZjU1NmIzMTJiMDkyN2VmM2MwZGZmYTAwNjhmMWJlNjMu
LmM4OTk2OGM3Nzk2MDdiN2NhYmNjNmE1Zjk2OWI0YWI5MTNlNzI2M2UgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVDb250ZXh0LmpzCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVDb250ZXh0LmpzCkBAIC03MSw3ICs3MSw3IEBAIGNs
YXNzIE5hbWVDb250ZXh0IHsKIAogICAgICAgICBpZiAodGhpbmcua2luZCA9PSBUeXBlKSB7CiAg
ICAgICAgICAgICB0aGlzLl9zZXQuYWRkKHRoaW5nKTsKLSAgICAgICAgICAgIGlmICh0aGluZy5u
YW1lID09ICJ2ZWN0b3IiKSB7CisgICAgICAgICAgICBpZiAodGhpbmcudHlwZUFyZ3VtZW50cyAm
JiB0aGluZy50eXBlQXJndW1lbnRzLmxlbmd0aCAhPSAwKSB7CiAgICAgICAgICAgICAgICAgbGV0
IGFycmF5ID0gdGhpcy5fbWFwLmdldCh0aGluZy5uYW1lKTsKICAgICAgICAgICAgICAgICBpZiAo
IWFycmF5KSB7CiAgICAgICAgICAgICAgICAgICAgIGFycmF5ID0gW107CmRpZmYgLS1naXQgYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVUeXBlLmpzIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlVHlwZS5qcwppbmRleCAyMzgxYjVhNmIwYjAxMGUwZmRk
NGRjNTM1NTBhOGVhNmI0ZjgzNDdiLi5iMzY4YTJlOGIyNGY1NDhlYWI4OGEyODI0YjQ5NWJlMjNj
ODdjYjg1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVU
eXBlLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZVR5cGUuanMK
QEAgLTY2LDYgKzY2LDggQEAgY2xhc3MgTmF0aXZlVHlwZSBleHRlbmRzIFR5cGUgewogICAgIHsK
ICAgICAgICAgaWYgKG5hbWUgPT0gInZlY3RvciIpCiAgICAgICAgICAgICByZXR1cm4gbmV3IFZl
Y3RvclR5cGUob3JpZ2luLCBuYW1lLCB0eXBlQXJndW1lbnRzKTsKKyAgICAgICAgaWYgKG5hbWUg
PT0gIm1hdHJpeCIpCisgICAgICAgICAgICByZXR1cm4gbmV3IE1hdHJpeFR5cGUob3JpZ2luLCBu
YW1lLCB0eXBlQXJndW1lbnRzKTsKIAogICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZVR5cGUob3Jp
Z2luLCBuYW1lLCB0eXBlQXJndW1lbnRzKTsKICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9PcGVyYXRvckFuZGVySW5kZXguanMgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9PcGVyYXRvckFuZGVySW5kZXguanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDY3MDM3MWZiOTBmMmExZmQxNWMyZGRmNmM0YTM5NmMwZjIzOWNlYmYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvT3BlcmF0b3JBbmRlckluZGV4LmpzCisrKyAvZGV2L251bGwKQEAg
LTEsNzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIE9wZXJhdG9yQW5kZXJJbmRleGVyIHsKLSAgICBjb25z
dHJ1Y3RvcihiYXNlVHlwZU5hbWUsIGFkZHJlc3NTcGFjZSkKLSAgICB7Ci0gICAgICAgIHRoaXMu
X2Jhc2VUeXBlTmFtZSA9IGJhc2VUeXBlTmFtZTsKLSAgICAgICAgdGhpcy5fYWRkcmVzc1NwYWNl
ID0gYWRkcmVzc1NwYWNlOwotICAgIH0KLQotICAgIGdldCBhZGRyZXNzU3BhY2UoKSB7IHJldHVy
biB0aGlzLl9hZGRyZXNzU3BhY2U7IH0KLSAgICBnZXQgYmFzZVR5cGVOYW1lKCkgeyByZXR1cm4g
dGhpcy5fYmFzZVR5cGVOYW1lOyB9Ci0KLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICBy
ZXR1cm4gYG5hdGl2ZSAke3RoaXMuYmFzZVR5cGVOYW1lfSogJHt0aGlzLmFkZHJlc3NTcGFjZX0g
b3BlcmF0b3ImW10oJHt0aGlzLmJhc2VUeXBlTmFtZX1bXSAke3RoaXMuYWRkcmVzc1NwYWNlfSx1
aW50KWA7Ci0gICAgfQotCi0gICAgc3RhdGljIGZ1bmN0aW9ucygpCi0gICAgewotICAgICAgICBp
ZiAoIXRoaXMuX2Z1bmN0aW9ucykgewotICAgICAgICAgICAgdGhpcy5fZnVuY3Rpb25zID0gW107
Ci0KLSAgICAgICAgICAgIGNvbnN0IHR5cGVOYW1lcyA9IFsgInVpbnQiLCAiaW50IiwgImZsb2F0
IiwgImJvb2wiIF0uY29uY2F0KGFsbFZlY3RvclR5cGVOYW1lcygpKTsKLSAgICAgICAgICAgIGNv
bnN0IGFkZHJlc3NTcGFjZXMgPSBbICJ0aHJlYWQiLCAidGhyZWFkZ3JvdXAiLCAiZGV2aWNlIiwg
ImNvbnN0YW50IiBdOwotCi0gICAgICAgICAgICBmb3IgKGxldCBhZGRyZXNzU3BhY2Ugb2YgYWRk
cmVzc1NwYWNlcykgewotICAgICAgICAgICAgICAgIGZvciAobGV0IHR5cGVOYW1lIG9mIHR5cGVO
YW1lcykKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fZnVuY3Rpb25zLnB1c2gobmV3IE9wZXJh
dG9yQW5kZXJJbmRleGVyKHR5cGVOYW1lLCBhZGRyZXNzU3BhY2UpKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhpcy5fZnVuY3Rpb25zOwotICAgIH0KLQotICAg
IGluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYykKLSAgICB7Ci0gICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW3JlZiwgaW5kZXhdLCBub2RlKSA9PiB7Ci0gICAgICAgICAgICByZWYg
PSByZWYubG9hZFZhbHVlKCk7Ci0gICAgICAgICAgICBpZiAoIXJlZikKLSAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgV1RyYXBFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJOdWxsIGRl
cmVmZXJlbmNlIik7Ci0gICAgICAgICAgICBpbmRleCA9IGluZGV4LmxvYWRWYWx1ZSgpOwotICAg
ICAgICAgICAgaWYgKGluZGV4ID4gcmVmLmxlbmd0aCkKLSAgICAgICAgICAgICAgICB0aHJvdyBu
ZXcgV1RyYXBFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJBcnJheSBpbmRleCAiICsg
aW5kZXggKyAiIGlzIG91dCBvZiBib3VuZHMgb2YgIiArIHJlZik7Ci0gICAgICAgICAgICByZXR1
cm4gRVB0ci5ib3gocmVmLnB0ci5wbHVzKGluZGV4ICogbm9kZS5hcmd1bWVudFR5cGVzWzBdLmVs
ZW1lbnRUeXBlLnNpemUpKTsKLSAgICAgICAgfTsKLSAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
bkRhdGEgPSB0aGlzOwotICAgIH0KLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9PcGVyYXRvckFuZGVySW5kZXhl
ci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL09wZXJhdG9yQW5kZXJJbmRleGVy
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjAxMmYwNjc4MGY3YWQ5MzIyZDZjN2JlNDc5MGNkNDQ2MTgxZjg5YjQK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9PcGVyYXRv
ckFuZGVySW5kZXhlci5qcwpAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKyJ1c2Ugc3RyaWN0IjsKKworY2xhc3MgT3BlcmF0b3JBbmRl
ckluZGV4ZXIgeworICAgIGNvbnN0cnVjdG9yKGJhc2VUeXBlTmFtZSwgYWRkcmVzc1NwYWNlKQor
ICAgIHsKKyAgICAgICAgdGhpcy5fYmFzZVR5cGVOYW1lID0gYmFzZVR5cGVOYW1lOworICAgICAg
ICB0aGlzLl9hZGRyZXNzU3BhY2UgPSBhZGRyZXNzU3BhY2U7CisgICAgfQorCisgICAgZ2V0IGFk
ZHJlc3NTcGFjZSgpIHsgcmV0dXJuIHRoaXMuX2FkZHJlc3NTcGFjZTsgfQorICAgIGdldCBiYXNl
VHlwZU5hbWUoKSB7IHJldHVybiB0aGlzLl9iYXNlVHlwZU5hbWU7IH0KKworICAgIHRvU3RyaW5n
KCkKKyAgICB7CisgICAgICAgIHJldHVybiBgbmF0aXZlICR7dGhpcy5iYXNlVHlwZU5hbWV9KiAk
e3RoaXMuYWRkcmVzc1NwYWNlfSBvcGVyYXRvciZbXSgke3RoaXMuYmFzZVR5cGVOYW1lfVtdICR7
dGhpcy5hZGRyZXNzU3BhY2V9LHVpbnQpYDsKKyAgICB9CisKKyAgICBpbnN0YW50aWF0ZUltcGxl
bWVudGF0aW9uKGZ1bmMpCisgICAgeworICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFty
ZWYsIGluZGV4XSwgbm9kZSkgPT4geworICAgICAgICAgICAgcmVmID0gcmVmLmxvYWRWYWx1ZSgp
OworICAgICAgICAgICAgaWYgKCFyZWYpCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFw
RXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiTnVsbCBkZXJlZmVyZW5jZSIpOworICAg
ICAgICAgICAgaW5kZXggPSBpbmRleC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgIGlmIChpbmRl
eCA+IHJlZi5sZW5ndGgpCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Iobm9k
ZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiQXJyYXkgaW5kZXggIiArIGluZGV4ICsgIiBpcyBvdXQg
b2YgYm91bmRzIG9mICIgKyByZWYpOworICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHJlZi5w
dHIucGx1cyhpbmRleCAqIG5vZGUuYXJndW1lbnRUeXBlc1swXS5lbGVtZW50VHlwZS5zaXplKSk7
CisgICAgICAgIH07CisgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb25EYXRhID0gdGhpczsKKyAg
ICB9Cit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9PcGVyYXRv
ckJvb2wuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9PcGVyYXRvckJvb2wuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU4YmIwZTA5YjgwYmVlMTA3MDg5YjFjOWQy
MDBjYmM2OGE1Y2I5ZDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvT3BlcmF0b3JCb29sLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIE9wZXJhdG9yQm9vbCB7Ci0gICAg
Y29uc3RydWN0b3IoYmFzZVR5cGVOYW1lKQotICAgIHsKLSAgICAgICAgdGhpcy5fYmFzZVR5cGVO
YW1lID0gYmFzZVR5cGVOYW1lOwotICAgIH0KLQotICAgIGdldCBiYXNlVHlwZU5hbWUoKSB7IHJl
dHVybiB0aGlzLl9iYXNlVHlwZU5hbWU7IH0KLQotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBgbmF0aXZlIG9wZXJhdG9yIGJvb2woJHt0aGlzLmJhc2VUeXBlTmFtZX0pYDsK
LSAgICB9Ci0KLSAgICBzdGF0aWMgZnVuY3Rpb25zKCkKLSAgICB7Ci0gICAgICAgIC8vIEZJWE1F
OiBUaGVzZSBvcGVyYXRvcnMgc2hvdWxkIGJlIGluIHRoZSBzdGFuZGFyZCBsaWJyYXJ5IHdoZXJl
IHBvc3NpYmxlLgotICAgICAgICBpZiAoIU9wZXJhdG9yQm9vbC5fZnVuY3Rpb25zKSB7Ci0gICAg
ICAgICAgICBPcGVyYXRvckJvb2wuX2Z1bmN0aW9ucyA9IFtdOwotCi0gICAgICAgICAgICAvLyBi
b29sIGlzIG5vdCBpbmNsdWRlZCBiZWNhdXNlIHRoaXMgaXMgZ2VuZXJhdGVkIGJ5IHRoZSBjb3B5
IGNvbnN0cnVjdG9yLgotICAgICAgICAgICAgLy8gRklYTUU6IEluY2x1ZGUgYWxsIG5hdGl2ZSB0
eXBlcy4KLSAgICAgICAgICAgIGNvbnN0IHR5cGVOYW1lcyA9IFsgInVjaGFyIiwgInVpbnQiLCAi
aW50IiwgImZsb2F0IiBdLmNvbmNhdChhbGxWZWN0b3JUeXBlTmFtZXMoKSk7Ci0KLSAgICAgICAg
ICAgIGZvciAobGV0IHR5cGVOYW1lIG9mIHR5cGVOYW1lcykKLSAgICAgICAgICAgICAgICBPcGVy
YXRvckJvb2wuX2Z1bmN0aW9ucy5wdXNoKG5ldyBPcGVyYXRvckJvb2wodHlwZU5hbWUpKTsKLSAg
ICAgICAgfQotICAgICAgICByZXR1cm4gT3BlcmF0b3JCb29sLl9mdW5jdGlvbnM7Ci0gICAgfQot
Ci0gICAgaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKQotICAgIHsKLSAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbcmVmXSwgbm9kZSkgPT4gewotICAgICAgICAgICAgY29uc3Qg
c2l6ZSA9IG5vZGUuYXJndW1lbnRUeXBlc1swXS5zaXplOwotICAgICAgICAgICAgZm9yIChsZXQg
aSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAgICAgICAgICBpZiAoISFyZWYuZ2V0KGkp
KQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3godHJ1ZSk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICByZXR1cm4gRVB0ci5ib3goZmFsc2UpOwotICAgICAgICB9Ci0gICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb25EYXRhID0gdGhpczsKLSAgICB9Ci19ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvUHJlcGFyZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanMK
aW5kZXggOWZhY2E4NmUyMDU3NTViMmM2YTY2ZjQxMmI1NjkyZTk5ZTdiMDNhZi4uODM0NTkyZDM2
ZjM0NTdkZmE4NmI1NzUxYmI3MjYyNDcyYTNmMGEyZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvUHJlcGFyZS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9QcmVwYXJlLmpzCkBAIC00Niw3ICs0Niw2IEBAIGxldCBwcmVwYXJlID0gKCgpID0+
IHsKICAgICAgICAgcmVzb2x2ZVR5cGVEZWZzSW5UeXBlcyhwcm9ncmFtKTsKICAgICAgICAgY2hl
Y2tSZWN1cnNpdmVUeXBlcyhwcm9ncmFtKTsKICAgICAgICAgc3ludGhlc2l6ZVN0cnVjdEFjY2Vz
c29ycyhwcm9ncmFtKTsKLSAgICAgICAgc3ludGhlc2l6ZU9wZXJhdG9yQm9vbChwcm9ncmFtKTsK
ICAgICAgICAgc3ludGhlc2l6ZUVudW1GdW5jdGlvbnMocHJvZ3JhbSk7CiAgICAgICAgIHN5bnRo
ZXNpemVBcnJheU9wZXJhdG9yTGVuZ3RoKHByb2dyYW0pOwogICAgICAgICBzeW50aGVzaXplQ29w
eUNvbnN0cnVjdG9yT3BlcmF0b3IocHJvZ3JhbSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm9ncmFtLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvUHJvZ3JhbS5qcwppbmRleCAxMTE2YzRmNTc3NTYyMjE1ZmRkNzQyOGEzMTc1NzlhOTI5MTY1
NDE0Li5hYzFkZWZiNGZiYWFhNmU4ZTEzNDI5NzM0Y2NmNDkxNTMzOWJhNTM5IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm9ncmFtLmpzCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb2dyYW0uanMKQEAgLTUxLDcgKzUxLDcgQEAgY2xhc3Mg
UHJvZ3JhbSBleHRlbmRzIE5vZGUgewogICAgICAgICAgICAgICAgIHRoaXMuZnVuY3Rpb25zLnNl
dChzdGF0ZW1lbnQubmFtZSwgYXJyYXkgPSBbXSk7CiAgICAgICAgICAgICBhcnJheS5wdXNoKHN0
YXRlbWVudCk7CiAgICAgICAgIH0gZWxzZSBpZiAoc3RhdGVtZW50IGluc3RhbmNlb2YgVHlwZSkg
ewotICAgICAgICAgICAgaWYgKHN0YXRlbWVudC5pc05hdGl2ZSAmJiBzdGF0ZW1lbnQubmFtZSA9
PSAidmVjdG9yIikgeworICAgICAgICAgICAgaWYgKHN0YXRlbWVudC5pc05hdGl2ZSAmJiBzdGF0
ZW1lbnQudHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gMCkgewogICAgICAgICAgICAgICAgIGxldCBh
cnJheSA9IHRoaXMudHlwZXMuZ2V0KHN0YXRlbWVudC5uYW1lKTsKICAgICAgICAgICAgICAgICBp
ZiAoIWFycmF5KQogICAgICAgICAgICAgICAgICAgICB0aGlzLnR5cGVzLnNldChzdGF0ZW1lbnQu
bmFtZSwgYXJyYXkgPSBbXSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9SZXdyaXRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVy
LmpzCmluZGV4IDk0ZDNhNzYyZTM4ZmI5MjFjNTg0Y2JhZmZmMWY1OTQ3OGViYjc5MWQuLjdjMmRm
YmE2OTU1MzM5ODg0ZGJiZjkxMDQ3OGQ0M2VmZmRlYzY1Y2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzCkBAIC0zOTEsNSArMzkxLDExIEBAIGNsYXNzIFJld3Jp
dGVyIHsKICAgICAgICAgdmVjVHlwZS5fZWxlbWVudFR5cGUgPSBub2RlLmVsZW1lbnRUeXBlLnZp
c2l0KHRoaXMpOwogICAgICAgICByZXR1cm4gdmVjVHlwZTsKICAgICB9CisKKyAgICB2aXNpdE1h
dHJpeFR5cGUobm9kZSkKKyAgICB7CisgICAgICAgIGNvbnN0IG1hdFR5cGUgPSBuZXcgTWF0cml4
VHlwZShub2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnR5cGVBcmd1bWVudHMubWFwKGFyZ3Vt
ZW50ID0+IGFyZ3VtZW50LnZpc2l0KHRoaXMpKSk7CisgICAgICAgIHJldHVybiBtYXRUeXBlOwor
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJ
UlYuaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKaW5kZXgg
ZmYyYzAyYzdiYWZjYTRkMWUyY2Y4MzNjNmM3OWZhMWNlYzg5MDEzYy4uNzhkMDA4ZjgzNWY5ZTlj
MjM0ZWYyZGY2ZDZkZWVhM2Y3NDI2Y2U2NSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU1BJUlYuaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9TUElSVi5odG1sCkBAIC0xNyw3ICsxNyw2IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iQ3Jl
YXRlTGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNyZWF0ZUxpdGVyYWxU
eXBlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUHJvcGVydHlBY2Nlc3NFeHByZXNz
aW9uLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iU3dpenpsZU9wLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iTmF0aXZlVHlwZS5qcyI+PC9zY3JpcHQ+CiAKICAgICA8c2Ny
aXB0IHNyYz0iQWRkcmVzc1NwYWNlLmpzIj48L3NjcmlwdD4KQEAgLTI5LDEyICsyOCwxMCBAQCB0
ZCB7CiAgICAgPHNjcmlwdCBzcmM9IkJsb2NrLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iQm9vbExpdGVyYWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJCcmVhay5qcyI+
PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkJ1aWx0aW5WZWN0b3JDb25zdHJ1Y3RvcnMuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJCdWlsdGluTWF0cml4R2V0dGVyLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iQnVpbHRpbk1hdHJpeFNldHRlci5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9IkJ1aWx0aW5WZWN0b3JHZXR0ZXIuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9yU2V0dGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2Ny
aXB0IHNyYz0iQnVpbHRpblZlY3RvckluZGV4R2V0dGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2Ny
aXB0IHNyYz0iQnVpbHRpblZlY3RvckluZGV4U2V0dGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2Ny
aXB0IHNyYz0iQnVpbHRpblZlY3RvckVxdWFsaXR5T3BlcmF0b3IuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJDYWxsRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IkNhbGxGdW5jdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNoZWNrLmpz
Ij48L3NjcmlwdD4KQEAgLTk2LDYgKzkzLDcgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJMb29w
Q2hlY2tlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1ha2VBcnJheVJlZkV4cHJl
c3Npb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNYWtlUHRyRXhwcmVzc2lvbi5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ik1hdHJpeFR5cGUuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJOYW1lQ29udGV4dC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9Ik5hbWVGaW5kZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJOYW1lUmVzb2x2
ZXIuanMiPjwvc2NyaXB0PgpAQCAtMTAzLDkgKzEwMSw4IEBAIHRkIHsKICAgICA8c2NyaXB0IHNy
Yz0iTm9ybWFsVXNlUHJvcGVydHlSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9Ik51bGxMaXRlcmFsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTnVsbFR5cGUu
anMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJPcGVyYXRvckFuZGVySW5kZXguanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJPcGVyYXRvckFuZGVySW5kZXhlci5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik9wZXJhdG9yQXJyYXlSZWZMZW5ndGguanMiPjwvc2NyaXB0
PgotICAgIDxzY3JpcHQgc3JjPSJPcGVyYXRvckJvb2wuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJPcmlnaW5LaW5kLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iT3Zlcmxv
YWRSZXNvbHV0aW9uRmFpbHVyZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlBhcnNl
LmpzIj48L3NjcmlwdD4KQEAgLTEzMyw3ICsxMzAsNiBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9
IlN5bnRoZXNpemVBcnJheU9wZXJhdG9yTGVuZ3RoLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJTeW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iU3ludGhlc2l6ZU9wZXJhdG9yQm9vbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IlN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9IlN5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlRlcm5hcnlFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFy
eS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcwpp
bmRleCA4MTkwYTQzNTY5MjNhNjFlNTQ4NWJkZDRmMTgwZDEzODM3NzQ4OThiLi4yZjcxMTlhZDVi
YjZkODlkZTVjZDM0NjQ0MmIyMzIzNzgzYTYxNGQ3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCkBAIC0zMCw2ICszMCw4IEBAIGxldCBz
dGFuZGFyZExpYnJhcnkgPSBgCiAvLyBJbnRyaW5zaWNzLmpzLgogCiAvLyBOZWVkIHRvIGJvb3Rz
dHJhcCB2b2lkIGZpcnN0LgorLy8gVGhpcyB3YXMgYXV0b2dlbmVyYXRlZCBmcm9tIEdlbmVyYXRl
X1N0YW5kYXJkX0xpYnJhcnkuc3dpZnQhIERvIG5vdCBlZGl0ISEKKwogbmF0aXZlIHR5cGVkZWYg
dm9pZDsKIG5hdGl2ZSB0eXBlZGVmIGJvb2w7CiBuYXRpdmUgdHlwZWRlZiB1Y2hhcjsKQEAgLTQy
LDcgKzQ0LDYgQEAgbmF0aXZlIHR5cGVkZWYgaGFsZjsKIG5hdGl2ZSB0eXBlZGVmIGZsb2F0Owog
bmF0aXZlIHR5cGVkZWYgYXRvbWljX2ludDsKIG5hdGl2ZSB0eXBlZGVmIGF0b21pY191aW50Owot
CiBuYXRpdmUgdHlwZWRlZiB2ZWN0b3I8Ym9vbCwgMj47CiB0eXBlZGVmIGJvb2wyID0gdmVjdG9y
PGJvb2wsIDI+OwogbmF0aXZlIHR5cGVkZWYgdmVjdG9yPGJvb2wsIDM+OwpAQCAtOTgsNDAgKzk5
LDU3NyBAQCB0eXBlZGVmIGZsb2F0MyA9IHZlY3RvcjxmbG9hdCwgMz47CiBuYXRpdmUgdHlwZWRl
ZiB2ZWN0b3I8ZmxvYXQsIDQ+OwogdHlwZWRlZiBmbG9hdDQgPSB2ZWN0b3I8ZmxvYXQsIDQ+Owog
Ci1uYXRpdmUgb3BlcmF0b3IgaW50KHVpbnQpOwotbmF0aXZlIG9wZXJhdG9yIGludCh1Y2hhcik7
Ci1uYXRpdmUgb3BlcmF0b3IgaW50KGZsb2F0KTsKLW5hdGl2ZSBvcGVyYXRvciB1aW50KGludCk7
Ci1uYXRpdmUgb3BlcmF0b3IgdWludCh1Y2hhcik7Ci1uYXRpdmUgb3BlcmF0b3IgdWludChmbG9h
dCk7Ci1uYXRpdmUgb3BlcmF0b3IgdWNoYXIoaW50KTsKK25hdGl2ZSB0eXBlZGVmIG1hdHJpeDxo
YWxmLCAyLCAyPjsKK3R5cGVkZWYgaGFsZjJ4MiA9IG1hdHJpeDxoYWxmLCAyLCAyPjsKK25hdGl2
ZSB0eXBlZGVmIG1hdHJpeDxoYWxmLCAyLCAzPjsKK3R5cGVkZWYgaGFsZjJ4MyA9IG1hdHJpeDxo
YWxmLCAyLCAzPjsKK25hdGl2ZSB0eXBlZGVmIG1hdHJpeDxoYWxmLCAyLCA0PjsKK3R5cGVkZWYg
aGFsZjJ4NCA9IG1hdHJpeDxoYWxmLCAyLCA0PjsKK25hdGl2ZSB0eXBlZGVmIG1hdHJpeDxoYWxm
LCAzLCAyPjsKK3R5cGVkZWYgaGFsZjN4MiA9IG1hdHJpeDxoYWxmLCAzLCAyPjsKK25hdGl2ZSB0
eXBlZGVmIG1hdHJpeDxoYWxmLCAzLCAzPjsKK3R5cGVkZWYgaGFsZjN4MyA9IG1hdHJpeDxoYWxm
LCAzLCAzPjsKK25hdGl2ZSB0eXBlZGVmIG1hdHJpeDxoYWxmLCAzLCA0PjsKK3R5cGVkZWYgaGFs
ZjN4NCA9IG1hdHJpeDxoYWxmLCAzLCA0PjsKK25hdGl2ZSB0eXBlZGVmIG1hdHJpeDxoYWxmLCA0
LCAyPjsKK3R5cGVkZWYgaGFsZjR4MiA9IG1hdHJpeDxoYWxmLCA0LCAyPjsKK25hdGl2ZSB0eXBl
ZGVmIG1hdHJpeDxoYWxmLCA0LCAzPjsKK3R5cGVkZWYgaGFsZjR4MyA9IG1hdHJpeDxoYWxmLCA0
LCAzPjsKK25hdGl2ZSB0eXBlZGVmIG1hdHJpeDxoYWxmLCA0LCA0PjsKK3R5cGVkZWYgaGFsZjR4
NCA9IG1hdHJpeDxoYWxmLCA0LCA0PjsKK25hdGl2ZSB0eXBlZGVmIG1hdHJpeDxmbG9hdCwgMiwg
Mj47Cit0eXBlZGVmIGZsb2F0MngyID0gbWF0cml4PGZsb2F0LCAyLCAyPjsKK25hdGl2ZSB0eXBl
ZGVmIG1hdHJpeDxmbG9hdCwgMiwgMz47Cit0eXBlZGVmIGZsb2F0MngzID0gbWF0cml4PGZsb2F0
LCAyLCAzPjsKK25hdGl2ZSB0eXBlZGVmIG1hdHJpeDxmbG9hdCwgMiwgND47Cit0eXBlZGVmIGZs
b2F0Mng0ID0gbWF0cml4PGZsb2F0LCAyLCA0PjsKK25hdGl2ZSB0eXBlZGVmIG1hdHJpeDxmbG9h
dCwgMywgMj47Cit0eXBlZGVmIGZsb2F0M3gyID0gbWF0cml4PGZsb2F0LCAzLCAyPjsKK25hdGl2
ZSB0eXBlZGVmIG1hdHJpeDxmbG9hdCwgMywgMz47Cit0eXBlZGVmIGZsb2F0M3gzID0gbWF0cml4
PGZsb2F0LCAzLCAzPjsKK25hdGl2ZSB0eXBlZGVmIG1hdHJpeDxmbG9hdCwgMywgND47Cit0eXBl
ZGVmIGZsb2F0M3g0ID0gbWF0cml4PGZsb2F0LCAzLCA0PjsKK25hdGl2ZSB0eXBlZGVmIG1hdHJp
eDxmbG9hdCwgNCwgMj47Cit0eXBlZGVmIGZsb2F0NHgyID0gbWF0cml4PGZsb2F0LCA0LCAyPjsK
K25hdGl2ZSB0eXBlZGVmIG1hdHJpeDxmbG9hdCwgNCwgMz47Cit0eXBlZGVmIGZsb2F0NHgzID0g
bWF0cml4PGZsb2F0LCA0LCAzPjsKK25hdGl2ZSB0eXBlZGVmIG1hdHJpeDxmbG9hdCwgNCwgND47
Cit0eXBlZGVmIGZsb2F0NHg0ID0gbWF0cml4PGZsb2F0LCA0LCA0PjsKK25hdGl2ZSB0eXBlZGVm
IHNhbXBsZXI7CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8Ym9vbD47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlMUQ8Ym9vbDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGJvb2wzPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxib29sND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8
dWNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVjaGFyMj47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlMUQ8dWNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDx1Y2hhcjQ+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVzaG9ydD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
MUQ8dXNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dXNob3J0Mz47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlMUQ8dXNob3J0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dWlu
dD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dWludDI+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTFEPHVpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDx1aW50ND47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlMUQ8Y2hhcj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8Y2hhcjI+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUxRDxjaGFyND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8c2hvcnQ+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTFEPHNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8c2hvcnQz
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTFEPGludD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8aW50Mj47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlMUQ8aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8aW50ND47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8aGFsZj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8
aGFsZjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGhhbGYzPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUxRDxoYWxmND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8ZmxvYXQ+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGZsb2F0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8
ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxmbG9hdDQ+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMUQ8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxib29sMj47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxib29sMz47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUxRDxib29sND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1Y2hhcj47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
MUQ8dWNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHVjaGFyND47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUxRDx1c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8
dXNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1c2hvcnQzPjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTFEPHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8
dWludD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1aW50Mj47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUxRDx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1aW50ND47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTFEPGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGNoYXIzPjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFE
PHNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHNob3J0Mj47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUxRDxzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8c2hv
cnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGludD47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUxRDxpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGludDM+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8aW50ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUx
RDxoYWxmPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGhhbGYyPjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTFEPGhhbGYzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGhhbGY0
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTFEPGZsb2F0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxmbG9hdDM+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUxREFycmF5PGJvb2w+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8Ym9vbDI+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8Ym9vbDM+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTFEQXJyYXk8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dWNoYXI+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dWNoYXIyPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUxREFycmF5PHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTx1
Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dXNob3J0PjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUxREFycmF5PHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFE
QXJyYXk8dXNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTx1c2hvcnQ0PjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTFEQXJyYXk8dWludDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dWludDM+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dWludDQ+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTFEQXJyYXk8Y2hhcj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxjaGFy
Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxjaGFyMz47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlMURBcnJheTxjaGFyND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxz
aG9ydD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxzaG9ydDI+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTFEQXJyYXk8c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFy
cmF5PHNob3J0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxpbnQ+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8aW50Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURB
cnJheTxpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGludDQ+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8aGFsZj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURB
cnJheTxoYWxmMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxoYWxmMz47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxoYWxmND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
MURBcnJheTxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxmbG9hdDI+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUxREFycmF5PGZsb2F0ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGJv
b2w+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxib29sMj47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUxREFycmF5PGJvb2wzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFE
QXJyYXk8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1Y2hhcj47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHVjaGFyMj47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUxREFycmF5PHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5
PHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHVzaG9ydD47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMURBcnJheTx1c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8
dXNob3J0ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHVpbnQ+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1aW50Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUxREFycmF5PHVpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8dWludDQ+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxjaGFyPjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTFEQXJyYXk8Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJh
eTxjaGFyMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGNoYXI0PjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlMURBcnJheTxzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxzaG9y
dDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxzaG9ydDQ+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMURBcnJheTxpbnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURB
cnJheTxpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8aW50Mz47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGludDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlMURBcnJheTxoYWxmPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8aGFsZjI+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxoYWxmMz47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUxREFycmF5PGhhbGY0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJy
YXk8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxmbG9hdDI+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxmbG9hdDM+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMURBcnJheTxmbG9hdDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGJvb2w+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGJvb2wyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUy
RDxib29sMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8Ym9vbDQ+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTJEPHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1Y2hhcjI+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
MkQ8dWNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1c2hvcnQ+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTJEPHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHVzaG9y
dDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTJEPHVpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHVpbnQyPjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUyRDx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8dWlu
dDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTJEPGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxjaGFyMz47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlMkQ8Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHNob3J0
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTJEPHNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8c2hvcnQ0PjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUyRDxpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGludDI+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTJEPGludDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGhhbGY+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTJEPGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxoYWxmMz47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJE
PGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxmbG9hdDI+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTJEPGZsb2F0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8ZmxvYXQ0PjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGJvb2w+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlMkQ8Ym9vbDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8Ym9vbDM+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMkQ8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8
dWNoYXI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8dWNoYXIyPjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTJEPHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDx1Y2hh
cjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8dXNob3J0PjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTJEPHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8dXNob3J0
Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTJEPHVpbnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8dWludDI+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8dWludDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlMkQ8dWludDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8Y2hhcj47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUyRDxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxj
aGFyMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxjaGFyND47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUyRDxzaG9ydD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxzaG9ydDI+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTJEPHNob3J0ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxpbnQ+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8aW50Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUy
RDxpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGludDQ+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMkQ8aGFsZj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxoYWxmMj47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxoYWxmMz47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUyRDxoYWxmND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxmbG9hdD47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUyRDxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
MkQ8ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGZsb2F0ND47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlMkRBcnJheTxib29sPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFy
cmF5PGJvb2wyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGJvb2wzPjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUy
REFycmF5PHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PHVjaGFyMj47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTJEQXJyYXk8dWNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PHVzaG9y
dD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1c2hvcnQyPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUyREFycmF5PHVzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJy
YXk8dXNob3J0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1aW50PjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PHVpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUy
REFycmF5PHVpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PHVpbnQ0PjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTJEQXJyYXk8Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8Y2hhcjM+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTJEQXJyYXk8c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8c2hvcnQy
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PHNob3J0Mz47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlMkRBcnJheTxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8
aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGludDI+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTJEQXJyYXk8aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxp
bnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGhhbGY+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTJEQXJyYXk8aGFsZjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8
aGFsZjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8aGFsZjQ+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJy
YXk8ZmxvYXQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGZsb2F0Mz47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxmbG9hdDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlMkRBcnJheTxib29sPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8Ym9vbDI+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxib29sMz47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUyREFycmF5PGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJy
YXk8dWNoYXI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTx1Y2hhcjI+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMkRBcnJheTx1Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTx1
c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTx1c2hvcnQyPjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dXNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUyREFycmF5PHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTx1
aW50PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dWludDI+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMkRBcnJheTx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUy
REFycmF5PHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8Y2hhcj47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTJEQXJyYXk8Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxj
aGFyND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHNob3J0PjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTJEQXJyYXk8c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8c2hvcnQ0
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8aW50PjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTJEQXJyYXk8aW50Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5
PGludDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxpbnQ0PjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8aGFsZj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUy
REFycmF5PGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8aGFsZjM+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxoYWxmND47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUyREFycmF5PGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8
ZmxvYXQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQzPjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUzRDxib29sPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxib29sMj47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlM0Q8Ym9vbDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGJvb2w0PjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
M0Q8dWNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDx1Y2hhcjM+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTNEPHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dXNob3J0
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUzRDx1c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDx1c2hvcnQ0PjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUzRDx1aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDx1
aW50Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dWludDM+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTNEPHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxjaGFyPjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUzRDxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8Y2hh
cjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUzRDxzaG9ydD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8c2hvcnQyPjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUzRDxzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHNo
b3J0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUzRDxpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxpbnQzPjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUzRDxpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxoYWxmPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxoYWxmMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
M0Q8aGFsZjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGhhbGY0PjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUzRDxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8ZmxvYXQyPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxmbG9hdDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTNEPGZsb2F0ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxib29sPjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTNEPGJvb2wyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGJv
b2wzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTNEPHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHVjaGFyMj47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlM0Q8dWNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHVzaG9ydD47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTNEPHVzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8dXNob3J0ND47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1aW50PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTNEPHVpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHVpbnQzPjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTNEPHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGNo
YXI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlM0Q8Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8Y2hhcjQ+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlM0Q8c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHNob3J0Mz47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUzRDxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
M0Q8aW50PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGludDI+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlM0Q8aW50Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxpbnQ0PjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGhhbGY+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlM0Q8aGFsZjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8aGFsZjM+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlM0Q8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8
ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8ZmxvYXQyPjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTNEPGZsb2F0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxmbG9h
dDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlQ3ViZTxib29sMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxib29sMz47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxib29sND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
Q3ViZTx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1Y2hhcjI+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZUN1YmU8dWNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJl
PHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1c2hvcnQ+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZUN1YmU8dXNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1
c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHVzaG9ydDQ+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZUN1YmU8dWludD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1aW50
Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlQ3ViZTx1aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxjaGFyPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVD
dWJlPGNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGNoYXI0PjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmVDdWJlPHNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHNo
b3J0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxzaG9ydDM+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZUN1YmU8c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGludD47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmVDdWJlPGludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8aW50ND47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlQ3ViZTxoYWxmPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGhh
bGYyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGhhbGYzPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmVDdWJlPGhhbGY0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGZsb2F0PjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGZsb2F0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlQ3ViZTxmbG9hdDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8ZmxvYXQ0PjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmVEZXB0aDJEPGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmVEZXB0aDJEPGhhbGY+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlRGVwdGgyRDxmbG9hdD47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmVEZXB0aDJEPGhhbGY+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlRGVwdGgy
REFycmF5PGhhbGY+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZURlcHRoMkRBcnJheTxoYWxmPjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmVEZXB0aEN1YmU8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZURl
cHRoQ3ViZTxoYWxmPjsKKworbmF0aXZlIG9wZXJhdG9yIHVjaGFyKHVzaG9ydCk7CiBuYXRpdmUg
b3BlcmF0b3IgdWNoYXIodWludCk7CituYXRpdmUgb3BlcmF0b3IgdWNoYXIoY2hhcik7CituYXRp
dmUgb3BlcmF0b3IgdWNoYXIoc2hvcnQpOworbmF0aXZlIG9wZXJhdG9yIHVjaGFyKGludCk7Citu
YXRpdmUgb3BlcmF0b3IgdWNoYXIoaGFsZik7CiBuYXRpdmUgb3BlcmF0b3IgdWNoYXIoZmxvYXQp
OwotbmF0aXZlIG9wZXJhdG9yIGZsb2F0KGludCk7Ci1uYXRpdmUgb3BlcmF0b3IgZmxvYXQodWlu
dCk7CituYXRpdmUgb3BlcmF0b3IgdXNob3J0KHVjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciB1c2hv
cnQodWludCk7CituYXRpdmUgb3BlcmF0b3IgdXNob3J0KGNoYXIpOworbmF0aXZlIG9wZXJhdG9y
IHVzaG9ydChzaG9ydCk7CituYXRpdmUgb3BlcmF0b3IgdXNob3J0KGludCk7CituYXRpdmUgb3Bl
cmF0b3IgdXNob3J0KGhhbGYpOworbmF0aXZlIG9wZXJhdG9yIHVzaG9ydChmbG9hdCk7CituYXRp
dmUgb3BlcmF0b3IgdWludCh1Y2hhcik7CituYXRpdmUgb3BlcmF0b3IgdWludCh1c2hvcnQpOwor
bmF0aXZlIG9wZXJhdG9yIHVpbnQoY2hhcik7CituYXRpdmUgb3BlcmF0b3IgdWludChzaG9ydCk7
CituYXRpdmUgb3BlcmF0b3IgdWludChpbnQpOworbmF0aXZlIG9wZXJhdG9yIHVpbnQoaGFsZik7
CituYXRpdmUgb3BlcmF0b3IgdWludChmbG9hdCk7CituYXRpdmUgb3BlcmF0b3IgY2hhcih1Y2hh
cik7CituYXRpdmUgb3BlcmF0b3IgY2hhcih1c2hvcnQpOworbmF0aXZlIG9wZXJhdG9yIGNoYXIo
dWludCk7CituYXRpdmUgb3BlcmF0b3IgY2hhcihzaG9ydCk7CituYXRpdmUgb3BlcmF0b3IgY2hh
cihpbnQpOworbmF0aXZlIG9wZXJhdG9yIGNoYXIoaGFsZik7CituYXRpdmUgb3BlcmF0b3IgY2hh
cihmbG9hdCk7CituYXRpdmUgb3BlcmF0b3Igc2hvcnQodWNoYXIpOworbmF0aXZlIG9wZXJhdG9y
IHNob3J0KHVzaG9ydCk7CituYXRpdmUgb3BlcmF0b3Igc2hvcnQodWludCk7CituYXRpdmUgb3Bl
cmF0b3Igc2hvcnQoY2hhcik7CituYXRpdmUgb3BlcmF0b3Igc2hvcnQoaW50KTsKK25hdGl2ZSBv
cGVyYXRvciBzaG9ydChoYWxmKTsKK25hdGl2ZSBvcGVyYXRvciBzaG9ydChmbG9hdCk7CituYXRp
dmUgb3BlcmF0b3IgaW50KHVjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciBpbnQodXNob3J0KTsKK25h
dGl2ZSBvcGVyYXRvciBpbnQodWludCk7CituYXRpdmUgb3BlcmF0b3IgaW50KGNoYXIpOworbmF0
aXZlIG9wZXJhdG9yIGludChzaG9ydCk7CituYXRpdmUgb3BlcmF0b3IgaW50KGhhbGYpOworbmF0
aXZlIG9wZXJhdG9yIGludChmbG9hdCk7CituYXRpdmUgb3BlcmF0b3IgaGFsZih1Y2hhcik7Citu
YXRpdmUgb3BlcmF0b3IgaGFsZih1c2hvcnQpOworbmF0aXZlIG9wZXJhdG9yIGhhbGYodWludCk7
CituYXRpdmUgb3BlcmF0b3IgaGFsZihjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciBoYWxmKHNob3J0
KTsKK25hdGl2ZSBvcGVyYXRvciBoYWxmKGludCk7CituYXRpdmUgb3BlcmF0b3IgaGFsZihmbG9h
dCk7CiBuYXRpdmUgb3BlcmF0b3IgZmxvYXQodWNoYXIpOworbmF0aXZlIG9wZXJhdG9yIGZsb2F0
KHVzaG9ydCk7CituYXRpdmUgb3BlcmF0b3IgZmxvYXQodWludCk7CituYXRpdmUgb3BlcmF0b3Ig
ZmxvYXQoY2hhcik7CituYXRpdmUgb3BlcmF0b3IgZmxvYXQoc2hvcnQpOworbmF0aXZlIG9wZXJh
dG9yIGZsb2F0KGludCk7CituYXRpdmUgb3BlcmF0b3IgZmxvYXQoaGFsZik7CisKK29wZXJhdG9y
IGJvb2wodWNoYXIgeCkgeworICAgIHJldHVybiB4ICE9IDA7Cit9CitvcGVyYXRvciBib29sKHVz
aG9ydCB4KSB7CisgICAgcmV0dXJuIHggIT0gMDsKK30KK29wZXJhdG9yIGJvb2wodWludCB4KSB7
CisgICAgcmV0dXJuIHggIT0gMDsKK30KK29wZXJhdG9yIGJvb2woY2hhciB4KSB7CisgICAgcmV0
dXJuIHggIT0gMDsKK30KK29wZXJhdG9yIGJvb2woc2hvcnQgeCkgeworICAgIHJldHVybiB4ICE9
IDA7Cit9CitvcGVyYXRvciBib29sKGludCB4KSB7CisgICAgcmV0dXJuIHggIT0gMDsKK30KK29w
ZXJhdG9yIGJvb2woaGFsZiB4KSB7CisgICAgcmV0dXJuIHggIT0gMDsKK30KK29wZXJhdG9yIGJv
b2woZmxvYXQgeCkgeworICAgIHJldHVybiB4ICE9IDA7Cit9CiAKK25hdGl2ZSBvcGVyYXRvciBp
bnQoYXRvbWljX2ludCk7CituYXRpdmUgb3BlcmF0b3IgdWludChhdG9taWNfdWludCk7CisKK25h
dGl2ZSBib29sIG9wZXJhdG9yPT0oYm9vbCwgYm9vbCk7Citib29sIG9wZXJhdG9yJihib29sIGEs
IGJvb2wgYikgeworICAgIHJldHVybiBhICYmIGI7Cit9Citib29sIG9wZXJhdG9yfChib29sIGEs
IGJvb2wgYikgeworICAgIHJldHVybiBhIHx8IGI7Cit9Citib29sIG9wZXJhdG9yXihib29sIGEs
IGJvb2wgYikgeworICAgIGlmIChhKQorICAgICAgICByZXR1cm4gIWI7CisgICAgcmV0dXJuIGI7
Cit9Citib29sIG9wZXJhdG9yfihib29sIHZhbHVlKSB7CisgICAgcmV0dXJuICF2YWx1ZTsKK30K
IG5hdGl2ZSBpbnQgb3BlcmF0b3IrKGludCwgaW50KTsKLW5hdGl2ZSB1aW50IG9wZXJhdG9yKyh1
aW50LCB1aW50KTsKLXVjaGFyIG9wZXJhdG9yKyh1Y2hhciBhLCB1Y2hhciBiKSB7IHJldHVybiB1
Y2hhcih1aW50KGEpICsgdWludChiKSk7IH0KLW5hdGl2ZSBmbG9hdCBvcGVyYXRvcisoZmxvYXQs
IGZsb2F0KTsKLWludCBvcGVyYXRvcisrKGludCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgKyAxOyB9
Ci11aW50IG9wZXJhdG9yKysodWludCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgKyAxOyB9Ci11Y2hh
ciBvcGVyYXRvcisrKHVjaGFyIHZhbHVlKSB7IHJldHVybiB2YWx1ZSArIDE7IH0KIG5hdGl2ZSBp
bnQgb3BlcmF0b3ItKGludCwgaW50KTsKLW5hdGl2ZSB1aW50IG9wZXJhdG9yLSh1aW50LCB1aW50
KTsKLXVjaGFyIG9wZXJhdG9yLSh1Y2hhciBhLCB1Y2hhciBiKSB7IHJldHVybiB1Y2hhcih1aW50
KGEpIC0gdWludChiKSk7IH0KLW5hdGl2ZSBmbG9hdCBvcGVyYXRvci0oZmxvYXQsIGZsb2F0KTsK
LWludCBvcGVyYXRvci0tKGludCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgLSAxOyB9Ci11aW50IG9w
ZXJhdG9yLS0odWludCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgLSAxOyB9Ci11Y2hhciBvcGVyYXRv
ci0tKHVjaGFyIHZhbHVlKSB7IHJldHVybiB2YWx1ZSAtIDE7IH0KIG5hdGl2ZSBpbnQgb3BlcmF0
b3IqKGludCwgaW50KTsKLW5hdGl2ZSB1aW50IG9wZXJhdG9yKih1aW50LCB1aW50KTsKLXVjaGFy
IG9wZXJhdG9yKih1Y2hhciBhLCB1Y2hhciBiKSB7IHJldHVybiB1Y2hhcih1aW50KGEpICogdWlu
dChiKSk7IH0KLW5hdGl2ZSBmbG9hdCBvcGVyYXRvciooZmxvYXQsIGZsb2F0KTsKIG5hdGl2ZSBp
bnQgb3BlcmF0b3IvKGludCwgaW50KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPT0oaW50LCBpbnQp
OworbmF0aXZlIGJvb2wgb3BlcmF0b3I8KGludCwgaW50KTsKK25hdGl2ZSBib29sIG9wZXJhdG9y
PD0oaW50LCBpbnQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I+KGludCwgaW50KTsKK25hdGl2ZSBi
b29sIG9wZXJhdG9yPj0oaW50LCBpbnQpOworbmF0aXZlIHVpbnQgb3BlcmF0b3IrKHVpbnQsIHVp
bnQpOworbmF0aXZlIHVpbnQgb3BlcmF0b3ItKHVpbnQsIHVpbnQpOworbmF0aXZlIHVpbnQgb3Bl
cmF0b3IqKHVpbnQsIHVpbnQpOwogbmF0aXZlIHVpbnQgb3BlcmF0b3IvKHVpbnQsIHVpbnQpOwot
dWNoYXIgb3BlcmF0b3IvKHVjaGFyIGEsIHVjaGFyIGIpIHsgcmV0dXJuIHVjaGFyKHVpbnQoYSkg
LyB1aW50KGIpKTsgfQorbmF0aXZlIGJvb2wgb3BlcmF0b3I9PSh1aW50LCB1aW50KTsKK25hdGl2
ZSBib29sIG9wZXJhdG9yPCh1aW50LCB1aW50KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPD0odWlu
dCwgdWludCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcj4odWludCwgdWludCk7CituYXRpdmUgYm9v
bCBvcGVyYXRvcj49KHVpbnQsIHVpbnQpOworbmF0aXZlIGZsb2F0IG9wZXJhdG9yKyhmbG9hdCwg
ZmxvYXQpOworbmF0aXZlIGZsb2F0IG9wZXJhdG9yLShmbG9hdCwgZmxvYXQpOworbmF0aXZlIGZs
b2F0IG9wZXJhdG9yKihmbG9hdCwgZmxvYXQpOworbmF0aXZlIGZsb2F0IG9wZXJhdG9yLyhmbG9h
dCwgZmxvYXQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I9PShmbG9hdCwgZmxvYXQpOworbmF0aXZl
IGJvb2wgb3BlcmF0b3I8KGZsb2F0LCBmbG9hdCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcjw9KGZs
b2F0LCBmbG9hdCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcj4oZmxvYXQsIGZsb2F0KTsKK25hdGl2
ZSBib29sIG9wZXJhdG9yPj0oZmxvYXQsIGZsb2F0KTsKIG5hdGl2ZSBpbnQgb3BlcmF0b3ImKGlu
dCwgaW50KTsKIG5hdGl2ZSBpbnQgb3BlcmF0b3J8KGludCwgaW50KTsKIG5hdGl2ZSBpbnQgb3Bl
cmF0b3JeKGludCwgaW50KTsKQEAgLTE0NCw2MiArNjgyLDI1MzQgQEAgbmF0aXZlIHVpbnQgb3Bl
cmF0b3JeKHVpbnQsIHVpbnQpOwogbmF0aXZlIHVpbnQgb3BlcmF0b3J+KHVpbnQpOwogbmF0aXZl
IHVpbnQgb3BlcmF0b3I8PCh1aW50LCB1aW50KTsKIG5hdGl2ZSB1aW50IG9wZXJhdG9yPj4odWlu
dCwgdWludCk7Ci11Y2hhciBvcGVyYXRvciYodWNoYXIgYSwgdWNoYXIgYikgeyByZXR1cm4gdWNo
YXIodWludChhKSAmIHVpbnQoYikpOyB9Ci11Y2hhciBvcGVyYXRvcnwodWNoYXIgYSwgdWNoYXIg
YikgeyByZXR1cm4gdWNoYXIodWludChhKSB8IHVpbnQoYikpOyB9Ci11Y2hhciBvcGVyYXRvcl4o
dWNoYXIgYSwgdWNoYXIgYikgeyByZXR1cm4gdWNoYXIodWludChhKSBeIHVpbnQoYikpOyB9Ci11
Y2hhciBvcGVyYXRvcn4odWNoYXIgdmFsdWUpIHsgcmV0dXJuIHVjaGFyKH51aW50KHZhbHVlKSk7
IH0KLXVjaGFyIG9wZXJhdG9yPDwodWNoYXIgYSwgdWludCBiKSB7IHJldHVybiB1Y2hhcih1aW50
KGEpIDw8IChiICYgNykpOyB9Ci11Y2hhciBvcGVyYXRvcj4+KHVjaGFyIGEsIHVpbnQgYikgeyBy
ZXR1cm4gdWNoYXIodWludChhKSA+PiAoYiAmIDcpKTsgfQotbmF0aXZlIGZsb2F0IG9wZXJhdG9y
LyhmbG9hdCwgZmxvYXQpOwotbmF0aXZlIGJvb2wgb3BlcmF0b3I9PShpbnQsIGludCk7Ci1uYXRp
dmUgYm9vbCBvcGVyYXRvcj09KHVpbnQsIHVpbnQpOwotYm9vbCBvcGVyYXRvcj09KHVjaGFyIGEs
IHVjaGFyIGIpIHsgcmV0dXJuIHVpbnQoYSkgPT0gdWludChiKTsgfQotbmF0aXZlIGJvb2wgb3Bl
cmF0b3I9PShib29sLCBib29sKTsKLW5hdGl2ZSBib29sIG9wZXJhdG9yPT0oZmxvYXQsIGZsb2F0
KTsKLW5hdGl2ZSBib29sIG9wZXJhdG9yPChpbnQsIGludCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRv
cjwodWludCwgdWludCk7Ci1ib29sIG9wZXJhdG9yPCh1Y2hhciBhLCB1Y2hhciBiKSB7IHJldHVy
biB1aW50KGEpIDwgdWludChiKTsgfQotbmF0aXZlIGJvb2wgb3BlcmF0b3I8KGZsb2F0LCBmbG9h
dCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcjw9KGludCwgaW50KTsKLW5hdGl2ZSBib29sIG9wZXJh
dG9yPD0odWludCwgdWludCk7Ci1ib29sIG9wZXJhdG9yPD0odWNoYXIgYSwgdWNoYXIgYikgeyBy
ZXR1cm4gdWludChhKSA8PSB1aW50KGIpOyB9Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcjw9KGZsb2F0
LCBmbG9hdCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj4oaW50LCBpbnQpOwotbmF0aXZlIGJvb2wg
b3BlcmF0b3I+KHVpbnQsIHVpbnQpOwotYm9vbCBvcGVyYXRvcj4odWNoYXIgYSwgdWNoYXIgYikg
eyByZXR1cm4gdWludChhKSA+IHVpbnQoYik7IH0KLW5hdGl2ZSBib29sIG9wZXJhdG9yPihmbG9h
dCwgZmxvYXQpOwotbmF0aXZlIGJvb2wgb3BlcmF0b3I+PShpbnQsIGludCk7Ci1uYXRpdmUgYm9v
bCBvcGVyYXRvcj49KHVpbnQsIHVpbnQpOwotYm9vbCBvcGVyYXRvcj49KHVjaGFyIGEsIHVjaGFy
IGIpIHsgcmV0dXJuIHVpbnQoYSkgPj0gdWludChiKTsgfQotbmF0aXZlIGJvb2wgb3BlcmF0b3I+
PShmbG9hdCwgZmxvYXQpOwotCi1ib29sIG9wZXJhdG9yJihib29sIGEsIGJvb2wgYikKLXsKLSAg
ICBpZiAoYSkKLSAgICAgICAgcmV0dXJuIGI7Ci0gICAgcmV0dXJuIGZhbHNlOwordWNoYXIgb3Bl
cmF0b3IrKHVjaGFyIGEsIHVjaGFyIGIpIHsKKyAgICByZXR1cm4gdWNoYXIodWludChhKSArIHVp
bnQoYikpOwogfQotCi1ib29sIG9wZXJhdG9yfChib29sIGEsIGJvb2wgYikKLXsKLSAgICBpZiAo
YSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKGIpCi0gICAgICAgIHJldHVybiB0cnVl
OwotICAgIHJldHVybiBmYWxzZTsKK3VjaGFyIG9wZXJhdG9yLSh1Y2hhciBhLCB1Y2hhciBiKSB7
CisgICAgcmV0dXJuIHVjaGFyKHVpbnQoYSkgLSB1aW50KGIpKTsKK30KK3VjaGFyIG9wZXJhdG9y
Kih1Y2hhciBhLCB1Y2hhciBiKSB7CisgICAgcmV0dXJuIHVjaGFyKHVpbnQoYSkgKiB1aW50KGIp
KTsKK30KK3VjaGFyIG9wZXJhdG9yLyh1Y2hhciBhLCB1Y2hhciBiKSB7CisgICAgcmV0dXJuIHVj
aGFyKHVpbnQoYSkgLyB1aW50KGIpKTsKK30KK3VjaGFyIG9wZXJhdG9yJih1Y2hhciBhLCB1Y2hh
ciBiKSB7CisgICAgcmV0dXJuIHVjaGFyKHVpbnQoYSkgJiB1aW50KGIpKTsKK30KK3VjaGFyIG9w
ZXJhdG9yfCh1Y2hhciBhLCB1Y2hhciBiKSB7CisgICAgcmV0dXJuIHVjaGFyKHVpbnQoYSkgfCB1
aW50KGIpKTsKK30KK3VjaGFyIG9wZXJhdG9yXih1Y2hhciBhLCB1Y2hhciBiKSB7CisgICAgcmV0
dXJuIHVjaGFyKHVpbnQoYSkgXiB1aW50KGIpKTsKK30KK3VjaGFyIG9wZXJhdG9yfih1Y2hhciBh
KSB7CisgICAgcmV0dXJuIHVjaGFyKH51aW50KGEpKTsKK30KK2Jvb2wgb3BlcmF0b3I9PSh1Y2hh
ciBhLCB1Y2hhciBiKSB7CisgICAgcmV0dXJuIHVpbnQoYSkgPT0gdWludChiKTsKK30KK2Jvb2wg
b3BlcmF0b3I8KHVjaGFyIGEsIHVjaGFyIGIpIHsKKyAgICByZXR1cm4gdWludChhKSA8IHVpbnQo
Yik7Cit9Citib29sIG9wZXJhdG9yPD0odWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVybiB1
aW50KGEpIDw9IHVpbnQoYik7Cit9Citib29sIG9wZXJhdG9yPih1Y2hhciBhLCB1Y2hhciBiKSB7
CisgICAgcmV0dXJuIHVpbnQoYSkgPiB1aW50KGIpOworfQorYm9vbCBvcGVyYXRvcj49KHVjaGFy
IGEsIHVjaGFyIGIpIHsKKyAgICByZXR1cm4gdWludChhKSA+PSB1aW50KGIpOworfQordXNob3J0
IG9wZXJhdG9yKyh1c2hvcnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gdXNob3J0KHVpbnQo
YSkgKyB1aW50KGIpKTsKK30KK3VzaG9ydCBvcGVyYXRvci0odXNob3J0IGEsIHVzaG9ydCBiKSB7
CisgICAgcmV0dXJuIHVzaG9ydCh1aW50KGEpIC0gdWludChiKSk7Cit9Cit1c2hvcnQgb3BlcmF0
b3IqKHVzaG9ydCBhLCB1c2hvcnQgYikgeworICAgIHJldHVybiB1c2hvcnQodWludChhKSAqIHVp
bnQoYikpOworfQordXNob3J0IG9wZXJhdG9yLyh1c2hvcnQgYSwgdXNob3J0IGIpIHsKKyAgICBy
ZXR1cm4gdXNob3J0KHVpbnQoYSkgLyB1aW50KGIpKTsKK30KK3VzaG9ydCBvcGVyYXRvciYodXNo
b3J0IGEsIHVzaG9ydCBiKSB7CisgICAgcmV0dXJuIHVzaG9ydCh1aW50KGEpICYgdWludChiKSk7
Cit9Cit1c2hvcnQgb3BlcmF0b3J8KHVzaG9ydCBhLCB1c2hvcnQgYikgeworICAgIHJldHVybiB1
c2hvcnQodWludChhKSB8IHVpbnQoYikpOworfQordXNob3J0IG9wZXJhdG9yXih1c2hvcnQgYSwg
dXNob3J0IGIpIHsKKyAgICByZXR1cm4gdXNob3J0KHVpbnQoYSkgXiB1aW50KGIpKTsKK30KK3Vz
aG9ydCBvcGVyYXRvcn4odXNob3J0IGEpIHsKKyAgICByZXR1cm4gdXNob3J0KH51aW50KGEpKTsK
K30KK2Jvb2wgb3BlcmF0b3I9PSh1c2hvcnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gdWlu
dChhKSA9PSB1aW50KGIpOworfQorYm9vbCBvcGVyYXRvcjwodXNob3J0IGEsIHVzaG9ydCBiKSB7
CisgICAgcmV0dXJuIHVpbnQoYSkgPCB1aW50KGIpOworfQorYm9vbCBvcGVyYXRvcjw9KHVzaG9y
dCBhLCB1c2hvcnQgYikgeworICAgIHJldHVybiB1aW50KGEpIDw9IHVpbnQoYik7Cit9Citib29s
IG9wZXJhdG9yPih1c2hvcnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gdWludChhKSA+IHVp
bnQoYik7Cit9Citib29sIG9wZXJhdG9yPj0odXNob3J0IGEsIHVzaG9ydCBiKSB7CisgICAgcmV0
dXJuIHVpbnQoYSkgPj0gdWludChiKTsKK30KK3VjaGFyIG9wZXJhdG9yPDwodWNoYXIgYSwgdWlu
dCBiKSB7CisgICAgcmV0dXJuIHVjaGFyKHVpbnQoYSkgPDwgKGIgJiAyNTUpKTsKK30KK3VzaG9y
dCBvcGVyYXRvcjw8KHVzaG9ydCBhLCB1aW50IGIpIHsKKyAgICByZXR1cm4gdXNob3J0KHVpbnQo
YSkgPDwgKGIgJiA2NTUzNSkpOwogfQordWNoYXIgb3BlcmF0b3I+Pih1Y2hhciBhLCB1aW50IGIp
IHsKKyAgICByZXR1cm4gdWNoYXIodWludChhKSA+PiAoYiAmIDI1NSkpOworfQordXNob3J0IG9w
ZXJhdG9yPj4odXNob3J0IGEsIHVpbnQgYikgeworICAgIHJldHVybiB1c2hvcnQodWludChhKSA+
PiAoYiAmIDY1NTM1KSk7Cit9CitjaGFyIG9wZXJhdG9yKyhjaGFyIGEsIGNoYXIgYikgeworICAg
IHJldHVybiBjaGFyKGludChhKSArIGludChiKSk7Cit9CitjaGFyIG9wZXJhdG9yLShjaGFyIGEs
IGNoYXIgYikgeworICAgIHJldHVybiBjaGFyKGludChhKSAtIGludChiKSk7Cit9CitjaGFyIG9w
ZXJhdG9yKihjaGFyIGEsIGNoYXIgYikgeworICAgIHJldHVybiBjaGFyKGludChhKSAqIGludChi
KSk7Cit9CitjaGFyIG9wZXJhdG9yLyhjaGFyIGEsIGNoYXIgYikgeworICAgIHJldHVybiBjaGFy
KGludChhKSAvIGludChiKSk7Cit9CitjaGFyIG9wZXJhdG9yJihjaGFyIGEsIGNoYXIgYikgewor
ICAgIHJldHVybiBjaGFyKGludChhKSAmIGludChiKSk7Cit9CitjaGFyIG9wZXJhdG9yfChjaGFy
IGEsIGNoYXIgYikgeworICAgIHJldHVybiBjaGFyKGludChhKSB8IGludChiKSk7Cit9CitjaGFy
IG9wZXJhdG9yXihjaGFyIGEsIGNoYXIgYikgeworICAgIHJldHVybiBjaGFyKGludChhKSBeIGlu
dChiKSk7Cit9CitjaGFyIG9wZXJhdG9yfihjaGFyIGEpIHsKKyAgICByZXR1cm4gY2hhcih+aW50
KGEpKTsKK30KK2Jvb2wgb3BlcmF0b3I9PShjaGFyIGEsIGNoYXIgYikgeworICAgIHJldHVybiBp
bnQoYSkgPT0gaW50KGIpOworfQorYm9vbCBvcGVyYXRvcj4oY2hhciBhLCBjaGFyIGIpIHsKKyAg
ICByZXR1cm4gaW50KGEpID4gaW50KGIpOworfQorYm9vbCBvcGVyYXRvcj49KGNoYXIgYSwgY2hh
ciBiKSB7CisgICAgcmV0dXJuIGludChhKSA+PSBpbnQoYik7Cit9Citib29sIG9wZXJhdG9yPChj
aGFyIGEsIGNoYXIgYikgeworICAgIHJldHVybiBpbnQoYSkgPCBpbnQoYik7Cit9Citib29sIG9w
ZXJhdG9yPD0oY2hhciBhLCBjaGFyIGIpIHsKKyAgICByZXR1cm4gaW50KGEpIDw9IGludChiKTsK
K30KK3Nob3J0IG9wZXJhdG9yKyhzaG9ydCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIHNob3J0
KGludChhKSArIGludChiKSk7Cit9CitzaG9ydCBvcGVyYXRvci0oc2hvcnQgYSwgc2hvcnQgYikg
eworICAgIHJldHVybiBzaG9ydChpbnQoYSkgLSBpbnQoYikpOworfQorc2hvcnQgb3BlcmF0b3Iq
KHNob3J0IGEsIHNob3J0IGIpIHsKKyAgICByZXR1cm4gc2hvcnQoaW50KGEpICogaW50KGIpKTsK
K30KK3Nob3J0IG9wZXJhdG9yLyhzaG9ydCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIHNob3J0
KGludChhKSAvIGludChiKSk7Cit9CitzaG9ydCBvcGVyYXRvciYoc2hvcnQgYSwgc2hvcnQgYikg
eworICAgIHJldHVybiBzaG9ydChpbnQoYSkgJiBpbnQoYikpOworfQorc2hvcnQgb3BlcmF0b3J8
KHNob3J0IGEsIHNob3J0IGIpIHsKKyAgICByZXR1cm4gc2hvcnQoaW50KGEpIHwgaW50KGIpKTsK
K30KK3Nob3J0IG9wZXJhdG9yXihzaG9ydCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIHNob3J0
KGludChhKSBeIGludChiKSk7Cit9CitzaG9ydCBvcGVyYXRvcn4oc2hvcnQgYSkgeworICAgIHJl
dHVybiBzaG9ydCh+aW50KGEpKTsKK30KK2Jvb2wgb3BlcmF0b3I9PShzaG9ydCBhLCBzaG9ydCBi
KSB7CisgICAgcmV0dXJuIGludChhKSA9PSBpbnQoYik7Cit9Citib29sIG9wZXJhdG9yPihzaG9y
dCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIGludChhKSA+IGludChiKTsKK30KK2Jvb2wgb3Bl
cmF0b3I+PShzaG9ydCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIGludChhKSA+PSBpbnQoYik7
Cit9Citib29sIG9wZXJhdG9yPChzaG9ydCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIGludChh
KSA8IGludChiKTsKK30KK2Jvb2wgb3BlcmF0b3I8PShzaG9ydCBhLCBzaG9ydCBiKSB7CisgICAg
cmV0dXJuIGludChhKSA8PSBpbnQoYik7Cit9CitjaGFyIG9wZXJhdG9yPDwoY2hhciBhLCB1aW50
IGIpIHsKKyAgICByZXR1cm4gY2hhcihpbnQoYSkgPDwgKGIgJiAyNTUpKTsKK30KK3Nob3J0IG9w
ZXJhdG9yPDwoc2hvcnQgYSwgdWludCBiKSB7CisgICAgcmV0dXJuIHNob3J0KGludChhKSA8PCAo
YiAmIDY1NTM1KSk7Cit9CitjaGFyIG9wZXJhdG9yPj4oY2hhciBhLCB1aW50IGIpIHsKKyAgICBy
ZXR1cm4gY2hhcihpbnQoYSkgPj4gKGIgJiAyNTUpKTsKK30KK3Nob3J0IG9wZXJhdG9yPj4oc2hv
cnQgYSwgdWludCBiKSB7CisgICAgcmV0dXJuIHNob3J0KGludChhKSA+PiAoYiAmIDY1NTM1KSk7
Cit9Cit1Y2hhciBvcGVyYXRvcisrKHVjaGFyIHZhbHVlKSB7CisgICAgcmV0dXJuIHZhbHVlICsg
MTsKK30KK3VjaGFyIG9wZXJhdG9yLS0odWNoYXIgdmFsdWUpIHsKKyAgICByZXR1cm4gdmFsdWUg
LSAxOworfQordXNob3J0IG9wZXJhdG9yKysodXNob3J0IHZhbHVlKSB7CisgICAgcmV0dXJuIHZh
bHVlICsgMTsKK30KK3VzaG9ydCBvcGVyYXRvci0tKHVzaG9ydCB2YWx1ZSkgeworICAgIHJldHVy
biB2YWx1ZSAtIDE7Cit9Cit1aW50IG9wZXJhdG9yKysodWludCB2YWx1ZSkgeworICAgIHJldHVy
biB2YWx1ZSArIDE7Cit9Cit1aW50IG9wZXJhdG9yLS0odWludCB2YWx1ZSkgeworICAgIHJldHVy
biB2YWx1ZSAtIDE7Cit9CitjaGFyIG9wZXJhdG9yKysoY2hhciB2YWx1ZSkgeworICAgIHJldHVy
biB2YWx1ZSArIDE7Cit9CitjaGFyIG9wZXJhdG9yLS0oY2hhciB2YWx1ZSkgeworICAgIHJldHVy
biB2YWx1ZSAtIDE7Cit9CitzaG9ydCBvcGVyYXRvcisrKHNob3J0IHZhbHVlKSB7CisgICAgcmV0
dXJuIHZhbHVlICsgMTsKK30KK3Nob3J0IG9wZXJhdG9yLS0oc2hvcnQgdmFsdWUpIHsKKyAgICBy
ZXR1cm4gdmFsdWUgLSAxOworfQoraW50IG9wZXJhdG9yKysoaW50IHZhbHVlKSB7CisgICAgcmV0
dXJuIHZhbHVlICsgMTsKK30KK2ludCBvcGVyYXRvci0tKGludCB2YWx1ZSkgeworICAgIHJldHVy
biB2YWx1ZSAtIDE7Cit9CitoYWxmIG9wZXJhdG9yKysoaGFsZiB2YWx1ZSkgeworICAgIHJldHVy
biB2YWx1ZSArIDE7Cit9CitoYWxmIG9wZXJhdG9yLS0oaGFsZiB2YWx1ZSkgeworICAgIHJldHVy
biB2YWx1ZSAtIDE7Cit9CitmbG9hdCBvcGVyYXRvcisrKGZsb2F0IHZhbHVlKSB7CisgICAgcmV0
dXJuIHZhbHVlICsgMTsKK30KK2Zsb2F0IG9wZXJhdG9yLS0oZmxvYXQgdmFsdWUpIHsKKyAgICBy
ZXR1cm4gdmFsdWUgLSAxOworfQoraGFsZiBvcGVyYXRvcisoaGFsZiBhLCBoYWxmIGIpIHsKKyAg
ICByZXR1cm4gaGFsZihmbG9hdChhKSArIGZsb2F0KGIpKTsKK30KK2hhbGYgb3BlcmF0b3ItKGhh
bGYgYSwgaGFsZiBiKSB7CisgICAgcmV0dXJuIGhhbGYoZmxvYXQoYSkgLSBmbG9hdChiKSk7Cit9
CitoYWxmIG9wZXJhdG9yKihoYWxmIGEsIGhhbGYgYikgeworICAgIHJldHVybiBoYWxmKGZsb2F0
KGEpICogZmxvYXQoYikpOworfQoraGFsZiBvcGVyYXRvci8oaGFsZiBhLCBoYWxmIGIpIHsKKyAg
ICByZXR1cm4gaGFsZihmbG9hdChhKSAvIGZsb2F0KGIpKTsKK30KK2Jvb2wgb3BlcmF0b3I9PSho
YWxmIGEsIGhhbGYgYikgeworICAgIHJldHVybiBmbG9hdChhKSA9PSBmbG9hdChiKTsKK30KK2Jv
b2wgb3BlcmF0b3I8KGhhbGYgYSwgaGFsZiBiKSB7CisgICAgcmV0dXJuIGZsb2F0KGEpIDwgZmxv
YXQoYik7Cit9Citib29sIG9wZXJhdG9yPD0oaGFsZiBhLCBoYWxmIGIpIHsKKyAgICByZXR1cm4g
ZmxvYXQoYSkgPD0gZmxvYXQoYik7Cit9Citib29sIG9wZXJhdG9yPihoYWxmIGEsIGhhbGYgYikg
eworICAgIHJldHVybiBmbG9hdChhKSA8IGZsb2F0KGIpOworfQorYm9vbCBvcGVyYXRvcj49KGhh
bGYgYSwgaGFsZiBiKSB7CisgICAgcmV0dXJuIGZsb2F0KGEpIDw9IGZsb2F0KGIpOworfQorY2hh
ciBvcGVyYXRvci0oY2hhciB4KSB7CisgICAgcmV0dXJuIGNoYXIoLWludCh4KSk7Cit9CitzaG9y
dCBvcGVyYXRvci0oc2hvcnQgeCkgeworICAgIHJldHVybiBzaG9ydCgtaW50KHgpKTsKK30KK2hh
bGYgb3BlcmF0b3ItKGhhbGYgeCkgeworICAgIHJldHVybiBoYWxmKC1mbG9hdCh4KSk7Cit9Citu
YXRpdmUgaW50IG9wZXJhdG9yLShpbnQpOworbmF0aXZlIGZsb2F0IG9wZXJhdG9yLShmbG9hdCk7
CiAKLWJvb2wgb3BlcmF0b3JeKGJvb2wgYSwgYm9vbCBiKQotewotICAgIGlmIChhKQotICAgICAg
ICByZXR1cm4gIWI7Ci0gICAgcmV0dXJuIGI7CitvcGVyYXRvciBib29sMihib29sIHgsIGJvb2wg
eSkgeworICAgIGJvb2wyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0Lnkg
PSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBib29sMyhib29sIHgsIGJvb2wg
eSwgYm9vbCB6KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICBy
ZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9Citv
cGVyYXRvciBib29sMyhib29sMiB4LCBib29sIHkpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBib29sMyhib29sIHgsIGJvb2wyIHkpIHsK
KyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54
OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBi
b29sNChib29sIHgsIGJvb2wgeSwgYm9vbCB6LCBib29sIHcpIHsKKyAgICBib29sNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7
CisgICAgcmVzdWx0LncgPSB3OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBib29s
NChib29sMiB4LCBib29sIHksIGJvb2wgeikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAg
cmVzdWx0LncgPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBib29sNChib29s
IHgsIGJvb2wyIHksIGJvb2wgeikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0
LncgPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBib29sNChib29sIHgsIGJv
b2wgeSwgYm9vbDIgeikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7Cisg
ICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gei54OworICAgIHJlc3VsdC53ID0gei55
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBib29sNChib29sMiB4LCBib29sMiB5
KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55
ID0geC55OworICAgIHJlc3VsdC56ID0geS54OworICAgIHJlc3VsdC53ID0geS55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBib29sNChib29sMyB4LCBib29sIHkpIHsKKyAgICBi
b29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7Cisg
ICAgcmVzdWx0LnogPSB4Lno7CisgICAgcmVzdWx0LncgPSB5OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitvcGVyYXRvciBib29sNChib29sIHgsIGJvb2wzIHkpIHsKKyAgICBib29sNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0g
eS55OworICAgIHJlc3VsdC53ID0geS56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50IG9w
ZXJhdG9yLmxlbmd0aChib29sMikgeworICAgIHJldHVybiAyOworfQordWludCBvcGVyYXRvci5s
ZW5ndGgoYm9vbDMpIHsKKyAgICByZXR1cm4gMzsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGJv
b2w0KSB7CisgICAgcmV0dXJuIDQ7Cit9CitvcGVyYXRvciB1Y2hhcjIodWNoYXIgeCwgdWNoYXIg
eSkgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55
ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWNoYXIzKHVjaGFyIHgsIHVj
aGFyIHksIHVjaGFyIHopIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsK
KyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitvcGVyYXRvciB1Y2hhcjModWNoYXIyIHgsIHVjaGFyIHkpIHsKKyAgICB1Y2hhcjMgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3Vs
dC56ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWNoYXIzKHVjaGFyIHgs
IHVjaGFyMiB5KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAg
cmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK29wZXJhdG9yIHVjaGFyNCh1Y2hhciB4LCB1Y2hhciB5LCB1Y2hhciB6LCB1Y2hhciB3KSB7
CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5
OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXN1bHQudyA9IHc7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK29wZXJhdG9yIHVjaGFyNCh1Y2hhcjIgeCwgdWNoYXIgeSwgdWNoYXIgeikgeworICAg
IHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7
CisgICAgcmVzdWx0LnogPSB5OworICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorb3BlcmF0b3IgdWNoYXI0KHVjaGFyIHgsIHVjaGFyMiB5LCB1Y2hhciB6KSB7CisgICAg
dWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7Cisg
ICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitvcGVyYXRvciB1Y2hhcjQodWNoYXIgeCwgdWNoYXIgeSwgdWNoYXIyIHopIHsKKyAgICB1
Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAg
cmVzdWx0LnogPSB6Lng7CisgICAgcmVzdWx0LncgPSB6Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK29wZXJhdG9yIHVjaGFyNCh1Y2hhcjIgeCwgdWNoYXIyIHkpIHsKKyAgICB1Y2hhcjQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3Vs
dC56ID0geS54OworICAgIHJlc3VsdC53ID0geS55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citv
cGVyYXRvciB1Y2hhcjQodWNoYXIzIHgsIHVjaGFyIHkpIHsKKyAgICB1Y2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0g
eC56OworICAgIHJlc3VsdC53ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Ig
dWNoYXI0KHVjaGFyIHgsIHVjaGFyMyB5KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAg
cmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQgb3BlcmF0b3IubGVu
Z3RoKHVjaGFyMikgeworICAgIHJldHVybiAyOworfQordWludCBvcGVyYXRvci5sZW5ndGgodWNo
YXIzKSB7CisgICAgcmV0dXJuIDM7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aCh1Y2hhcjQpIHsK
KyAgICByZXR1cm4gNDsKK30KK29wZXJhdG9yIHVzaG9ydDIodXNob3J0IHgsIHVzaG9ydCB5KSB7
CisgICAgdXNob3J0MiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0g
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdXNob3J0Myh1c2hvcnQgeCwgdXNo
b3J0IHksIHVzaG9ydCB6KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4
OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK29wZXJhdG9yIHVzaG9ydDModXNob3J0MiB4LCB1c2hvcnQgeSkgeworICAgIHVzaG9y
dDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAg
IHJlc3VsdC56ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdXNob3J0Myh1
c2hvcnQgeCwgdXNob3J0MiB5KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQ0KHVzaG9ydCB4LCB1c2hvcnQgeSwgdXNob3J0
IHosIHVzaG9ydCB3KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Owor
ICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmVzdWx0LncgPSB3Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQ0KHVzaG9ydDIgeCwgdXNob3J0
IHksIHVzaG9ydCB6KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7
CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJlc3VsdC53ID0g
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdXNob3J0NCh1c2hvcnQgeCwgdXNo
b3J0MiB5LCB1c2hvcnQgeikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
eDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQu
dyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVzaG9ydDQodXNob3J0IHgs
IHVzaG9ydCB5LCB1c2hvcnQyIHopIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gei54OworICAgIHJlc3Vs
dC53ID0gei55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQ0KHVzaG9y
dDIgeCwgdXNob3J0MiB5KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4
Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVzdWx0
LncgPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVzaG9ydDQodXNob3J0
MyB4LCB1c2hvcnQgeSkgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54
OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geC56OworICAgIHJlc3VsdC53
ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdXNob3J0NCh1c2hvcnQgeCwg
dXNob3J0MyB5KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAg
IHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0geS56
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aCh1c2hvcnQyKSB7
CisgICAgcmV0dXJuIDI7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aCh1c2hvcnQzKSB7CisgICAg
cmV0dXJuIDM7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aCh1c2hvcnQ0KSB7CisgICAgcmV0dXJu
IDQ7Cit9CitvcGVyYXRvciB1aW50Mih1aW50IHgsIHVpbnQgeSkgeworICAgIHVpbnQyIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitvcGVyYXRvciB1aW50Myh1aW50IHgsIHVpbnQgeSwgdWludCB6KSB7CisgICAgdWlu
dDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVz
dWx0LnogPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1aW50Myh1aW50MiB4
LCB1aW50IHkpIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAg
cmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitvcGVyYXRvciB1aW50Myh1aW50IHgsIHVpbnQyIHkpIHsKKyAgICB1aW50MyByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1aW50NCh1aW50IHgsIHVpbnQgeSwg
dWludCB6LCB1aW50IHcpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Owor
ICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmVzdWx0LncgPSB3Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1aW50NCh1aW50MiB4LCB1aW50IHksIHVp
bnQgeikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1
bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1aW50NCh1aW50IHgsIHVpbnQyIHksIHVpbnQgeikg
eworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5
Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitvcGVyYXRvciB1aW50NCh1aW50IHgsIHVpbnQgeSwgdWludDIgeikgeworICAg
IHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAg
IHJlc3VsdC56ID0gei54OworICAgIHJlc3VsdC53ID0gei55OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitvcGVyYXRvciB1aW50NCh1aW50MiB4LCB1aW50MiB5KSB7CisgICAgdWludDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56
ID0geS54OworICAgIHJlc3VsdC53ID0geS55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVy
YXRvciB1aW50NCh1aW50MyB4LCB1aW50IHkpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB4Lno7Cisg
ICAgcmVzdWx0LncgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1aW50NCh1
aW50IHgsIHVpbnQzIHkpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Owor
ICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0g
eS56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aCh1aW50Mikg
eworICAgIHJldHVybiAyOworfQordWludCBvcGVyYXRvci5sZW5ndGgodWludDMpIHsKKyAgICBy
ZXR1cm4gMzsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHVpbnQ0KSB7CisgICAgcmV0dXJuIDQ7
Cit9CitvcGVyYXRvciBjaGFyMihjaGFyIHgsIGNoYXIgeSkgeworICAgIGNoYXIyIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitvcGVyYXRvciBjaGFyMyhjaGFyIHgsIGNoYXIgeSwgY2hhciB6KSB7CisgICAgY2hhcjMg
cmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0
LnogPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBjaGFyMyhjaGFyMiB4LCBj
aGFyIHkpIHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVz
dWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9Citv
cGVyYXRvciBjaGFyMyhjaGFyIHgsIGNoYXIyIHkpIHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBjaGFyNChjaGFyIHgsIGNoYXIgeSwgY2hh
ciB6LCBjaGFyIHcpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAg
IHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmVzdWx0LncgPSB3OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBjaGFyNChjaGFyMiB4LCBjaGFyIHksIGNoYXIg
eikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQu
eSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitvcGVyYXRvciBjaGFyNChjaGFyIHgsIGNoYXIyIHksIGNoYXIgeikgewor
ICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7
CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitvcGVyYXRvciBjaGFyNChjaGFyIHgsIGNoYXIgeSwgY2hhcjIgeikgeworICAgIGNo
YXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJl
c3VsdC56ID0gei54OworICAgIHJlc3VsdC53ID0gei55OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitvcGVyYXRvciBjaGFyNChjaGFyMiB4LCBjaGFyMiB5KSB7CisgICAgY2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0g
eS54OworICAgIHJlc3VsdC53ID0geS55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRv
ciBjaGFyNChjaGFyMyB4LCBjaGFyIHkpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB4Lno7CisgICAg
cmVzdWx0LncgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBjaGFyNChjaGFy
IHgsIGNoYXIzIHkpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAg
IHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0geS56
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChjaGFyMikgewor
ICAgIHJldHVybiAyOworfQordWludCBvcGVyYXRvci5sZW5ndGgoY2hhcjMpIHsKKyAgICByZXR1
cm4gMzsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGNoYXI0KSB7CisgICAgcmV0dXJuIDQ7Cit9
CitvcGVyYXRvciBzaG9ydDIoc2hvcnQgeCwgc2hvcnQgeSkgeworICAgIHNob3J0MiByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorb3BlcmF0b3Igc2hvcnQzKHNob3J0IHgsIHNob3J0IHksIHNob3J0IHopIHsKKyAgICBz
aG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAg
cmVzdWx0LnogPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBzaG9ydDMoc2hv
cnQyIHgsIHNob3J0IHkpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54
OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorb3BlcmF0b3Igc2hvcnQzKHNob3J0IHgsIHNob3J0MiB5KSB7CisgICAgc2hvcnQz
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVz
dWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHNob3J0NChzaG9y
dCB4LCBzaG9ydCB5LCBzaG9ydCB6LCBzaG9ydCB3KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAg
ICByZXN1bHQudyA9IHc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHNob3J0NChz
aG9ydDIgeCwgc2hvcnQgeSwgc2hvcnQgeikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAg
IHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Igc2hvcnQ0KHNo
b3J0IHgsIHNob3J0MiB5LCBzaG9ydCB6KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAg
cmVzdWx0LncgPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBzaG9ydDQoc2hv
cnQgeCwgc2hvcnQgeSwgc2hvcnQyIHopIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6Lng7CisgICAgcmVz
dWx0LncgPSB6Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHNob3J0NChzaG9y
dDIgeCwgc2hvcnQyIHkpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54
OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geS54OworICAgIHJlc3VsdC53
ID0geS55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBzaG9ydDQoc2hvcnQzIHgs
IHNob3J0IHkpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAg
IHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geC56OworICAgIHJlc3VsdC53ID0geTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Igc2hvcnQ0KHNob3J0IHgsIHNob3J0MyB5
KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0Lnkg
PSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHNob3J0MikgeworICAgIHJldHVy
biAyOworfQordWludCBvcGVyYXRvci5sZW5ndGgoc2hvcnQzKSB7CisgICAgcmV0dXJuIDM7Cit9
Cit1aW50IG9wZXJhdG9yLmxlbmd0aChzaG9ydDQpIHsKKyAgICByZXR1cm4gNDsKK30KK29wZXJh
dG9yIGludDIoaW50IHgsIGludCB5KSB7CisgICAgaW50MiByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Ig
aW50MyhpbnQgeCwgaW50IHksIGludCB6KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIGludDMoaW50MiB4LCBpbnQgeSkgeworICAgIGludDMgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3Vs
dC56ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaW50MyhpbnQgeCwgaW50
MiB5KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55
ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVy
YXRvciBpbnQ0KGludCB4LCBpbnQgeSwgaW50IHosIGludCB3KSB7CisgICAgaW50NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7
CisgICAgcmVzdWx0LncgPSB3OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBpbnQ0
KGludDIgeCwgaW50IHksIGludCB6KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJlc3Vs
dC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaW50NChpbnQgeCwgaW50
MiB5LCBpbnQgeikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICBy
ZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHo7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGludDQoaW50IHgsIGludCB5LCBpbnQyIHop
IHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5
OworICAgIHJlc3VsdC56ID0gei54OworICAgIHJlc3VsdC53ID0gei55OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitvcGVyYXRvciBpbnQ0KGludDIgeCwgaW50MiB5KSB7CisgICAgaW50NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0
LnogPSB5Lng7CisgICAgcmVzdWx0LncgPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29w
ZXJhdG9yIGludDQoaW50MyB4LCBpbnQgeSkgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geC56OworICAg
IHJlc3VsdC53ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaW50NChpbnQg
eCwgaW50MyB5KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJl
c3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0geS56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChpbnQyKSB7CisgICAg
cmV0dXJuIDI7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChpbnQzKSB7CisgICAgcmV0dXJuIDM7
Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChpbnQ0KSB7CisgICAgcmV0dXJuIDQ7Cit9CitvcGVy
YXRvciBoYWxmMihoYWxmIHgsIGhhbGYgeSkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVy
YXRvciBoYWxmMyhoYWxmIHgsIGhhbGYgeSwgaGFsZiB6KSB7CisgICAgaGFsZjMgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBoYWxmMyhoYWxmMiB4LCBoYWxmIHkpIHsK
KyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4
Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBo
YWxmMyhoYWxmIHgsIGhhbGYyIHkpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitvcGVyYXRvciBoYWxmNChoYWxmIHgsIGhhbGYgeSwgaGFsZiB6LCBoYWxm
IHcpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55
ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmVzdWx0LncgPSB3OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitvcGVyYXRvciBoYWxmNChoYWxmMiB4LCBoYWxmIHksIGhhbGYgeikgeworICAg
IGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsK
KyAgICByZXN1bHQueiA9IHk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitvcGVyYXRvciBoYWxmNChoYWxmIHgsIGhhbGYyIHksIGhhbGYgeikgeworICAgIGhhbGY0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVz
dWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9Citv
cGVyYXRvciBoYWxmNChoYWxmIHgsIGhhbGYgeSwgaGFsZjIgeikgeworICAgIGhhbGY0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0g
ei54OworICAgIHJlc3VsdC53ID0gei55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRv
ciBoYWxmNChoYWxmMiB4LCBoYWxmMiB5KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geS54OworICAg
IHJlc3VsdC53ID0geS55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBoYWxmNCho
YWxmMyB4LCBoYWxmIHkpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7
CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB4Lno7CisgICAgcmVzdWx0Lncg
PSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBoYWxmNChoYWxmIHgsIGhhbGYz
IHkpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55
ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0geS56OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChoYWxmMikgeworICAgIHJldHVy
biAyOworfQordWludCBvcGVyYXRvci5sZW5ndGgoaGFsZjMpIHsKKyAgICByZXR1cm4gMzsKK30K
K3VpbnQgb3BlcmF0b3IubGVuZ3RoKGhhbGY0KSB7CisgICAgcmV0dXJuIDQ7Cit9CitvcGVyYXRv
ciBmbG9hdDIoZmxvYXQgeCwgZmxvYXQgeSkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3Bl
cmF0b3IgZmxvYXQzKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopIHsKKyAgICBmbG9hdDMgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0Lnog
PSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9hdDMoZmxvYXQyIHgsIGZs
b2F0IHkpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJl
c3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
b3BlcmF0b3IgZmxvYXQzKGZsb2F0IHgsIGZsb2F0MiB5KSB7CisgICAgZmxvYXQzIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5
Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGZsb2F0NChmbG9hdCB4LCBmbG9h
dCB5LCBmbG9hdCB6LCBmbG9hdCB3KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXN1bHQu
dyA9IHc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGZsb2F0NChmbG9hdDIgeCwg
ZmxvYXQgeSwgZmxvYXQgeikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4
Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJlc3VsdC53
ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgZmxvYXQ0KGZsb2F0IHgsIGZs
b2F0MiB5LCBmbG9hdCB6KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7
CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0Lncg
PSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9hdDQoZmxvYXQgeCwgZmxv
YXQgeSwgZmxvYXQyIHopIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsK
KyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6Lng7CisgICAgcmVzdWx0LncgPSB6
Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGZsb2F0NChmbG9hdDIgeCwgZmxv
YXQyIHkpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJl
c3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geS54OworICAgIHJlc3VsdC53ID0geS55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9hdDQoZmxvYXQzIHgsIGZsb2F0IHkp
IHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55
ID0geC55OworICAgIHJlc3VsdC56ID0geC56OworICAgIHJlc3VsdC53ID0geTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorb3BlcmF0b3IgZmxvYXQ0KGZsb2F0IHgsIGZsb2F0MyB5KSB7CisgICAg
ZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7Cisg
ICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGZsb2F0MikgeworICAgIHJldHVybiAyOworfQor
dWludCBvcGVyYXRvci5sZW5ndGgoZmxvYXQzKSB7CisgICAgcmV0dXJuIDM7Cit9Cit1aW50IG9w
ZXJhdG9yLmxlbmd0aChmbG9hdDQpIHsKKyAgICByZXR1cm4gNDsKK30KK2Jvb2wgb3BlcmF0b3I9
PShib29sMiBhLCBib29sMiBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIu
eTsKK30KK2Jvb2wgb3BlcmF0b3I9PShib29sMyBhLCBib29sMyBiKSB7CisgICAgcmV0dXJuIGEu
eCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56OworfQorYm9vbCBvcGVyYXRvcj09
KGJvb2w0IGEsIGJvb2w0IGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55
ICYmIGEueiA9PSBiLnogJiYgYS53ID09IGIudzsKK30KK25hdGl2ZSBib29sIG9wZXJhdG9yLngo
Ym9vbDIpOworbmF0aXZlIGJvb2wgb3BlcmF0b3IueShib29sMik7CituYXRpdmUgYm9vbCBvcGVy
YXRvci54KGJvb2wzKTsKK25hdGl2ZSBib29sIG9wZXJhdG9yLnkoYm9vbDMpOworbmF0aXZlIGJv
b2wgb3BlcmF0b3Iueihib29sMyk7CituYXRpdmUgYm9vbCBvcGVyYXRvci54KGJvb2w0KTsKK25h
dGl2ZSBib29sIG9wZXJhdG9yLnkoYm9vbDQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3Iueihib29s
NCk7CituYXRpdmUgYm9vbCBvcGVyYXRvci53KGJvb2w0KTsKK25hdGl2ZSBib29sMiBvcGVyYXRv
ci54PShib29sMiwgYm9vbCk7CituYXRpdmUgYm9vbDIgb3BlcmF0b3IueT0oYm9vbDIsIGJvb2wp
OworbmF0aXZlIGJvb2wzIG9wZXJhdG9yLng9KGJvb2wzLCBib29sKTsKK25hdGl2ZSBib29sMyBv
cGVyYXRvci55PShib29sMywgYm9vbCk7CituYXRpdmUgYm9vbDMgb3BlcmF0b3Iuej0oYm9vbDMs
IGJvb2wpOworbmF0aXZlIGJvb2w0IG9wZXJhdG9yLng9KGJvb2w0LCBib29sKTsKK25hdGl2ZSBi
b29sNCBvcGVyYXRvci55PShib29sNCwgYm9vbCk7CituYXRpdmUgYm9vbDQgb3BlcmF0b3Iuej0o
Ym9vbDQsIGJvb2wpOworbmF0aXZlIGJvb2w0IG9wZXJhdG9yLnc9KGJvb2w0LCBib29sKTsKK2Jv
b2wgb3BlcmF0b3JbXShib29sMiB2LCB1aW50IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkg
eworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gdi54OworICAgICAgICBjYXNl
IDE6CisgICAgICAgICAgICByZXR1cm4gdi55OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgdHJhcDsKKyAgICB9Cit9Citib29sIG9wZXJhdG9yW10oYm9vbDMgdiwgdWludCBpbmRleCkg
eworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0
dXJuIHYueDsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIHYueTsKKyAgICAg
ICAgY2FzZSAyOgorICAgICAgICAgICAgcmV0dXJuIHYuejsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIHRyYXA7CisgICAgfQorfQorYm9vbCBvcGVyYXRvcltdKGJvb2w0IHYsIHVpbnQg
aW5kZXgpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAg
ICAgIHJldHVybiB2Lng7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiB2Lnk7
CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVybiB2Lno7CisgICAgICAgIGNhc2Ug
MzoKKyAgICAgICAgICAgIHJldHVybiB2Lnc7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICB0cmFwOworICAgIH0KK30KK2Jvb2wyIG9wZXJhdG9yW109KGJvb2wyIHYsIHVpbnQgaW5kZXgs
IGJvb2wgYSkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAg
ICAgICAgdi54ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAg
ICAgICAgICB2LnkgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsKK30KK2Jvb2wzIG9wZXJhdG9y
W109KGJvb2wzIHYsIHVpbnQgaW5kZXgsIGJvb2wgYSkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsK
KyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgdi54ID0gYTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICB2LnkgPSBhOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHYueiA9IGE7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorICAgIHJl
dHVybiB2OworfQorYm9vbDQgb3BlcmF0b3JbXT0oYm9vbDQgdiwgdWludCBpbmRleCwgYm9vbCBh
KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICB2
LnggPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAg
IHYueSA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAg
ICAgdi56ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM6CisgICAgICAg
ICAgICB2LncgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsKK30KK2Jvb2wgb3BlcmF0b3I9PSh1
Y2hhcjIgYSwgdWNoYXIyIGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55
OworfQorYm9vbCBvcGVyYXRvcj09KHVjaGFyMyBhLCB1Y2hhcjMgYikgeworICAgIHJldHVybiBh
LnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIuejsKK30KK2Jvb2wgb3BlcmF0b3I9
PSh1Y2hhcjQgYSwgdWNoYXI0IGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0g
Yi55ICYmIGEueiA9PSBiLnogJiYgYS53ID09IGIudzsKK30KK25hdGl2ZSB1Y2hhciBvcGVyYXRv
ci54KHVjaGFyMik7CituYXRpdmUgdWNoYXIgb3BlcmF0b3IueSh1Y2hhcjIpOworbmF0aXZlIHVj
aGFyIG9wZXJhdG9yLngodWNoYXIzKTsKK25hdGl2ZSB1Y2hhciBvcGVyYXRvci55KHVjaGFyMyk7
CituYXRpdmUgdWNoYXIgb3BlcmF0b3Iueih1Y2hhcjMpOworbmF0aXZlIHVjaGFyIG9wZXJhdG9y
LngodWNoYXI0KTsKK25hdGl2ZSB1Y2hhciBvcGVyYXRvci55KHVjaGFyNCk7CituYXRpdmUgdWNo
YXIgb3BlcmF0b3Iueih1Y2hhcjQpOworbmF0aXZlIHVjaGFyIG9wZXJhdG9yLncodWNoYXI0KTsK
K25hdGl2ZSB1Y2hhcjIgb3BlcmF0b3IueD0odWNoYXIyLCB1Y2hhcik7CituYXRpdmUgdWNoYXIy
IG9wZXJhdG9yLnk9KHVjaGFyMiwgdWNoYXIpOworbmF0aXZlIHVjaGFyMyBvcGVyYXRvci54PSh1
Y2hhcjMsIHVjaGFyKTsKK25hdGl2ZSB1Y2hhcjMgb3BlcmF0b3IueT0odWNoYXIzLCB1Y2hhcik7
CituYXRpdmUgdWNoYXIzIG9wZXJhdG9yLno9KHVjaGFyMywgdWNoYXIpOworbmF0aXZlIHVjaGFy
NCBvcGVyYXRvci54PSh1Y2hhcjQsIHVjaGFyKTsKK25hdGl2ZSB1Y2hhcjQgb3BlcmF0b3IueT0o
dWNoYXI0LCB1Y2hhcik7CituYXRpdmUgdWNoYXI0IG9wZXJhdG9yLno9KHVjaGFyNCwgdWNoYXIp
OworbmF0aXZlIHVjaGFyNCBvcGVyYXRvci53PSh1Y2hhcjQsIHVjaGFyKTsKK3VjaGFyIG9wZXJh
dG9yW10odWNoYXIyIHYsIHVpbnQgaW5kZXgpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAg
ICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiB2Lng7CisgICAgICAgIGNhc2UgMToKKyAg
ICAgICAgICAgIHJldHVybiB2Lnk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFw
OworICAgIH0KK30KK3VjaGFyIG9wZXJhdG9yW10odWNoYXIzIHYsIHVpbnQgaW5kZXgpIHsKKyAg
ICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiB2
Lng7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiB2Lnk7CisgICAgICAgIGNh
c2UgMjoKKyAgICAgICAgICAgIHJldHVybiB2Lno7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICB0cmFwOworICAgIH0KK30KK3VjaGFyIG9wZXJhdG9yW10odWNoYXI0IHYsIHVpbnQgaW5k
ZXgpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAg
IHJldHVybiB2Lng7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiB2Lnk7Cisg
ICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVybiB2Lno7CisgICAgICAgIGNhc2UgMzoK
KyAgICAgICAgICAgIHJldHVybiB2Lnc7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0
cmFwOworICAgIH0KK30KK3VjaGFyMiBvcGVyYXRvcltdPSh1Y2hhcjIgdiwgdWludCBpbmRleCwg
dWNoYXIgYSkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAg
ICAgICAgdi54ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAg
ICAgICAgICB2LnkgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsKK30KK3VjaGFyMyBvcGVyYXRv
cltdPSh1Y2hhcjMgdiwgdWludCBpbmRleCwgdWNoYXIgYSkgeworICAgIHN3aXRjaCAoaW5kZXgp
IHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgdi54ID0gYTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICB2LnkgPSBhOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHYueiA9IGE7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorICAg
IHJldHVybiB2OworfQordWNoYXI0IG9wZXJhdG9yW109KHVjaGFyNCB2LCB1aW50IGluZGV4LCB1
Y2hhciBhKSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAg
ICAgICB2LnggPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAg
ICAgICAgIHYueSA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAg
ICAgICAgICAgdi56ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM6Cisg
ICAgICAgICAgICB2LncgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsKK30KK2Jvb2wgb3BlcmF0
b3I9PSh1c2hvcnQyIGEsIHVzaG9ydDIgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEu
eSA9PSBiLnk7Cit9Citib29sIG9wZXJhdG9yPT0odXNob3J0MyBhLCB1c2hvcnQzIGIpIHsKKyAg
ICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLno7Cit9Citib29s
IG9wZXJhdG9yPT0odXNob3J0NCBhLCB1c2hvcnQ0IGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIu
eCAmJiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLnogJiYgYS53ID09IGIudzsKK30KK25hdGl2ZSB1
c2hvcnQgb3BlcmF0b3IueCh1c2hvcnQyKTsKK25hdGl2ZSB1c2hvcnQgb3BlcmF0b3IueSh1c2hv
cnQyKTsKK25hdGl2ZSB1c2hvcnQgb3BlcmF0b3IueCh1c2hvcnQzKTsKK25hdGl2ZSB1c2hvcnQg
b3BlcmF0b3IueSh1c2hvcnQzKTsKK25hdGl2ZSB1c2hvcnQgb3BlcmF0b3Iueih1c2hvcnQzKTsK
K25hdGl2ZSB1c2hvcnQgb3BlcmF0b3IueCh1c2hvcnQ0KTsKK25hdGl2ZSB1c2hvcnQgb3BlcmF0
b3IueSh1c2hvcnQ0KTsKK25hdGl2ZSB1c2hvcnQgb3BlcmF0b3Iueih1c2hvcnQ0KTsKK25hdGl2
ZSB1c2hvcnQgb3BlcmF0b3Iudyh1c2hvcnQ0KTsKK25hdGl2ZSB1c2hvcnQyIG9wZXJhdG9yLng9
KHVzaG9ydDIsIHVzaG9ydCk7CituYXRpdmUgdXNob3J0MiBvcGVyYXRvci55PSh1c2hvcnQyLCB1
c2hvcnQpOworbmF0aXZlIHVzaG9ydDMgb3BlcmF0b3IueD0odXNob3J0MywgdXNob3J0KTsKK25h
dGl2ZSB1c2hvcnQzIG9wZXJhdG9yLnk9KHVzaG9ydDMsIHVzaG9ydCk7CituYXRpdmUgdXNob3J0
MyBvcGVyYXRvci56PSh1c2hvcnQzLCB1c2hvcnQpOworbmF0aXZlIHVzaG9ydDQgb3BlcmF0b3Iu
eD0odXNob3J0NCwgdXNob3J0KTsKK25hdGl2ZSB1c2hvcnQ0IG9wZXJhdG9yLnk9KHVzaG9ydDQs
IHVzaG9ydCk7CituYXRpdmUgdXNob3J0NCBvcGVyYXRvci56PSh1c2hvcnQ0LCB1c2hvcnQpOwor
bmF0aXZlIHVzaG9ydDQgb3BlcmF0b3Iudz0odXNob3J0NCwgdXNob3J0KTsKK3VzaG9ydCBvcGVy
YXRvcltdKHVzaG9ydDIgdiwgdWludCBpbmRleCkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAg
ICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIHYueDsKKyAgICAgICAgY2FzZSAxOgor
ICAgICAgICAgICAgcmV0dXJuIHYueTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRy
YXA7CisgICAgfQorfQordXNob3J0IG9wZXJhdG9yW10odXNob3J0MyB2LCB1aW50IGluZGV4KSB7
CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1
cm4gdi54OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gdi55OworICAgICAg
ICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gdi56OworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgdHJhcDsKKyAgICB9Cit9Cit1c2hvcnQgb3BlcmF0b3JbXSh1c2hvcnQ0IHYsIHVp
bnQgaW5kZXgpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAg
ICAgICAgIHJldHVybiB2Lng7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiB2
Lnk7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVybiB2Lno7CisgICAgICAgIGNh
c2UgMzoKKyAgICAgICAgICAgIHJldHVybiB2Lnc7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICB0cmFwOworICAgIH0KK30KK3VzaG9ydDIgb3BlcmF0b3JbXT0odXNob3J0MiB2LCB1aW50
IGluZGV4LCB1c2hvcnQgYSkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAw
OgorICAgICAgICAgICAgdi54ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDE6CisgICAgICAgICAgICB2LnkgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsKK30KK3VzaG9y
dDMgb3BlcmF0b3JbXT0odXNob3J0MyB2LCB1aW50IGluZGV4LCB1c2hvcnQgYSkgeworICAgIHN3
aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgdi54ID0gYTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICB2LnkgPSBhOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHYueiA9IGE7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7
CisgICAgfQorICAgIHJldHVybiB2OworfQordXNob3J0NCBvcGVyYXRvcltdPSh1c2hvcnQ0IHYs
IHVpbnQgaW5kZXgsIHVzaG9ydCBhKSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBj
YXNlIDA6CisgICAgICAgICAgICB2LnggPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgMToKKyAgICAgICAgICAgIHYueSA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAyOgorICAgICAgICAgICAgdi56ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDM6CisgICAgICAgICAgICB2LncgPSBhOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsK
K30KK2Jvb2wgb3BlcmF0b3I9PSh1aW50MiBhLCB1aW50MiBiKSB7CisgICAgcmV0dXJuIGEueCA9
PSBiLnggJiYgYS55ID09IGIueTsKK30KK2Jvb2wgb3BlcmF0b3I9PSh1aW50MyBhLCB1aW50MyBi
KSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56Owor
fQorYm9vbCBvcGVyYXRvcj09KHVpbnQ0IGEsIHVpbnQ0IGIpIHsKKyAgICByZXR1cm4gYS54ID09
IGIueCAmJiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLnogJiYgYS53ID09IGIudzsKK30KK25hdGl2
ZSB1aW50IG9wZXJhdG9yLngodWludDIpOworbmF0aXZlIHVpbnQgb3BlcmF0b3IueSh1aW50Mik7
CituYXRpdmUgdWludCBvcGVyYXRvci54KHVpbnQzKTsKK25hdGl2ZSB1aW50IG9wZXJhdG9yLnko
dWludDMpOworbmF0aXZlIHVpbnQgb3BlcmF0b3Iueih1aW50Myk7CituYXRpdmUgdWludCBvcGVy
YXRvci54KHVpbnQ0KTsKK25hdGl2ZSB1aW50IG9wZXJhdG9yLnkodWludDQpOworbmF0aXZlIHVp
bnQgb3BlcmF0b3Iueih1aW50NCk7CituYXRpdmUgdWludCBvcGVyYXRvci53KHVpbnQ0KTsKK25h
dGl2ZSB1aW50MiBvcGVyYXRvci54PSh1aW50MiwgdWludCk7CituYXRpdmUgdWludDIgb3BlcmF0
b3IueT0odWludDIsIHVpbnQpOworbmF0aXZlIHVpbnQzIG9wZXJhdG9yLng9KHVpbnQzLCB1aW50
KTsKK25hdGl2ZSB1aW50MyBvcGVyYXRvci55PSh1aW50MywgdWludCk7CituYXRpdmUgdWludDMg
b3BlcmF0b3Iuej0odWludDMsIHVpbnQpOworbmF0aXZlIHVpbnQ0IG9wZXJhdG9yLng9KHVpbnQ0
LCB1aW50KTsKK25hdGl2ZSB1aW50NCBvcGVyYXRvci55PSh1aW50NCwgdWludCk7CituYXRpdmUg
dWludDQgb3BlcmF0b3Iuej0odWludDQsIHVpbnQpOworbmF0aXZlIHVpbnQ0IG9wZXJhdG9yLnc9
KHVpbnQ0LCB1aW50KTsKK3VpbnQgb3BlcmF0b3JbXSh1aW50MiB2LCB1aW50IGluZGV4KSB7Cisg
ICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4g
di54OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gdi55OworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9Cit9Cit1aW50IG9wZXJhdG9yW10odWlu
dDMgdiwgdWludCBpbmRleCkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAw
OgorICAgICAgICAgICAgcmV0dXJuIHYueDsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAg
cmV0dXJuIHYueTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmV0dXJuIHYuejsKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorfQordWludCBvcGVyYXRv
cltdKHVpbnQ0IHYsIHVpbnQgaW5kZXgpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAg
IGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiB2Lng7CisgICAgICAgIGNhc2UgMToKKyAgICAg
ICAgICAgIHJldHVybiB2Lnk7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVybiB2
Lno7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHJldHVybiB2Lnc7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KK30KK3VpbnQyIG9wZXJhdG9yW109KHVp
bnQyIHYsIHVpbnQgaW5kZXgsIHVpbnQgYSkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAg
ICAgY2FzZSAwOgorICAgICAgICAgICAgdi54ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDE6CisgICAgICAgICAgICB2LnkgPSBhOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsK
K30KK3VpbnQzIG9wZXJhdG9yW109KHVpbnQzIHYsIHVpbnQgaW5kZXgsIHVpbnQgYSkgeworICAg
IHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgdi54ID0gYTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICB2LnkgPSBh
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHYueiA9
IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRy
YXA7CisgICAgfQorICAgIHJldHVybiB2OworfQordWludDQgb3BlcmF0b3JbXT0odWludDQgdiwg
dWludCBpbmRleCwgdWludCBhKSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNl
IDA6CisgICAgICAgICAgICB2LnggPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgMToKKyAgICAgICAgICAgIHYueSA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAyOgorICAgICAgICAgICAgdi56ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDM6CisgICAgICAgICAgICB2LncgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsKK30K
K2Jvb2wgb3BlcmF0b3I9PShjaGFyMiBhLCBjaGFyMiBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBi
LnggJiYgYS55ID09IGIueTsKK30KK2Jvb2wgb3BlcmF0b3I9PShjaGFyMyBhLCBjaGFyMyBiKSB7
CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56OworfQor
Ym9vbCBvcGVyYXRvcj09KGNoYXI0IGEsIGNoYXI0IGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIu
eCAmJiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLnogJiYgYS53ID09IGIudzsKK30KK25hdGl2ZSBj
aGFyIG9wZXJhdG9yLngoY2hhcjIpOworbmF0aXZlIGNoYXIgb3BlcmF0b3IueShjaGFyMik7Citu
YXRpdmUgY2hhciBvcGVyYXRvci54KGNoYXIzKTsKK25hdGl2ZSBjaGFyIG9wZXJhdG9yLnkoY2hh
cjMpOworbmF0aXZlIGNoYXIgb3BlcmF0b3IueihjaGFyMyk7CituYXRpdmUgY2hhciBvcGVyYXRv
ci54KGNoYXI0KTsKK25hdGl2ZSBjaGFyIG9wZXJhdG9yLnkoY2hhcjQpOworbmF0aXZlIGNoYXIg
b3BlcmF0b3IueihjaGFyNCk7CituYXRpdmUgY2hhciBvcGVyYXRvci53KGNoYXI0KTsKK25hdGl2
ZSBjaGFyMiBvcGVyYXRvci54PShjaGFyMiwgY2hhcik7CituYXRpdmUgY2hhcjIgb3BlcmF0b3Iu
eT0oY2hhcjIsIGNoYXIpOworbmF0aXZlIGNoYXIzIG9wZXJhdG9yLng9KGNoYXIzLCBjaGFyKTsK
K25hdGl2ZSBjaGFyMyBvcGVyYXRvci55PShjaGFyMywgY2hhcik7CituYXRpdmUgY2hhcjMgb3Bl
cmF0b3Iuej0oY2hhcjMsIGNoYXIpOworbmF0aXZlIGNoYXI0IG9wZXJhdG9yLng9KGNoYXI0LCBj
aGFyKTsKK25hdGl2ZSBjaGFyNCBvcGVyYXRvci55PShjaGFyNCwgY2hhcik7CituYXRpdmUgY2hh
cjQgb3BlcmF0b3Iuej0oY2hhcjQsIGNoYXIpOworbmF0aXZlIGNoYXI0IG9wZXJhdG9yLnc9KGNo
YXI0LCBjaGFyKTsKK2NoYXIgb3BlcmF0b3JbXShjaGFyMiB2LCB1aW50IGluZGV4KSB7CisgICAg
c3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gdi54
OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gdi55OworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9Cit9CitjaGFyIG9wZXJhdG9yW10oY2hhcjMg
diwgdWludCBpbmRleCkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgor
ICAgICAgICAgICAgcmV0dXJuIHYueDsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0
dXJuIHYueTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmV0dXJuIHYuejsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorfQorY2hhciBvcGVyYXRvcltd
KGNoYXI0IHYsIHVpbnQgaW5kZXgpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNh
c2UgMDoKKyAgICAgICAgICAgIHJldHVybiB2Lng7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAg
ICAgIHJldHVybiB2Lnk7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVybiB2Lno7
CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHJldHVybiB2Lnc7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KK30KK2NoYXIyIG9wZXJhdG9yW109KGNoYXIy
IHYsIHVpbnQgaW5kZXgsIGNoYXIgYSkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAg
Y2FzZSAwOgorICAgICAgICAgICAgdi54ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDE6CisgICAgICAgICAgICB2LnkgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsKK30K
K2NoYXIzIG9wZXJhdG9yW109KGNoYXIzIHYsIHVpbnQgaW5kZXgsIGNoYXIgYSkgeworICAgIHN3
aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgdi54ID0gYTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICB2LnkgPSBhOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHYueiA9IGE7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7
CisgICAgfQorICAgIHJldHVybiB2OworfQorY2hhcjQgb3BlcmF0b3JbXT0oY2hhcjQgdiwgdWlu
dCBpbmRleCwgY2hhciBhKSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6
CisgICAgICAgICAgICB2LnggPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
MToKKyAgICAgICAgICAgIHYueSA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAyOgorICAgICAgICAgICAgdi56ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDM6CisgICAgICAgICAgICB2LncgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsKK30KK2Jv
b2wgb3BlcmF0b3I9PShzaG9ydDIgYSwgc2hvcnQyIGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIu
eCAmJiBhLnkgPT0gYi55OworfQorYm9vbCBvcGVyYXRvcj09KHNob3J0MyBhLCBzaG9ydDMgYikg
eworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIuejsKK30K
K2Jvb2wgb3BlcmF0b3I9PShzaG9ydDQgYSwgc2hvcnQ0IGIpIHsKKyAgICByZXR1cm4gYS54ID09
IGIueCAmJiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLnogJiYgYS53ID09IGIudzsKK30KK25hdGl2
ZSBzaG9ydCBvcGVyYXRvci54KHNob3J0Mik7CituYXRpdmUgc2hvcnQgb3BlcmF0b3IueShzaG9y
dDIpOworbmF0aXZlIHNob3J0IG9wZXJhdG9yLngoc2hvcnQzKTsKK25hdGl2ZSBzaG9ydCBvcGVy
YXRvci55KHNob3J0Myk7CituYXRpdmUgc2hvcnQgb3BlcmF0b3IueihzaG9ydDMpOworbmF0aXZl
IHNob3J0IG9wZXJhdG9yLngoc2hvcnQ0KTsKK25hdGl2ZSBzaG9ydCBvcGVyYXRvci55KHNob3J0
NCk7CituYXRpdmUgc2hvcnQgb3BlcmF0b3IueihzaG9ydDQpOworbmF0aXZlIHNob3J0IG9wZXJh
dG9yLncoc2hvcnQ0KTsKK25hdGl2ZSBzaG9ydDIgb3BlcmF0b3IueD0oc2hvcnQyLCBzaG9ydCk7
CituYXRpdmUgc2hvcnQyIG9wZXJhdG9yLnk9KHNob3J0Miwgc2hvcnQpOworbmF0aXZlIHNob3J0
MyBvcGVyYXRvci54PShzaG9ydDMsIHNob3J0KTsKK25hdGl2ZSBzaG9ydDMgb3BlcmF0b3IueT0o
c2hvcnQzLCBzaG9ydCk7CituYXRpdmUgc2hvcnQzIG9wZXJhdG9yLno9KHNob3J0Mywgc2hvcnQp
OworbmF0aXZlIHNob3J0NCBvcGVyYXRvci54PShzaG9ydDQsIHNob3J0KTsKK25hdGl2ZSBzaG9y
dDQgb3BlcmF0b3IueT0oc2hvcnQ0LCBzaG9ydCk7CituYXRpdmUgc2hvcnQ0IG9wZXJhdG9yLno9
KHNob3J0NCwgc2hvcnQpOworbmF0aXZlIHNob3J0NCBvcGVyYXRvci53PShzaG9ydDQsIHNob3J0
KTsKK3Nob3J0IG9wZXJhdG9yW10oc2hvcnQyIHYsIHVpbnQgaW5kZXgpIHsKKyAgICBzd2l0Y2gg
KGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiB2Lng7CisgICAg
ICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiB2Lnk7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICB0cmFwOworICAgIH0KK30KK3Nob3J0IG9wZXJhdG9yW10oc2hvcnQzIHYsIHVp
bnQgaW5kZXgpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAg
ICAgICAgIHJldHVybiB2Lng7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiB2
Lnk7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVybiB2Lno7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KK30KK3Nob3J0IG9wZXJhdG9yW10oc2hv
cnQ0IHYsIHVpbnQgaW5kZXgpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2Ug
MDoKKyAgICAgICAgICAgIHJldHVybiB2Lng7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAg
IHJldHVybiB2Lnk7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVybiB2Lno7Cisg
ICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHJldHVybiB2Lnc7CisgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICB0cmFwOworICAgIH0KK30KK3Nob3J0MiBvcGVyYXRvcltdPShzaG9ydDIg
diwgdWludCBpbmRleCwgc2hvcnQgYSkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAg
Y2FzZSAwOgorICAgICAgICAgICAgdi54ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDE6CisgICAgICAgICAgICB2LnkgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsKK30K
K3Nob3J0MyBvcGVyYXRvcltdPShzaG9ydDMgdiwgdWludCBpbmRleCwgc2hvcnQgYSkgeworICAg
IHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgdi54ID0gYTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICB2LnkgPSBh
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHYueiA9
IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRy
YXA7CisgICAgfQorICAgIHJldHVybiB2OworfQorc2hvcnQ0IG9wZXJhdG9yW109KHNob3J0NCB2
LCB1aW50IGluZGV4LCBzaG9ydCBhKSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBj
YXNlIDA6CisgICAgICAgICAgICB2LnggPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgMToKKyAgICAgICAgICAgIHYueSA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAyOgorICAgICAgICAgICAgdi56ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDM6CisgICAgICAgICAgICB2LncgPSBhOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsK
K30KK2Jvb2wgb3BlcmF0b3I9PShpbnQyIGEsIGludDIgYikgeworICAgIHJldHVybiBhLnggPT0g
Yi54ICYmIGEueSA9PSBiLnk7Cit9Citib29sIG9wZXJhdG9yPT0oaW50MyBhLCBpbnQzIGIpIHsK
KyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLno7Cit9Citi
b29sIG9wZXJhdG9yPT0oaW50NCBhLCBpbnQ0IGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAm
JiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLnogJiYgYS53ID09IGIudzsKK30KK25hdGl2ZSBpbnQg
b3BlcmF0b3IueChpbnQyKTsKK25hdGl2ZSBpbnQgb3BlcmF0b3IueShpbnQyKTsKK25hdGl2ZSBp
bnQgb3BlcmF0b3IueChpbnQzKTsKK25hdGl2ZSBpbnQgb3BlcmF0b3IueShpbnQzKTsKK25hdGl2
ZSBpbnQgb3BlcmF0b3IueihpbnQzKTsKK25hdGl2ZSBpbnQgb3BlcmF0b3IueChpbnQ0KTsKK25h
dGl2ZSBpbnQgb3BlcmF0b3IueShpbnQ0KTsKK25hdGl2ZSBpbnQgb3BlcmF0b3IueihpbnQ0KTsK
K25hdGl2ZSBpbnQgb3BlcmF0b3IudyhpbnQ0KTsKK25hdGl2ZSBpbnQyIG9wZXJhdG9yLng9KGlu
dDIsIGludCk7CituYXRpdmUgaW50MiBvcGVyYXRvci55PShpbnQyLCBpbnQpOworbmF0aXZlIGlu
dDMgb3BlcmF0b3IueD0oaW50MywgaW50KTsKK25hdGl2ZSBpbnQzIG9wZXJhdG9yLnk9KGludDMs
IGludCk7CituYXRpdmUgaW50MyBvcGVyYXRvci56PShpbnQzLCBpbnQpOworbmF0aXZlIGludDQg
b3BlcmF0b3IueD0oaW50NCwgaW50KTsKK25hdGl2ZSBpbnQ0IG9wZXJhdG9yLnk9KGludDQsIGlu
dCk7CituYXRpdmUgaW50NCBvcGVyYXRvci56PShpbnQ0LCBpbnQpOworbmF0aXZlIGludDQgb3Bl
cmF0b3Iudz0oaW50NCwgaW50KTsKK2ludCBvcGVyYXRvcltdKGludDIgdiwgdWludCBpbmRleCkg
eworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0
dXJuIHYueDsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIHYueTsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorfQoraW50IG9wZXJhdG9yW10o
aW50MyB2LCB1aW50IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNl
IDA6CisgICAgICAgICAgICByZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAg
ICByZXR1cm4gdi55OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gdi56Owor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9Cit9CitpbnQgb3BlcmF0
b3JbXShpbnQ0IHYsIHVpbnQgaW5kZXgpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAg
IGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiB2Lng7CisgICAgICAgIGNhc2UgMToKKyAgICAg
ICAgICAgIHJldHVybiB2Lnk7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVybiB2
Lno7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHJldHVybiB2Lnc7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KK30KK2ludDIgb3BlcmF0b3JbXT0oaW50
MiB2LCB1aW50IGluZGV4LCBpbnQgYSkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAg
Y2FzZSAwOgorICAgICAgICAgICAgdi54ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDE6CisgICAgICAgICAgICB2LnkgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsKK30K
K2ludDMgb3BlcmF0b3JbXT0oaW50MyB2LCB1aW50IGluZGV4LCBpbnQgYSkgeworICAgIHN3aXRj
aCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgdi54ID0gYTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICB2LnkgPSBhOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHYueiA9IGE7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7Cisg
ICAgfQorICAgIHJldHVybiB2OworfQoraW50NCBvcGVyYXRvcltdPShpbnQ0IHYsIHVpbnQgaW5k
ZXgsIGludCBhKSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAg
ICAgICAgICB2LnggPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAg
ICAgICAgICAgIHYueSA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgor
ICAgICAgICAgICAgdi56ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM6
CisgICAgICAgICAgICB2LncgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsKK30KK2Jvb2wgb3Bl
cmF0b3I9PShoYWxmMiBhLCBoYWxmMiBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55
ID09IGIueTsKK30KK2Jvb2wgb3BlcmF0b3I9PShoYWxmMyBhLCBoYWxmMyBiKSB7CisgICAgcmV0
dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56OworfQorYm9vbCBvcGVy
YXRvcj09KGhhbGY0IGEsIGhhbGY0IGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkg
PT0gYi55ICYmIGEueiA9PSBiLnogJiYgYS53ID09IGIudzsKK30KK25hdGl2ZSBoYWxmIG9wZXJh
dG9yLngoaGFsZjIpOworbmF0aXZlIGhhbGYgb3BlcmF0b3IueShoYWxmMik7CituYXRpdmUgaGFs
ZiBvcGVyYXRvci54KGhhbGYzKTsKK25hdGl2ZSBoYWxmIG9wZXJhdG9yLnkoaGFsZjMpOworbmF0
aXZlIGhhbGYgb3BlcmF0b3IueihoYWxmMyk7CituYXRpdmUgaGFsZiBvcGVyYXRvci54KGhhbGY0
KTsKK25hdGl2ZSBoYWxmIG9wZXJhdG9yLnkoaGFsZjQpOworbmF0aXZlIGhhbGYgb3BlcmF0b3Iu
eihoYWxmNCk7CituYXRpdmUgaGFsZiBvcGVyYXRvci53KGhhbGY0KTsKK25hdGl2ZSBoYWxmMiBv
cGVyYXRvci54PShoYWxmMiwgaGFsZik7CituYXRpdmUgaGFsZjIgb3BlcmF0b3IueT0oaGFsZjIs
IGhhbGYpOworbmF0aXZlIGhhbGYzIG9wZXJhdG9yLng9KGhhbGYzLCBoYWxmKTsKK25hdGl2ZSBo
YWxmMyBvcGVyYXRvci55PShoYWxmMywgaGFsZik7CituYXRpdmUgaGFsZjMgb3BlcmF0b3Iuej0o
aGFsZjMsIGhhbGYpOworbmF0aXZlIGhhbGY0IG9wZXJhdG9yLng9KGhhbGY0LCBoYWxmKTsKK25h
dGl2ZSBoYWxmNCBvcGVyYXRvci55PShoYWxmNCwgaGFsZik7CituYXRpdmUgaGFsZjQgb3BlcmF0
b3Iuej0oaGFsZjQsIGhhbGYpOworbmF0aXZlIGhhbGY0IG9wZXJhdG9yLnc9KGhhbGY0LCBoYWxm
KTsKK2hhbGYgb3BlcmF0b3JbXShoYWxmMiB2LCB1aW50IGluZGV4KSB7CisgICAgc3dpdGNoIChp
bmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gdi54OworICAgICAg
ICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gdi55OworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgdHJhcDsKKyAgICB9Cit9CitoYWxmIG9wZXJhdG9yW10oaGFsZjMgdiwgdWludCBp
bmRleCkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAg
ICAgcmV0dXJuIHYueDsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIHYueTsK
KyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmV0dXJuIHYuejsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorfQoraGFsZiBvcGVyYXRvcltdKGhhbGY0IHYs
IHVpbnQgaW5kZXgpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAg
ICAgICAgICAgIHJldHVybiB2Lng7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVy
biB2Lnk7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVybiB2Lno7CisgICAgICAg
IGNhc2UgMzoKKyAgICAgICAgICAgIHJldHVybiB2Lnc7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICB0cmFwOworICAgIH0KK30KK2hhbGYyIG9wZXJhdG9yW109KGhhbGYyIHYsIHVpbnQg
aW5kZXgsIGhhbGYgYSkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgor
ICAgICAgICAgICAgdi54ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6
CisgICAgICAgICAgICB2LnkgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsKK30KK2hhbGYzIG9w
ZXJhdG9yW109KGhhbGYzIHYsIHVpbnQgaW5kZXgsIGhhbGYgYSkgeworICAgIHN3aXRjaCAoaW5k
ZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgdi54ID0gYTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICB2LnkgPSBhOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHYueiA9IGE7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQor
ICAgIHJldHVybiB2OworfQoraGFsZjQgb3BlcmF0b3JbXT0oaGFsZjQgdiwgdWludCBpbmRleCwg
aGFsZiBhKSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAg
ICAgICB2LnggPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAg
ICAgICAgIHYueSA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAg
ICAgICAgICAgdi56ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM6Cisg
ICAgICAgICAgICB2LncgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsKK30KK2Jvb2wgb3BlcmF0
b3I9PShmbG9hdDIgYSwgZmxvYXQyIGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkg
PT0gYi55OworfQorYm9vbCBvcGVyYXRvcj09KGZsb2F0MyBhLCBmbG9hdDMgYikgeworICAgIHJl
dHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIuejsKK30KK2Jvb2wgb3Bl
cmF0b3I9PShmbG9hdDQgYSwgZmxvYXQ0IGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBh
LnkgPT0gYi55ICYmIGEueiA9PSBiLnogJiYgYS53ID09IGIudzsKK30KK25hdGl2ZSBmbG9hdCBv
cGVyYXRvci54KGZsb2F0Mik7CituYXRpdmUgZmxvYXQgb3BlcmF0b3IueShmbG9hdDIpOworbmF0
aXZlIGZsb2F0IG9wZXJhdG9yLngoZmxvYXQzKTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRvci55KGZs
b2F0Myk7CituYXRpdmUgZmxvYXQgb3BlcmF0b3IueihmbG9hdDMpOworbmF0aXZlIGZsb2F0IG9w
ZXJhdG9yLngoZmxvYXQ0KTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRvci55KGZsb2F0NCk7CituYXRp
dmUgZmxvYXQgb3BlcmF0b3IueihmbG9hdDQpOworbmF0aXZlIGZsb2F0IG9wZXJhdG9yLncoZmxv
YXQ0KTsKK25hdGl2ZSBmbG9hdDIgb3BlcmF0b3IueD0oZmxvYXQyLCBmbG9hdCk7CituYXRpdmUg
ZmxvYXQyIG9wZXJhdG9yLnk9KGZsb2F0MiwgZmxvYXQpOworbmF0aXZlIGZsb2F0MyBvcGVyYXRv
ci54PShmbG9hdDMsIGZsb2F0KTsKK25hdGl2ZSBmbG9hdDMgb3BlcmF0b3IueT0oZmxvYXQzLCBm
bG9hdCk7CituYXRpdmUgZmxvYXQzIG9wZXJhdG9yLno9KGZsb2F0MywgZmxvYXQpOworbmF0aXZl
IGZsb2F0NCBvcGVyYXRvci54PShmbG9hdDQsIGZsb2F0KTsKK25hdGl2ZSBmbG9hdDQgb3BlcmF0
b3IueT0oZmxvYXQ0LCBmbG9hdCk7CituYXRpdmUgZmxvYXQ0IG9wZXJhdG9yLno9KGZsb2F0NCwg
ZmxvYXQpOworbmF0aXZlIGZsb2F0NCBvcGVyYXRvci53PShmbG9hdDQsIGZsb2F0KTsKK2Zsb2F0
IG9wZXJhdG9yW10oZmxvYXQyIHYsIHVpbnQgaW5kZXgpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7
CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiB2Lng7CisgICAgICAgIGNhc2Ug
MToKKyAgICAgICAgICAgIHJldHVybiB2Lnk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICB0cmFwOworICAgIH0KK30KK2Zsb2F0IG9wZXJhdG9yW10oZmxvYXQzIHYsIHVpbnQgaW5kZXgp
IHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJl
dHVybiB2Lng7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiB2Lnk7CisgICAg
ICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVybiB2Lno7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICB0cmFwOworICAgIH0KK30KK2Zsb2F0IG9wZXJhdG9yW10oZmxvYXQ0IHYsIHVp
bnQgaW5kZXgpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAg
ICAgICAgIHJldHVybiB2Lng7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiB2
Lnk7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVybiB2Lno7CisgICAgICAgIGNh
c2UgMzoKKyAgICAgICAgICAgIHJldHVybiB2Lnc7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICB0cmFwOworICAgIH0KK30KK2Zsb2F0MiBvcGVyYXRvcltdPShmbG9hdDIgdiwgdWludCBp
bmRleCwgZmxvYXQgYSkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgor
ICAgICAgICAgICAgdi54ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6
CisgICAgICAgICAgICB2LnkgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsKK30KK2Zsb2F0MyBv
cGVyYXRvcltdPShmbG9hdDMgdiwgdWludCBpbmRleCwgZmxvYXQgYSkgeworICAgIHN3aXRjaCAo
aW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgdi54ID0gYTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICB2LnkgPSBhOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHYueiA9IGE7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAg
fQorICAgIHJldHVybiB2OworfQorZmxvYXQ0IG9wZXJhdG9yW109KGZsb2F0NCB2LCB1aW50IGlu
ZGV4LCBmbG9hdCBhKSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6Cisg
ICAgICAgICAgICB2LnggPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToK
KyAgICAgICAgICAgIHYueSA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAy
OgorICAgICAgICAgICAgdi56ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDM6CisgICAgICAgICAgICB2LncgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsKIH0KIAotYm9v
bCBvcGVyYXRvcn4oYm9vbCB2YWx1ZSkKLXsKLSAgICByZXR1cm4gIXZhbHVlOworbmF0aXZlIGhh
bGYyIG9wZXJhdG9yW10oaGFsZjJ4MiwgdWludCk7CituYXRpdmUgaGFsZjJ4MiBvcGVyYXRvcltd
PShoYWxmMngyLCB1aW50LCBoYWxmMik7CituYXRpdmUgaGFsZjMgb3BlcmF0b3JbXShoYWxmMngz
LCB1aW50KTsKK25hdGl2ZSBoYWxmMngzIG9wZXJhdG9yW109KGhhbGYyeDMsIHVpbnQsIGhhbGYz
KTsKK25hdGl2ZSBoYWxmNCBvcGVyYXRvcltdKGhhbGYyeDQsIHVpbnQpOworbmF0aXZlIGhhbGYy
eDQgb3BlcmF0b3JbXT0oaGFsZjJ4NCwgdWludCwgaGFsZjQpOworbmF0aXZlIGhhbGYyIG9wZXJh
dG9yW10oaGFsZjN4MiwgdWludCk7CituYXRpdmUgaGFsZjN4MiBvcGVyYXRvcltdPShoYWxmM3gy
LCB1aW50LCBoYWxmMik7CituYXRpdmUgaGFsZjMgb3BlcmF0b3JbXShoYWxmM3gzLCB1aW50KTsK
K25hdGl2ZSBoYWxmM3gzIG9wZXJhdG9yW109KGhhbGYzeDMsIHVpbnQsIGhhbGYzKTsKK25hdGl2
ZSBoYWxmNCBvcGVyYXRvcltdKGhhbGYzeDQsIHVpbnQpOworbmF0aXZlIGhhbGYzeDQgb3BlcmF0
b3JbXT0oaGFsZjN4NCwgdWludCwgaGFsZjQpOworbmF0aXZlIGhhbGYyIG9wZXJhdG9yW10oaGFs
ZjR4MiwgdWludCk7CituYXRpdmUgaGFsZjR4MiBvcGVyYXRvcltdPShoYWxmNHgyLCB1aW50LCBo
YWxmMik7CituYXRpdmUgaGFsZjMgb3BlcmF0b3JbXShoYWxmNHgzLCB1aW50KTsKK25hdGl2ZSBo
YWxmNHgzIG9wZXJhdG9yW109KGhhbGY0eDMsIHVpbnQsIGhhbGYzKTsKK25hdGl2ZSBoYWxmNCBv
cGVyYXRvcltdKGhhbGY0eDQsIHVpbnQpOworbmF0aXZlIGhhbGY0eDQgb3BlcmF0b3JbXT0oaGFs
ZjR4NCwgdWludCwgaGFsZjQpOworbmF0aXZlIGZsb2F0MiBvcGVyYXRvcltdKGZsb2F0MngyLCB1
aW50KTsKK25hdGl2ZSBmbG9hdDJ4MiBvcGVyYXRvcltdPShmbG9hdDJ4MiwgdWludCwgZmxvYXQy
KTsKK25hdGl2ZSBmbG9hdDMgb3BlcmF0b3JbXShmbG9hdDJ4MywgdWludCk7CituYXRpdmUgZmxv
YXQyeDMgb3BlcmF0b3JbXT0oZmxvYXQyeDMsIHVpbnQsIGZsb2F0Myk7CituYXRpdmUgZmxvYXQ0
IG9wZXJhdG9yW10oZmxvYXQyeDQsIHVpbnQpOworbmF0aXZlIGZsb2F0Mng0IG9wZXJhdG9yW109
KGZsb2F0Mng0LCB1aW50LCBmbG9hdDQpOworbmF0aXZlIGZsb2F0MiBvcGVyYXRvcltdKGZsb2F0
M3gyLCB1aW50KTsKK25hdGl2ZSBmbG9hdDN4MiBvcGVyYXRvcltdPShmbG9hdDN4MiwgdWludCwg
ZmxvYXQyKTsKK25hdGl2ZSBmbG9hdDMgb3BlcmF0b3JbXShmbG9hdDN4MywgdWludCk7CituYXRp
dmUgZmxvYXQzeDMgb3BlcmF0b3JbXT0oZmxvYXQzeDMsIHVpbnQsIGZsb2F0Myk7CituYXRpdmUg
ZmxvYXQ0IG9wZXJhdG9yW10oZmxvYXQzeDQsIHVpbnQpOworbmF0aXZlIGZsb2F0M3g0IG9wZXJh
dG9yW109KGZsb2F0M3g0LCB1aW50LCBmbG9hdDQpOworbmF0aXZlIGZsb2F0MiBvcGVyYXRvcltd
KGZsb2F0NHgyLCB1aW50KTsKK25hdGl2ZSBmbG9hdDR4MiBvcGVyYXRvcltdPShmbG9hdDR4Miwg
dWludCwgZmxvYXQyKTsKK25hdGl2ZSBmbG9hdDMgb3BlcmF0b3JbXShmbG9hdDR4MywgdWludCk7
CituYXRpdmUgZmxvYXQ0eDMgb3BlcmF0b3JbXT0oZmxvYXQ0eDMsIHVpbnQsIGZsb2F0Myk7Citu
YXRpdmUgZmxvYXQ0IG9wZXJhdG9yW10oZmxvYXQ0eDQsIHVpbnQpOworbmF0aXZlIGZsb2F0NHg0
IG9wZXJhdG9yW109KGZsb2F0NHg0LCB1aW50LCBmbG9hdDQpOworCitib29sIG9wZXJhdG9yPT0o
aGFsZjJ4MiBhLCBoYWxmMngyIGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBi
WzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAgICAgICBhWzFdWzBd
ID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYmCisgICAgdHJ1ZTsK
K30KK2Jvb2wgb3BlcmF0b3I9PShoYWxmMngzIGEsIGhhbGYyeDMgYikgeworICAgIHJldHVybgor
ICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAgICAgICAgYVswXVsxXSA9PSBiWzBdWzFd
ICYmCisgICAgICAgIGFbMF1bMl0gPT0gYlswXVsyXSAmJgorICAgICAgICBhWzFdWzBdID09IGJb
MV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYmCisgICAgICAgIGFbMV1bMl0g
PT0gYlsxXVsyXSAmJgorICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0oaGFsZjJ4NCBhLCBo
YWxmMng0IGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisg
ICAgICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAgICAgICBhWzBdWzJdID09IGJbMF1bMl0g
JiYKKyAgICAgICAgYVswXVszXSA9PSBiWzBdWzNdICYmCisgICAgICAgIGFbMV1bMF0gPT0gYlsx
XVswXSAmJgorICAgICAgICBhWzFdWzFdID09IGJbMV1bMV0gJiYKKyAgICAgICAgYVsxXVsyXSA9
PSBiWzFdWzJdICYmCisgICAgICAgIGFbMV1bM10gPT0gYlsxXVszXSAmJgorICAgIHRydWU7Cit9
Citib29sIG9wZXJhdG9yPT0oaGFsZjN4MiBhLCBoYWxmM3gyIGIpIHsKKyAgICByZXR1cm4KKyAg
ICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlswXVsxXSAm
JgorICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFd
WzFdICYmCisgICAgICAgIGFbMl1bMF0gPT0gYlsyXVswXSAmJgorICAgICAgICBhWzJdWzFdID09
IGJbMl1bMV0gJiYKKyAgICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGhhbGYzeDMgYSwgaGFs
ZjN4MyBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0gYlswXVswXSAmJgorICAg
ICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVswXVsyXSA9PSBiWzBdWzJdICYm
CisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAmJgorICAgICAgICBhWzFdWzFdID09IGJbMV1b
MV0gJiYKKyAgICAgICAgYVsxXVsyXSA9PSBiWzFdWzJdICYmCisgICAgICAgIGFbMl1bMF0gPT0g
YlsyXVswXSAmJgorICAgICAgICBhWzJdWzFdID09IGJbMl1bMV0gJiYKKyAgICAgICAgYVsyXVsy
XSA9PSBiWzJdWzJdICYmCisgICAgdHJ1ZTsKK30KK2Jvb2wgb3BlcmF0b3I9PShoYWxmM3g0IGEs
IGhhbGYzeDQgYikgeworICAgIHJldHVybgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYK
KyAgICAgICAgYVswXVsxXSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFbMF1bMl0gPT0gYlswXVsy
XSAmJgorICAgICAgICBhWzBdWzNdID09IGJbMF1bM10gJiYKKyAgICAgICAgYVsxXVswXSA9PSBi
WzFdWzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBhWzFdWzJd
ID09IGJbMV1bMl0gJiYKKyAgICAgICAgYVsxXVszXSA9PSBiWzFdWzNdICYmCisgICAgICAgIGFb
Ml1bMF0gPT0gYlsyXVswXSAmJgorICAgICAgICBhWzJdWzFdID09IGJbMl1bMV0gJiYKKyAgICAg
ICAgYVsyXVsyXSA9PSBiWzJdWzJdICYmCisgICAgICAgIGFbMl1bM10gPT0gYlsyXVszXSAmJgor
ICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0oaGFsZjR4MiBhLCBoYWxmNHgyIGIpIHsKKyAg
ICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0g
PT0gYlswXVsxXSAmJgorICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsx
XVsxXSA9PSBiWzFdWzFdICYmCisgICAgICAgIGFbMl1bMF0gPT0gYlsyXVswXSAmJgorICAgICAg
ICBhWzJdWzFdID09IGJbMl1bMV0gJiYKKyAgICAgICAgYVszXVswXSA9PSBiWzNdWzBdICYmCisg
ICAgICAgIGFbM11bMV0gPT0gYlszXVsxXSAmJgorICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9y
PT0oaGFsZjR4MyBhLCBoYWxmNHgzIGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9
PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAgICAgICBhWzBd
WzJdID09IGJbMF1bMl0gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFdWzBdICYmCisgICAgICAg
IGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBhWzFdWzJdID09IGJbMV1bMl0gJiYKKyAg
ICAgICAgYVsyXVswXSA9PSBiWzJdWzBdICYmCisgICAgICAgIGFbMl1bMV0gPT0gYlsyXVsxXSAm
JgorICAgICAgICBhWzJdWzJdID09IGJbMl1bMl0gJiYKKyAgICAgICAgYVszXVswXSA9PSBiWzNd
WzBdICYmCisgICAgICAgIGFbM11bMV0gPT0gYlszXVsxXSAmJgorICAgICAgICBhWzNdWzJdID09
IGJbM11bMl0gJiYKKyAgICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGhhbGY0eDQgYSwgaGFs
ZjR4NCBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0gYlswXVswXSAmJgorICAg
ICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVswXVsyXSA9PSBiWzBdWzJdICYm
CisgICAgICAgIGFbMF1bM10gPT0gYlswXVszXSAmJgorICAgICAgICBhWzFdWzBdID09IGJbMV1b
MF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYmCisgICAgICAgIGFbMV1bMl0gPT0g
YlsxXVsyXSAmJgorICAgICAgICBhWzFdWzNdID09IGJbMV1bM10gJiYKKyAgICAgICAgYVsyXVsw
XSA9PSBiWzJdWzBdICYmCisgICAgICAgIGFbMl1bMV0gPT0gYlsyXVsxXSAmJgorICAgICAgICBh
WzJdWzJdID09IGJbMl1bMl0gJiYKKyAgICAgICAgYVsyXVszXSA9PSBiWzJdWzNdICYmCisgICAg
ICAgIGFbM11bMF0gPT0gYlszXVswXSAmJgorICAgICAgICBhWzNdWzFdID09IGJbM11bMV0gJiYK
KyAgICAgICAgYVszXVsyXSA9PSBiWzNdWzJdICYmCisgICAgICAgIGFbM11bM10gPT0gYlszXVsz
XSAmJgorICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0oZmxvYXQyeDIgYSwgZmxvYXQyeDIg
YikgeworICAgIHJldHVybgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAgICAgICAg
YVswXVsxXSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAmJgorICAg
ICAgICBhWzFdWzFdID09IGJbMV1bMV0gJiYKKyAgICB0cnVlOwogfQorYm9vbCBvcGVyYXRvcj09
KGZsb2F0MngzIGEsIGZsb2F0MngzIGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9
PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAgICAgICBhWzBd
WzJdID09IGJbMF1bMl0gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFdWzBdICYmCisgICAgICAg
IGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBhWzFdWzJdID09IGJbMV1bMl0gJiYKKyAg
ICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGZsb2F0Mng0IGEsIGZsb2F0Mng0IGIpIHsKKyAg
ICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0g
PT0gYlswXVsxXSAmJgorICAgICAgICBhWzBdWzJdID09IGJbMF1bMl0gJiYKKyAgICAgICAgYVsw
XVszXSA9PSBiWzBdWzNdICYmCisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAmJgorICAgICAg
ICBhWzFdWzFdID09IGJbMV1bMV0gJiYKKyAgICAgICAgYVsxXVsyXSA9PSBiWzFdWzJdICYmCisg
ICAgICAgIGFbMV1bM10gPT0gYlsxXVszXSAmJgorICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9y
PT0oZmxvYXQzeDIgYSwgZmxvYXQzeDIgYikgeworICAgIHJldHVybgorICAgICAgICBhWzBdWzBd
ID09IGJbMF1bMF0gJiYKKyAgICAgICAgYVswXVsxXSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFb
MV1bMF0gPT0gYlsxXVswXSAmJgorICAgICAgICBhWzFdWzFdID09IGJbMV1bMV0gJiYKKyAgICAg
ICAgYVsyXVswXSA9PSBiWzJdWzBdICYmCisgICAgICAgIGFbMl1bMV0gPT0gYlsyXVsxXSAmJgor
ICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0oZmxvYXQzeDMgYSwgZmxvYXQzeDMgYikgewor
ICAgIHJldHVybgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAgICAgICAgYVswXVsx
XSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFbMF1bMl0gPT0gYlswXVsyXSAmJgorICAgICAgICBh
WzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYmCisgICAg
ICAgIGFbMV1bMl0gPT0gYlsxXVsyXSAmJgorICAgICAgICBhWzJdWzBdID09IGJbMl1bMF0gJiYK
KyAgICAgICAgYVsyXVsxXSA9PSBiWzJdWzFdICYmCisgICAgICAgIGFbMl1bMl0gPT0gYlsyXVsy
XSAmJgorICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0oZmxvYXQzeDQgYSwgZmxvYXQzeDQg
YikgeworICAgIHJldHVybgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAgICAgICAg
YVswXVsxXSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFbMF1bMl0gPT0gYlswXVsyXSAmJgorICAg
ICAgICBhWzBdWzNdID09IGJbMF1bM10gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFdWzBdICYm
CisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBhWzFdWzJdID09IGJbMV1b
Ml0gJiYKKyAgICAgICAgYVsxXVszXSA9PSBiWzFdWzNdICYmCisgICAgICAgIGFbMl1bMF0gPT0g
YlsyXVswXSAmJgorICAgICAgICBhWzJdWzFdID09IGJbMl1bMV0gJiYKKyAgICAgICAgYVsyXVsy
XSA9PSBiWzJdWzJdICYmCisgICAgICAgIGFbMl1bM10gPT0gYlsyXVszXSAmJgorICAgIHRydWU7
Cit9Citib29sIG9wZXJhdG9yPT0oZmxvYXQ0eDIgYSwgZmxvYXQ0eDIgYikgeworICAgIHJldHVy
bgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAgICAgICAgYVswXVsxXSA9PSBiWzBd
WzFdICYmCisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAmJgorICAgICAgICBhWzFdWzFdID09
IGJbMV1bMV0gJiYKKyAgICAgICAgYVsyXVswXSA9PSBiWzJdWzBdICYmCisgICAgICAgIGFbMl1b
MV0gPT0gYlsyXVsxXSAmJgorICAgICAgICBhWzNdWzBdID09IGJbM11bMF0gJiYKKyAgICAgICAg
YVszXVsxXSA9PSBiWzNdWzFdICYmCisgICAgdHJ1ZTsKK30KK2Jvb2wgb3BlcmF0b3I9PShmbG9h
dDR4MyBhLCBmbG9hdDR4MyBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0gYlsw
XVswXSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVswXVsyXSA9
PSBiWzBdWzJdICYmCisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAmJgorICAgICAgICBhWzFd
WzFdID09IGJbMV1bMV0gJiYKKyAgICAgICAgYVsxXVsyXSA9PSBiWzFdWzJdICYmCisgICAgICAg
IGFbMl1bMF0gPT0gYlsyXVswXSAmJgorICAgICAgICBhWzJdWzFdID09IGJbMl1bMV0gJiYKKyAg
ICAgICAgYVsyXVsyXSA9PSBiWzJdWzJdICYmCisgICAgICAgIGFbM11bMF0gPT0gYlszXVswXSAm
JgorICAgICAgICBhWzNdWzFdID09IGJbM11bMV0gJiYKKyAgICAgICAgYVszXVsyXSA9PSBiWzNd
WzJdICYmCisgICAgdHJ1ZTsKK30KK2Jvb2wgb3BlcmF0b3I9PShmbG9hdDR4NCBhLCBmbG9hdDR4
NCBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0gYlswXVswXSAmJgorICAgICAg
ICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVswXVsyXSA9PSBiWzBdWzJdICYmCisg
ICAgICAgIGFbMF1bM10gPT0gYlswXVszXSAmJgorICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0g
JiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYmCisgICAgICAgIGFbMV1bMl0gPT0gYlsx
XVsyXSAmJgorICAgICAgICBhWzFdWzNdID09IGJbMV1bM10gJiYKKyAgICAgICAgYVsyXVswXSA9
PSBiWzJdWzBdICYmCisgICAgICAgIGFbMl1bMV0gPT0gYlsyXVsxXSAmJgorICAgICAgICBhWzJd
WzJdID09IGJbMl1bMl0gJiYKKyAgICAgICAgYVsyXVszXSA9PSBiWzJdWzNdICYmCisgICAgICAg
IGFbM11bMF0gPT0gYlszXVswXSAmJgorICAgICAgICBhWzNdWzFdID09IGJbM11bMV0gJiYKKyAg
ICAgICAgYVszXVsyXSA9PSBiWzNdWzJdICYmCisgICAgICAgIGFbM11bM10gPT0gYlszXVszXSAm
JgorICAgIHRydWU7Cit9CisKK25hdGl2ZSB1Y2hhciBTYW1wbGUoVGV4dHVyZTFEPHVjaGFyPiwg
c2FtcGxlciwgZmxvYXQgbG9jYXRpb24pOworbmF0aXZlIHVjaGFyIFNhbXBsZShUZXh0dXJlMUQ8
dWNoYXI+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdWNo
YXIgTG9hZChUZXh0dXJlMUQ8dWNoYXI+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSB1Y2hhciBM
b2FkKFRleHR1cmUxRDx1Y2hhcj4sIGludDIgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZl
IHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8dWNoYXI+LCB1aW50IE1pcExldmVsLCB0aHJl
YWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7CituYXRpdmUgdWNo
YXIyIFNhbXBsZShUZXh0dXJlMUQ8dWNoYXIyPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pOwor
bmF0aXZlIHVjaGFyMiBTYW1wbGUoVGV4dHVyZTFEPHVjaGFyMj4sIHNhbXBsZXIsIGZsb2F0IGxv
Y2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB1Y2hhcjIgTG9hZChUZXh0dXJlMUQ8dWNoYXIy
PiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUgdWNoYXIyIExvYWQoVGV4dHVyZTFEPHVjaGFyMj4s
IGludDIgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhU
ZXh0dXJlMUQ8dWNoYXIyPiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJl
YWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIHVjaGFyMyBTYW1wbGUoVGV4dHVyZTFE
PHVjaGFyMz4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSB1Y2hhcjMgU2FtcGxl
KFRleHR1cmUxRDx1Y2hhcjM+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7
CituYXRpdmUgdWNoYXIzIExvYWQoVGV4dHVyZTFEPHVjaGFyMz4sIGludDIgbG9jYXRpb24pOwor
bmF0aXZlIHVjaGFyMyBMb2FkKFRleHR1cmUxRDx1Y2hhcjM+LCBpbnQyIGxvY2F0aW9uLCBpbnQg
b2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPHVjaGFyMz4sIHVp
bnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2
ZWxzKTsKK25hdGl2ZSB1Y2hhcjQgU2FtcGxlKFRleHR1cmUxRDx1Y2hhcjQ+LCBzYW1wbGVyLCBm
bG9hdCBsb2NhdGlvbik7CituYXRpdmUgdWNoYXI0IFNhbXBsZShUZXh0dXJlMUQ8dWNoYXI0Piwg
c2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHVjaGFyNCBMb2Fk
KFRleHR1cmUxRDx1Y2hhcjQ+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSB1Y2hhcjQgTG9hZChU
ZXh0dXJlMUQ8dWNoYXI0PiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdm9p
ZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDx1Y2hhcjQ+LCB1aW50IE1pcExldmVsLCB0aHJlYWQg
dWludCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7CituYXRpdmUgdXNob3J0
IFNhbXBsZShUZXh0dXJlMUQ8dXNob3J0Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pOworbmF0
aXZlIHVzaG9ydCBTYW1wbGUoVGV4dHVyZTFEPHVzaG9ydD4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0
aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB1c2hvcnQgTG9hZChUZXh0dXJlMUQ8dXNob3J0Piwg
aW50MiBsb2NhdGlvbik7CituYXRpdmUgdXNob3J0IExvYWQoVGV4dHVyZTFEPHVzaG9ydD4sIGlu
dDIgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0
dXJlMUQ8dXNob3J0PiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQg
dWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIHVzaG9ydDIgU2FtcGxlKFRleHR1cmUxRDx1
c2hvcnQyPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pOworbmF0aXZlIHVzaG9ydDIgU2FtcGxl
KFRleHR1cmUxRDx1c2hvcnQyPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQp
OworbmF0aXZlIHVzaG9ydDIgTG9hZChUZXh0dXJlMUQ8dXNob3J0Mj4sIGludDIgbG9jYXRpb24p
OworbmF0aXZlIHVzaG9ydDIgTG9hZChUZXh0dXJlMUQ8dXNob3J0Mj4sIGludDIgbG9jYXRpb24s
IGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8dXNob3J0
Mj4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJl
ck9mTGV2ZWxzKTsKK25hdGl2ZSB1c2hvcnQzIFNhbXBsZShUZXh0dXJlMUQ8dXNob3J0Mz4sIHNh
bXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSB1c2hvcnQzIFNhbXBsZShUZXh0dXJlMUQ8
dXNob3J0Mz4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB1
c2hvcnQzIExvYWQoVGV4dHVyZTFEPHVzaG9ydDM+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSB1
c2hvcnQzIExvYWQoVGV4dHVyZTFEPHVzaG9ydDM+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0
KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPHVzaG9ydDM+LCB1aW50IE1p
cExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7
CituYXRpdmUgdXNob3J0NCBTYW1wbGUoVGV4dHVyZTFEPHVzaG9ydDQ+LCBzYW1wbGVyLCBmbG9h
dCBsb2NhdGlvbik7CituYXRpdmUgdXNob3J0NCBTYW1wbGUoVGV4dHVyZTFEPHVzaG9ydDQ+LCBz
YW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdXNob3J0NCBMb2Fk
KFRleHR1cmUxRDx1c2hvcnQ0PiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUgdXNob3J0NCBMb2Fk
KFRleHR1cmUxRDx1c2hvcnQ0PiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUg
dm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDx1c2hvcnQ0PiwgdWludCBNaXBMZXZlbCwgdGhy
ZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIHVp
bnQgU2FtcGxlKFRleHR1cmUxRDx1aW50Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pOworbmF0
aXZlIHVpbnQgU2FtcGxlKFRleHR1cmUxRDx1aW50Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24s
IGludCBvZmZzZXQpOworbmF0aXZlIHVpbnQgTG9hZChUZXh0dXJlMUQ8dWludD4sIGludDIgbG9j
YXRpb24pOworbmF0aXZlIHVpbnQgTG9hZChUZXh0dXJlMUQ8dWludD4sIGludDIgbG9jYXRpb24s
IGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8dWludD4s
IHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9m
TGV2ZWxzKTsKK25hdGl2ZSB1aW50MiBTYW1wbGUoVGV4dHVyZTFEPHVpbnQyPiwgc2FtcGxlciwg
ZmxvYXQgbG9jYXRpb24pOworbmF0aXZlIHVpbnQyIFNhbXBsZShUZXh0dXJlMUQ8dWludDI+LCBz
YW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdWludDIgTG9hZChU
ZXh0dXJlMUQ8dWludDI+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSB1aW50MiBMb2FkKFRleHR1
cmUxRDx1aW50Mj4sIGludDIgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0
RGltZW5zaW9ucyhUZXh0dXJlMUQ8dWludDI+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCog
V2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7CituYXRpdmUgdWludDMgU2FtcGxl
KFRleHR1cmUxRDx1aW50Mz4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSB1aW50
MyBTYW1wbGUoVGV4dHVyZTFEPHVpbnQzPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBv
ZmZzZXQpOworbmF0aXZlIHVpbnQzIExvYWQoVGV4dHVyZTFEPHVpbnQzPiwgaW50MiBsb2NhdGlv
bik7CituYXRpdmUgdWludDMgTG9hZChUZXh0dXJlMUQ8dWludDM+LCBpbnQyIGxvY2F0aW9uLCBp
bnQgb2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPHVpbnQzPiwg
dWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZM
ZXZlbHMpOworbmF0aXZlIHVpbnQ0IFNhbXBsZShUZXh0dXJlMUQ8dWludDQ+LCBzYW1wbGVyLCBm
bG9hdCBsb2NhdGlvbik7CituYXRpdmUgdWludDQgU2FtcGxlKFRleHR1cmUxRDx1aW50ND4sIHNh
bXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB1aW50NCBMb2FkKFRl
eHR1cmUxRDx1aW50ND4sIGludDIgbG9jYXRpb24pOworbmF0aXZlIHVpbnQ0IExvYWQoVGV4dHVy
ZTFEPHVpbnQ0PiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXRE
aW1lbnNpb25zKFRleHR1cmUxRDx1aW50ND4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBX
aWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsKK25hdGl2ZSBjaGFyIFNhbXBsZShU
ZXh0dXJlMUQ8Y2hhcj4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSBjaGFyIFNh
bXBsZShUZXh0dXJlMUQ8Y2hhcj4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0
KTsKK25hdGl2ZSBjaGFyIExvYWQoVGV4dHVyZTFEPGNoYXI+LCBpbnQyIGxvY2F0aW9uKTsKK25h
dGl2ZSBjaGFyIExvYWQoVGV4dHVyZTFEPGNoYXI+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0
KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPGNoYXI+LCB1aW50IE1pcExl
dmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7Citu
YXRpdmUgY2hhcjIgU2FtcGxlKFRleHR1cmUxRDxjaGFyMj4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0
aW9uKTsKK25hdGl2ZSBjaGFyMiBTYW1wbGUoVGV4dHVyZTFEPGNoYXIyPiwgc2FtcGxlciwgZmxv
YXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIGNoYXIyIExvYWQoVGV4dHVyZTFEPGNo
YXIyPiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUgY2hhcjIgTG9hZChUZXh0dXJlMUQ8Y2hhcjI+
LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMo
VGV4dHVyZTFEPGNoYXIyPiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJl
YWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIGNoYXIzIFNhbXBsZShUZXh0dXJlMUQ8
Y2hhcjM+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUgY2hhcjMgU2FtcGxlKFRl
eHR1cmUxRDxjaGFyMz4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25h
dGl2ZSBjaGFyMyBMb2FkKFRleHR1cmUxRDxjaGFyMz4sIGludDIgbG9jYXRpb24pOworbmF0aXZl
IGNoYXIzIExvYWQoVGV4dHVyZTFEPGNoYXIzPiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7
CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDxjaGFyMz4sIHVpbnQgTWlwTGV2
ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsKK25h
dGl2ZSBjaGFyNCBTYW1wbGUoVGV4dHVyZTFEPGNoYXI0Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRp
b24pOworbmF0aXZlIGNoYXI0IFNhbXBsZShUZXh0dXJlMUQ8Y2hhcjQ+LCBzYW1wbGVyLCBmbG9h
dCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgY2hhcjQgTG9hZChUZXh0dXJlMUQ8Y2hh
cjQ+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSBjaGFyNCBMb2FkKFRleHR1cmUxRDxjaGFyND4s
IGludDIgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhU
ZXh0dXJlMUQ8Y2hhcjQ+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVh
ZCB1aW50KiBOdW1iZXJPZkxldmVscyk7CituYXRpdmUgc2hvcnQgU2FtcGxlKFRleHR1cmUxRDxz
aG9ydD4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSBzaG9ydCBTYW1wbGUoVGV4
dHVyZTFEPHNob3J0Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0
aXZlIHNob3J0IExvYWQoVGV4dHVyZTFEPHNob3J0PiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUg
c2hvcnQgTG9hZChUZXh0dXJlMUQ8c2hvcnQ+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsK
K25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPHNob3J0PiwgdWludCBNaXBMZXZl
bCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0
aXZlIHNob3J0MiBTYW1wbGUoVGV4dHVyZTFEPHNob3J0Mj4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0
aW9uKTsKK25hdGl2ZSBzaG9ydDIgU2FtcGxlKFRleHR1cmUxRDxzaG9ydDI+LCBzYW1wbGVyLCBm
bG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgc2hvcnQyIExvYWQoVGV4dHVyZTFE
PHNob3J0Mj4sIGludDIgbG9jYXRpb24pOworbmF0aXZlIHNob3J0MiBMb2FkKFRleHR1cmUxRDxz
aG9ydDI+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVu
c2lvbnMoVGV4dHVyZTFEPHNob3J0Mj4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0
aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsKK25hdGl2ZSBzaG9ydDMgU2FtcGxlKFRl
eHR1cmUxRDxzaG9ydDM+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUgc2hvcnQz
IFNhbXBsZShUZXh0dXJlMUQ8c2hvcnQzPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBv
ZmZzZXQpOworbmF0aXZlIHNob3J0MyBMb2FkKFRleHR1cmUxRDxzaG9ydDM+LCBpbnQyIGxvY2F0
aW9uKTsKK25hdGl2ZSBzaG9ydDMgTG9hZChUZXh0dXJlMUQ8c2hvcnQzPiwgaW50MiBsb2NhdGlv
biwgaW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDxzaG9y
dDM+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1i
ZXJPZkxldmVscyk7CituYXRpdmUgc2hvcnQ0IFNhbXBsZShUZXh0dXJlMUQ8c2hvcnQ0Piwgc2Ft
cGxlciwgZmxvYXQgbG9jYXRpb24pOworbmF0aXZlIHNob3J0NCBTYW1wbGUoVGV4dHVyZTFEPHNo
b3J0ND4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSBzaG9y
dDQgTG9hZChUZXh0dXJlMUQ8c2hvcnQ0PiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUgc2hvcnQ0
IExvYWQoVGV4dHVyZTFEPHNob3J0ND4sIGludDIgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0
aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8c2hvcnQ0PiwgdWludCBNaXBMZXZlbCwg
dGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZl
IGludCBTYW1wbGUoVGV4dHVyZTFEPGludD4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25h
dGl2ZSBpbnQgU2FtcGxlKFRleHR1cmUxRDxpbnQ+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwg
aW50IG9mZnNldCk7CituYXRpdmUgaW50IExvYWQoVGV4dHVyZTFEPGludD4sIGludDIgbG9jYXRp
b24pOworbmF0aXZlIGludCBMb2FkKFRleHR1cmUxRDxpbnQ+LCBpbnQyIGxvY2F0aW9uLCBpbnQg
b2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPGludD4sIHVpbnQg
TWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxz
KTsKK25hdGl2ZSBpbnQyIFNhbXBsZShUZXh0dXJlMUQ8aW50Mj4sIHNhbXBsZXIsIGZsb2F0IGxv
Y2F0aW9uKTsKK25hdGl2ZSBpbnQyIFNhbXBsZShUZXh0dXJlMUQ8aW50Mj4sIHNhbXBsZXIsIGZs
b2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSBpbnQyIExvYWQoVGV4dHVyZTFEPGlu
dDI+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSBpbnQyIExvYWQoVGV4dHVyZTFEPGludDI+LCBp
bnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4
dHVyZTFEPGludDI+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1
aW50KiBOdW1iZXJPZkxldmVscyk7CituYXRpdmUgaW50MyBTYW1wbGUoVGV4dHVyZTFEPGludDM+
LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUgaW50MyBTYW1wbGUoVGV4dHVyZTFE
PGludDM+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgaW50
MyBMb2FkKFRleHR1cmUxRDxpbnQzPiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUgaW50MyBMb2Fk
KFRleHR1cmUxRDxpbnQzPiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdm9p
ZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDxpbnQzPiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVp
bnQqIFdpZHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIGludDQgU2Ft
cGxlKFRleHR1cmUxRDxpbnQ0Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pOworbmF0aXZlIGlu
dDQgU2FtcGxlKFRleHR1cmUxRDxpbnQ0Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBv
ZmZzZXQpOworbmF0aXZlIGludDQgTG9hZChUZXh0dXJlMUQ8aW50ND4sIGludDIgbG9jYXRpb24p
OworbmF0aXZlIGludDQgTG9hZChUZXh0dXJlMUQ8aW50ND4sIGludDIgbG9jYXRpb24sIGludCBv
ZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8aW50ND4sIHVpbnQg
TWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxz
KTsKK25hdGl2ZSBoYWxmIFNhbXBsZShUZXh0dXJlMUQ8aGFsZj4sIHNhbXBsZXIsIGZsb2F0IGxv
Y2F0aW9uKTsKK25hdGl2ZSBoYWxmIFNhbXBsZShUZXh0dXJlMUQ8aGFsZj4sIHNhbXBsZXIsIGZs
b2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSBoYWxmIExvYWQoVGV4dHVyZTFEPGhh
bGY+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSBoYWxmIExvYWQoVGV4dHVyZTFEPGhhbGY+LCBp
bnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4
dHVyZTFEPGhhbGY+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1
aW50KiBOdW1iZXJPZkxldmVscyk7CituYXRpdmUgaGFsZjIgU2FtcGxlKFRleHR1cmUxRDxoYWxm
Mj4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSBoYWxmMiBTYW1wbGUoVGV4dHVy
ZTFEPGhhbGYyPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZl
IGhhbGYyIExvYWQoVGV4dHVyZTFEPGhhbGYyPiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUgaGFs
ZjIgTG9hZChUZXh0dXJlMUQ8aGFsZjI+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25h
dGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPGhhbGYyPiwgdWludCBNaXBMZXZlbCwg
dGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZl
IGhhbGYzIFNhbXBsZShUZXh0dXJlMUQ8aGFsZjM+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7
CituYXRpdmUgaGFsZjMgU2FtcGxlKFRleHR1cmUxRDxoYWxmMz4sIHNhbXBsZXIsIGZsb2F0IGxv
Y2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSBoYWxmMyBMb2FkKFRleHR1cmUxRDxoYWxmMz4s
IGludDIgbG9jYXRpb24pOworbmF0aXZlIGhhbGYzIExvYWQoVGV4dHVyZTFEPGhhbGYzPiwgaW50
MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1
cmUxRDxoYWxmMz4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVp
bnQqIE51bWJlck9mTGV2ZWxzKTsKK25hdGl2ZSBoYWxmNCBTYW1wbGUoVGV4dHVyZTFEPGhhbGY0
Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pOworbmF0aXZlIGhhbGY0IFNhbXBsZShUZXh0dXJl
MUQ8aGFsZjQ+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUg
aGFsZjQgTG9hZChUZXh0dXJlMUQ8aGFsZjQ+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSBoYWxm
NCBMb2FkKFRleHR1cmUxRDxoYWxmND4sIGludDIgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0
aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8aGFsZjQ+LCB1aW50IE1pcExldmVsLCB0
aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7CituYXRpdmUg
ZmxvYXQgU2FtcGxlKFRleHR1cmUxRDxmbG9hdD4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsK
K25hdGl2ZSBmbG9hdCBTYW1wbGUoVGV4dHVyZTFEPGZsb2F0Piwgc2FtcGxlciwgZmxvYXQgbG9j
YXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIGZsb2F0IExvYWQoVGV4dHVyZTFEPGZsb2F0Piwg
aW50MiBsb2NhdGlvbik7CituYXRpdmUgZmxvYXQgTG9hZChUZXh0dXJlMUQ8ZmxvYXQ+LCBpbnQy
IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVy
ZTFEPGZsb2F0PiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWlu
dCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIGZsb2F0MiBTYW1wbGUoVGV4dHVyZTFEPGZsb2F0
Mj4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSBmbG9hdDIgU2FtcGxlKFRleHR1
cmUxRDxmbG9hdDI+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRp
dmUgZmxvYXQyIExvYWQoVGV4dHVyZTFEPGZsb2F0Mj4sIGludDIgbG9jYXRpb24pOworbmF0aXZl
IGZsb2F0MiBMb2FkKFRleHR1cmUxRDxmbG9hdDI+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0
KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPGZsb2F0Mj4sIHVpbnQgTWlw
TGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsK
K25hdGl2ZSBmbG9hdDMgU2FtcGxlKFRleHR1cmUxRDxmbG9hdDM+LCBzYW1wbGVyLCBmbG9hdCBs
b2NhdGlvbik7CituYXRpdmUgZmxvYXQzIFNhbXBsZShUZXh0dXJlMUQ8ZmxvYXQzPiwgc2FtcGxl
ciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIGZsb2F0MyBMb2FkKFRleHR1
cmUxRDxmbG9hdDM+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSBmbG9hdDMgTG9hZChUZXh0dXJl
MUQ8ZmxvYXQzPiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXRE
aW1lbnNpb25zKFRleHR1cmUxRDxmbG9hdDM+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCog
V2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7CituYXRpdmUgZmxvYXQ0IFNhbXBs
ZShUZXh0dXJlMUQ8ZmxvYXQ0Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pOworbmF0aXZlIGZs
b2F0NCBTYW1wbGUoVGV4dHVyZTFEPGZsb2F0ND4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBp
bnQgb2Zmc2V0KTsKK25hdGl2ZSBmbG9hdDQgTG9hZChUZXh0dXJlMUQ8ZmxvYXQ0PiwgaW50MiBs
b2NhdGlvbik7CituYXRpdmUgZmxvYXQ0IExvYWQoVGV4dHVyZTFEPGZsb2F0ND4sIGludDIgbG9j
YXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8
ZmxvYXQ0PiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCog
TnVtYmVyT2ZMZXZlbHMpOworCiBgOwogCiAvLyBGSVhNRTogT25jZSB0aGUgc3RhbmRhcmQgbGli
cmFyeSBoYXMgYmVlbiByZXBsYWNlZCB3aXRoIGEgbmV3IHZlcnNpb24sIHRoaXMgY29tbWVudHMg
c2hvdWxkIGJlIHJlbW92ZWQuCkBAIC0yMTcsMjIgKzMyMjcsMyBAQCBmdW5jdGlvbiBhbGxWZWN0
b3JUeXBlTmFtZXMoKQogICAgIH0KICAgICByZXR1cm4gbmFtZXM7CiB9Ci0KLS8vIFByb3ZpZGVz
IG9wZXJhdG9yJltdCi1zdGFuZGFyZExpYnJhcnkgKz0gT3BlcmF0b3JBbmRlckluZGV4ZXIuZnVu
Y3Rpb25zKCkuam9pbigiO1xuIikgKyAiO1xuIjsKLQotLy8gTmF0aXZlIHZlY3RvciB0eXBlcyBh
cmUgbGlrZSBzdHJ1Y3RzIGluIHRoZSBsYW5nYXVnZSwgYnV0IHRoZXkgZG8gbm90IGhhdmUgdGhl
IGFuZGVyIGZpZWxkIGFjY2Vzcy4KLS8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byB0YWtlIHRoZSBh
ZGRyZXNzIG9mIGEgdmVjdG9yIGZpZWxkLgotc3RhbmRhcmRMaWJyYXJ5ICs9IEJ1aWx0aW5WZWN0
b3JHZXR0ZXIuZnVuY3Rpb25zKCkuam9pbigiO1xuIikgKyAiO1xuIjsKLXN0YW5kYXJkTGlicmFy
eSArPSBCdWlsdGluVmVjdG9yU2V0dGVyLmZ1bmN0aW9ucygpLmpvaW4oIjtcbiIpICsgIjtcbiI7
Ci1zdGFuZGFyZExpYnJhcnkgKz0gQnVpbHRpblZlY3RvckluZGV4R2V0dGVyLmZ1bmN0aW9ucygp
LmpvaW4oIjtcbiIpICsgIjtcbiI7Ci1zdGFuZGFyZExpYnJhcnkgKz0gQnVpbHRpblZlY3Rvcklu
ZGV4U2V0dGVyLmZ1bmN0aW9ucygpLmpvaW4oIjtcbiIpICsgIjtcbiI7Ci0KLS8vIEZJWE1FOiBG
b3IgbmF0aXZlIHR5cGVzIHRoZXNlIGNvdWxkIGJlIGluY2x1ZGVkIGFzIHNvdXJjZSBpbiB0aGUg
c3RhbmRhcmQgbGlicmFyeS4KLS8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODg2ODUKLXN0YW5kYXJkTGlicmFyeSArPSBPcGVyYXRvckJvb2wuZnVuY3Rpb25zKCku
am9pbigiO1xuIikgKyAiO1xuIjsKLXN0YW5kYXJkTGlicmFyeSArPSBCdWlsdGluVmVjdG9yRXF1
YWxpdHlPcGVyYXRvci5mdW5jdGlvbnMoKS5qb2luKCI7XG4iKSArICI7XG4iOwotCi0vLyBGSVhN
RTogVGhlc2UgbmVlZCB0byBiZSBpbmNsdWRlZCBhcyBzb3VyY2UgaW4gdGhlIHN0YW5kYXJkIGxp
YnJhcnkuCi1zdGFuZGFyZExpYnJhcnkgKz0gU3dpenpsZU9wLmZ1bmN0aW9ucygpLmpvaW4oIjtc
biIpICsgIjtcbiI7Ci1zdGFuZGFyZExpYnJhcnkgKz0gQnVpbHRpblZlY3RvckNvbnN0cnVjdG9y
cy5mdW5jdGlvbnMoKS5qb2luKCI7XG4iKSArICI7XG4iOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3dpenpsZU9wLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvU3dpenpsZU9wLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNTk5
OGVmNzlkOThhNTI4ODIwOTg3NWQzNDZjZjU1MDllOWJhNzI2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1N3aXp6bGVPcC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEwNyArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3Mg
U3dpenpsZU9wIHsKLSAgICBjb25zdHJ1Y3RvcihiYXNlVHlwZU5hbWUsIG91dFNpemUsIGNvbXBv
bmVudHMsIGluU2l6ZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2Jhc2VUeXBlTmFtZSA9IGJhc2VU
eXBlTmFtZTsKLSAgICAgICAgdGhpcy5fb3V0U2l6ZSA9IG91dFNpemU7Ci0gICAgICAgIHRoaXMu
X2NvbXBvbmVudHMgPSBjb21wb25lbnRzLnNsaWNlKCk7IC8vIFNoYWxsb3cgY2xvbmUKLSAgICAg
ICAgdGhpcy5faW5TaXplID0gaW5TaXplOwotICAgIH0KLQotICAgIGdldCBiYXNlVHlwZU5hbWUo
KSB7IHJldHVybiB0aGlzLl9iYXNlVHlwZU5hbWU7IH0KLSAgICBnZXQgb3V0U2l6ZSgpIHsgcmV0
dXJuIHRoaXMuX291dFNpemU7IH0KLSAgICBnZXQgY29tcG9uZW50cygpIHsgcmV0dXJuIHRoaXMu
X2NvbXBvbmVudHM7IH0KLSAgICBnZXQgaW5TaXplKCkgeyByZXR1cm4gdGhpcy5faW5TaXplOyB9
Ci0KLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4gYG5hdGl2ZSAke3RoaXMu
YmFzZVR5cGVOYW1lfSR7dGhpcy5vdXRTaXplfSBvcGVyYXRvci4ke3RoaXMuY29tcG9uZW50cy5q
b2luKCIiKX0oJHt0aGlzLmJhc2VUeXBlTmFtZX0ke3RoaXMuaW5TaXplfSB2KWA7Ci0gICAgfQot
Ci0gICAgc3RhdGljIGludFRvU3RyaW5nKHgpCi0gICAgewotICAgICAgICBzd2l0Y2ggKHgpIHsK
LSAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgcmV0dXJuICJ4IjsKLSAgICAgICAgY2FzZSAx
OgotICAgICAgICAgICAgcmV0dXJuICJ5IjsKLSAgICAgICAgY2FzZSAyOgotICAgICAgICAgICAg
cmV0dXJuICJ6IjsKLSAgICAgICAgY2FzZSAzOgotICAgICAgICAgICAgcmV0dXJuICJ3IjsKLSAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ291bGQgbm90IGdl
bmVyYXRlIHN0YW5kYXJkIGxpYnJhcnkuIik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBzdGF0
aWMgZnVuY3Rpb25zKCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fZnVuY3Rpb25zKSB7Ci0g
ICAgICAgICAgICAvLyBXZSBjYW4ndCBkaXJlY3RseSB1c2UgdGhpcy5fZnVuY3Rpb25zIGluIF9n
ZW5lcmF0ZVN3aXp6bGVzLgotICAgICAgICAgICAgY29uc3QgZnVuY3Rpb25zID0gW107Ci0KLSAg
ICAgICAgICAgIGZ1bmN0aW9uIF9nZW5lcmF0ZVN3aXp6bGUoYmFzZVR5cGVOYW1lLCBtYXhEZXB0
aCwgbWF4SXRlbXMsIGFycmF5KSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFhcnJheSkKLSAgICAg
ICAgICAgICAgICAgICAgYXJyYXkgPSBbXTsKLSAgICAgICAgICAgICAgICBpZiAoYXJyYXkubGVu
Z3RoID09IG1heERlcHRoKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9ucy5wdXNoKG5l
dyBTd2l6emxlT3AoYmFzZVR5cGVOYW1lLCBhcnJheS5sZW5ndGgsIGFycmF5LCBtYXhJdGVtcykp
OwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWF4SXRlbXM7ICsraSkgewotICAgICAgICAg
ICAgICAgICAgICBhcnJheS5wdXNoKFN3aXp6bGVPcC5pbnRUb1N0cmluZyhpKSk7Ci0gICAgICAg
ICAgICAgICAgICAgIF9nZW5lcmF0ZVN3aXp6bGUoYmFzZVR5cGVOYW1lLCBtYXhEZXB0aCwgbWF4
SXRlbXMsIGFycmF5KTsKLSAgICAgICAgICAgICAgICAgICAgYXJyYXkucG9wKCk7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgfTsKLQotICAgICAgICAgICAgZm9yIChsZXQgdHlwZU5h
bWUgb2YgVmVjdG9yRWxlbWVudFR5cGVzKSB7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgbWF4
RGVwdGggb2YgVmVjdG9yRWxlbWVudFNpemVzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAo
bGV0IG1heEl0ZW1zID0gMjsgbWF4SXRlbXMgPD0gNDsgbWF4SXRlbXMrKykKLSAgICAgICAgICAg
ICAgICAgICAgICAgIF9nZW5lcmF0ZVN3aXp6bGUodHlwZU5hbWUsIG1heERlcHRoLCBtYXhJdGVt
cyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB0aGlz
Ll9mdW5jdGlvbnMgPSBmdW5jdGlvbnM7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRoaXMu
X2Z1bmN0aW9uczsKLSAgICB9Ci0KLSAgICBpbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMp
Ci0gICAgewotICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2ZWNdLCBub2RlKSA9PiB7
Ci0gICAgICAgICAgICBjb25zdCBvdXRwdXRCdWZmZXIgPSBuZXcgRUJ1ZmZlcih0aGlzLm91dFNp
emUpOwotICAgICAgICAgICAgY29uc3QgcmVhZEluZGljZXMgPSB7ICd4JzogMCwgJ3knOiAxLCAn
eic6IDIsICd3JzogMyB9OwotICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm91
dFNpemU7IGkrKykKLSAgICAgICAgICAgICAgICBvdXRwdXRCdWZmZXIuc2V0KGksIHZlYy5nZXQo
cmVhZEluZGljZXNbdGhpcy5jb21wb25lbnRzW2ldXSkpOwotCi0KLSAgICAgICAgICAgIHJldHVy
biBuZXcgRVB0cihvdXRwdXRCdWZmZXIsIDApOwotICAgICAgICB9OwotICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uRGF0YSA9IHRoaXM7Ci0gICAgfQotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNp
emVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1N5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcwppbmRleCAzYTNm
NzY3Mzg2N2I5YWFiMDEzMjIxODAzNTY4NzM4YzE2M2E1NjdlLi5kYzUwNjUzOGQxYzZjNzEwOWIx
YWQxZWNiYTNjZWMyNzhkMGY3YjVjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9TeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9w
ZXJhdG9yLmpzCkBAIC01MSw2ICs1MSwxMiBAQCBmdW5jdGlvbiBzeW50aGVzaXplRGVmYXVsdENv
bnN0cnVjdG9yT3BlcmF0b3IocHJvZ3JhbSkKICAgICAgICAgICAgIHR5cGVzLmFkZChub2RlKTsK
ICAgICAgICAgICAgIHN1cGVyLnZpc2l0VmVjdG9yVHlwZShub2RlKTsKICAgICAgICAgfQorCisg
ICAgICAgIHZpc2l0TWF0cml4VHlwZShub2RlKQorICAgICAgICB7CisgICAgICAgICAgICB0eXBl
cy5hZGQobm9kZSk7CisgICAgICAgICAgICBzdXBlci52aXNpdE1hdHJpeFR5cGUobm9kZSk7Cisg
ICAgICAgIH0KICAgICB9CiAKICAgICBwcm9ncmFtLnZpc2l0KG5ldyBGaW5kQWxsVHlwZXMoKSk7
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXplT3Bl
cmF0b3JCb29sLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZU9w
ZXJhdG9yQm9vbC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjk1ZmUxMzc1M2Qw
YTI2NDNiMDk1YjUzNGIxMTkyMTdmNjI1MzhiMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVz
aXplT3BlcmF0b3JCb29sLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1m
dW5jdGlvbiBzeW50aGVzaXplT3BlcmF0b3JCb29sKHByb2dyYW0pCi17Ci0gICAgZm9yIChsZXQg
dHlwZSBvZiBwcm9ncmFtLnR5cGVzLnZhbHVlcygpKSB7Ci0gICAgICAgIGlmICghKHR5cGUgaW5z
dGFuY2VvZiBTdHJ1Y3RUeXBlKSAmJiAhKHR5cGUgaW5zdGFuY2VvZiBFbnVtVHlwZSkpCi0gICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgY29uc3QgZnVuYyA9IG5ldyBOYXRpdmVGdW5jKHR5
cGUub3JpZ2luLCAib3BlcmF0b3IgY2FzdCIsIFR5cGVSZWYud3JhcChwcm9ncmFtLnR5cGVzLmdl
dCgiYm9vbCIpKSwgWyBuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgVHlwZVJl
Zi53cmFwKHR5cGUpKSBdLCB0cnVlLCBudWxsKTsKLSAgICAgICAgY29uc3Qgb3BlcmF0b3JCb29s
ID0gbmV3IE9wZXJhdG9yQm9vbCh0eXBlLm5hbWUpOwotICAgICAgICBvcGVyYXRvckJvb2wuaW5z
dGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKTsKLSAgICAgICAgcHJvZ3JhbS5hZGQoZnVuYyk7
Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVz
dC5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sCmluZGV4IDdk
MjZkMjYwN2E5NWY5YmY2NGRmMWJjYTkxNjU4ZjJlNzQ4YzA0M2QuLmZhOTIzNGU1YTZiZDIxZjcw
YjFkZmU5NjE2MTNhMTYwNmQwNzg5ZDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1Rlc3QuaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9U
ZXN0Lmh0bWwKQEAgLTExLDcgKzExLDYgQEAKIDxzY3JpcHQgc3JjPSJDcmVhdGVMaXRlcmFsLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDcmVhdGVMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJTd2l6emxlT3AuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik5hdGl2ZVR5
cGUuanMiPjwvc2NyaXB0PgogCiA8c2NyaXB0IHNyYz0iQWRkcmVzc1NwYWNlLmpzIj48L3Njcmlw
dD4KQEAgLTIzLDEyICsyMiwxMCBAQAogPHNjcmlwdCBzcmM9IkJsb2NrLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJCb29sTGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQnJl
YWsuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkJ1aWx0aW5WZWN0b3JDb25zdHJ1Y3RvcnMu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkJ1aWx0aW5NYXRyaXhHZXR0ZXIuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IkJ1aWx0aW5NYXRyaXhTZXR0ZXIuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9IkJ1aWx0aW5WZWN0b3JHZXR0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
IkJ1aWx0aW5WZWN0b3JTZXR0ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkJ1aWx0aW5W
ZWN0b3JJbmRleEdldHRlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iQnVpbHRpblZlY3Rv
ckluZGV4U2V0dGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9yRXF1
YWxpdHlPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2FsbEV4cHJlc3Npb24u
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNhbGxGdW5jdGlvbi5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iQ2hlY2suanMiPjwvc2NyaXB0PgpAQCAtOTAsNiArODcsNyBAQAogPHNjcmlw
dCBzcmM9Ikxvb3BDaGVja2VyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJNYWtlQXJyYXlS
ZWZFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJNYWtlUHRyRXhwcmVzc2lv
bi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iTWF0cml4VHlwZS5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iTmFtZUNvbnRleHQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik5hbWVG
aW5kZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik5hbWVSZXNvbHZlci5qcyI+PC9zY3Jp
cHQ+CkBAIC05Nyw5ICs5NSw4IEBACiA8c2NyaXB0IHNyYz0iTm9ybWFsVXNlUHJvcGVydHlSZXNv
bHZlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTnVsbExpdGVyYWwuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9Ik51bGxUeXBlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJPcGVy
YXRvckFuZGVySW5kZXguanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ik9wZXJhdG9yQW5kZXJJ
bmRleGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJPcGVyYXRvckFycmF5UmVmTGVuZ3Ro
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJPcGVyYXRvckJvb2wuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9Ik9yaWdpbktpbmQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik92ZXJs
b2FkUmVzb2x1dGlvbkZhaWx1cmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlBhcnNlLmpz
Ij48L3NjcmlwdD4KQEAgLTEyNyw3ICsxMjQsNiBAQAogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVB
cnJheU9wZXJhdG9yTGVuZ3RoLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTeW50aGVzaXpl
RW51bUZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZVN0cnVj
dEFjY2Vzc29ycy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iU3ludGhlc2l6ZU9wZXJhdG9y
Qm9vbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rv
ck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRGVmYXVsdENv
bnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRlcm5hcnlFeHBy
ZXNzaW9uLmpzIj48L3NjcmlwdD4KQEAgLTE1Niw3ICsxNTIsNyBAQAogPHNjcmlwdD4KIGZ1bmN0
aW9uIGRvVGVzdEluQnJvd3NlcigpCiB7Ci0gICAgdmFyIHRlc3RlciA9IGRvVGVzdCgvLiovKTsK
KyAgICB2YXIgdGVzdGVyID0gZG9UZXN0KC90ZXh0dXJlLyk7CiAgICAgdmFyIGxhc3RUaW1lOwog
ICAgIGZ1bmN0aW9uIG5leHQoKQogICAgIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1Rlc3QuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0
LmpzCmluZGV4IDRmMzk1YTk0Y2M3MjgzZGQ2MmEwMDRmYTFkNGMzYjlmYWFkMzBhNjEuLmU4NTFm
ZWNkNzk0ZWJiMzAwYjdkMmJlMmI4ZTc0NWJkNDhiMTcxNDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVGVzdC5qcwpAQCAtNzgsNiArNzgsMTUwIEBAIGZ1bmN0aW9uIG1ha2VGbG9hdChw
cm9ncmFtLCB2YWx1ZSkKICAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5z
aWNzLmZsb2F0LCB2YWx1ZSk7CiB9CiAKK2Z1bmN0aW9uIG1ha2VTYW1wbGVyKHByb2dyYW0sIHNh
bXBsZXJEYXRhKQoreworICAgIC8vIGVudW0gQWRkcmVzc01vZGUgeworICAgIC8vICAgICAiY2xh
bXBUb0VkZ2UiLAorICAgIC8vICAgICAibWlycm9yQ2xhbXBUb0VkZ2UiLAorICAgIC8vICAgICAi
cmVwZWF0IiwKKyAgICAvLyAgICAgIm1pcnJvclJlcGVhdCIsCisgICAgLy8gICAgICJjbGFtcFRv
Qm9yZGVyQ29sb3IiCisgICAgLy8gfQorICAgIC8vCisgICAgLy8gZW51bSBGaWx0ZXIgeworICAg
IC8vICAgICAibmVhcmVzdCIsCisgICAgLy8gICAgICJsaW5lYXIiCisgICAgLy8gfQorICAgIC8v
CisgICAgLy8gZW51bSBDb21wYXJlRnVuY3Rpb24geworICAgIC8vICAgICAibmV2ZXIiLAorICAg
IC8vICAgICAibGVzcyIsCisgICAgLy8gICAgICJlcXVhbCIsCisgICAgLy8gICAgICJsZXNzRXF1
YWwiLAorICAgIC8vICAgICAiZ3JlYXRlciIsCisgICAgLy8gICAgICJub3RFcXVhbCIsCisgICAg
Ly8gICAgICJncmVhdGVyRXF1YWwiLAorICAgIC8vICAgICAiYWx3YXlzIgorICAgIC8vIH0KKyAg
ICAvLworICAgIC8vIGVudW0gQm9yZGVyQ29sb3IgeworICAgIC8vICAgICAidHJhbnNwYXJlbnRC
bGFjayIsCisgICAgLy8gICAgICJvcGFxdWVCbGFjayIsCisgICAgLy8gICAgICJvcGFxdWVXaGl0
ZSIKKyAgICAvLyB9CisgICAgLy8KKyAgICAvLyBkaWN0aW9uYXJ5IFNhbXBsZXJEYXRhIHsKKyAg
ICAvLyAgICAgQWRkcmVzc01vZGUgckFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIiwKKyAgICAv
LyAgICAgQWRkcmVzc01vZGUgc0FkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIiwKKyAgICAvLyAg
ICAgQWRkcmVzc01vZGUgdEFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIiwKKyAgICAvLyAgICAg
RmlsdGVyIG1pbkZpbHRlciA9ICJuZWFyZXN0IiwKKyAgICAvLyAgICAgRmlsdGVyIG1hZ0ZpbHRl
ciA9ICJuZWFyZXN0IiwKKyAgICAvLyAgICAgRmlsdGVyIG1pcEZpbHRlciA9ICJuZWFyZXN0IiwK
KyAgICAvLyAgICAgZmxvYXQgbG9kTWluQ2xhbXAgPSAwLAorICAgIC8vICAgICBmbG9hdCBsb2RN
YXhDbGFtcCA9IEZMVF9NQVgsCisgICAgLy8gICAgIHVuc2lnbmVkIGxvbmcgbWF4QW5pc290cm9w
eSA9IDEsCisgICAgLy8gICAgIGJvb2xlYW4gbm9ybWFsaXplZENvb3JkaW5hdGVzID0gdHJ1ZSwK
KyAgICAvLyAgICAgQ29tcGFyZUZ1bmN0aW9uIGNvbXBhcmVGdW5jdGlvbiA9ICJuZXZlciIsCisg
ICAgLy8gICAgIEJvcmRlckNvbG9yIGJvcmRlckNvbG9yID0gInRyYW5zcGFyZW50QmxhY2siCisg
ICAgLy8gICAgIGZsb2F0IGJpYXMgPSAwOworICAgIC8vIH0KKyAgICAvLworICAgIHJldHVybiBU
eXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3Muc2FtcGxlciwgc2FtcGxlckRhdGEpOwor
fQorCitmdW5jdGlvbiBpc1Bvd2VyT2YyKHgpCit7CisgICAgcmV0dXJuIHggJiYgKHggJiAoeCAt
IDEpKSA9PT0gMDsKK30KKworZnVuY3Rpb24gZWxlbWVudFZlY3RvclNpemUoZWxlbWVudFR5cGUp
Cit7CisgICAgc3dpdGNoIChlbGVtZW50VHlwZSkgeworICAgICAgICBjYXNlICJib29sIjoKKyAg
ICAgICAgY2FzZSAidWNoYXIiOgorICAgICAgICBjYXNlICJ1c2hvcnQiOgorICAgICAgICBjYXNl
ICJ1aW50IjoKKyAgICAgICAgY2FzZSAiY2hhciI6CisgICAgICAgIGNhc2UgInNob3J0IjoKKyAg
ICAgICAgY2FzZSAiaW50IjoKKyAgICAgICAgY2FzZSAiaGFsZiI6CisgICAgICAgIGNhc2UgImZs
b2F0IjoKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICBjYXNlICJib29sMiI6Cisg
ICAgICAgIGNhc2UgInVjaGFyMiI6CisgICAgICAgIGNhc2UgInVzaG9ydDIiOgorICAgICAgICBj
YXNlICJ1aW50MiI6CisgICAgICAgIGNhc2UgImNoYXIyIjoKKyAgICAgICAgY2FzZSAic2hvcnQy
IjoKKyAgICAgICAgY2FzZSAiaW50MiI6CisgICAgICAgIGNhc2UgImhhbGYyIjoKKyAgICAgICAg
Y2FzZSAiZmxvYXQyIjoKKyAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICBjYXNlICJib29s
MyI6CisgICAgICAgIGNhc2UgInVjaGFyMyI6CisgICAgICAgIGNhc2UgInVzaG9ydDMiOgorICAg
ICAgICBjYXNlICJ1aW50MyI6CisgICAgICAgIGNhc2UgImNoYXIzIjoKKyAgICAgICAgY2FzZSAi
c2hvcnQzIjoKKyAgICAgICAgY2FzZSAiaW50MyI6CisgICAgICAgIGNhc2UgImhhbGYzIjoKKyAg
ICAgICAgY2FzZSAiZmxvYXQzIjoKKyAgICAgICAgICAgIHJldHVybiAzOworICAgICAgICBjYXNl
ICJib29sNCI6CisgICAgICAgIGNhc2UgInVjaGFyNCI6CisgICAgICAgIGNhc2UgInVzaG9ydDQi
OgorICAgICAgICBjYXNlICJ1aW50NCI6CisgICAgICAgIGNhc2UgImNoYXI0IjoKKyAgICAgICAg
Y2FzZSAic2hvcnQ0IjoKKyAgICAgICAgY2FzZSAiaW50NCI6CisgICAgICAgIGNhc2UgImhhbGY0
IjoKKyAgICAgICAgY2FzZSAiZmxvYXQ0IjoKKyAgICAgICAgICAgIHJldHVybiA0OworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHZlY3RvciBl
bGVtZW50IHR5cGUiKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIG1ha2UxRFRleHR1cmUocHJvZ3Jh
bSwgbWlwbWFwcywgZWxlbWVudFR5cGUpCit7CisgICAgdmFyIHZlY3RvclNpemUgPSBlbGVtZW50
VmVjdG9yU2l6ZShlbGVtZW50VHlwZSk7CisKKyAgICBpZiAoIShtaXBtYXBzIGluc3RhbmNlb2Yg
QXJyYXkpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlRleHR1cmUgbmVlZHMgdG8gYmUgYW4g
YXJyYXkgb2YgbWlwbWFwcyIpOworICAgIGlmIChtaXBtYXBzLmxlbmd0aCA9PSAwKQorICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIk5lZWQgdG8gaGF2ZSBhdCBsZWFzdCAxIG1pcG1hcCIpOworICAg
IHZhciBzaXplID0gbWlwbWFwc1swXS5sZW5ndGg7CisgICAgaWYgKCFpc1Bvd2VyT2YyKHNpemUp
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlRleHR1cmVzIG11c3QgYmUgcG93ZXItb2YtdHdv
IHNpemVkIik7CisgICAgZm9yICh2YXIgbWlwbWFwIG9mIG1pcG1hcHMpIHsKKyAgICAgICAgaWYg
KHNpemUgPT0gMCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGhhdmUgemVy
by1zaXplZCBtaXBtYXAiKTsKKyAgICAgICAgaWYgKCEobWlwbWFwIGluc3RhbmNlb2YgQXJyYXkp
KQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJFYWNoIG1pcG1hcCBvZiBhIHRleHR1cmUg
bmVlZHMgdG8gYmUgYW4gYXJyYXkgb2YgdmFsdWVzIik7CisgICAgICAgIGlmIChtaXBtYXAubGVu
Z3RoICE9IHNpemUpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkVhY2ggbWlwbWFwIG9m
IGEgdGV4dHVyZSBtdXN0IGJlIGhhbGYgYXMgYmlnIGFzIHRoZSBwcmV2aW91cyBvbmUiKTsKKyAg
ICAgICAgZm9yICh2YXIgZWxlbWVudCBvZiBtaXBtYXApIHsKKyAgICAgICAgICAgIGlmICh2ZWN0
b3JTaXplID09IG51bGwgJiYgKHR5cGVvZiBlbGVtZW50KSAhPSAibnVtYmVyIikgeworICAgICAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtlbGVtZW50VHlwZX0gdGV4dHVyZSBlbGVtZW50
IG11c3QgYmUgYSBudW1iZXJgKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodmVjdG9yU2l6ZSAh
PSBudWxsKSB7CisgICAgICAgICAgICAgICAgaWYgKCEoZWxlbWVudCBpbnN0YW5jZW9mIEFycmF5
KSkKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2VsZW1lbnRUeXBlfSB0
ZXh0dXJlIGVsZW1lbnQgbXVzdCBiZSBhbiBhcnJheWApOworICAgICAgICAgICAgICAgIGlmIChl
bGVtZW50LnNpemUgIT0gdmVjdG9yU2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJXcm9uZyBudW1iZXIgb2YgY29tcG9uZW50cyBpbiB0ZXh0dXJlIGVsZW1lbnQiKTsK
KyAgICAgICAgICAgICAgICBmb3IgKHZhciBjb21wb25lbnQgb2YgZWxlbWVudCkgeworICAgICAg
ICAgICAgICAgICAgICBpZiAoKHR5cGVvZiBjb21wb25lbnQpICE9ICJudW1iZXIiKQorICAgICAg
ICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb21wb25lbnQgbmVlZHMgdG8gYmUg
YSBudW1iZXIiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICAgICAgaWYgKHNpemUgPT0gMSkKKyAgICAgICAgICAgIHNpemUgPSAwOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBzaXplIC89IDI7CisgICAgfQorICAgIHJldHVybiBUeXBlZFZhbHVl
LmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmUxRDwke2VsZW1lbnRUeXBlfT5gXSwgbWlw
bWFwcyk7Cit9CisKIGZ1bmN0aW9uIG1ha2VFbnVtKHByb2dyYW0sIGVudW1OYW1lLCB2YWx1ZSkK
IHsKICAgICBsZXQgZW51bVR5cGUgPSBwcm9ncmFtLnR5cGVzLmdldChlbnVtTmFtZSk7CkBAIC0x
ODEsNiArMzI1LDM1IEBAIHRlc3RzID0gbmV3IFByb3h5KHt9LCB7CiAgICAgfQogfSk7CiAKK3Rl
c3RzLnRleHR1cmVEaW1lbnNpb25zID0gZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBk
b1ByZXAoYAorICAgICAgICB1aW50IGZvbyhUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAg
ICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZudW1iZXJPZkxl
dmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWlu
dCBiYXIoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRo
OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVu
c2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAg
cmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgYCk7CisgICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2UxRFRleHR1cmUocHJv
Z3JhbSwgW1sxLCA3LCAxNCwgNzldLCBbMTMsIDE2XSwgWzE1XV0sICJmbG9hdCIpXSksIDQpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFttYWtl
MURUZXh0dXJlKHByb2dyYW0sIFtbMSwgNywgMTQsIDc5XSwgWzEzLCAxNl0sIFsxNV1dLCAiZmxv
YXQiKV0pLCAzKTsKK30KKwordGVzdHMudGV4dHVyZUxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBs
ZXQgcHJvZ3JhbSA9IGRvUHJlcChgCisgICAgICAgIGZsb2F0IGZvbyhUZXh0dXJlMUQ8ZmxvYXQ+
IHRleHR1cmUsIGludCBtaXBtYXAsIGludCBsb2NhdGlvbikgeworICAgICAgICAgICAgcmV0dXJu
IExvYWQodGV4dHVyZSwgaW50MihtaXBtYXAsIGxvY2F0aW9uKSk7CisgICAgICAgIH0KKyAgICBg
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2UxRFRleHR1cmUocHJvZ3JhbSwgW1sxLCA3LCAxNCwgNzldLCBbMTMsIDE2XSwgWzE1XV0s
ICJmbG9hdCIpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDcp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZTFEVGV4dHVyZShwcm9ncmFtLCBbWzEsIDcsIDE0LCA3OV0sIFsxMywgMTZdLCBbMTVdXSwg
ImZsb2F0IiksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYp
OworfQorCiB0ZXN0cy5jb21tZW50UGFyc2luZyA9IGZ1bmN0aW9uKCkgewogICAgIGxldCBwcm9n
cmFtID0gZG9QcmVwKGAKICAgICAgICAgLyogdGhpcyBjb21tZW50CkBAIC0yMjE1LDQxICsyMzg4
LDYgQEAgdGVzdHMub3BlcmF0b3JCb29sID0gZnVuY3Rpb24oKQogCiAgICAgICAgIGJvb2wgYm9v
bEZyb21GbG9hdEZhbHNlKCkgeyByZXR1cm4gYm9vbChmbG9hdCgwKSk7IH0KICAgICAgICAgYm9v
bCBib29sRnJvbUZsb2F0VHJ1ZSgpIHsgcmV0dXJuIGJvb2woZmxvYXQoMSkpOyB9Ci0KLSAgICAg
ICAgYm9vbCBib29sRnJvbUludDJGYWxzZSgpIHsgcmV0dXJuIGJvb2woaW50MigwLCAwKSk7IH0K
LSAgICAgICAgYm9vbCBib29sRnJvbUludDJUcnVlMSgpIHsgcmV0dXJuIGJvb2woaW50MigxLCAw
KSk7IH0KLSAgICAgICAgYm9vbCBib29sRnJvbUludDJUcnVlMigpIHsgcmV0dXJuIGJvb2woaW50
MigwLCAxKSk7IH0KLQotICAgICAgICBib29sIGJvb2xGcm9tRmxvYXQzRmFsc2UoKSB7IHJldHVy
biBib29sKGZsb2F0MygwLCAwLCAwKSk7IH0KLSAgICAgICAgYm9vbCBib29sRnJvbUZsb2F0M1Ry
dWUxKCkgeyByZXR1cm4gYm9vbChmbG9hdDMoMSwgMCwgMCkpOyB9Ci0gICAgICAgIGJvb2wgYm9v
bEZyb21GbG9hdDNUcnVlMigpIHsgcmV0dXJuIGJvb2woZmxvYXQzKDAsIDEsIDApKTsgfQotICAg
ICAgICBib29sIGJvb2xGcm9tRmxvYXQzVHJ1ZTMoKSB7IHJldHVybiBib29sKGZsb2F0MygwLCAw
LCAxKSk7IH0KLQotICAgICAgICBib29sIGJvb2xGcm9tVWludDRGYWxzZSgpIHsgcmV0dXJuIGJv
b2wodWludDQoMCwgMCwgMCwgMCkpOyB9Ci0gICAgICAgIGJvb2wgYm9vbEZyb21VaW50NFRydWUx
KCkgeyByZXR1cm4gYm9vbCh1aW50NCgxLCAwLCAwLCAwKSk7IH0KLSAgICAgICAgYm9vbCBib29s
RnJvbVVpbnQ0VHJ1ZTIoKSB7IHJldHVybiBib29sKHVpbnQ0KDAsIDEsIDAsIDApKTsgfQotICAg
ICAgICBib29sIGJvb2xGcm9tVWludDRUcnVlMygpIHsgcmV0dXJuIGJvb2wodWludDQoMCwgMCwg
MSwgMCkpOyB9Ci0gICAgICAgIGJvb2wgYm9vbEZyb21VaW50NFRydWU0KCkgeyByZXR1cm4gYm9v
bCh1aW50NCgwLCAwLCAwLCAxKSk7IH0KLQotICAgICAgICBzdHJ1Y3QgWCB7IGludCB4OyB9Ci0K
LSAgICAgICAgYm9vbCBib29sRnJvbVN0cnVjdEZhbHNlKCkKLSAgICAgICAgewotICAgICAgICAg
ICAgWCB4OwotICAgICAgICAgICAgcmV0dXJuIGJvb2woeCk7Ci0gICAgICAgIH0KLQotICAgICAg
ICBib29sIGJvb2xGcm9tU3RydWN0VHJ1ZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFggeDsK
LSAgICAgICAgICAgIHgueCA9IDE7Ci0gICAgICAgICAgICByZXR1cm4gYm9vbCh4KTsKLSAgICAg
ICAgfQotCi0gICAgICAgIGVudW0gWSB7IEEsIEIgfQotCi0gICAgICAgIGJvb2wgYm9vbEZyb21F
bnVtRmFsc2UoKSB7IHJldHVybiBib29sKFkuQSk7IH0KLSAgICAgICAgYm9vbCBib29sRnJvbUVu
dW1UcnVlKCkgeyByZXR1cm4gYm9vbChZLkIpOyB9CiAgICAgYCk7CiAKICAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJib29sRnJvbVVjaGFyRmFsc2UiLCBbXSks
IGZhbHNlKTsKQEAgLTIyNjMsMjcgKzI0MDEsNiBAQCB0ZXN0cy5vcGVyYXRvckJvb2wgPSBmdW5j
dGlvbigpCiAKICAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJi
b29sRnJvbUZsb2F0RmFsc2UiLCBbXSksIGZhbHNlKTsKICAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJib29sRnJvbUZsb2F0VHJ1ZSIsIFtdKSwgdHJ1ZSk7Ci0K
LSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJib29sRnJvbUlu
dDJGYWxzZSIsIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImJvb2xGcm9tSW50MlRydWUxIiwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJib29sRnJvbUludDJUcnVlMiIsIFtd
KSwgdHJ1ZSk7Ci0KLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJib29sRnJvbUZsb2F0M0ZhbHNlIiwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYm9vbEZyb21GbG9hdDNUcnVlMSIsIFtdKSwgdHJ1
ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYm9vbEZy
b21GbG9hdDNUcnVlMiIsIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiYm9vbEZyb21GbG9hdDNUcnVlMyIsIFtdKSwgdHJ1ZSk7Ci0KLSAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJib29sRnJvbVVpbnQ0
RmFsc2UiLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJib29sRnJvbVVpbnQ0VHJ1ZTEiLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJvb2xGcm9tVWludDRUcnVlMiIsIFtd
KSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Ym9vbEZyb21VaW50NFRydWUzIiwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJib29sRnJvbVVpbnQ0VHJ1ZTQiLCBbXSksIHRydWUpOwot
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYm9vbEZyb21T
dHJ1Y3RGYWxzZSIsIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImJvb2xGcm9tU3RydWN0VHJ1ZSIsIFtdKSwgdHJ1ZSk7Ci0KLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJib29sRnJvbUVudW1GYWxz
ZSIsIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImJvb2xGcm9tRW51bVRydWUiLCBbXSksIHRydWUpOwogfQogCiB0ZXN0cy5ib29sQml0
QW5kID0gZnVuY3Rpb24oKQpAQCAtMzU0OCw2ICszNjY1LDcgQEAgdGVzdHMudHJhcCA9IGZ1bmN0
aW9uKCkKICAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7CiB9CiAKKy8qCiB0
ZXN0cy5zd2l6emxlID0gZnVuY3Rpb24oKQogewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAK
QEAgLTM1NzIsNiArMzY5MCw3IEBAIHRlc3RzLnN3aXp6bGUgPSBmdW5jdGlvbigpCiAgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSksIDYpOwog
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10p
LCA0KTsKIH0KKyovCiAKIHRlc3RzLmVudW1XaXRoRXhwbGljaXRJbnRCYXNlID0gZnVuY3Rpb24o
KQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5q
cyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Zpc2l0b3IuanMKaW5kZXggMWYxZjU0
ZDhjY2E3NWMxMTAxOThlNTA4NDU4ODc5MDc5MWRlMGU1OC4uYjllYTdlNDYzYzRlMDhiZGY4NmZl
OTA3NmVhZDQwNTg3NmQxMTU5MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvVmlzaXRvci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9WaXNp
dG9yLmpzCkBAIC0zNDAsNSArMzQwLDEyIEBAIGNsYXNzIFZpc2l0b3IgewogICAgICAgICBub2Rl
LmVsZW1lbnRUeXBlLnZpc2l0KHRoaXMpOwogICAgICAgICBub2RlLm51bUVsZW1lbnRzLnZpc2l0
KHRoaXMpOwogICAgIH0KKworICAgIHZpc2l0TWF0cml4VHlwZShub2RlKQorICAgIHsKKyAgICAg
ICAgbm9kZS5lbGVtZW50VHlwZS52aXNpdCh0aGlzKTsKKyAgICAgICAgbm9kZS5udW1Sb3dzLnZp
c2l0KHRoaXMpOworICAgICAgICBub2RlLm51bUNvbHVtbnMudmlzaXQodGhpcyk7CisgICAgfQog
fQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1s
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbAppbmRleCAxN2QwYzIw
YzlmZDYzOGZiMzBlZWQ3YmI2MjIwNGFhMDk3YzVhY2JkLi42NWE4NjQxMWIzZTc3MGI1NTdiNDFh
Y2M3ZTQxNGRlZjQyNDAzMDEzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9pbmRleC5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4
Lmh0bWwKQEAgLTExLDcgKzExLDYgQEAKIDxzY3JpcHQgc3JjPSJDcmVhdGVMaXRlcmFsLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDcmVhdGVMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJTd2l6emxlT3AuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik5hdGl2ZVR5cGUu
anMiPjwvc2NyaXB0PgogCiA8c2NyaXB0IHNyYz0iQWRkcmVzc1NwYWNlLmpzIj48L3NjcmlwdD4K
QEAgLTIzLDEyICsyMiwxMCBAQAogPHNjcmlwdCBzcmM9IkJsb2NrLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJCb29sTGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQnJlYWsu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkJ1aWx0aW5WZWN0b3JDb25zdHJ1Y3RvcnMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkJ1aWx0aW5NYXRyaXhHZXR0ZXIuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9IkJ1aWx0aW5NYXRyaXhTZXR0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IkJ1aWx0aW5WZWN0b3JHZXR0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkJ1
aWx0aW5WZWN0b3JTZXR0ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkJ1aWx0aW5WZWN0
b3JJbmRleEdldHRlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iQnVpbHRpblZlY3Rvcklu
ZGV4U2V0dGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9yRXF1YWxp
dHlPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2FsbEV4cHJlc3Npb24uanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNhbGxGdW5jdGlvbi5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iQ2hlY2suanMiPjwvc2NyaXB0PgpAQCAtOTAsNiArODcsNyBAQAogPHNjcmlwdCBz
cmM9Ikxvb3BDaGVja2VyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJNYWtlQXJyYXlSZWZF
eHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJNYWtlUHRyRXhwcmVzc2lvbi5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iTWF0cml4VHlwZS5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iTmFtZUNvbnRleHQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik5hbWVGaW5k
ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik5hbWVSZXNvbHZlci5qcyI+PC9zY3JpcHQ+
CkBAIC05Nyw5ICs5NSw4IEBACiA8c2NyaXB0IHNyYz0iTm9ybWFsVXNlUHJvcGVydHlSZXNvbHZl
ci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTnVsbExpdGVyYWwuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9Ik51bGxUeXBlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJPcGVyYXRv
ckFuZGVySW5kZXguanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ik9wZXJhdG9yQW5kZXJJbmRl
eGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJPcGVyYXRvckFycmF5UmVmTGVuZ3RoLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJPcGVyYXRvckJvb2wuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9Ik9yaWdpbktpbmQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik92ZXJsb2Fk
UmVzb2x1dGlvbkZhaWx1cmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlBhcnNlLmpzIj48
L3NjcmlwdD4KQEAgLTEyNyw3ICsxMjQsNiBAQAogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVBcnJh
eU9wZXJhdG9yTGVuZ3RoLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRW51
bUZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZVN0cnVjdEFj
Y2Vzc29ycy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iU3ludGhlc2l6ZU9wZXJhdG9yQm9v
bC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9w
ZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRGVmYXVsdENvbnN0
cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRlcm5hcnlFeHByZXNz
aW9uLmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348376</attachid>
            <date>2018-08-28 19:24:58 -0700</date>
            <delta_ts>2018-08-29 14:19:30 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188940-20180828192444.patch</filename>
            <type>text/plain</type>
            <size>244182</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NDM5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjQ2NDU3YjQ0MWYwNWQ2ZjU2ZGY2MmE4NmFlNTMxNjNi
MTk3MzkwOC4uZWRlYTBhOGU5OTg5MTBkNzNmOGU4ZTE4YzNiZmY0MTU1MmY0MGU1NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
NiBAQAorMjAxOC0wOC0yOCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRleHR1cmUgdHlwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5N
YXRyaXhHZXR0ZXIuanM6IENvcGllZCBmcm9tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0J1aWx0aW5WZWN0b3JJbmRleFNldHRlci5qcy4KKyAgICAgICAgKEJ1aWx0aW5NYXRyaXhHZXR0
ZXIpOgorICAgICAgICAoQnVpbHRpbk1hdHJpeEdldHRlci5wcm90b3R5cGUuZ2V0IGhlaWdodCk6
CisgICAgICAgIChCdWlsdGluTWF0cml4R2V0dGVyLnByb3RvdHlwZS5nZXQgd2lkdGgpOgorICAg
ICAgICAoQnVpbHRpbk1hdHJpeEdldHRlci5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAo
QnVpbHRpbk1hdHJpeEdldHRlci5mdW5jdGlvbnMpOgorICAgICAgICAoQnVpbHRpbk1hdHJpeEdl
dHRlci5wcm90b3R5cGUuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRpbk1hdHJpeFNldHRlci5qczogUmVuYW1lZCBmcm9t
IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JJbmRleFNldHRlci5q
cy4KKyAgICAgICAgKEJ1aWx0aW5NYXRyaXhTZXR0ZXIpOgorICAgICAgICAoQnVpbHRpbk1hdHJp
eFNldHRlci5wcm90b3R5cGUuZ2V0IGhlaWdodCk6CisgICAgICAgIChCdWlsdGluTWF0cml4U2V0
dGVyLnByb3RvdHlwZS5nZXQgd2lkdGgpOgorICAgICAgICAoQnVpbHRpbk1hdHJpeFNldHRlci5w
cm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoQnVpbHRpbk1hdHJpeFNldHRlci5mdW5jdGlv
bnMpOgorICAgICAgICAoQnVpbHRpbk1hdHJpeFNldHRlci5wcm90b3R5cGUuaW5zdGFudGlhdGVJ
bXBsZW1lbnRhdGlvbik6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRp
blZlY3RvckNvbnN0cnVjdG9ycy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9yRXF1YWxpdHlPcGVyYXRvci5qczogUmVtb3ZlZC4KKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9yR2V0dGVyLmpzOgor
ICAgICAgICAoQnVpbHRpblZlY3RvckdldHRlci5wcm90b3R5cGUuaW5zdGFudGlhdGVJbXBsZW1l
bnRhdGlvbik6CisgICAgICAgIChCdWlsdGluVmVjdG9yR2V0dGVyKToKKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9yU2V0dGVyLmpzOgorICAgICAgICAoQnVp
bHRpblZlY3RvclNldHRlci5mdW5jdGlvbnMpOgorICAgICAgICAoQnVpbHRpblZlY3RvclNldHRl
ci5wcm90b3R5cGUuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChCdWlsdGlu
VmVjdG9yU2V0dGVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRXhw
cmVzc2lvbi5qczoKKyAgICAgICAgKENhbGxFeHByZXNzaW9uLnByb3RvdHlwZS5yZXNvbHZlKToK
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja1R5cGVzV2l0aEFyZ3VtZW50
cy5qczoKKyAgICAgICAgKGNoZWNrVHlwZXNXaXRoQXJndW1lbnRzLlR5cGVXaXRoQXJndW1lbnRz
Q2hlY2tlci5wcm90b3R5cGUudmlzaXRUeXBlUmVmKToKKyAgICAgICAgKGNoZWNrVHlwZXNXaXRo
QXJndW1lbnRzLlR5cGVXaXRoQXJndW1lbnRzQ2hlY2tlcik6CisgICAgICAgIChjaGVja1R5cGVz
V2l0aEFyZ3VtZW50cyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tl
ci5qczoKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0VmVjdG9yVHlwZSk6CisgICAg
ICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdE1hdHJpeFR5cGUpOgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0NvbnN0ZXhwckZvbGRlci5qczoKKyAgICAgICAgKENvbnN0ZXhw
ckZvbGRlci5wcm90b3R5cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChDb25zdGV4
cHJGb2xkZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0V2YWx1YXRvci5q
czoKKyAgICAgICAgKEV2YWx1YXRvci5wcm90b3R5cGUudmlzaXRUZXJuYXJ5RXhwcmVzc2lvbik6
CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxhdHRlbmVkU3RydWN0T2Zmc2V0
R2F0aGVyZXIuanM6CisgICAgICAgIChGbGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5wcm90
b3R5cGUudmlzaXRNYXRyaXhUeXBlKToKKyAgICAgICAgKEZsYXR0ZW5lZFN0cnVjdE9mZnNldEdh
dGhlcmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWxU
eXBlLmpzOgorICAgICAgICAobGV0LkZsb2F0TGl0ZXJhbFR5cGUuY3JlYXRlTGl0ZXJhbFR5cGUu
dmVyaWZ5QXNBcmd1bWVudCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50
cmluc2ljcy5qczoKKyAgICAgICAgKEludHJpbnNpY3MuKToKKyAgICAgICAgKEludHJpbnNpY3Mp
OgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01hdHJpeFR5cGUuanM6IFJlbmFt
ZWQgZnJvbSBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9ySW5kZXhH
ZXR0ZXIuanMuCisgICAgICAgIChNYXRyaXhUeXBlKToKKyAgICAgICAgKE1hdHJpeFR5cGUucHJv
dG90eXBlLmdldCBlbGVtZW50VHlwZSk6CisgICAgICAgIChNYXRyaXhUeXBlLnByb3RvdHlwZS5n
ZXQgbnVtUm93cyk6CisgICAgICAgIChNYXRyaXhUeXBlLnByb3RvdHlwZS5nZXQgbnVtQ29sdW1u
cyk6CisgICAgICAgIChNYXRyaXhUeXBlLnByb3RvdHlwZS5nZXQgbnVtUm93c1ZhbHVlKToKKyAg
ICAgICAgKE1hdHJpeFR5cGUucHJvdG90eXBlLmdldCBudW1Db2x1bW5zVmFsdWUpOgorICAgICAg
ICAoTWF0cml4VHlwZS5wcm90b3R5cGUuZ2V0IHNpemUpOgorICAgICAgICAoTWF0cml4VHlwZS5w
cm90b3R5cGUudW5pZnlJbXBsKToKKyAgICAgICAgKE1hdHJpeFR5cGUucHJvdG90eXBlLnBvcHVs
YXRlRGVmYXVsdFZhbHVlKToKKyAgICAgICAgKE1hdHJpeFR5cGUucHJvdG90eXBlLnRvU3RyaW5n
KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5qczoKKyAg
ICAgICAgKE5hbWVDb250ZXh0LnByb3RvdHlwZS5hZGQpOgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL05hdGl2ZVR5cGUuanM6CisgICAgICAgIChOYXRpdmVUeXBlLmNyZWF0ZSk6
CisgICAgICAgIChOYXRpdmVUeXBlKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9PcGVyYXRvckFuZGVySW5kZXhlci5qczogUmVuYW1lZCBmcm9tIFRvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL09wZXJhdG9yQW5kZXJJbmRleC5qcy4KKyAgICAgICAgKE9wZXJhdG9yQW5k
ZXJJbmRleGVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9PcGVyYXRvckJv
b2wuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJlcGFy
ZS5qczoKKyAgICAgICAgKGxldC5wcmVwYXJlKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9Qcm9ncmFtLmpzOgorICAgICAgICAoUHJvZ3JhbS5wcm90b3R5cGUuYWRkKToKKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoKKyAgICAgICAgKFJl
d3JpdGVyLnByb3RvdHlwZS52aXNpdE1hdHJpeFR5cGUpOgorICAgICAgICAoUmV3cml0ZXIpOgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWw6CisgICAgICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAob3Bl
cmF0b3IuYm9vbCk6CisgICAgICAgIChib29sLm9wZXJhdG9yKToKKyAgICAgICAgKHVjaGFyLm9w
ZXJhdG9yKToKKyAgICAgICAgKHVzaG9ydC5vcGVyYXRvcik6CisgICAgICAgIChjaGFyLm9wZXJh
dG9yKToKKyAgICAgICAgKHNob3J0Lm9wZXJhdG9yKToKKyAgICAgICAgKHVpbnQub3BlcmF0b3Ip
OgorICAgICAgICAoaW50Lm9wZXJhdG9yKToKKyAgICAgICAgKGhhbGYub3BlcmF0b3IpOgorICAg
ICAgICAoZmxvYXQub3BlcmF0b3IpOgorICAgICAgICAob3BlcmF0b3IuYm9vbDIpOgorICAgICAg
ICAob3BlcmF0b3IuYm9vbDMpOgorICAgICAgICAob3BlcmF0b3IuYm9vbDQpOgorICAgICAgICAo
dWludC5vcGVyYXRvci5sZW5ndGgpOgorICAgICAgICAob3BlcmF0b3IudWNoYXIyKToKKyAgICAg
ICAgKG9wZXJhdG9yLnVjaGFyMyk6CisgICAgICAgIChvcGVyYXRvci51Y2hhcjQpOgorICAgICAg
ICAob3BlcmF0b3IudXNob3J0Mik6CisgICAgICAgIChvcGVyYXRvci51c2hvcnQzKToKKyAgICAg
ICAgKG9wZXJhdG9yLnVzaG9ydDQpOgorICAgICAgICAob3BlcmF0b3IudWludDIpOgorICAgICAg
ICAob3BlcmF0b3IudWludDMpOgorICAgICAgICAob3BlcmF0b3IudWludDQpOgorICAgICAgICAo
b3BlcmF0b3IuY2hhcjIpOgorICAgICAgICAob3BlcmF0b3IuY2hhcjMpOgorICAgICAgICAob3Bl
cmF0b3IuY2hhcjQpOgorICAgICAgICAob3BlcmF0b3Iuc2hvcnQyKToKKyAgICAgICAgKG9wZXJh
dG9yLnNob3J0Myk6CisgICAgICAgIChvcGVyYXRvci5zaG9ydDQpOgorICAgICAgICAob3BlcmF0
b3IuaW50Mik6CisgICAgICAgIChvcGVyYXRvci5pbnQzKToKKyAgICAgICAgKG9wZXJhdG9yLmlu
dDQpOgorICAgICAgICAob3BlcmF0b3IuaGFsZjIpOgorICAgICAgICAob3BlcmF0b3IuaGFsZjMp
OgorICAgICAgICAob3BlcmF0b3IuaGFsZjQpOgorICAgICAgICAob3BlcmF0b3IuZmxvYXQyKToK
KyAgICAgICAgKG9wZXJhdG9yLmZsb2F0Myk6CisgICAgICAgIChvcGVyYXRvci5mbG9hdDQpOgor
ICAgICAgICAoYm9vbDIub3BlcmF0b3IpOgorICAgICAgICAoYm9vbDMub3BlcmF0b3IpOgorICAg
ICAgICAoYm9vbDQub3BlcmF0b3IpOgorICAgICAgICAodWNoYXIyLm9wZXJhdG9yKToKKyAgICAg
ICAgKHVjaGFyMy5vcGVyYXRvcik6CisgICAgICAgICh1Y2hhcjQub3BlcmF0b3IpOgorICAgICAg
ICAodXNob3J0Mi5vcGVyYXRvcik6CisgICAgICAgICh1c2hvcnQzLm9wZXJhdG9yKToKKyAgICAg
ICAgKHVzaG9ydDQub3BlcmF0b3IpOgorICAgICAgICAodWludDIub3BlcmF0b3IpOgorICAgICAg
ICAodWludDMub3BlcmF0b3IpOgorICAgICAgICAodWludDQub3BlcmF0b3IpOgorICAgICAgICAo
Y2hhcjIub3BlcmF0b3IpOgorICAgICAgICAoY2hhcjMub3BlcmF0b3IpOgorICAgICAgICAoY2hh
cjQub3BlcmF0b3IpOgorICAgICAgICAoc2hvcnQyLm9wZXJhdG9yKToKKyAgICAgICAgKHNob3J0
My5vcGVyYXRvcik6CisgICAgICAgIChzaG9ydDQub3BlcmF0b3IpOgorICAgICAgICAoaW50Mi5v
cGVyYXRvcik6CisgICAgICAgIChpbnQzLm9wZXJhdG9yKToKKyAgICAgICAgKGludDQub3BlcmF0
b3IpOgorICAgICAgICAoaGFsZjIub3BlcmF0b3IpOgorICAgICAgICAoaGFsZjMub3BlcmF0b3Ip
OgorICAgICAgICAoaGFsZjQub3BlcmF0b3IpOgorICAgICAgICAoZmxvYXQyLm9wZXJhdG9yKToK
KyAgICAgICAgKGZsb2F0My5vcGVyYXRvcik6CisgICAgICAgIChmbG9hdDQub3BlcmF0b3IpOgor
ICAgICAgICAoYWxsVmVjdG9yVHlwZU5hbWVzKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9Td2l6emxlT3AuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzOgorICAgICAg
ICAoc3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLkZpbmRBbGxUeXBlcy5wcm90
b3R5cGUudmlzaXRNYXRyaXhUeXBlKToKKyAgICAgICAgKHN5bnRoZXNpemVEZWZhdWx0Q29uc3Ry
dWN0b3JPcGVyYXRvci5GaW5kQWxsVHlwZXMpOgorICAgICAgICAoc3ludGhlc2l6ZURlZmF1bHRD
b25zdHJ1Y3Rvck9wZXJhdG9yKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
eW50aGVzaXplT3BlcmF0b3JCb29sLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UZXN0LmpzOgorICAgICAgICAobWFrZVNhbXBsZXIpOgorICAgICAgICAobWFrZTFEVGV4dHVy
ZSk6CisgICAgICAgICh0ZXN0cy50ZXh0dXJlRGltZW5zaW9ucyk6CisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoKKyAgICAgICAgKFZpc2l0b3IucHJvdG90eXBl
LnZpc2l0TWF0cml4VHlwZSk6CisgICAgICAgIChWaXNpdG9yKToKKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sOgorCiAyMDE4LTA4LTI4ICBEYXZpZCBLaWx6ZXIg
IDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGluY29ycmVjdCB1c2Ugb2YgYHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7YCBmb3IgYnVpbHQgcHJvZHVjdHMgYW5kIGZyYW1ld29ya3Mg
aW4gWGNvZGUgcHJvamVjdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0FsbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwppbmRleCAz
MTViZWMyZTY4ODYyN2MzY2Q4MGJhNDZmYmEyNDAwMWUyOGY5ZjRjLi5jYzA3ZmRiNTE2NjE2ZDMy
OGYzODQ0NWU5NWE4MjA1MzkyZTVkYTVhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9BbGwuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxs
LmpzCkBAIC0zNCw3ICszNCw2IEBAIGxvYWQoIlZpc2l0b3IuanMiKTsKIGxvYWQoIkNyZWF0ZUxp
dGVyYWwuanMiKTsKIGxvYWQoIkNyZWF0ZUxpdGVyYWxUeXBlLmpzIik7CiBsb2FkKCJQcm9wZXJ0
eUFjY2Vzc0V4cHJlc3Npb24uanMiKTsKLWxvYWQoIlN3aXp6bGVPcC5qcyIpOwogbG9hZCgiTmF0
aXZlVHlwZS5qcyIpOwogCiBsb2FkKCJBZGRyZXNzU3BhY2UuanMiKTsKQEAgLTQ2LDEyICs0NSwx
MCBAQCBsb2FkKCJBdXRvV3JhcHBlci5qcyIpOwogbG9hZCgiQmxvY2suanMiKTsKIGxvYWQoIkJv
b2xMaXRlcmFsLmpzIik7CiBsb2FkKCJCcmVhay5qcyIpOwotbG9hZCgiQnVpbHRpblZlY3RvckNv
bnN0cnVjdG9ycy5qcyIpOworbG9hZCgiQnVpbHRpbk1hdHJpeEdldHRlci5qcyIpOworbG9hZCgi
QnVpbHRpbk1hdHJpeFNldHRlci5qcyIpOwogbG9hZCgiQnVpbHRpblZlY3RvckdldHRlci5qcyIp
OwogbG9hZCgiQnVpbHRpblZlY3RvclNldHRlci5qcyIpOwotbG9hZCgiQnVpbHRpblZlY3Rvcklu
ZGV4R2V0dGVyLmpzIik7Ci1sb2FkKCJCdWlsdGluVmVjdG9ySW5kZXhTZXR0ZXIuanMiKTsKLWxv
YWQoIkJ1aWx0aW5WZWN0b3JFcXVhbGl0eU9wZXJhdG9yLmpzIik7CiBsb2FkKCJDYWxsRXhwcmVz
c2lvbi5qcyIpOwogbG9hZCgiQ2FsbEZ1bmN0aW9uLmpzIik7CiBsb2FkKCJDaGVjay5qcyIpOwpA
QCAtMTEzLDYgKzExMCw3IEBAIGxvYWQoIkxvZ2ljYWxOb3QuanMiKTsKIGxvYWQoIkxvb3BDaGVj
a2VyLmpzIik7CiBsb2FkKCJNYWtlQXJyYXlSZWZFeHByZXNzaW9uLmpzIik7CiBsb2FkKCJNYWtl
UHRyRXhwcmVzc2lvbi5qcyIpOworbG9hZCgiTWF0cml4VHlwZS5qcyIpOwogbG9hZCgiTmFtZUNv
bnRleHQuanMiKTsKIGxvYWQoIk5hbWVGaW5kZXIuanMiKTsKIGxvYWQoIk5hbWVSZXNvbHZlci5q
cyIpOwpAQCAtMTIwLDkgKzExOCw4IEBAIGxvYWQoIk5hdGl2ZUZ1bmMuanMiKTsKIGxvYWQoIk5v
cm1hbFVzZVByb3BlcnR5UmVzb2x2ZXIuanMiKTsKIGxvYWQoIk51bGxMaXRlcmFsLmpzIik7CiBs
b2FkKCJOdWxsVHlwZS5qcyIpOwotbG9hZCgiT3BlcmF0b3JBbmRlckluZGV4LmpzIik7Citsb2Fk
KCJPcGVyYXRvckFuZGVySW5kZXhlci5qcyIpOwogbG9hZCgiT3BlcmF0b3JBcnJheVJlZkxlbmd0
aC5qcyIpOwotbG9hZCgiT3BlcmF0b3JCb29sLmpzIik7CiBsb2FkKCJPcmlnaW5LaW5kLmpzIik7
CiBsb2FkKCJPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlLmpzIik7CiBsb2FkKCJQYXJzZS5qcyIp
OwpAQCAtMTUwLDEwICsxNDcsMTAgQEAgbG9hZCgiU3dpdGNoU3RhdGVtZW50LmpzIik7CiBsb2Fk
KCJTeW50aGVzaXplQXJyYXlPcGVyYXRvckxlbmd0aC5qcyIpOwogbG9hZCgiU3ludGhlc2l6ZUVu
dW1GdW5jdGlvbnMuanMiKTsKIGxvYWQoIlN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMiKTsK
LWxvYWQoIlN5bnRoZXNpemVPcGVyYXRvckJvb2wuanMiKTsKIGxvYWQoIlN5bnRoZXNpemVDb3B5
Q29uc3RydWN0b3JPcGVyYXRvci5qcyIpOwogbG9hZCgiU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1
Y3Rvck9wZXJhdG9yLmpzIik7CiBsb2FkKCJUZXJuYXJ5RXhwcmVzc2lvbi5qcyIpOworbG9hZCgi
VGV4dHVyZU9wZXJhdGlvbnMuanMiKTsKIGxvYWQoIlRyYXBTdGF0ZW1lbnQuanMiKTsKIGxvYWQo
IlR5cGVEZWYuanMiKTsKIGxvYWQoIlR5cGVEZWZSZXNvbHZlci5qcyIpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRpbk1hdHJpeEdldHRlci5qcyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5NYXRyaXhHZXR0ZXIuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODZhMzMzOTQ2Y2JmNGU1ZGI3YTQ4ZGI4NTg1ODgxN2ZmOGM2N2Q2ZQotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5NYXRyaXhHZXR0
ZXIuanMKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisidXNlIHN0cmljdCI7CisKK2NsYXNzIEJ1aWx0aW5NYXRyaXhHZXR0ZXIgewor
ICAgIGNvbnN0cnVjdG9yKGJhc2VUeXBlTmFtZSwgaGVpZ2h0LCB3aWR0aCkKKyAgICB7CisgICAg
ICAgIHRoaXMuX2Jhc2VUeXBlTmFtZSA9IGJhc2VUeXBlTmFtZTsKKyAgICAgICAgdGhpcy5faGVp
Z2h0ID0gaGVpZ2h0OworICAgICAgICB0aGlzLl93aWR0aCA9IHdpZHRoOworICAgIH0KKworICAg
IGdldCBiYXNlVHlwZU5hbWUoKSB7IHJldHVybiB0aGlzLl9iYXNlVHlwZU5hbWU7IH0KKyAgICBn
ZXQgaGVpZ2h0KCkgeyByZXR1cm4gdGhpcy5faGVpZ2h0OyB9CisgICAgZ2V0IHdpZHRoKCkgeyBy
ZXR1cm4gdGhpcy5fd2lkdGg7IH0KKworICAgIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBgbmF0aXZlICR7dGhpcy5iYXNlVHlwZU5hbWV9JHt0aGlzLndpZHRofSBvcGVyYXRvcltd
KCR7dGhpcy5iYXNlVHlwZU5hbWV9JHt0aGlzLmhlaWdodH14JHt0aGlzLndpZHRofSx1aW50KWA7
CisgICAgfQorCisgICAgc3RhdGljIGZ1bmN0aW9ucygpCisgICAgeworICAgICAgICBpZiAoIXRo
aXMuX2Z1bmN0aW9ucykgeworICAgICAgICAgICAgdGhpcy5fZnVuY3Rpb25zID0gW107CisKKyAg
ICAgICAgICAgIGZvciAobGV0IHR5cGVOYW1lIG9mIFsiaGFsZiIsICJmbG9hdCJdKSB7CisgICAg
ICAgICAgICAgICAgZm9yIChsZXQgaGVpZ2h0IG9mIFsyLCAzLCA0XSkgeworICAgICAgICAgICAg
ICAgICAgICBmb3IgKGxldCB3aWR0aCBvZiBbMiwgMywgNF0pCisgICAgICAgICAgICAgICAgICAg
ICAgICB0aGlzLl9mdW5jdGlvbnMucHVzaChuZXcgQnVpbHRpbk1hdHJpeEdldHRlcih0eXBlTmFt
ZSwgaGVpZ2h0LCB3aWR0aCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4gdGhpcy5fZnVuY3Rpb25zOworICAgIH0KKworICAgIGlu
c3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYykKKyAgICB7CisgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW21hdCwgaW5kZXhdKSA9PiB7CisgICAgICAgICAgICBjb25zdCBpbmRleFZh
bHVlID0gaW5kZXgubG9hZFZhbHVlKCk7CisgICAgICAgICAgICBpZiAoaW5kZXhWYWx1ZSA+PSAw
ICYmIGluZGV4VmFsdWUgPCB0aGlzLmhlaWdodCkgeworICAgICAgICAgICAgICAgIGNvbnN0IHJl
c3VsdCA9IG5ldyBFUHRyKG5ldyBFQnVmZmVyKHRoaXMud2lkdGgpLCAwKTsKKyAgICAgICAgICAg
ICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMud2lkdGg7IGkrKykKKyAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0LnNldChvZmZzZXQrKywgbWF0LmdldChpbmRleFZhbHVlICogdGhpcy53aWR0
aCArIGkpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltCdWlsdGluIG1hdHJp
eCBnZXR0ZXJdIiwgIk91dC1vZi1ib3VuZHMgaW5kZXggd2hlbiBpbmRleGluZyBpbnRvIGEgbWF0
cml4Iik7CisgICAgICAgIH07CisgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb25EYXRhID0gdGhp
czsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9C
dWlsdGluTWF0cml4U2V0dGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVp
bHRpbk1hdHJpeFNldHRlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mN2I4NTc0OWNlMWYyZDdkMWFmMjZiMWNk
ZThmNzhmM2Y4NGI1NTM4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQnVpbHRpbk1hdHJpeFNldHRlci5qcwpAQCAtMCwwICsxLDczIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisidXNlIHN0cmljdCI7CisKK2Ns
YXNzIEJ1aWx0aW5NYXRyaXhTZXR0ZXIgeworICAgIGNvbnN0cnVjdG9yKGJhc2VUeXBlTmFtZSwg
aGVpZ2h0LCB3aWR0aCkKKyAgICB7CisgICAgICAgIHRoaXMuX2Jhc2VUeXBlTmFtZSA9IGJhc2VU
eXBlTmFtZTsKKyAgICAgICAgdGhpcy5faGVpZ2h0ID0gaGVpZ2h0OworICAgICAgICB0aGlzLl93
aWR0aCA9IHdpZHRoOworICAgIH0KKworICAgIGdldCBiYXNlVHlwZU5hbWUoKSB7IHJldHVybiB0
aGlzLl9iYXNlVHlwZU5hbWU7IH0KKyAgICBnZXQgaGVpZ2h0KCkgeyByZXR1cm4gdGhpcy5faGVp
Z2h0OyB9CisgICAgZ2V0IHdpZHRoKCkgeyByZXR1cm4gdGhpcy5fd2lkdGg7IH0KKworICAgIHRv
U3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiBgbmF0aXZlICR7dGhpcy5iYXNlVHlwZU5h
bWV9JHt0aGlzLmhlaWdodH14JHt0aGlzLndpZHRofSBvcGVyYXRvcltdPSgke3RoaXMuYmFzZVR5
cGVOYW1lfSR7dGhpcy5oZWlnaHR9eCR7dGhpcy53aWR0aH0sdWludCwke3RoaXMuYmFzZVR5cGVO
YW1lfSR7dGhpcy53aWR0aH0pYDsKKyAgICB9CisKKyAgICBzdGF0aWMgZnVuY3Rpb25zKCkKKyAg
ICB7CisgICAgICAgIGlmICghdGhpcy5fZnVuY3Rpb25zKSB7CisgICAgICAgICAgICB0aGlzLl9m
dW5jdGlvbnMgPSBbXTsKKworICAgICAgICAgICAgZm9yIChsZXQgdHlwZU5hbWUgb2YgWyJoYWxm
IiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBoZWlnaHQgb2YgWzIsIDMs
IDRdKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHdpZHRoIG9mIFsyLCAzLCA0XSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2Z1bmN0aW9ucy5wdXNoKG5ldyBCdWlsdGlu
TWF0cml4U2V0dGVyKHR5cGVOYW1lLCBoZWlnaHQsIHdpZHRoKSk7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzLl9mdW5jdGlv
bnM7CisgICAgfQorCisgICAgaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKQorICAgIHsK
KyAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbYmFzZSwgaW5kZXgsIHZhbHVlXSkgPT4g
eworICAgICAgICAgICAgY29uc3QgaW5kZXhWYWx1ZSA9IGluZGV4LmxvYWRWYWx1ZSgpOworICAg
ICAgICAgICAgaWYgKGluZGV4VmFsdWUgPj0gMCAmJiBpbmRleFZhbHVlIDwgdGhpcy5oZWlnaHQp
IHsKKyAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEVQdHIobmV3IEVCdWZmZXIodGhp
cy53aWR0aCAqIHRoaXMuaGVpZ2h0KSwgMCk7CisgICAgICAgICAgICAgICAgcmVzdWx0LmNvcHlG
cm9tKGJhc2UsIHRoaXMud2lkdGggKiB0aGlzLmhlaWdodCk7CisgICAgICAgICAgICAgICAgcmVz
dWx0LnBsdXMoaW5kZXhWYWx1ZSAqIHRoaXMud2lkdGgpLmNvcHlGcm9tKHZhbHVlLCB0aGlzLndp
ZHRoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltCdWlsdGluIG1hdHJpeCBz
ZXR0ZXJdIiwgIk91dC1vZi1ib3VuZHMgaW5kZXggd2hlbiBpbmRleGluZyBpbnRvIGEgbWF0cml4
Iik7CisgICAgICAgIH07CisgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb25EYXRhID0gdGhpczsK
KyAgICB9Cit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWls
dGluVmVjdG9yQ29uc3RydWN0b3JzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
QnVpbHRpblZlY3RvckNvbnN0cnVjdG9ycy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMjcwNGI0M2EwNmMyZmFlZDlkZmE3M2RlYWQzM2JiMGM1Yzk1NTk4NS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9CdWlsdGluVmVjdG9yQ29uc3RydWN0b3JzLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
ODQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0i
dXNlIHN0cmljdCI7Ci0KLWNsYXNzIEJ1aWx0aW5WZWN0b3JDb25zdHJ1Y3RvcnMgewotICAgIGNv
bnN0cnVjdG9yKGJhc2VUeXBlTmFtZSwgcGFyYW1ldGVyU2l6ZXMpCi0gICAgewotICAgICAgICB0
aGlzLl9iYXNlVHlwZU5hbWUgPSBiYXNlVHlwZU5hbWU7Ci0gICAgICAgIHRoaXMuX3BhcmFtZXRl
clNpemVzID0gcGFyYW1ldGVyU2l6ZXM7Ci0gICAgfQotCi0gICAgZ2V0IGJhc2VUeXBlTmFtZSgp
IHsgcmV0dXJuIHRoaXMuX2Jhc2VUeXBlTmFtZTsgfQotICAgIGdldCBwYXJhbWV0ZXJTaXplcygp
IHsgcmV0dXJuIHRoaXMuX3BhcmFtZXRlclNpemVzOyB9Ci0gICAgZ2V0IG91dHB1dFNpemUoKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMucGFyYW1ldGVyU2l6ZXMucmVkdWNlKChhLCBiKSA9
PiBhICsgYiwgMCk7Ci0gICAgfQotCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIGBuYXRpdmUgb3BlcmF0b3IgJHt0aGlzLmJhc2VUeXBlTmFtZX0ke3RoaXMub3V0cHV0U2l6
ZX0oJHt0aGlzLnBhcmFtZXRlclNpemVzLm1hcCh4ID0+IHggPT0gMSA/IHRoaXMuYmFzZVR5cGVO
YW1lIDogdGhpcy5iYXNlVHlwZU5hbWUgKyB4KS5qb2luKCIsIil9KWA7Ci0gICAgfQotCi0gICAg
c3RhdGljIGZ1bmN0aW9ucygpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX2Z1bmN0aW9ucykg
ewotICAgICAgICAgICAgdGhpcy5fZnVuY3Rpb25zID0gW107Ci0KLSAgICAgICAgICAgIGZvciAo
bGV0IHR5cGVOYW1lIG9mIFZlY3RvckVsZW1lbnRUeXBlcykgewotICAgICAgICAgICAgICAgIGZv
ciAobGV0IHNpemUgb2YgVmVjdG9yRWxlbWVudFNpemVzKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGZvciAobGV0IHBhcmFtU2l6ZXMgb2YgdGhpcy5fdmVjdG9yUGFyYW1ldGVyU2l6ZXNGb3JNYXhp
bXVtU2l6ZShzaXplKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2Z1bmN0aW9ucy5w
dXNoKG5ldyBCdWlsdGluVmVjdG9yQ29uc3RydWN0b3JzKHR5cGVOYW1lLCBwYXJhbVNpemVzKSk7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiB0aGlzLl9mdW5jdGlvbnM7Ci0gICAgfQotCi0gICAgc3RhdGljIF92ZWN0b3JQYXJhbWV0
ZXJTaXplc0Zvck1heGltdW1TaXplKG1heFNpemUpCi0gICAgewotICAgICAgICBsZXQgdmFyaWFu
dHMgPSBbIFsgbWF4U2l6ZSBdIF07Ci0gICAgICAgIGZvciAobGV0IHNwbGl0UG9pbnQgPSAxOyBz
cGxpdFBvaW50IDwgbWF4U2l6ZTsgc3BsaXRQb2ludCsrKSB7Ci0gICAgICAgICAgICBmb3IgKGxl
dCB2IG9mIEJ1aWx0aW5WZWN0b3JDb25zdHJ1Y3RvcnMuX3ZlY3RvclBhcmFtZXRlclNpemVzRm9y
TWF4aW11bVNpemUobWF4U2l6ZSAtIHNwbGl0UG9pbnQpKQotICAgICAgICAgICAgICAgIHZhcmlh
bnRzLnB1c2goWyBzcGxpdFBvaW50IF0uY29uY2F0KHYpKTsKLSAgICAgICAgfQotICAgICAgICBy
ZXR1cm4gdmFyaWFudHM7Ci0gICAgfQotCi0gICAgaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihm
dW5jKQotICAgIHsKLSAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChhcmdzKSA9PiB7Ci0g
ICAgICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgRVB0cihuZXcgRUJ1ZmZlcih0aGlzLm91dHB1
dFNpemUpLCAwKTsKLSAgICAgICAgICAgIGxldCBvZmZzZXQgPSAwOwotICAgICAgICAgICAgZm9y
IChsZXQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgZm9y
IChsZXQgaiA9IDA7IGogPCB0aGlzLnBhcmFtZXRlclNpemVzW2ldOyBqKyspCi0gICAgICAgICAg
ICAgICAgICAgIHJlc3VsdC5zZXQob2Zmc2V0KyssIGFyZ3NbaV0uZ2V0KGopKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH07Ci0gICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb25EYXRhID0gdGhpczsKLSAgICB9Ci19ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVp
bHRpblZlY3RvckVxdWFsaXR5T3BlcmF0b3IuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9CdWlsdGluVmVjdG9yRXF1YWxpdHlPcGVyYXRvci5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYjE4M2QzNTY4NjE5NDFiYzI3NmU0ZDNjNjdjNWU0N2VjYWZlNDcwOS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9yRXF1YWxpdHlPcGVyYXRvci5qcworKysgL2Rl
di9udWxsCkBAIC0xLDY2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBCdWlsdGluVmVjdG9yRXF1YWxpdHlP
cGVyYXRvciB7Ci0gICAgY29uc3RydWN0b3IoYmFzZVR5cGVOYW1lLCBzaXplKQotICAgIHsKLSAg
ICAgICAgdGhpcy5fYmFzZVR5cGVOYW1lID0gYmFzZVR5cGVOYW1lOwotICAgICAgICB0aGlzLl9z
aXplID0gc2l6ZTsKLSAgICB9Ci0KLSAgICBnZXQgYmFzZVR5cGVOYW1lKCkgeyByZXR1cm4gdGhp
cy5fYmFzZVR5cGVOYW1lOyB9Ci0gICAgZ2V0IHNpemUoKSB7IHJldHVybiB0aGlzLl9zaXplOyB9
Ci0KLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4gYG5hdGl2ZSBib29sIG9w
ZXJhdG9yPT0oJHt0aGlzLmJhc2VUeXBlTmFtZX0ke3RoaXMuc2l6ZX0sJHt0aGlzLmJhc2VUeXBl
TmFtZX0ke3RoaXMuc2l6ZX0pYDsKLSAgICB9Ci0KLSAgICBzdGF0aWMgZnVuY3Rpb25zKCkKLSAg
ICB7Ci0gICAgICAgIGlmICghdGhpcy5fZnVuY3Rpb25zKSB7Ci0gICAgICAgICAgICB0aGlzLl9m
dW5jdGlvbnMgPSBbXTsKLQotICAgICAgICAgICAgZm9yIChsZXQgdHlwZU5hbWUgb2YgVmVjdG9y
RWxlbWVudFR5cGVzKSB7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgc2l6ZSBvZiBWZWN0b3JF
bGVtZW50U2l6ZXMpCi0gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Z1bmN0aW9ucy5wdXNoKG5l
dyBCdWlsdGluVmVjdG9yRXF1YWxpdHlPcGVyYXRvcih0eXBlTmFtZSwgc2l6ZSkpOwotICAgICAg
ICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aGlzLl9mdW5jdGlvbnM7Ci0gICAg
fQotCi0gICAgaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKQotICAgIHsKLSAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbcmVmMSwgcmVmMl0sIG5vZGUpID0+IHsKLSAgICAgICAg
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zaXplOyBpKyspIHsKLSAgICAgICAgICAgICAg
ICBpZiAocmVmMS5nZXQoaSkgIT0gcmVmMi5nZXQoaSkpCi0gICAgICAgICAgICAgICAgICAgIHJl
dHVybiBFUHRyLmJveChmYWxzZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4g
RVB0ci5ib3godHJ1ZSk7Ci0gICAgICAgIH07Ci0gICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb25E
YXRhID0gdGhpczsKLSAgICB9Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRpblZlY3RvckdldHRlci5q
cyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JHZXR0ZXIuanMK
aW5kZXggYzI1M2Y3NjMwZWU5ZGM0N2NkMWUxOTQ1YmM4N2Y0MmVhYTNjY2IyOC4uNDA4NzJiNGY4
ZTJiYjNhOGU0ZmZiMjYyNzVkOGQ4M2ZlNzIxODJmNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRpblZlY3RvckdldHRlci5qcworKysgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9yR2V0dGVyLmpzCkBAIC02Miw5ICs2Miw5
IEBAIGNsYXNzIEJ1aWx0aW5WZWN0b3JHZXR0ZXIgewogCiAgICAgaW5zdGFudGlhdGVJbXBsZW1l
bnRhdGlvbihmdW5jKQogICAgIHsKLSAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmVj
XSwgbm9kZSkgPT4geworICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2ZWNdKSA9PiB7
CiAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3godmVjLmdldCh0aGlzLmluZGV4KSk7CiAgICAg
ICAgIH07CiAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb25EYXRhID0gdGhpczsKICAgICB9Ci19
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRpblZlY3RvckluZGV4R2V0dGVyLmpzIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRpblZlY3RvckluZGV4R2V0dGVyLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNzI2MmZjOWNlMjczMGYwODdkNjE0NTU4NzZiMzM1ZmUw
MjRhYzNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JJbmRleEdldHRlci5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBCdWlsdGluVmVjdG9ySW5k
ZXhHZXR0ZXIgewotICAgIGNvbnN0cnVjdG9yKGJhc2VUeXBlTmFtZSwgc2l6ZSkKLSAgICB7Ci0g
ICAgICAgIHRoaXMuX2Jhc2VUeXBlTmFtZSA9IGJhc2VUeXBlTmFtZTsKLSAgICAgICAgdGhpcy5f
c2l6ZSA9IHNpemU7Ci0gICAgfQotCi0gICAgZ2V0IGJhc2VUeXBlTmFtZSgpIHsgcmV0dXJuIHRo
aXMuX2Jhc2VUeXBlTmFtZTsgfQotICAgIGdldCBzaXplKCkgeyByZXR1cm4gdGhpcy5fc2l6ZTsg
fQotCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGBuYXRpdmUgJHt0aGlz
LmJhc2VUeXBlTmFtZX0gb3BlcmF0b3JbXSgke3RoaXMuYmFzZVR5cGVOYW1lfSR7dGhpcy5zaXpl
fSx1aW50KWA7Ci0gICAgfQotCi0gICAgc3RhdGljIGZ1bmN0aW9ucygpCi0gICAgewotICAgICAg
ICBpZiAoIXRoaXMuX2FsbEluZGV4R2V0dGVycykgewotICAgICAgICAgICAgdGhpcy5fYWxsSW5k
ZXhHZXR0ZXJzID0gW107Ci0KLSAgICAgICAgICAgIGZvciAobGV0IHR5cGVOYW1lIG9mIFZlY3Rv
ckVsZW1lbnRUeXBlcykgewotICAgICAgICAgICAgICAgIGZvciAobGV0IHNpemUgb2YgVmVjdG9y
RWxlbWVudFNpemVzKQotICAgICAgICAgICAgICAgICAgICB0aGlzLl9hbGxJbmRleEdldHRlcnMu
cHVzaChuZXcgQnVpbHRpblZlY3RvckluZGV4R2V0dGVyKHR5cGVOYW1lLCBzaXplKSk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRoaXMuX2FsbEluZGV4R2V0dGVy
czsKLSAgICB9Ci0KLSAgICBpbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpCi0gICAgewot
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2ZWMsIGluZGV4XSwgbm9kZSkgPT4gewot
ICAgICAgICAgICAgY29uc3QgaW5kZXhWYWx1ZSA9IGluZGV4LmxvYWRWYWx1ZSgpOwotICAgICAg
ICAgICAgaWYgKGluZGV4VmFsdWUgPj0gMCAmJiBpbmRleFZhbHVlIDwgdGhpcy5zaXplKQotICAg
ICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveCh2ZWMuZ2V0KGluZGV4LmxvYWRWYWx1ZSgpKSk7
Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2lu
ZGV4VmFsdWV9IG91dCBvZiBib3VuZHMgZm9yIHZlY3RvciBvZiBzaXplICR7dGhpcy5zaXplfWAp
OwotICAgICAgICB9OwotICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uRGF0YSA9IHRoaXM7Ci0g
ICAgfQotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JJbmRleFNldHRlci5qcyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0J1aWx0aW5WZWN0b3JJbmRleFNldHRlci5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmZlNWQ2NzhhYjcwNWZlNDBiN2Q2OGU5NjkzZGQ4
YWZjNGFkZWU5NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVjdG9ySW5kZXhTZXR0ZXIu
anMKKysrIC9kZXYvbnVsbApAQCAtMSw3MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgQnVpbHRpblZlY3Rv
ckluZGV4U2V0dGVyIHsKLSAgICBjb25zdHJ1Y3RvcihiYXNlVHlwZU5hbWUsIHNpemUpCi0gICAg
ewotICAgICAgICB0aGlzLl9iYXNlVHlwZU5hbWUgPSBiYXNlVHlwZU5hbWU7Ci0gICAgICAgIHRo
aXMuX3NpemUgPSBzaXplOwotICAgIH0KLQotICAgIGdldCBiYXNlVHlwZU5hbWUoKSB7IHJldHVy
biB0aGlzLl9iYXNlVHlwZU5hbWU7IH0KLSAgICBnZXQgc2l6ZSgpIHsgcmV0dXJuIHRoaXMuX3Np
emU7IH0KLSAgICBnZXQgZWxlbWVudE5hbWUoKSB7IHJldHVybiB0aGlzLl9lbGVtZW50TmFtZTsg
fQotICAgIGdldCBpbmRleCgpIHsgcmV0dXJuIHRoaXMuX2luZGV4OyB9Ci0KLSAgICB0b1N0cmlu
ZygpCi0gICAgewotICAgICAgICByZXR1cm4gYG5hdGl2ZSAke3RoaXMuYmFzZVR5cGVOYW1lfSR7
dGhpcy5zaXplfSBvcGVyYXRvcltdPSgke3RoaXMuYmFzZVR5cGVOYW1lfSR7dGhpcy5zaXplfSx1
aW50LCR7dGhpcy5iYXNlVHlwZU5hbWV9KWA7Ci0gICAgfQotCi0gICAgc3RhdGljIGZ1bmN0aW9u
cygpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX2Z1bmN0aW9ucykgewotICAgICAgICAgICAg
dGhpcy5fZnVuY3Rpb25zID0gW107Ci0KLSAgICAgICAgICAgIGZvciAobGV0IHR5cGVOYW1lIG9m
IFZlY3RvckVsZW1lbnRUeXBlcykgewotICAgICAgICAgICAgICAgIGZvciAobGV0IHNpemUgb2Yg
VmVjdG9yRWxlbWVudFNpemVzKQotICAgICAgICAgICAgICAgICAgICB0aGlzLl9mdW5jdGlvbnMu
cHVzaChuZXcgQnVpbHRpblZlY3RvckluZGV4U2V0dGVyKHR5cGVOYW1lLCBzaXplKSk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRoaXMuX2Z1bmN0aW9uczsKLSAg
ICB9Ci0KLSAgICBpbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpCi0gICAgewotICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtiYXNlLCBpbmRleCwgdmFsdWVdLCBub2RlKSA9PiB7
Ci0gICAgICAgICAgICBjb25zdCBpbmRleFZhbHVlID0gaW5kZXgubG9hZFZhbHVlKCk7Ci0gICAg
ICAgICAgICBpZiAoaW5kZXhWYWx1ZSA+PSAwICYmIGluZGV4VmFsdWUgPCB0aGlzLnNpemUpIHsK
LSAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEVQdHIobmV3IEVCdWZmZXIodGhpcy5z
aXplKSwgMCk7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LmNvcHlGcm9tKGJhc2UsIHRoaXMuc2l6
ZSk7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LnBsdXMoaW5kZXhWYWx1ZSkuY29weUZyb20odmFs
dWUsIDEpOwotICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICB9IGVs
c2UKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7aW5kZXhWYWx1ZX0gb3V0IG9m
IGJvdW5kcyBmb3IgdmVjdG9yIG9mIHNpemUgJHt0aGlzLnNpemV9YCk7Ci0gICAgICAgIH07Ci0g
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb25EYXRhID0gdGhpczsKLSAgICB9Ci19ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQnVpbHRpblZlY3RvclNldHRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0J1aWx0aW5WZWN0b3JTZXR0ZXIuanMKaW5kZXggYTJkNzYzYjc1MDk5OTdiMjQxMGMyNGI4
MDEzMTRjMzRhM2M0ODdhMC4uZDU1OTU5MWU5Njg2NzFlZjkwMzU5OTZhM2ZiNjE1N2VmOTdiMjVl
YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQnVpbHRpblZlY3Rv
clNldHRlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9CdWlsdGluVmVj
dG9yU2V0dGVyLmpzCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIEJ1aWx0aW5WZWN0b3JTZXR0ZXIg
ewogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9mdW5jdGlvbnMpIHsKICAgICAgICAgICAgIHRo
aXMuX2Z1bmN0aW9ucyA9IFtdOwotICAgICAgICAKKwogICAgICAgICAgICAgY29uc3QgZWxlbWVu
dHMgPSBbICJ4IiwgInkiLCAieiIsICJ3IiBdOwogCiAgICAgICAgICAgICBmb3IgKGxldCB0eXBl
TmFtZSBvZiBWZWN0b3JFbGVtZW50VHlwZXMpIHsKQEAgLTYyLDcgKzYyLDcgQEAgY2xhc3MgQnVp
bHRpblZlY3RvclNldHRlciB7CiAKICAgICBpbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMp
CiAgICAgewotICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtiYXNlLCB2YWx1ZV0sIG5v
ZGUpID0+IHsKKyAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbYmFzZSwgdmFsdWVdKSA9
PiB7CiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEVQdHIobmV3IEVCdWZmZXIodGhpcy5z
aXplKSwgMCk7CiAgICAgICAgICAgICByZXN1bHQuY29weUZyb20oYmFzZSwgdGhpcy5zaXplKTsK
ICAgICAgICAgICAgIHJlc3VsdC5wbHVzKHRoaXMuaW5kZXgpLmNvcHlGcm9tKHZhbHVlLCAxKTsK
QEAgLTcwLDQgKzcwLDQgQEAgY2xhc3MgQnVpbHRpblZlY3RvclNldHRlciB7CiAgICAgICAgIH07
CiAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb25EYXRhID0gdGhpczsKICAgICB9Ci19ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9DYWxsRXhwcmVzc2lvbi5qcwppbmRleCAzYjE1NDU1OTkyZTY0ZTI2NzdiYTBiMDNhYjY1
NjhlZjQzZDVkODY1Li41ZmJkZDUwNWY3OWQ0YjMyNmUwOTNlMGZiNzZjZDM3NWQwYTJjNWJhIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRXhwcmVzc2lvbi5q
cworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRXhwcmVzc2lvbi5qcwpA
QCAtNTIsMTkgKzUyLDIyIEBAIGNsYXNzIENhbGxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lv
biB7CiAKICAgICByZXNvbHZlKHBvc3NpYmxlT3ZlcmxvYWRzLCBwcm9ncmFtKQogICAgIHsKLSAg
ICAgICAgaWYgKCFwb3NzaWJsZU92ZXJsb2FkcykKLSAgICAgICAgICAgIHRocm93IG5ldyBXVHlw
ZUVycm9yKHRoaXMub3JpZ2luLm9yaWdpblN0cmluZywgIkRpZCBub3QgZmluZCBhbnkgZnVuY3Rp
b25zIG5hbWVkICIgKyB0aGlzLm5hbWUpOwotCiAgICAgICAgIGxldCBmYWlsdXJlcyA9IFtdOwot
ICAgICAgICBsZXQgb3ZlcmxvYWQgPSByZXNvbHZlT3ZlcmxvYWRJbXBsKHBvc3NpYmxlT3Zlcmxv
YWRzLCB0aGlzLmFyZ3VtZW50VHlwZXMsIHRoaXMucmV0dXJuVHlwZSk7CisgICAgICAgIGxldCBv
dmVybG9hZDsKKyAgICAgICAgaWYgKHBvc3NpYmxlT3ZlcmxvYWRzKQorICAgICAgICAgICAgb3Zl
cmxvYWQgPSByZXNvbHZlT3ZlcmxvYWRJbXBsKHBvc3NpYmxlT3ZlcmxvYWRzLCB0aGlzLmFyZ3Vt
ZW50VHlwZXMsIHRoaXMucmV0dXJuVHlwZSk7CiAKLSAgICAgICAgaWYgKCFvdmVybG9hZC5mdW5j
KSB7CisgICAgICAgIGlmICghb3ZlcmxvYWQgfHwgIW92ZXJsb2FkLmZ1bmMpIHsKKyAgICAgICAg
ICAgIGlmICghb3ZlcmxvYWQpCisgICAgICAgICAgICAgICAgb3ZlcmxvYWQgPSB7fTsKICAgICAg
ICAgICAgIGNvbnN0IGZ1bmMgPSB0aGlzLl9yZXNvbHZlQnlJbnN0YW50aWF0aW9uKHByb2dyYW0p
OwogICAgICAgICAgICAgaWYgKGZ1bmMpCiAgICAgICAgICAgICAgICAgb3ZlcmxvYWQuZnVuYyA9
IGZ1bmM7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMpIHsKKyAgICAg
ICAgICAgIGlmICghb3ZlcmxvYWQuZmFpbHVyZXMpCisgICAgICAgICAgICAgICAgb3ZlcmxvYWQu
ZmFpbHVyZXMgPSBbXTsKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goLi4ub3ZlcmxvYWQuZmFp
bHVyZXMpOwogICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSAiRGlkIG5vdCBmaW5kIGZ1bmN0aW9u
IG5hbWVkICIgKyB0aGlzLm5hbWUgKyAiIGZvciBjYWxsIHdpdGggIjsKICAgICAgICAgICAgIG1l
c3NhZ2UgKz0gImFyZ3VtZW50IHR5cGVzICgiICsgdGhpcy5hcmd1bWVudFR5cGVzICsgIikiOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tUeXBlc1dpdGhB
cmd1bWVudHMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja1R5cGVzV2l0
aEFyZ3VtZW50cy5qcwppbmRleCBiYjZiMmJkNDk4ZTc3YjE0OWRmNGM2OGY0ZWYzYWMxZmYxY2Rh
YWIyLi4yZjY5MTQyYTM1MTdkMjk0OTAwNTMwYzBjZjA2NmM5YmZkMjI3N2FmIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja1R5cGVzV2l0aEFyZ3VtZW50cy5q
cworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja1R5cGVzV2l0aEFyZ3Vt
ZW50cy5qcwpAQCAtMjksOCArMjksMjAgQEAgZnVuY3Rpb24gY2hlY2tUeXBlc1dpdGhBcmd1bWVu
dHMocHJvZ3JhbSkKICAgICBjbGFzcyBUeXBlV2l0aEFyZ3VtZW50c0NoZWNrZXIgZXh0ZW5kcyBW
aXNpdG9yIHsKICAgICAgICAgdmlzaXRUeXBlUmVmKG5vZGUpCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIGlmIChub2RlLm5hbWUgPT0gInZlY3RvciIgJiYgbm9kZS50eXBlQXJndW1lbnRzLmxlbmd0
aCA9PSAwKQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQnVpbHRpbiB0eXBlICR7
bm9kZS5uYW1lfSBzaG91bGQgYWx3YXlzIGhhdmUgdHlwZSBhcmd1bWVudHMuIik7CisgICAgICAg
ICAgICBpZiAoKG5vZGUubmFtZSA9PSAidmVjdG9yIiAmJiBub2RlLnR5cGVBcmd1bWVudHMubGVu
Z3RoICE9IDIpCisgICAgICAgICAgICAgICAgfHwgKG5vZGUubmFtZSA9PSAibWF0cml4IiAmJiBu
b2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoICE9IDMpCisgICAgICAgICAgICAgICAgfHwgKG5vZGUu
bmFtZSA9PSAiVGV4dHVyZTFEIiAmJiBub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoICE9IDEpCisg
ICAgICAgICAgICAgICAgfHwgKG5vZGUubmFtZSA9PSAiUldUZXh0dXJlMUQiICYmIG5vZGUudHlw
ZUFyZ3VtZW50cy5sZW5ndGggIT0gMSkKKyAgICAgICAgICAgICAgICB8fCAobm9kZS5uYW1lID09
ICJUZXh0dXJlMURBcnJheSIgJiYgbm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCAhPSAxKQorICAg
ICAgICAgICAgICAgIHx8IChub2RlLm5hbWUgPT0gIlJXVGV4dHVyZTFEQXJyYXkiICYmIG5vZGUu
dHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gMSkKKyAgICAgICAgICAgICAgICB8fCAobm9kZS5uYW1l
ID09ICJUZXh0dXJlMkQiICYmIG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gMSkKKyAgICAg
ICAgICAgICAgICB8fCAobm9kZS5uYW1lID09ICJSV1RleHR1cmUyRCIgJiYgbm9kZS50eXBlQXJn
dW1lbnRzLmxlbmd0aCAhPSAxKQorICAgICAgICAgICAgICAgIHx8IChub2RlLm5hbWUgPT0gIlRl
eHR1cmUyREFycmF5IiAmJiBub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoICE9IDEpCisgICAgICAg
ICAgICAgICAgfHwgKG5vZGUubmFtZSA9PSAiUldUZXh0dXJlMkRBcnJheSIgJiYgbm9kZS50eXBl
QXJndW1lbnRzLmxlbmd0aCAhPSAxKQorICAgICAgICAgICAgICAgIHx8IChub2RlLm5hbWUgPT0g
IlRleHR1cmUzRCIgJiYgbm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCAhPSAxKQorICAgICAgICAg
ICAgICAgIHx8IChub2RlLm5hbWUgPT0gIlJXVGV4dHVyZTNEIiAmJiBub2RlLnR5cGVBcmd1bWVu
dHMubGVuZ3RoICE9IDEpCisgICAgICAgICAgICAgICAgfHwgKG5vZGUubmFtZSA9PSAiVGV4dHVy
ZUN1YmUiICYmIG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gMSkpCisgICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKGBCdWlsdGluIHR5cGUgJHtub2RlLm5hbWV9IHNob3VsZCBhbHdh
eXMgaGF2ZSB0eXBlIGFyZ3VtZW50cy5gKTsKICAgICAgICAgfQogICAgIH0KICAgICBwcm9ncmFt
LnZpc2l0KG5ldyBUeXBlV2l0aEFyZ3VtZW50c0NoZWNrZXIoKSk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvQ2hlY2tlci5qcwppbmRleCBjNjlkNTU0OWJhZDkzZGJkMjQzZmE2NjkzYzg2
ZjBiNTk5NzhjYzU5Li41ZjU5OGIyZWU3NTIyYmJjODEwNTQ1Yzk0OGQ3NzNmMmU0Zjk5NDdkIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzCisrKyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrZXIuanMKQEAgLTI2Myw2ICsyNjMs
NyBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgdmlzaXRWZWN0b3JUeXBl
KG5vZGUpCiAgICAgewogICAgICAgICBub2RlLmVsZW1lbnRUeXBlLnZpc2l0KHRoaXMpOworICAg
ICAgICBub2RlLm51bUVsZW1lbnRzLnZpc2l0KHRoaXMpOwogCiAgICAgICAgIGxldCBpc0tub3du
QWxsb3dlZFZlY3RvckVsZW1lbnRUeXBlID0gZmFsc2U7CiAgICAgICAgIGZvciAobGV0IHZlY3Rv
ckVsZW1lbnRUeXBlTmFtZSBvZiBWZWN0b3JFbGVtZW50VHlwZXMpIHsKQEAgLTI3Nyw2ICsyNzgs
MzMgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogCiAgICAgICAgIGlmICghaXNL
bm93bkFsbG93ZWRWZWN0b3JFbGVtZW50VHlwZSkKICAgICAgICAgICAgIHRocm93IG5ldyBXVHlw
ZUVycm9yKGAke25vZGUuZWxlbWVudFR5cGV9IGlzIG5vdCBhIHBlcm1pdHRlZCB2ZWN0b3IgZWxl
bWVudCB0eXBlLmApOworICAgICAgICBpZiAobm9kZS5udW1FbGVtZW50c1ZhbHVlICE9IDIgJiYg
bm9kZS5udW1FbGVtZW50c1ZhbHVlICE9IDMgJiYgbm9kZS5udW1FbGVtZW50c1ZhbHVlICE9IDQp
CisgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihgJHtub2RlLnRvU3RyaW5nKCl9OiAk
e25vZGUubnVtRWxlbWVudHNWYWx1ZX0gaXMgbm90IDIsIDMsIG9yIDQuYCk7CisgICAgfQorCisg
ICAgdmlzaXRNYXRyaXhUeXBlKG5vZGUpCisgICAgeworICAgICAgICBub2RlLmVsZW1lbnRUeXBl
LnZpc2l0KHRoaXMpOworICAgICAgICBub2RlLm51bVJvd3MudmlzaXQodGhpcyk7CisgICAgICAg
IG5vZGUubnVtQ29sdW1ucy52aXNpdCh0aGlzKTsKKworICAgICAgICBsZXQgaXNLbm93bkFsbG93
ZWRWZWN0b3JFbGVtZW50VHlwZSA9IGZhbHNlOworICAgICAgICBmb3IgKGxldCBlbGVtZW50VHlw
ZU5hbWUgb2YgWyJoYWxmIiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRU
eXBlID0gdGhpcy5fcHJvZ3JhbS5nbG9iYWxOYW1lQ29udGV4dC5nZXQoVHlwZSwgZWxlbWVudFR5
cGVOYW1lKTsKKyAgICAgICAgICAgIGlmICghZWxlbWVudFR5cGUpCisgICAgICAgICAgICAgICAg
dGhyb3cgbmV3IFdUeXBlRXJyb3IoYCR7ZWxlbWVudFR5cGVOYW1lfSBpcyBub3QgYSBrbm93biBu
YXRpdmUgdHlwZSBpbiB0aGUgc3RhbmRhcmQgbGlicmFyeSBvciBpbnRyaW5zaWNzLmApOworICAg
ICAgICAgICAgaWYgKGVsZW1lbnRUeXBlLmVxdWFscyhub2RlLmVsZW1lbnRUeXBlKSkgeworICAg
ICAgICAgICAgICAgIGlzS25vd25BbGxvd2VkVmVjdG9yRWxlbWVudFR5cGUgPSB0cnVlOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAg
aWYgKCFpc0tub3duQWxsb3dlZFZlY3RvckVsZW1lbnRUeXBlKQorICAgICAgICAgICAgdGhyb3cg
bmV3IFdUeXBlRXJyb3IoYCR7bm9kZS5lbGVtZW50VHlwZX0gaXMgbm90IGEgcGVybWl0dGVkIHZl
Y3RvciBlbGVtZW50IHR5cGUuYCk7CisgICAgICAgIGlmIChub2RlLm51bVJvd3NWYWx1ZSAhPSAy
ICYmIG5vZGUubnVtUm93c1ZhbHVlICE9IDMgJiYgbm9kZS5udW1Sb3dzVmFsdWUgIT0gNCkKKyAg
ICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKGAke25vZGUudG9TdHJpbmcoKX06ICR7bm9k
ZS5udW1Sb3dzVmFsdWV9IGlzIG5vdCAyLCAzLCBvciA0LmApOworICAgICAgICBpZiAobm9kZS5u
dW1Db2x1bW5zVmFsdWUgIT0gMiAmJiBub2RlLm51bUNvbHVtbnNWYWx1ZSAhPSAzICYmIG5vZGUu
bnVtQ29sdW1uc1ZhbHVlICE9IDQpCisgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihg
JHtub2RlLnRvU3RyaW5nKCl9OiAke25vZGUubnVtQ29sdW1uc1ZhbHVlfSBpcyBub3QgMiwgMywg
b3IgNC5gKTsKICAgICB9CiAgICAgCiAgICAgdmlzaXRBcnJheVR5cGUobm9kZSkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NvbnN0ZXhwckZvbGRlci5qcyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NvbnN0ZXhwckZvbGRlci5qcwppbmRleCA1NDUx
MzMyZDdmMTBjNDk1Y2VlOTRmNjEzOTY0NTg3OGFiYjA3MWQyLi4zNmU1ZjZmMzVlNTc5MTA3MzM5
YWIzMGIyODM4MDhkM2Q3Y2YxZTBjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9Db25zdGV4cHJGb2xkZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQ29uc3RleHByRm9sZGVyLmpzCkBAIC0zNSw5ICszNSw5IEBAIGNsYXNzIENvbnN0ZXhw
ckZvbGRlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICAKICAgICAgICAgaWYgKG5vZGUubmFt
ZSA9PSAib3BlcmF0b3ItIgogICAgICAgICAgICAgJiYgbm9kZS5hcmd1bWVudExpc3QubGVuZ3Ro
ID09IDEKLSAgICAgICAgICAgICYmIG5vZGUuYXJndW1lbnRMaXN0WzBdLnVuaWZ5Tm9kZS5pc0Nv
bnN0ZXhwcgotICAgICAgICAgICAgJiYgbm9kZS5hcmd1bWVudExpc3RbMF0udW5pZnlOb2RlLm5l
Z0NvbnN0ZXhwcikgewotICAgICAgICAgICAgbm9kZS5iZWNvbWUobm9kZS5hcmd1bWVudExpc3Rb
MF0udW5pZnlOb2RlLm5lZ0NvbnN0ZXhwcihub2RlLm9yaWdpbikpOworICAgICAgICAgICAgJiYg
bm9kZS5hcmd1bWVudExpc3RbMF0uaXNMaXRlcmFsCisgICAgICAgICAgICAmJiBub2RlLmFyZ3Vt
ZW50TGlzdFswXS5uZWdDb25zdGV4cHIpIHsKKyAgICAgICAgICAgIG5vZGUuYmVjb21lKG5vZGUu
YXJndW1lbnRMaXN0WzBdLm5lZ0NvbnN0ZXhwcihub2RlLm9yaWdpbikpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvRXZhbHVhdG9yLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
RXZhbHVhdG9yLmpzCmluZGV4IDAyOTBkZTIzZDQ0MWFhMmYzYThjMTMyOTBmMjFmMWZjY2E2ZDJj
N2QuLmFlZTBhMjMxMmZlZDcyYzBjODdlNzNmMThhYzM0OGVhMWFjM2M3YmEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0V2YWx1YXRvci5qcworKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FdmFsdWF0b3IuanMKQEAgLTE0OCw3ICsxNDgsNiBAQCBj
bGFzcyBFdmFsdWF0b3IgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgaWYgKG5vZGUucHJlZGlj
YXRlLnZpc2l0KHRoaXMpLmxvYWRWYWx1ZSgpKQogICAgICAgICAgICAgcmV0dXJuIG5vZGUuYm9k
eUV4cHJlc3Npb24udmlzaXQodGhpcyk7CiAgICAgICAgIHJldHVybiBub2RlLmVsc2VFeHByZXNz
aW9uLnZpc2l0KHRoaXMpOwotICAgICAgICAKICAgICB9CiAgICAgCiAgICAgdmlzaXRWYXJpYWJs
ZVJlZihub2RlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxh
dHRlbmVkU3RydWN0T2Zmc2V0R2F0aGVyZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9GbGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5qcwppbmRleCA1M2M4NzE2YzQ1MDQ2
Zjg3ZmM0ZjZjZDUzZmE5ZjdhNDJjNTNlMTY1Li4yNzM5ZDdiZjdmYTQ5NjJjNzc1ZjI4Yzc5Y2U1
ODQ1OGJmZDRhOGU4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9G
bGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9GbGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5qcwpAQCAtNzMsNSArNzMs
MTcgQEAgY2xhc3MgRmxhdHRlbmVkU3RydWN0T2Zmc2V0R2F0aGVyZXIgZXh0ZW5kcyBWaXNpdG9y
IHsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAgICAgfQorCisgICAgdmlzaXRNYXRyaXhU
eXBlKG5vZGUpCisgICAgeworICAgICAgICBjb25zdCBmaWVsZE5hbWVzID0gWyAicm93MCIsICJy
b3cxIiwgInJvdzIiLCAicm93MyIgXTsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2Rl
Lm51bVJvd3NWYWx1ZTsgaSsrKSB7CisgICAgICAgICAgICB0aGlzLl9yZXN1bHQucHVzaCh7Cisg
ICAgICAgICAgICAgICAgbmFtZTogdGhpcy5fbmFtZS5qb2luKCIuIikgKyAiLiIgKyBmaWVsZE5h
bWVzW2ldLAorICAgICAgICAgICAgICAgIG9mZnNldDogdGhpcy5fb2Zmc2V0ICsgaSAqIG5vZGUu
ZWxlbWVudFR5cGUuc2l6ZSAqIG5vZGUubnVtQ29sdW1uc1ZhbHVlLAorICAgICAgICAgICAgICAg
IHR5cGU6IG5vZGUuZWxlbWVudFR5cGUubmFtZSArIG5vZGUubnVtQ29sdW1uc1ZhbHVlLnRvU3Ry
aW5nKCkKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQogfQogCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWxUeXBlLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxvYXRMaXRlcmFsVHlwZS5qcwppbmRleCBmN2Ji
N2YyYzhiMDBjYjM4MDZjYzU2YTVkMjVkOGZlMDUzODczY2Q5Li42MGVjZTQxNWM2OTMzNTdkYjFi
ZWFmN2U2NTEwNDc1Mjc4MDFhZWM4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9GbG9hdExpdGVyYWxUeXBlLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0Zsb2F0TGl0ZXJhbFR5cGUuanMKQEAgLTMyLDggKzMyLDcgQEAgbGV0IEZsb2F0TGl0
ZXJhbFR5cGUgPSBjcmVhdGVMaXRlcmFsVHlwZSh7CiAgICAgICAgIGxldCByZWFsVGhpcyA9IHVu
aWZpY2F0aW9uQ29udGV4dC5maW5kKHRoaXMpOwogICAgICAgICBpZiAoIXJlYWxUaGlzLmlzRmxv
YXRpbmcpCiAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNvbjogIkNhbm5v
dCB1c2UgZmxvYXQgbGl0ZXJhbCB3aXRoIG5vbi1mbG9hdGluZyB0eXBlICIgKyByZWFsVGhpc307
Ci0gICAgICAgIGlmICghcmVhbFRoaXMuY2FuUmVwcmVzZW50KHRoaXMudmFsdWUpKQotICAgICAg
ICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJGbG9hdCBsaXRlcmFsICIgKyB0
aGlzLnZhbHVlICsgIiBkb2VzIG5vdCBmaXQgaW4gdHlwZSAiICsgcmVhbFRoaXN9OworICAgICAg
ICAvLyBGbG9hdHMgY2FuIHJlcHJlc2VudCBhbnkgbnVtYmVyLgogICAgICAgICByZXR1cm4ge3Jl
c3VsdDogdHJ1ZX07CiAgICAgfQogfSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
SW50cmluc2ljcy5qcwppbmRleCA3MjI5MDYzMjk4MmVlMTA4NDEyZTg4YjA4ODJlNDFjZTg1YTcz
MDFkLi44YzJiZjU2OTMzZjgxYThjMWRlMGYyZmI3ZWZhOGNjY2Y3OTc3MTZlIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCisrKyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMKQEAgLTUwLDcgKzUwLDcgQEAg
Y2xhc3MgSW50cmluc2ljcyB7CiAKICAgICAgICAgZnVuY3Rpb24gY2FzdCh0eXBlZEFycmF5Q29u
c3RydWN0b3IsIG51bWJlcikKICAgICAgICAgewotICAgICAgICAgICAgdmFyIGFycmF5ID0gbmV3
IHR5cGVkQXJyYXlDb25zdHJ1Y3RvcigxKTsKKyAgICAgICAgICAgIGxldCBhcnJheSA9IG5ldyB0
eXBlZEFycmF5Q29uc3RydWN0b3IoMSk7CiAgICAgICAgICAgICBhcnJheVswXSA9IG51bWJlcjsK
ICAgICAgICAgICAgIHJldHVybiBhcnJheVswXTsKICAgICAgICAgfQpAQCAtMzE2LDkwICszMTYs
MjQyIEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgfQogICAgICAgICB9CiAKKyAg
ICAgICAgZm9yIChsZXQgdHlwZSBvZiBbImhhbGYiLCAiZmxvYXQiXSkgeworICAgICAgICAgICAg
Zm9yIChsZXQgaGVpZ2h0ID0gMjsgaGVpZ2h0IDw9IDQ7ICsraGVpZ2h0KSB7CisgICAgICAgICAg
ICAgICAgZm9yIChsZXQgd2lkdGggPSAyOyB3aWR0aCA8PSA0OyArK3dpZHRoKSB7CisgICAgICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoYG5hdGl2ZSB0eXBlZGVmIG1hdHJpeDwke3R5cGV9
LCAke2hlaWdodH0sICR7d2lkdGh9PmAsIHR5cGUgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpc1tgbWF0cml4PCR7dHlwZX0sICR7aGVpZ2h0fSwgJHt3aWR0aH0+YF0gPSB0eXBlOwor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2
ZSBvcGVyYXRvciBpbnQodWludCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5s
b2FkVmFsdWUoKSB8IDApOworICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIHNhbXBsZXIiLAor
ICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgdGhpcy5zYW1wbGVyID0gdHlw
ZTsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRvIHB1dCBoZXJl
LgogICAgICAgICAgICAgfSk7CiAKKyAgICAgICAgZm9yIChsZXQgdGV4dHVyZVR5cGUgb2YgWyJU
ZXh0dXJlMUQiLCAiUldUZXh0dXJlMUQiLCAiVGV4dHVyZTFEQXJyYXkiLCAiUldUZXh0dXJlMURB
cnJheSIsICJUZXh0dXJlMkQiLCAiUldUZXh0dXJlMkQiLCAiVGV4dHVyZTJEQXJyYXkiLCAiUldU
ZXh0dXJlMkRBcnJheSIsICJUZXh0dXJlM0QiLCAiUldUZXh0dXJlM0QiLCAiVGV4dHVyZUN1YmUi
XSkgeworICAgICAgICAgICAgZm9yIChsZXQgdHlwZUFyZ3VtZW50IG9mIFsidWNoYXIiLCAidXNo
b3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9ydCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gLAorICAgICAgICAg
ICAgICAgICAgICB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4
dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gXSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAg
ICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0
ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIHt9
KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9
IDI7IGkgPD0gNDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0
eXBlQXJndW1lbnR9JHtpfT5gLAorICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJn
dW1lbnR9JHtpfT5gXSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5z
aXplID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVs
dFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwge30pOworICAg
ICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgdGV4dHVyZVR5cGUgb2YgWyJUZXh0dXJl
RGVwdGgyRCIsICJSV1RleHR1cmVEZXB0aDJEIiwgIlRleHR1cmVEZXB0aDJEQXJyYXkiLCAiUldU
ZXh0dXJlRGVwdGgyREFycmF5IiwgIlRleHR1cmVEZXB0aEN1YmUiXSkgeworICAgICAgICAgICAg
Zm9yIChsZXQgdHlwZUFyZ3VtZW50IG9mIFsiZmxvYXQiLCAiaGFsZiJdKSB7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVm
ICR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gLAorICAgICAgICAgICAgICAgICAgICB0
eXBlID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7
dHlwZUFyZ3VtZW50fT5gXSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgcHJpbWl0aXZlVHlwZSBvZiBb
InVzaG9ydCIsICJ1aW50IiwgImNoYXIiLCAic2hvcnQiLCAiaW50IiwgImhhbGYiLCAiZmxvYXQi
XSkgeworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
IG9wZXJhdG9yIHVjaGFyKCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVd
KSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSAmIDB4ZmYpOworICAgICAgICAgICAgICAg
IH0pOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgcHJpbWl0aXZlVHlwZSBvZiBbInVj
aGFyIiwgInVpbnQiLCAiY2hhciIsICJzaG9ydCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgb3Bl
cmF0b3IgdXNob3J0KCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSAmIDB4ZmZmZik7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCBwcmltaXRpdmVUeXBlIG9mIFsidWNo
YXIiLCAidXNob3J0IiwgImNoYXIiLCAic2hvcnQiLCAiaW50IiwgImhhbGYiLCAiZmxvYXQiXSkg
eworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIG9w
ZXJhdG9yIHVpbnQoJHtwcmltaXRpdmVUeXBlfSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+
IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpID4+PiAwKTsKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHByaW1pdGl2ZVR5cGUgb2YgWyJ1Y2hhciIs
ICJ1c2hvcnQiLCAidWludCIsICJzaG9ydCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0
b3IgY2hhcigke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0
ci5ib3goY2FzdChJbnQ4QXJyYXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCBwcmltaXRpdmVUeXBlIG9mIFsi
dWNoYXIiLCAidXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJd
KSB7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
b3BlcmF0b3Igc2hvcnQoJHtwcmltaXRpdmVUeXBlfSlgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0p
ID0+IEVQdHIuYm94KGNhc3QoSW50MTZBcnJheSwgdmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHByaW1pdGl2ZVR5
cGUgb2YgWyJ1Y2hhciIsICJ1c2hvcnQiLCAidWludCIsICJjaGFyIiwgInNob3J0IiwgImhhbGYi
LCAiZmxvYXQiXSkgeworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlIG9wZXJhdG9yIGludCgke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdChJbnQzMkFycmF5LCB2YWx1ZS5sb2FkVmFsdWUoKSkp
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgcHJp
bWl0aXZlVHlwZSBvZiBbInVjaGFyIiwgInVzaG9ydCIsICJ1aW50IiwgImNoYXIiLCAic2hvcnQi
LCAiaW50IiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciBoYWxmKCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9IYWxmKHZhbHVlLmxvYWRWYWx1ZSgp
KSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCBw
cmltaXRpdmVUeXBlIG9mIFsidWNoYXIiLCAidXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9y
dCIsICJpbnQiLCAiaGFsZiJdKSB7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgZmxvYXQoJHtwcmltaXRpdmVUeXBlfSlgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KE1hdGguZnJvdW5kKHZhbHVlLmxvYWRWYWx1
ZSgpKSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKwogICAgICAgICB0aGlzLl9t
YXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvciBpbnQodWNoYXIpIiwKKyAgICAg
ICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgaW50KGF0b21pY19pbnQpYCwKICAgICAgICAgICAgIGZ1
bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkg
PT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgfCAwKTsKKyAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgp
KTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAg
ICAibmF0aXZlIG9wZXJhdG9yIGludChmbG9hdCkiLAorICAgICAgICAgICAgYG5hdGl2ZSBvcGVy
YXRvciB1aW50KGF0b21pY191aW50KWAsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVl
LmxvYWRWYWx1ZSgpIHwgMCk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSk7CiAgICAgICAgICAgICB9
KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRv
ciB1aW50KGludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPT0oYm9vbCxi
b29sKSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpID4+PiAw
KTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0p
ID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPT0gcmln
aHQubG9hZFZhbHVlKCkpOwogICAgICAgICAgICAgfSk7CiAKKyAgICAgICAgZm9yIChsZXQgcHJp
bWl0aXZlVHlwZSBvZiBbInVpbnQiLCAiaW50IiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSBib29sIG9wZXJhdG9yPT0oJHtw
cmltaXRpdmVUeXBlfSwke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJp
Z2h0XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVl
KCkgPT0gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgYm9vbCBvcGVyYXRv
cjwoJHtwcmltaXRpdmVUeXBlfSwke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xl
ZnQsIHJpZ2h0XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9h
ZFZhbHVlKCkgPCByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgfSk7CisKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSBib29sIG9w
ZXJhdG9yPD0oJHtwcmltaXRpdmVUeXBlfSwke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxl
ZnQubG9hZFZhbHVlKCkgPD0gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIH0p
OworCisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
Ym9vbCBvcGVyYXRvcj4oJHtwcmltaXRpdmVUeXBlfSwke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KGxlZnQubG9hZFZhbHVlKCkgPiByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAg
ICAgfSk7CisKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSBib29sIG9wZXJhdG9yPj0oJHtwcmltaXRpdmVUeXBlfSwke3ByaW1pdGl2ZVR5cGV9KWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPj0gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICB9CisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAg
ICAgICAgICJuYXRpdmUgb3BlcmF0b3IgdWludCh1Y2hhcikiLAorICAgICAgICAgICAgIm5hdGl2
ZSBpbnQgb3BlcmF0b3ItKGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5s
b2FkVmFsdWUoKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgoLXZhbHVlLmxvYWRW
YWx1ZSgpKSB8IDApOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgK
LSAgICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3IgdWludChmbG9hdCkiLAorICAgICAgICAgICAg
Im5hdGl2ZSBmbG9hdCBvcGVyYXRvci0oZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewot
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5i
b3godmFsdWUubG9hZFZhbHVlKCkgPj4+IDApOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0
aC5mcm91bmQoLXZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvciB1Y2hhcihpbnQp
IiwKKyAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yKyhpbnQsaW50KSIsCiAgICAgICAg
ICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2
YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpICYgMHhmZik7CisgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgorICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgp
KSB8IDApOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAg
ICAgICAgICJuYXRpdmUgb3BlcmF0b3IgdWNoYXIodWludCkiLAorICAgICAgICAgICAgIm5hdGl2
ZSBpbnQgb3BlcmF0b3ItKGludCxpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFs
dWUubG9hZFZhbHVlKCkgJiAweGZmKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChs
ZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CiAgICAgICAgICAgICB9
KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRv
ciB1Y2hhcihmbG9hdCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3IqKGludCxp
bnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgJiAweGZm
KTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0p
ID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICogcmln
aHQubG9hZFZhbHVlKCkpIHwgMCk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9t
YXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvciBmbG9hdChpbnQpIiwKKyAgICAg
ICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yLyhpbnQsaW50KSIsCiAgICAgICAgICAgICBmdW5j
ID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+
IEVQdHIuYm94KE1hdGguZnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgorICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8
IDApOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAg
ICAgICJuYXRpdmUgb3BlcmF0b3IgZmxvYXQodWludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSB1
aW50IG9wZXJhdG9yKyh1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goTWF0
aC5mcm91bmQodmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KChsZWZ0LmxvYWRWYWx1ZSgpICsgcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKICAgICAg
ICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZl
IG9wZXJhdG9yIGZsb2F0KHVjaGFyKSIsCisgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0
b3ItKHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChNYXRoLmZyb3VuZCh2
YWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQu
bG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOwogICAgICAgICAgICAgfSk7
CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJh
dG9yKyhpbnQsaW50KSIsCisgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3IqKHVpbnQs
dWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRy
LmJveCgobGVmdC5sb2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1
ZSgpKSA+Pj4gMCk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAot
ICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yKyh1aW50LHVpbnQpIiwKKyAgICAgICAg
ICAgICJuYXRpdmUgdWludCBvcGVyYXRvci8odWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5j
ID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdo
dF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICsg
cmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
KGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOwogICAgICAgICAg
ICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKQEAgLTQxMCw2NyArNTYyLDY1IEBAIGNs
YXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKLSAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yLShpbnQsaW50KSIsCisgICAgICAg
ICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yLShmbG9hdCxmbG9hdCkiLAogICAgICAgICAgICAg
ZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwg
cmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUo
KSAtIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpKTsKICAg
ICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0
aXZlIHVpbnQgb3BlcmF0b3ItKHVpbnQsdWludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9h
dCBvcGVyYXRvciooZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFs
dWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChs
ZWZ0LmxvYWRWYWx1ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwog
CiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJh
dG9yLShmbG9hdCxmbG9hdCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvci8o
ZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3goTWF0aC5mcm91bmQobGVmdC5sb2FkVmFsdWUoKSAtIHJpZ2h0LmxvYWRWYWx1
ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9h
ZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yKihpbnQs
aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvciYoaW50LGludCkiLAogICAg
ICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbbGVmdCwgcmlnaHRdKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJv
eCgobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwotICAgICAgICAg
ICAgICAgIH07CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwg
cmlnaHRdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUo
KSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAg
dGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcioodWludCx1
aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcnwoaW50LGludCkiLAogICAg
ICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5s
b2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIHwgcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAg
Im5hdGl2ZSBmbG9hdCBvcGVyYXRvciooZmxvYXQsZmxvYXQpIiwKKyAgICAgICAgICAgICJuYXRp
dmUgaW50IG9wZXJhdG9yXihpbnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgKiBy
aWdodC5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5s
b2FkVmFsdWUoKSBeIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwogICAgICAgICAgICAgfSk7CiAK
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9y
LyhpbnQsaW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcn4oaW50KSIsCiAg
ICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0
LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCgofnZhbHVlLmxvYWRW
YWx1ZSgpKSB8IDApOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgK
LSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvci8odWludCx1aW50KSIsCisgICAgICAg
ICAgICAibmF0aXZlIGludCBvcGVyYXRvcjw8KGludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5j
ID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdo
dF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIC8g
cmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
KGxlZnQubG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CiAgICAgICAgICAg
ICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBpbnQg
b3BlcmF0b3ImKGludCxpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yPj4o
aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgPj4gcmlnaHQubG9hZFZhbHVl
KCkpIHwgMCk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KApAQCAt
NDgxLDIyMyArNjMxLDEwMzIgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICB9KTsK
IAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0
b3J8KGludCxpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcnwodWludCx1
aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KGxlZnQubG9hZFZhbHVlKCkgfCByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIHwgcmlnaHQubG9hZFZhbHVlKCkpID4+
PiAwKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAg
ICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3J8KHVpbnQsdWludCkiLAorICAgICAgICAgICAgIm5h
dGl2ZSB1aW50IG9wZXJhdG9yXih1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewog
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgfCByaWdodC5s
b2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5s
b2FkVmFsdWUoKSBeIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CiAgICAgICAgICAgICB9KTsK
IAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0
b3JeKGludCxpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcn4odWludCki
LAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChs
ZWZ0LmxvYWRWYWx1ZSgpIF4gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goKH52YWx1ZS5sb2FkVmFs
dWUoKSkgPj4+IDApOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgK
LSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcl4odWludCx1aW50KSIsCisgICAgICAg
ICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3I8PCh1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1
bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJp
Z2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkg
XiByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eCgobGVmdC5sb2FkVmFsdWUoKSA8PCByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOwogICAgICAg
ICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUg
aW50IG9wZXJhdG9yPDwoaW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVy
YXRvcj4+KHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpIDw8IHJpZ2h0LmxvYWRWYWx1ZSgpKTsK
KyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgPj4+IHJpZ2h0
LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9t
YXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yPDwodWludCx1aW50KSIs
CisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNvcyhmbG9hdCkiLAogICAgICAgICAgICAgZnVu
YyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmln
aHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSA8
PCByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0
aC5mcm91bmQoTWF0aC5jb3ModmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsK
IAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0
b3I+PihpbnQsdWludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBzaW4oZmxvYXQpIiwK
ICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVm
dC5sb2FkVmFsdWUoKSA+PiByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRy
LmJveChNYXRoLmZyb3VuZChNYXRoLnNpbih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAg
ICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIHVp
bnQgb3BlcmF0b3I+Pih1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgdGFu
KGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPj4+IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgudGFuKHZhbHVlLmxvYWRWYWx1ZSgpKSkp
OwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAg
ICJuYXRpdmUgaW50IG9wZXJhdG9yfihpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQg
YWNvcyhmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh+dmFsdWUubG9hZFZhbHVl
KCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4K
KyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5hY29zKHZhbHVl
LmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcn4odWludCkiLAorICAgICAgICAg
ICAgIm5hdGl2ZSBmbG9hdCBhc2luKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94
KCh+dmFsdWUubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1h
dGguZnJvdW5kKE1hdGguYXNpbih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9w
ZXJhdG9yLyhmbG9hdCxmbG9hdCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBhdGFuKGZs
b2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkpOwor
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5hdGFuKHZhbHVlLmxvYWRW
YWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAg
ICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcj09KGludCxpbnQpIiwKKyAgICAgICAgICAg
ICJuYXRpdmUgZmxvYXQgY29zaChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID09IHJpZ2h0LmxvYWRW
YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0p
ID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguY29zaCh2
YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21h
cC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I9PSh1aW50LHVpbnQpIiwK
KyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgc2luaChmbG9hdCkiLAogICAgICAgICAgICAgZnVu
YyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmln
aHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID09
IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5k
KE1hdGguc2luaCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I9PShi
b29sLGJvb2wpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgdGFuaChmbG9hdCkiLAogICAg
ICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0Lmxv
YWRWYWx1ZSgpID09IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KE1hdGguZnJvdW5kKE1hdGgudGFuaCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAg
IH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wg
b3BlcmF0b3I9PShmbG9hdCxmbG9hdCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBjZWls
KGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPT0gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5jZWlsKHZhbHVlLmxvYWRWYWx1ZSgpKSkp
OwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAg
ICJuYXRpdmUgYm9vbCBvcGVyYXRvcjwoaW50LGludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBm
bG9hdCBleHAoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA8IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAg
ICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguZXhwKHZhbHVlLmxvYWRWYWx1
ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAg
ICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcjwodWludCx1aW50KSIsCisgICAgICAgICAgICAi
bmF0aXZlIGZsb2F0IGZsb29yKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPCByaWdodC5sb2FkVmFs
dWUoKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmZsb29yKHZh
bHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFw
LnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcjwoZmxvYXQsZmxvYXQpIiwK
KyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgbG9nKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5j
ID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdo
dF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPCBy
aWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChN
YXRoLmxvZyh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAg
IHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I8PShpbnQs
aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IHJvdW5kKGZsb2F0KSIsCiAgICAgICAg
ICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFts
ZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZh
bHVlKCkgPD0gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0
aC5mcm91bmQoTWF0aC5yb3VuZCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3Bl
cmF0b3I8PSh1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgc3FydChmbG9h
dCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChsZWZ0LmxvYWRWYWx1ZSgpIDw9IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguc3FydCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAg
ICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0
aXZlIGJvb2wgb3BlcmF0b3I8PShmbG9hdCxmbG9hdCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBm
bG9hdCB0cnVuYyhmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpIDw9IHJpZ2h0LmxvYWRWYWx1ZSgpKTsK
KyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgudHJ1bmModmFsdWUubG9h
ZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAot
ICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPihpbnQsaW50KSIsCisgICAgICAgICAg
ICAibmF0aXZlIGZsb2F0IGRkeChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID4gcmlnaHQubG9hZFZh
bHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkg
PT4gRVB0ci5ib3goMCk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0
KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPih1aW50LHVpbnQpIiwKKyAgICAg
ICAgICAgICJuYXRpdmUgZmxvYXQgZGR5KGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsK
LSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+
Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPiByaWdodC5s
b2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFs
dWVdKSA9PiBFUHRyLmJveCgwKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21h
cC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I+KGZsb2F0LGZsb2F0KSIs
CisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IHBvdyhmbG9hdCxmbG9hdCkiLAogICAgICAgICAg
ICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1
ZSgpID4gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChN
YXRoLmZyb3VuZChNYXRoLnBvdyhsZWZ0LmxvYWRWYWx1ZSgpLCByaWdodC5sb2FkVmFsdWUoKSkp
KTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAg
ICAibmF0aXZlIGJvb2wgb3BlcmF0b3I+PShpbnQsaW50KSIsCisgICAgICAgICAgICAibmF0aXZl
IGJvb2wgaXNmaW5pdGUoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA+PSByaWdodC5sb2FkVmFsdWUo
KSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9Pgor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChOdW1iZXIuaXNGaW5pdGUodmFsdWUubG9hZFZh
bHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAg
ICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I+PSh1aW50LHVpbnQpIiwKKyAgICAgICAgICAg
ICJuYXRpdmUgYm9vbCBpc2luZihmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID49IHJpZ2h0LmxvYWRW
YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0p
ID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KCh2YWx1ZS5sb2FkVmFsdWUoKSA9PSBO
dW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpIHx8ICh2YWx1ZS5sb2FkVmFsdWUoKSA9PSBOdW1iZXIu
TkVHQVRJVkVfSU5GSU5JVFkpKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIGJvb2wgaXNuYW4oZmxvYXQpIiwKKyAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3Zh
bHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTnVtYmVyLmlzTmFOKHZhbHVl
LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAorICAgICAgICAvLyBGSVhNRTogSW1w
bGVtZW50IHRoaXMuCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZl
IGJvb2wgb3BlcmF0b3I+PShmbG9hdCxmbG9hdCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBib29s
IGlzbm9ybWFsKGhhbGYpIiwKKyAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3goaXNOYU4odmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgIH0pOworCisg
ICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KKyAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICJuYXRpdmUgYm9vbCBpc25vcm1hbChmbG9hdCkiLAorICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVd
KSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChpc05hTih2YWx1ZS5sb2FkVmFsdWUo
KSkpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICJuYXRpdmUgZmxvYXQgYXRhbjIoZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMg
PT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0
XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA+PSBy
aWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJv
dW5kKE1hdGguYXRhbjIobGVmdC5sb2FkVmFsdWUoKSwgcmlnaHQubG9hZFZhbHVlKCkpKSk7CiAg
ICAgICAgICAgICB9KTsKIAotICAgICAgICBmb3IgKGxldCBuYXRpdmVWZWN0b3JUeXBlTmFtZSBv
ZiBhbGxWZWN0b3JUeXBlTmFtZXMoKSkKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoYG5hdGl2
ZSB0eXBlZGVmICR7bmF0aXZlVmVjdG9yVHlwZU5hbWV9YCwgdHlwZSA9PiB7Ci0gICAgICAgICAg
ICAgICAgdHlwZS5pc1ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAibmF0aXZlIGludCBhc2ludChmbG9hdCkiLAorICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9Pgor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChiaXR3aXNlQ2FzdChGbG9hdDMyQXJyYXksIElu
dDMyQXJyYXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAotICAgICAg
ICBmb3IgKGxldCBzd2l6emxlIG9mIFN3aXp6bGVPcC5mdW5jdGlvbnMoKSkKLSAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoc3dpenpsZS50b1N0cmluZygpLCBmdW5jID0+IHN3aXp6bGUuaW5zdGFu
dGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKSk7CisgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAibmF0aXZlIHVpbnQgYXN1aW50KGZsb2F0KSIsCisgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Cisg
ICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGJpdHdpc2VDYXN0KEZsb2F0MzJBcnJheSwgVWlu
dDMyQXJyYXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICB9KTsKIAotICAgICAg
ICBmb3IgKGxldCBib29sT3Agb2YgT3BlcmF0b3JCb29sLmZ1bmN0aW9ucygpKQotICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldChib29sT3AudG9TdHJpbmcoKSwgZnVuYyA9PiBib29sT3AuaW5zdGFu
dGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKSk7CisgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAibmF0aXZlIGZsb2F0IGFzZmxvYXQoaW50KSIsCisgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Cisg
ICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGJpdHdpc2VDYXN0KEludDMyQXJyYXksIEZsb2F0
MzJBcnJheSwgdmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgIH0pOwogCi0gICAgICAg
IGZvciAobGV0IGFuZGVySW5kZXggb2YgT3BlcmF0b3JBbmRlckluZGV4ZXIuZnVuY3Rpb25zKCkp
Ci0gICAgICAgICAgICB0aGlzLl9tYXAuc2V0KGFuZGVySW5kZXgudG9TdHJpbmcoKSwgZnVuYyA9
PiBhbmRlckluZGV4Lmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYykpOworICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBhc2Zsb2F0KHVpbnQpIiwK
KyAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goYml0d2lzZUNh
c3QoVWludDMyQXJyYXksIEZsb2F0MzJBcnJheSwgdmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAg
ICAgICAgIH0pOwogCi0gICAgICAgIGZvciAobGV0IGNhc3Qgb2YgQnVpbHRpblZlY3RvckNvbnN0
cnVjdG9ycy5mdW5jdGlvbnMoKSkKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoY2FzdC50b1N0
cmluZygpLCBmdW5jID0+IGNhc3QuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKSk7Cisg
ICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KKyAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgZjE2dG9mMzIodWludCkiLAorICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVd
KSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgwKTsKKyAgICAgICAgICAgIH0pOwog
Ci0gICAgICAgIGZvciAobGV0IGdldHRlciBvZiBCdWlsdGluVmVjdG9ySW5kZXhHZXR0ZXIuZnVu
Y3Rpb25zKCkpCi0gICAgICAgICAgICB0aGlzLl9tYXAuc2V0KGdldHRlci50b1N0cmluZygpLCBm
dW5jID0+IGdldHRlci5pbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsKKyAgICAgICAg
Ly8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgIm5hdGl2ZSB1aW50IGYzMnRvZjE2KGZsb2F0KSIsCisgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Cisg
ICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KDApOworICAgICAgICAgICAgfSk7CiAKLSAgICAg
ICAgZm9yIChsZXQgc2V0dGVyIG9mIEJ1aWx0aW5WZWN0b3JJbmRleFNldHRlci5mdW5jdGlvbnMo
KSkKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoc2V0dGVyLnRvU3RyaW5nKCksIGZ1bmMgPT4g
c2V0dGVyLmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYykpOworICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgIm5hdGl2ZSB2b2lkIEFsbE1lbW9yeUJhcnJpZXJXaXRoR3Jv
dXBTeW5jKCkiLAorICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKCkge307CisgICAgICAgICAgICB9KTsKIAotICAgICAg
ICBmb3IgKGxldCBlcXVhbGl0eU9wZXJhdG9yIG9mIEJ1aWx0aW5WZWN0b3JFcXVhbGl0eU9wZXJh
dG9yLmZ1bmN0aW9ucygpKQotICAgICAgICAgICAgdGhpcy5fbWFwLnNldChlcXVhbGl0eU9wZXJh
dG9yLnRvU3RyaW5nKCksIGZ1bmMgPT4gZXF1YWxpdHlPcGVyYXRvci5pbnN0YW50aWF0ZUltcGxl
bWVudGF0aW9uKGZ1bmMpKTsKKyAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICJu
YXRpdmUgdm9pZCBEZXZpY2VNZW1vcnlCYXJyaWVyV2l0aEdyb3VwU3luYygpIiwKKyAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbigpIHt9OworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICJuYXRpdmUgdm9pZCBHcm91cE1lbW9yeUJhcnJpZXJXaXRoR3JvdXBTeW5jKCki
LAorICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKCkge307CisgICAgICAgICAgICB9KTsKKworICAgICAgICBmb3IgKGxl
dCBuYXRpdmVWZWN0b3JUeXBlTmFtZSBvZiBhbGxWZWN0b3JUeXBlTmFtZXMoKSkgeworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldChgbmF0aXZlIHR5cGVkZWYgJHtuYXRpdmVWZWN0b3JUeXBlTmFt
ZX1gLCB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9CiAKICAgICAgICAgZm9yIChsZXQgZ2V0dGVyIG9m
IEJ1aWx0aW5WZWN0b3JHZXR0ZXIuZnVuY3Rpb25zKCkpCiAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KGdldHRlci50b1N0cmluZygpLCBmdW5jID0+IGdldHRlci5pbnN0YW50aWF0ZUltcGxlbWVu
dGF0aW9uKGZ1bmMpKTsKIAogICAgICAgICBmb3IgKGxldCBzZXR0ZXIgb2YgQnVpbHRpblZlY3Rv
clNldHRlci5mdW5jdGlvbnMoKSkKICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoc2V0dGVyLnRv
U3RyaW5nKCksIGZ1bmMgPT4gc2V0dGVyLmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYykp
OworCisgICAgICAgIGZvciAobGV0IGdldHRlciBvZiBCdWlsdGluTWF0cml4R2V0dGVyLmZ1bmN0
aW9ucygpKQorICAgICAgICAgICAgdGhpcy5fbWFwLnNldChnZXR0ZXIudG9TdHJpbmcoKSwgZnVu
YyA9PiBnZXR0ZXIuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKSk7CisKKyAgICAgICAg
Zm9yIChsZXQgc2V0dGVyIG9mIEJ1aWx0aW5NYXRyaXhTZXR0ZXIuZnVuY3Rpb25zKCkpCisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KHNldHRlci50b1N0cmluZygpLCBmdW5jID0+IHNldHRlci5p
bnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsKKworICAgICAgICBmb3IgKGxldCB0eXBl
IG9mIFsiYm9vbCIsICJ1Y2hhciIsICJ1c2hvcnQiLCAidWludCIsICJjaGFyIiwgInNob3J0Iiwg
ImludCIsICJoYWxmIiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlMUQ8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdCBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQgbG9j
YXRpb24saW50IG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZTFEPCR7dHlwZX0+LGludDIgbG9jYXRpb24pYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFs
dWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpXSkpOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmUxRDwke3R5cGV9
PixpbnQyIGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0
KDApLCBsb2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQubG9hZFZhbHVlKCldKSk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFE
PCR7dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBO
dW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1pcGxldmVs
LCB3aWR0aCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
dGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt
aXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KG1pcElEID49IHRleC5sZW5ndGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cg
bmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxl
dmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFttaXBJRF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXgubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmUxREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQy
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
IFNhbXBsZShUZXh0dXJlMURBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixp
bnQgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0gTG9hZChUZXh0dXJlMURBcnJheTwke3R5cGV9PixpbnQzIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVl
KCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpXSkp
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRl
eHR1cmUxREFycmF5PCR7dHlwZX0+LGludDMgbG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZh
bHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIp
ICsgb2Zmc2V0LmxvYWRWYWx1ZSgpXSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxREFycmF5PCR7dHlwZX0+LHVpbnQg
TWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBFbGVtZW50cyx1aW50KiB0
aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBt
aXBsZXZlbCwgd2lkdGgsIGVsZW1lbnRzLCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAodGV4Lmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiTm8gZWxlbWVudHMgaW4gdGhl
IHRleHR1cmUgYXJyYXkiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0
ZXhbMF0ubGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJh
cEVycm9yKCJbbG9hZF0iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0
ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5
RnJvbShFUHRyLmJveCh0ZXhbMF1bbWlwSURdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAg
ICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0
aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlMkQ8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBs
ZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlMkQ8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgQmlhcyxpbnQyIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRd
KSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZUdyYWQoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0MiBE
RFgsZmxvYXQyIEREWSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uLCBkZHgsIGRkeV0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9h
dDIgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5LCBvZmZz
ZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNh
bXBsZUxldmVsKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9h
dCBMT0QpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgbG9kXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSBTYW1wbGVMZXZlbChUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24s
ZmxvYXQgTE9ELGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyRDwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbigoW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRp
b24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRp
b24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9h
dDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9u
LGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9u
LGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlMkQ8JHt0eXBlfT4saW50MyBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKV0pKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0
dXJlMkQ8JHt0eXBlfT4saW50MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCks
IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSArIG9mZnNldC5nZXQoMCksIGxvY2F0
aW9uLmdldCgyKSArIG9mZnNldC5nZXQoMSldKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTJEPCR7dHlwZX0+LHVpbnQg
TWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhy
ZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlw
bGV2ZWwsIHdpZHRoLCBoZWlnaHQsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiUmVhZGluZyBmcm9tIG5vbmV4
aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAodGV4W21pcElEXS5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIHJvd3MiKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXhbbWlwSURdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4W21pcElEXVswXS5sZW5ndGgpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlMkRBcnJheTwke3R5cGV9Pixz
YW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
bihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZTJEQXJyYXk8
JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlhcyxpbnQyIG9mZnNldClg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFz
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZUdyYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9j
YXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmUyREFycmF5PCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSxpbnQy
IG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uLCBkZHgsIGRkeSwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkgeworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlMkRBcnJheTwke3R5
cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QsaW50MiBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kLCBvZmZz
ZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXIoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0
dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZz
ZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJSZWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJl
ZChUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9m
ZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBs
b2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkRBcnJheTwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmUyREFycmF5PCR7dHlw
ZX0+LGludDQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3godGV4dHVy
ZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0
KDEpLCBsb2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgzKV0pKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlMkRBcnJheTwke3R5
cGV9PixpbnQ0IGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9u
LmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMikgKyBvZmZzZXQuZ2V0KDAp
LCBsb2NhdGlvbi5nZXQoMykgKyBvZmZzZXQuZ2V0KDEpXSkpOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUyREFycmF5PCR7
dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWln
aHQsdWludCogdGhyZWFkIEVsZW1lbnRzLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBl
bGVtZW50cywgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
dGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt
aXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHRleC5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
V1RyYXBFcnJvcigiW2xvYWRdIiwgIk5vIGVsZW1lbnRzIGluIHRoZSB0ZXh0dXJlIGFycmF5Iik7
CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4WzBdLmxlbmd0aCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwg
IlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHRleFswXVttaXBJRF0ubGVuZ3RoID09IDApCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0
dXJlIGhhcyBubyByb3dzIik7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdW21pcElEXS5sZW5ndGgpLCAxKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRl
eFswXVttaXBJRF1bMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBlbGVt
ZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXhbMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSBTYW1wbGUoVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGlu
dDMgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX00IEdhdGhlcihUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
cihUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MyBvZmZzZXQp
YCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyUmVkKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRl
eHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9mZnNldClgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRd
KSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJHcmVlbihUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRl
eHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9mZnNldClgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRd
KSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJCbHVlKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0
dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MyBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
QWxwaGEoVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0
dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MyBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRl
eHR1cmUzRDwke3R5cGV9PixpbnQ0IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQ
dHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCks
IGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMyldKSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVy
ZTNEPCR7dHlwZX0+LGludDQgbG9jYXRpb24saW50MyBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQuZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMikgKyBvZmZzZXQuZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMykgKyBvZmZzZXQuZ2V0KDIp
XSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1l
bnNpb25zKFRleHR1cmUzRDwke3R5cGV9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0
aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBEZXB0aCx1aW50KiB0aHJlYWQgTnVt
YmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwg
d2lkdGgsIGhlaWdodCwgZGVwdGgsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiUmVhZGluZyBmcm9tIG5vbmV4
aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAodGV4W21pcElEXS5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFzIHplcm8gZGVwdGgiKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXhbbWlwSURdWzBdLmxlbmd0aCA9PSAwKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0i
LCAiVGV4dHVyZSBoYXMgbm8gcm93cyIpOworICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGgu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4W21pcElEXS5sZW5ndGgpLCAxKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXhbbWlwSURdWzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lk
dGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4W21pcElEXVswXVswXS5sZW5ndGgp
LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgp
LmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZUN1YmU8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZUN1YmU8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQzIEREWCxmbG9hdDMgRERZKWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChU
ZXh0dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkg
eworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
KFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZUN1
YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmVDdWJlPCR7dHlw
ZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBs
ZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBH
ZXREaW1lbnNpb25zKFRleHR1cmVDdWJlPCR7dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhy
ZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxz
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWln
aHQsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9
IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQg
PSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXgu
bGVuZ3RoICE9IDYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFw
RXJyb3IoIltsb2FkXSIsICJDdWJlIHRleHR1cmUgZG9lc24ndCBoYXZlIDYgZmFjZXMiKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXhbMF0ubGVuZ3RoKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiUmVh
ZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAodGV4WzBdW21pcElEXS5sZW5ndGggPT0gMCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUg
aGFzIG5vIHJvd3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUo
KS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF1bbWlwSURdLmxlbmd0aCksIDEpOworICAgICAgICAg
ICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBd
W21pcElEXVswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9m
TGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXS5sZW5ndGgpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNp
b25zKFJXVGV4dHVyZTFEPCR7dHlwZX0+LHVpbnQqIHRocmVhZCBXaWR0aClgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
d2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4dHVyZS5sb2FkVmFsdWUoKS5s
ZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQg
R2V0RGltZW5zaW9ucyhSV1RleHR1cmUxRDwke3R5cGV9PixmbG9hdCogdGhyZWFkIFdpZHRoKWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGhdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfSBMb2FkKFJXVGV4dHVyZTFEPCR7dHlwZX0+LGludCBsb2NhdGlvbilgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1
ZSgpLCBbbG9jYXRpb24ubG9hZFZhbHVlKCldKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTFEPCR7dHlwZX0+LCR7dHlwZX0sdWlu
dClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0dXJlU3RvcmUodGV4dHVyZS5sb2FkVmFsdWUo
KSwgdmFsdWUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5sb2FkVmFsdWUoKV0pOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0
dXJlMURBcnJheTwke3R5cGV9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEVsZW1l
bnRzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGVsZW1lbnRzXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7
CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4Lmxlbmd0aCA9PSAwKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVy
ZSBoYXMgbm8gZWxlbWVudHMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXS5s
ZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQg
R2V0RGltZW5zaW9ucyhSV1RleHR1cmUxREFycmF5PCR7dHlwZX0+LGZsb2F0KiB0aHJlYWQgV2lk
dGgsdWludCogdGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgd2lkdGgsIGVsZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9
IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4Lmxl
bmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVy
cm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gZWxlbWVudHMiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZW5n
dGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleFswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChSV1RleHR1cmUxREFycmF5PCR7dHlwZX0+LGlu
dDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQo
dGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpXSkp
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1Rl
eHR1cmUxREFycmF5PCR7dHlwZX0+LCR7dHlwZX0sdWludDIpYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgdGV4dHVyZVN0b3JlKHRleHR1cmUubG9hZFZhbHVlKCksIHZhbHVlLmxvYWRWYWx1ZSgpLCBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSldKTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTJEPCR7dHlw
ZX0+LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0KWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKHRleC5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIHJvd3MiKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXgubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkQ8
JHt0eXBlfT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhyZWFkIEhlaWdodClgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICh0ZXgubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyByb3dz
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFJXVGV4dHVyZTJE
PCR7dHlwZX0+LGludDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVy
ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3go
dGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRp
b24uZ2V0KDEpXSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9p
ZCBTdG9yZShSV1RleHR1cmUyRDwke3R5cGV9Piwke3R5cGV9LHVpbnQyKWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHRleHR1cmVTdG9yZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCB2YWx1ZS5sb2FkVmFs
dWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpXSk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUy
REFycmF5PCR7dHlwZX0+LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVp
bnQqIHRocmVhZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdp
ZHRoLCBoZWlnaHQsIGVsZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRl
eCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4
Lmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJh
cEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gZWxlbWVudHMiKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICh0ZXhbMF0ubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyBy
b3dzIik7CisgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5
RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBo
ZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4WzBdWzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sZmxv
YXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhyZWFkIEhlaWdodCxmbG9hdCogdGhyZWFkIEVsZW1l
bnRzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZWxl
bWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2Fk
VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXgubGVuZ3RoID09IDApCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIs
ICJUZXh0dXJlIGhhcyBubyBlbGVtZW50cyIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHRleFswXS5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBu
ZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIHJvd3MiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRl
eC5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUo
KS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF1bMF0ubGVu
Z3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
IExvYWQoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFts
b2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpXSkpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUy
REFycmF5PCR7dHlwZX0+LCR7dHlwZX0sdWludDMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGV4
dHVyZVN0b3JlKHRleHR1cmUubG9hZFZhbHVlKCksIHZhbHVlLmxvYWRWYWx1ZSgpLCBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKV0pOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0
dXJlM0Q8JHt0eXBlfT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWlu
dCogdGhyZWFkIERlcHRoKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgs
IGhlaWdodCwgZGVwdGhdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4
dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXgubGVuZ3Ro
ID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Io
Iltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyBkZXB0aCIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKHRleFswXS5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIHJvd3MiKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGRlcHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KHRleC5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF1bMF0u
bGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lk
IEdldERpbWVuc2lvbnMoUldUZXh0dXJlM0Q8JHt0eXBlfT4sZmxvYXQqIHRocmVhZCBXaWR0aCxm
bG9hdCogdGhyZWFkIEhlaWdodCxmbG9hdCogdGhyZWFkIERlcHRoKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZGVwdGhdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICh0ZXgubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyBkZXB0aCIp
OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleFswXS5sZW5ndGggPT0gMCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRl
eHR1cmUgaGFzIG5vIHJvd3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoLmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF0ubGVu
Z3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5
RnJvbShFUHRyLmJveCh0ZXhbMF1bMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoUldUZXh0dXJlM0Q8JHt0eXBlfT4saW50
MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0
ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxv
Y2F0aW9uLmdldCgyKV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
IHZvaWQgU3RvcmUoUldUZXh0dXJlM0Q8JHt0eXBlfT4sJHt0eXBlfSx1aW50MylgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXh0dXJlU3RvcmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgdmFsdWUubG9h
ZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0
KDIpXSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKworICAg
ICAgICAgICAgZnVuY3Rpb24gYm94VmVjdG9yKGEpCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgbGV0IHJlc3VsdCA9IG5ldyBFUHRyKG5ldyBFQnVmZmVyKGEubGVuZ3RoKSwgMCk7Cisg
ICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgKytpKQorICAgICAg
ICAgICAgICAgICAgICByZXN1bHQuc2V0KGksIGFbaV0pOworICAgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAobGV0IGxlbmd0aCBv
ZiBbMiwgMywgNF0pIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KIAogICAgIGFk
ZCh0aGluZykKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01hdHJp
eFR5cGUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NYXRyaXhUeXBlLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmJkOTk2YmY0NjMzNzcwNjg1MTQwYjkwMDUyZmFhMTlkY2E2MjEyYTgKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NYXRyaXhUeXBlLmpz
CkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworInVzZSBzdHJpY3QiOworCitjbGFzcyBNYXRyaXhUeXBlIGV4dGVuZHMgTmF0aXZlVHlw
ZSB7CisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBlQXJndW1lbnRzKQorICAgIHsK
KyAgICAgICAgc3VwZXIob3JpZ2luLCBuYW1lLCB0eXBlQXJndW1lbnRzKTsKKyAgICB9CisKKyAg
ICBnZXQgZWxlbWVudFR5cGUoKSB7IHJldHVybiB0aGlzLnR5cGVBcmd1bWVudHNbMF07IH0KKyAg
ICBnZXQgbnVtUm93cygpIHsgcmV0dXJuIHRoaXMudHlwZUFyZ3VtZW50c1sxXTsgfQorICAgIGdl
dCBudW1Db2x1bW5zKCkgeyByZXR1cm4gdGhpcy50eXBlQXJndW1lbnRzWzJdOyB9CisgICAgZ2V0
IG51bVJvd3NWYWx1ZSgpIHsgcmV0dXJuIHRoaXMubnVtUm93cy52YWx1ZTsgfQorICAgIGdldCBu
dW1Db2x1bW5zVmFsdWUoKSB7IHJldHVybiB0aGlzLm51bUNvbHVtbnMudmFsdWU7IH0KKyAgICBn
ZXQgc2l6ZSgpIHsgcmV0dXJuIHRoaXMuZWxlbWVudFR5cGUuc2l6ZSAqIHRoaXMubnVtUm93c1Zh
bHVlICogdGhpcy5udW1Db2x1bW5zVmFsdWU7IH0KKworICAgIHVuaWZ5SW1wbCh1bmlmaWNhdGlv
bkNvbnRleHQsIG90aGVyKQorICAgIHsKKyAgICAgICAgaWYgKCEob3RoZXIgaW5zdGFuY2VvZiBN
YXRyaXhUeXBlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAodGhp
cy5udW1Sb3dzVmFsdWUgIT09IG90aGVyLm51bVJvd3NWYWx1ZSB8fCB0aGlzLm51bUNvbHVtbnNW
YWx1ZSAhPT0gb3RoZXIubnVtQ29sdW1uc1ZhbHVlKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRUeXBlLnVuaWZ5KHVuaWZpY2F0aW9uQ29u
dGV4dCwgb3RoZXIuZWxlbWVudFR5cGUpOworICAgIH0KKworICAgIHBvcHVsYXRlRGVmYXVsdFZh
bHVlKGJ1ZmZlciwgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0
aGlzLm51bVJvd3NWYWx1ZSAqIHRoaXMucnVuQ29sdW1uc1ZhbHVlOyArK2kpCisgICAgICAgICAg
ICB0aGlzLmVsZW1lbnRUeXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlKGJ1ZmZlciwgb2Zmc2V0ICsg
aSAqIHRoaXMuZWxlbWVudFR5cGUuc2l6ZSk7CisgICAgfQorCisgICAgdG9TdHJpbmcoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGBuYXRpdmUgdHlwZWRlZiBtYXRyaXg8JHt0aGlzLmVsZW1lbnRU
eXBlfSwgJHt0aGlzLm51bVJvd3NWYWx1ZX0sICR7dGhpcy5udW1Db2x1bW5zVmFsdWV9PmA7Cisg
ICAgfQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNv
bnRleHQuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5qcwpp
bmRleCBkYzY4NTc4ZmY1NTZiMzEyYjA5MjdlZjNjMGRmZmEwMDY4ZjFiZTYzLi5jODk5NjhjNzc5
NjA3YjdjYWJjYzZhNWY5NjliNGFiOTEzZTcyNjNlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5qcwpAQCAtNzEsNyArNzEsNyBAQCBjbGFzcyBOYW1lQ29u
dGV4dCB7CiAKICAgICAgICAgaWYgKHRoaW5nLmtpbmQgPT0gVHlwZSkgewogICAgICAgICAgICAg
dGhpcy5fc2V0LmFkZCh0aGluZyk7Ci0gICAgICAgICAgICBpZiAodGhpbmcubmFtZSA9PSAidmVj
dG9yIikgeworICAgICAgICAgICAgaWYgKHRoaW5nLnR5cGVBcmd1bWVudHMgJiYgdGhpbmcudHlw
ZUFyZ3VtZW50cy5sZW5ndGggIT0gMCkgewogICAgICAgICAgICAgICAgIGxldCBhcnJheSA9IHRo
aXMuX21hcC5nZXQodGhpbmcubmFtZSk7CiAgICAgICAgICAgICAgICAgaWYgKCFhcnJheSkgewog
ICAgICAgICAgICAgICAgICAgICBhcnJheSA9IFtdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlVHlwZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL05hdGl2ZVR5cGUuanMKaW5kZXggMjM4MWI1YTZiMGIwMTBlMGZkZDRkYzUzNTUwYThl
YTZiNGY4MzQ3Yi4uYjM2OGEyZThiMjRmNTQ4ZWFiODhhMjgyNGI0OTViZTIzYzg3Y2I4NSAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlVHlwZS5qcworKysg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVUeXBlLmpzCkBAIC02Niw2ICs2
Niw4IEBAIGNsYXNzIE5hdGl2ZVR5cGUgZXh0ZW5kcyBUeXBlIHsKICAgICB7CiAgICAgICAgIGlm
IChuYW1lID09ICJ2ZWN0b3IiKQogICAgICAgICAgICAgcmV0dXJuIG5ldyBWZWN0b3JUeXBlKG9y
aWdpbiwgbmFtZSwgdHlwZUFyZ3VtZW50cyk7CisgICAgICAgIGlmIChuYW1lID09ICJtYXRyaXgi
KQorICAgICAgICAgICAgcmV0dXJuIG5ldyBNYXRyaXhUeXBlKG9yaWdpbiwgbmFtZSwgdHlwZUFy
Z3VtZW50cyk7CiAKICAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVUeXBlKG9yaWdpbiwgbmFtZSwg
dHlwZUFyZ3VtZW50cyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvT3BlcmF0b3JBbmRlckluZGV4LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvT3BlcmF0b3JBbmRlckluZGV4LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA2NzAzNzFmYjkwZjJhMWZkMTVjMmRkZjZjNGEzOTZjMGYyMzljZWJmLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL09wZXJhdG9yQW5kZXJJbmRleC5qcworKysgL2Rldi9udWxsCkBAIC0xLDcxICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotInVzZSBzdHJp
Y3QiOwotCi1jbGFzcyBPcGVyYXRvckFuZGVySW5kZXhlciB7Ci0gICAgY29uc3RydWN0b3IoYmFz
ZVR5cGVOYW1lLCBhZGRyZXNzU3BhY2UpCi0gICAgewotICAgICAgICB0aGlzLl9iYXNlVHlwZU5h
bWUgPSBiYXNlVHlwZU5hbWU7Ci0gICAgICAgIHRoaXMuX2FkZHJlc3NTcGFjZSA9IGFkZHJlc3NT
cGFjZTsKLSAgICB9Ci0KLSAgICBnZXQgYWRkcmVzc1NwYWNlKCkgeyByZXR1cm4gdGhpcy5fYWRk
cmVzc1NwYWNlOyB9Ci0gICAgZ2V0IGJhc2VUeXBlTmFtZSgpIHsgcmV0dXJuIHRoaXMuX2Jhc2VU
eXBlTmFtZTsgfQotCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGBuYXRp
dmUgJHt0aGlzLmJhc2VUeXBlTmFtZX0qICR7dGhpcy5hZGRyZXNzU3BhY2V9IG9wZXJhdG9yJltd
KCR7dGhpcy5iYXNlVHlwZU5hbWV9W10gJHt0aGlzLmFkZHJlc3NTcGFjZX0sdWludClgOwotICAg
IH0KLQotICAgIHN0YXRpYyBmdW5jdGlvbnMoKQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9m
dW5jdGlvbnMpIHsKLSAgICAgICAgICAgIHRoaXMuX2Z1bmN0aW9ucyA9IFtdOwotCi0gICAgICAg
ICAgICBjb25zdCB0eXBlTmFtZXMgPSBbICJ1aW50IiwgImludCIsICJmbG9hdCIsICJib29sIiBd
LmNvbmNhdChhbGxWZWN0b3JUeXBlTmFtZXMoKSk7Ci0gICAgICAgICAgICBjb25zdCBhZGRyZXNz
U3BhY2VzID0gWyAidGhyZWFkIiwgInRocmVhZGdyb3VwIiwgImRldmljZSIsICJjb25zdGFudCIg
XTsKLQotICAgICAgICAgICAgZm9yIChsZXQgYWRkcmVzc1NwYWNlIG9mIGFkZHJlc3NTcGFjZXMp
IHsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCB0eXBlTmFtZSBvZiB0eXBlTmFtZXMpCi0gICAg
ICAgICAgICAgICAgICAgIHRoaXMuX2Z1bmN0aW9ucy5wdXNoKG5ldyBPcGVyYXRvckFuZGVySW5k
ZXhlcih0eXBlTmFtZSwgYWRkcmVzc1NwYWNlKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
LSAgICAgICAgcmV0dXJuIHRoaXMuX2Z1bmN0aW9uczsKLSAgICB9Ci0KLSAgICBpbnN0YW50aWF0
ZUltcGxlbWVudGF0aW9uKGZ1bmMpCi0gICAgewotICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gKFtyZWYsIGluZGV4XSwgbm9kZSkgPT4gewotICAgICAgICAgICAgcmVmID0gcmVmLmxvYWRW
YWx1ZSgpOwotICAgICAgICAgICAgaWYgKCFyZWYpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3
IFdUcmFwRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiTnVsbCBkZXJlZmVyZW5jZSIp
OwotICAgICAgICAgICAgaW5kZXggPSBpbmRleC5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgIGlm
IChpbmRleCA+IHJlZi5sZW5ndGgpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJy
b3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiQXJyYXkgaW5kZXggIiArIGluZGV4ICsgIiBp
cyBvdXQgb2YgYm91bmRzIG9mICIgKyByZWYpOwotICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94
KHJlZi5wdHIucGx1cyhpbmRleCAqIG5vZGUuYXJndW1lbnRUeXBlc1swXS5lbGVtZW50VHlwZS5z
aXplKSk7Ci0gICAgICAgIH07Ci0gICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb25EYXRhID0gdGhp
czsKLSAgICB9Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvT3BlcmF0b3JBbmRlckluZGV4ZXIuanMgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9PcGVyYXRvckFuZGVySW5kZXhlci5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wMTJmMDY3ODBmN2FkOTMyMmQ2YzdiZTQ3OTBjZDQ0NjE4MWY4OWI0Ci0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvT3BlcmF0b3JBbmRlckluZGV4
ZXIuanMKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisidXNlIHN0cmljdCI7CisKK2NsYXNzIE9wZXJhdG9yQW5kZXJJbmRleGVyIHsK
KyAgICBjb25zdHJ1Y3RvcihiYXNlVHlwZU5hbWUsIGFkZHJlc3NTcGFjZSkKKyAgICB7CisgICAg
ICAgIHRoaXMuX2Jhc2VUeXBlTmFtZSA9IGJhc2VUeXBlTmFtZTsKKyAgICAgICAgdGhpcy5fYWRk
cmVzc1NwYWNlID0gYWRkcmVzc1NwYWNlOworICAgIH0KKworICAgIGdldCBhZGRyZXNzU3BhY2Uo
KSB7IHJldHVybiB0aGlzLl9hZGRyZXNzU3BhY2U7IH0KKyAgICBnZXQgYmFzZVR5cGVOYW1lKCkg
eyByZXR1cm4gdGhpcy5fYmFzZVR5cGVOYW1lOyB9CisKKyAgICB0b1N0cmluZygpCisgICAgewor
ICAgICAgICByZXR1cm4gYG5hdGl2ZSAke3RoaXMuYmFzZVR5cGVOYW1lfSogJHt0aGlzLmFkZHJl
c3NTcGFjZX0gb3BlcmF0b3ImW10oJHt0aGlzLmJhc2VUeXBlTmFtZX1bXSAke3RoaXMuYWRkcmVz
c1NwYWNlfSx1aW50KWA7CisgICAgfQorCisgICAgaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihm
dW5jKQorICAgIHsKKyAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbcmVmLCBpbmRleF0s
IG5vZGUpID0+IHsKKyAgICAgICAgICAgIHJlZiA9IHJlZi5sb2FkVmFsdWUoKTsKKyAgICAgICAg
ICAgIGlmICghcmVmKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKG5vZGUu
b3JpZ2luLm9yaWdpblN0cmluZywgIk51bGwgZGVyZWZlcmVuY2UiKTsKKyAgICAgICAgICAgIGlu
ZGV4ID0gaW5kZXgubG9hZFZhbHVlKCk7CisgICAgICAgICAgICBpZiAoaW5kZXggPiByZWYubGVu
Z3RoKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKG5vZGUub3JpZ2luLm9y
aWdpblN0cmluZywgIkFycmF5IGluZGV4ICIgKyBpbmRleCArICIgaXMgb3V0IG9mIGJvdW5kcyBv
ZiAiICsgcmVmKTsKKyAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChyZWYucHRyLnBsdXMoaW5k
ZXggKiBub2RlLmFyZ3VtZW50VHlwZXNbMF0uZWxlbWVudFR5cGUuc2l6ZSkpOworICAgICAgICB9
OworICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uRGF0YSA9IHRoaXM7CisgICAgfQorfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvT3BlcmF0b3JCb29sLmpzIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvT3BlcmF0b3JCb29sLmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA1OGJiMGUwOWI4MGJlZTEwNzA4OWIxYzlkMjAwY2JjNjhhNWNi
OWQzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL09wZXJhdG9yQm9vbC5qcworKysgL2Rldi9udWxsCkBA
IC0xLDY4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBPcGVyYXRvckJvb2wgewotICAgIGNvbnN0cnVjdG9y
KGJhc2VUeXBlTmFtZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2Jhc2VUeXBlTmFtZSA9IGJhc2VU
eXBlTmFtZTsKLSAgICB9Ci0KLSAgICBnZXQgYmFzZVR5cGVOYW1lKCkgeyByZXR1cm4gdGhpcy5f
YmFzZVR5cGVOYW1lOyB9Ci0KLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4g
YG5hdGl2ZSBvcGVyYXRvciBib29sKCR7dGhpcy5iYXNlVHlwZU5hbWV9KWA7Ci0gICAgfQotCi0g
ICAgc3RhdGljIGZ1bmN0aW9ucygpCi0gICAgewotICAgICAgICAvLyBGSVhNRTogVGhlc2Ugb3Bl
cmF0b3JzIHNob3VsZCBiZSBpbiB0aGUgc3RhbmRhcmQgbGlicmFyeSB3aGVyZSBwb3NzaWJsZS4K
LSAgICAgICAgaWYgKCFPcGVyYXRvckJvb2wuX2Z1bmN0aW9ucykgewotICAgICAgICAgICAgT3Bl
cmF0b3JCb29sLl9mdW5jdGlvbnMgPSBbXTsKLQotICAgICAgICAgICAgLy8gYm9vbCBpcyBub3Qg
aW5jbHVkZWQgYmVjYXVzZSB0aGlzIGlzIGdlbmVyYXRlZCBieSB0aGUgY29weSBjb25zdHJ1Y3Rv
ci4KLSAgICAgICAgICAgIC8vIEZJWE1FOiBJbmNsdWRlIGFsbCBuYXRpdmUgdHlwZXMuCi0gICAg
ICAgICAgICBjb25zdCB0eXBlTmFtZXMgPSBbICJ1Y2hhciIsICJ1aW50IiwgImludCIsICJmbG9h
dCIgXS5jb25jYXQoYWxsVmVjdG9yVHlwZU5hbWVzKCkpOwotCi0gICAgICAgICAgICBmb3IgKGxl
dCB0eXBlTmFtZSBvZiB0eXBlTmFtZXMpCi0gICAgICAgICAgICAgICAgT3BlcmF0b3JCb29sLl9m
dW5jdGlvbnMucHVzaChuZXcgT3BlcmF0b3JCb29sKHR5cGVOYW1lKSk7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIE9wZXJhdG9yQm9vbC5fZnVuY3Rpb25zOwotICAgIH0KLQotICAgIGluc3Rh
bnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYykKLSAgICB7Ci0gICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3JlZl0sIG5vZGUpID0+IHsKLSAgICAgICAgICAgIGNvbnN0IHNpemUgPSBub2Rl
LmFyZ3VtZW50VHlwZXNbMF0uc2l6ZTsKLSAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
c2l6ZTsgKytpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCEhcmVmLmdldChpKSkKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRydWUpOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgcmV0dXJuIEVQdHIuYm94KGZhbHNlKTsKLSAgICAgICAgfQotICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uRGF0YSA9IHRoaXM7Ci0gICAgfQotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QcmVwYXJlLmpzCmluZGV4IDlmYWNh
ODZlMjA1NzU1YjJjNmE2NmY0MTJiNTY5MmU5OWU3YjAzYWYuLjgzNDU5MmQzNmYzNDU3ZGZhODZi
NTc1MWJiNzI2MjQ3MmEzZjBhMmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1ByZXBhcmUuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJl
cGFyZS5qcwpAQCAtNDYsNyArNDYsNiBAQCBsZXQgcHJlcGFyZSA9ICgoKSA9PiB7CiAgICAgICAg
IHJlc29sdmVUeXBlRGVmc0luVHlwZXMocHJvZ3JhbSk7CiAgICAgICAgIGNoZWNrUmVjdXJzaXZl
VHlwZXMocHJvZ3JhbSk7CiAgICAgICAgIHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMocHJvZ3Jh
bSk7Ci0gICAgICAgIHN5bnRoZXNpemVPcGVyYXRvckJvb2wocHJvZ3JhbSk7CiAgICAgICAgIHN5
bnRoZXNpemVFbnVtRnVuY3Rpb25zKHByb2dyYW0pOwogICAgICAgICBzeW50aGVzaXplQXJyYXlP
cGVyYXRvckxlbmd0aChwcm9ncmFtKTsKICAgICAgICAgc3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rv
ck9wZXJhdG9yKHByb2dyYW0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvUHJvZ3JhbS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb2dyYW0u
anMKaW5kZXggMTExNmM0ZjU3NzU2MjIxNWZkZDc0MjhhMzE3NTc5YTkyOTE2NTQxNC4uYWMxZGVm
YjRmYmFhYTZlOGUxMzQyOTczNGNjZjQ5MTUzMzliYTUzOSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvZ3JhbS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9Qcm9ncmFtLmpzCkBAIC01MSw3ICs1MSw3IEBAIGNsYXNzIFByb2dyYW0gZXh0
ZW5kcyBOb2RlIHsKICAgICAgICAgICAgICAgICB0aGlzLmZ1bmN0aW9ucy5zZXQoc3RhdGVtZW50
Lm5hbWUsIGFycmF5ID0gW10pOwogICAgICAgICAgICAgYXJyYXkucHVzaChzdGF0ZW1lbnQpOwog
ICAgICAgICB9IGVsc2UgaWYgKHN0YXRlbWVudCBpbnN0YW5jZW9mIFR5cGUpIHsKLSAgICAgICAg
ICAgIGlmIChzdGF0ZW1lbnQuaXNOYXRpdmUgJiYgc3RhdGVtZW50Lm5hbWUgPT0gInZlY3RvciIp
IHsKKyAgICAgICAgICAgIGlmIChzdGF0ZW1lbnQuaXNOYXRpdmUgJiYgc3RhdGVtZW50LnR5cGVB
cmd1bWVudHMubGVuZ3RoICE9IDApIHsKICAgICAgICAgICAgICAgICBsZXQgYXJyYXkgPSB0aGlz
LnR5cGVzLmdldChzdGF0ZW1lbnQubmFtZSk7CiAgICAgICAgICAgICAgICAgaWYgKCFhcnJheSkK
ICAgICAgICAgICAgICAgICAgICAgdGhpcy50eXBlcy5zZXQoc3RhdGVtZW50Lm5hbWUsIGFycmF5
ID0gW10pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0
ZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qcwppbmRleCA5
NGQzYTc2MmUzOGZiOTIxYzU4NGNiYWZmZjFmNTk0NzhlYmI3OTFkLi43YzJkZmJhNjk1NTMzOTg4
NGRiYmY5MTA0NzhkNDNlZmZkZWM2NWNmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9SZXdyaXRlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9SZXdyaXRlci5qcwpAQCAtMzkxLDUgKzM5MSwxMSBAQCBjbGFzcyBSZXdyaXRlciB7CiAgICAg
ICAgIHZlY1R5cGUuX2VsZW1lbnRUeXBlID0gbm9kZS5lbGVtZW50VHlwZS52aXNpdCh0aGlzKTsK
ICAgICAgICAgcmV0dXJuIHZlY1R5cGU7CiAgICAgfQorCisgICAgdmlzaXRNYXRyaXhUeXBlKG5v
ZGUpCisgICAgeworICAgICAgICBjb25zdCBtYXRUeXBlID0gbmV3IE1hdHJpeFR5cGUobm9kZS5v
cmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBlQXJndW1lbnRzLm1hcChhcmd1bWVudCA9PiBhcmd1
bWVudC52aXNpdCh0aGlzKSkpOworICAgICAgICByZXR1cm4gbWF0VHlwZTsKKyAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCmluZGV4IGZmMmMwMmM3YmFm
Y2E0ZDFlMmNmODMzYzZjNzlmYTFjZWM4OTAxM2MuLmRkYzY1ZTM2N2RkOTk5ZGRiMTdkMjljZjZj
NWM2ZTYyNTQxZDJhNzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1NQSVJWLmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRt
bApAQCAtMTcsNyArMTcsNiBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IkNyZWF0ZUxpdGVyYWwu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDcmVhdGVMaXRlcmFsVHlwZS5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbi5qcyI+PC9z
Y3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlN3aXp6bGVPcC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9Ik5hdGl2ZVR5cGUuanMiPjwvc2NyaXB0PgogCiAgICAgPHNjcmlwdCBzcmM9IkFk
ZHJlc3NTcGFjZS5qcyI+PC9zY3JpcHQ+CkBAIC0yOSwxMiArMjgsMTAgQEAgdGQgewogICAgIDxz
Y3JpcHQgc3JjPSJCbG9jay5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkJvb2xMaXRl
cmFsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQnJlYWsuanMiPjwvc2NyaXB0Pgot
ICAgIDxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9yQ29uc3RydWN0b3JzLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iQnVpbHRpbk1hdHJpeEdldHRlci5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9IkJ1aWx0aW5NYXRyaXhTZXR0ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJCdWlsdGluVmVjdG9yR2V0dGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iQnVpbHRpblZlY3RvclNldHRlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkJ1
aWx0aW5WZWN0b3JJbmRleEdldHRlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkJ1
aWx0aW5WZWN0b3JJbmRleFNldHRlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkJ1
aWx0aW5WZWN0b3JFcXVhbGl0eU9wZXJhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iQ2FsbEV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDYWxsRnVu
Y3Rpb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDaGVjay5qcyI+PC9zY3JpcHQ+
CkBAIC05Niw2ICs5Myw3IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iTG9vcENoZWNrZXIuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNYWtlQXJyYXlSZWZFeHByZXNzaW9uLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTWFrZVB0ckV4cHJlc3Npb24uanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSJNYXRyaXhUeXBlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iTmFtZUNvbnRleHQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJOYW1lRmlu
ZGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTmFtZVJlc29sdmVyLmpzIj48L3Nj
cmlwdD4KQEAgLTEwMyw5ICsxMDEsOCBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9Ik5vcm1hbFVz
ZVByb3BlcnR5UmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJOdWxsTGl0
ZXJhbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik51bGxUeXBlLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0iT3BlcmF0b3JBbmRlckluZGV4LmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iT3BlcmF0b3JBbmRlckluZGV4ZXIuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJPcGVyYXRvckFycmF5UmVmTGVuZ3RoLmpzIj48L3NjcmlwdD4KLSAgICA8c2Ny
aXB0IHNyYz0iT3BlcmF0b3JCb29sLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iT3Jp
Z2luS2luZC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik92ZXJsb2FkUmVzb2x1dGlv
bkZhaWx1cmUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJQYXJzZS5qcyI+PC9zY3Jp
cHQ+CkBAIC0xMzMsMTAgKzEzMCwxMCBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IlN5bnRoZXNp
emVBcnJheU9wZXJhdG9yTGVuZ3RoLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3lu
dGhlc2l6ZUVudW1GdW5jdGlvbnMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJTeW50
aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iU3lu
dGhlc2l6ZU9wZXJhdG9yQm9vbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlN5bnRo
ZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IlN5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IlRlcm5hcnlFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJUcmFwU3RhdGVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVHlwZURlZi5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExp
YnJhcnkuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnku
anMKaW5kZXggODE5MGE0MzU2OTIzYTYxZTU0ODViZGQ0ZjE4MGQxMzgzNzc0ODk4Yi4uMmY3MTE5
YWQ1YmI2ZDg5ZGU1Y2QzNDY0NDJiMjMyMzc4M2E2MTRkNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCisrKyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcwpAQCAtMzAsNiArMzAsOCBAQCBs
ZXQgc3RhbmRhcmRMaWJyYXJ5ID0gYAogLy8gSW50cmluc2ljcy5qcy4KIAogLy8gTmVlZCB0byBi
b290c3RyYXAgdm9pZCBmaXJzdC4KKy8vIFRoaXMgd2FzIGF1dG9nZW5lcmF0ZWQgZnJvbSBHZW5l
cmF0ZV9TdGFuZGFyZF9MaWJyYXJ5LnN3aWZ0ISBEbyBub3QgZWRpdCEhCisKIG5hdGl2ZSB0eXBl
ZGVmIHZvaWQ7CiBuYXRpdmUgdHlwZWRlZiBib29sOwogbmF0aXZlIHR5cGVkZWYgdWNoYXI7CkBA
IC00Miw3ICs0NCw2IEBAIG5hdGl2ZSB0eXBlZGVmIGhhbGY7CiBuYXRpdmUgdHlwZWRlZiBmbG9h
dDsKIG5hdGl2ZSB0eXBlZGVmIGF0b21pY19pbnQ7CiBuYXRpdmUgdHlwZWRlZiBhdG9taWNfdWlu
dDsKLQogbmF0aXZlIHR5cGVkZWYgdmVjdG9yPGJvb2wsIDI+OwogdHlwZWRlZiBib29sMiA9IHZl
Y3Rvcjxib29sLCAyPjsKIG5hdGl2ZSB0eXBlZGVmIHZlY3Rvcjxib29sLCAzPjsKQEAgLTk4LDQw
ICs5OSw1NzcgQEAgdHlwZWRlZiBmbG9hdDMgPSB2ZWN0b3I8ZmxvYXQsIDM+OwogbmF0aXZlIHR5
cGVkZWYgdmVjdG9yPGZsb2F0LCA0PjsKIHR5cGVkZWYgZmxvYXQ0ID0gdmVjdG9yPGZsb2F0LCA0
PjsKIAotbmF0aXZlIG9wZXJhdG9yIGludCh1aW50KTsKLW5hdGl2ZSBvcGVyYXRvciBpbnQodWNo
YXIpOwotbmF0aXZlIG9wZXJhdG9yIGludChmbG9hdCk7Ci1uYXRpdmUgb3BlcmF0b3IgdWludChp
bnQpOwotbmF0aXZlIG9wZXJhdG9yIHVpbnQodWNoYXIpOwotbmF0aXZlIG9wZXJhdG9yIHVpbnQo
ZmxvYXQpOwotbmF0aXZlIG9wZXJhdG9yIHVjaGFyKGludCk7CituYXRpdmUgdHlwZWRlZiBtYXRy
aXg8aGFsZiwgMiwgMj47Cit0eXBlZGVmIGhhbGYyeDIgPSBtYXRyaXg8aGFsZiwgMiwgMj47Citu
YXRpdmUgdHlwZWRlZiBtYXRyaXg8aGFsZiwgMiwgMz47Cit0eXBlZGVmIGhhbGYyeDMgPSBtYXRy
aXg8aGFsZiwgMiwgMz47CituYXRpdmUgdHlwZWRlZiBtYXRyaXg8aGFsZiwgMiwgND47Cit0eXBl
ZGVmIGhhbGYyeDQgPSBtYXRyaXg8aGFsZiwgMiwgND47CituYXRpdmUgdHlwZWRlZiBtYXRyaXg8
aGFsZiwgMywgMj47Cit0eXBlZGVmIGhhbGYzeDIgPSBtYXRyaXg8aGFsZiwgMywgMj47CituYXRp
dmUgdHlwZWRlZiBtYXRyaXg8aGFsZiwgMywgMz47Cit0eXBlZGVmIGhhbGYzeDMgPSBtYXRyaXg8
aGFsZiwgMywgMz47CituYXRpdmUgdHlwZWRlZiBtYXRyaXg8aGFsZiwgMywgND47Cit0eXBlZGVm
IGhhbGYzeDQgPSBtYXRyaXg8aGFsZiwgMywgND47CituYXRpdmUgdHlwZWRlZiBtYXRyaXg8aGFs
ZiwgNCwgMj47Cit0eXBlZGVmIGhhbGY0eDIgPSBtYXRyaXg8aGFsZiwgNCwgMj47CituYXRpdmUg
dHlwZWRlZiBtYXRyaXg8aGFsZiwgNCwgMz47Cit0eXBlZGVmIGhhbGY0eDMgPSBtYXRyaXg8aGFs
ZiwgNCwgMz47CituYXRpdmUgdHlwZWRlZiBtYXRyaXg8aGFsZiwgNCwgND47Cit0eXBlZGVmIGhh
bGY0eDQgPSBtYXRyaXg8aGFsZiwgNCwgND47CituYXRpdmUgdHlwZWRlZiBtYXRyaXg8ZmxvYXQs
IDIsIDI+OwordHlwZWRlZiBmbG9hdDJ4MiA9IG1hdHJpeDxmbG9hdCwgMiwgMj47CituYXRpdmUg
dHlwZWRlZiBtYXRyaXg8ZmxvYXQsIDIsIDM+OwordHlwZWRlZiBmbG9hdDJ4MyA9IG1hdHJpeDxm
bG9hdCwgMiwgMz47CituYXRpdmUgdHlwZWRlZiBtYXRyaXg8ZmxvYXQsIDIsIDQ+OwordHlwZWRl
ZiBmbG9hdDJ4NCA9IG1hdHJpeDxmbG9hdCwgMiwgND47CituYXRpdmUgdHlwZWRlZiBtYXRyaXg8
ZmxvYXQsIDMsIDI+OwordHlwZWRlZiBmbG9hdDN4MiA9IG1hdHJpeDxmbG9hdCwgMywgMj47Citu
YXRpdmUgdHlwZWRlZiBtYXRyaXg8ZmxvYXQsIDMsIDM+OwordHlwZWRlZiBmbG9hdDN4MyA9IG1h
dHJpeDxmbG9hdCwgMywgMz47CituYXRpdmUgdHlwZWRlZiBtYXRyaXg8ZmxvYXQsIDMsIDQ+Owor
dHlwZWRlZiBmbG9hdDN4NCA9IG1hdHJpeDxmbG9hdCwgMywgND47CituYXRpdmUgdHlwZWRlZiBt
YXRyaXg8ZmxvYXQsIDQsIDI+OwordHlwZWRlZiBmbG9hdDR4MiA9IG1hdHJpeDxmbG9hdCwgNCwg
Mj47CituYXRpdmUgdHlwZWRlZiBtYXRyaXg8ZmxvYXQsIDQsIDM+OwordHlwZWRlZiBmbG9hdDR4
MyA9IG1hdHJpeDxmbG9hdCwgNCwgMz47CituYXRpdmUgdHlwZWRlZiBtYXRyaXg8ZmxvYXQsIDQs
IDQ+OwordHlwZWRlZiBmbG9hdDR4NCA9IG1hdHJpeDxmbG9hdCwgNCwgND47CituYXRpdmUgdHlw
ZWRlZiBzYW1wbGVyOworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGJvb2w+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTFEPGJvb2wyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxib29sMz47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTFEPHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDx1Y2hhcjI+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTFEPHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dWNoYXI0
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDx1c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTFEPHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVzaG9ydDM+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFE
PHVpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVpbnQyPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUxRDx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dWludDQ+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGNo
YXIyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxjaGFyMz47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMUQ8Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHNob3J0PjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUxRDxzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHNo
b3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUxRDxpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGludDI+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTFEPGludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGludDQ+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGhhbGY+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTFEPGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxoYWxmMz47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlMUQ8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGZsb2F0PjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTFEPGZsb2F0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8ZmxvYXQ0PjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTFEPGJvb2w+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8Ym9v
bDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8Ym9vbDM+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlMUQ8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dWNoYXI+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dWNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTFEPHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1Y2hhcjQ+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dXNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTFEPHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dXNob3J0Mz47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTFEPHVpbnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dWludDI+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMUQ8dWludDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dWlu
dDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8Y2hhcj47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUxRDxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxjaGFyMz47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxjaGFyND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUxRDxzaG9ydD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxzaG9ydDI+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMUQ8c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFE
PHNob3J0ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxpbnQ+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMUQ8aW50Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxpbnQzPjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGludDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlMUQ8aGFsZj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxoYWxmMj47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUxRDxoYWxmMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxo
YWxmND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxmbG9hdD47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUxRDxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8ZmxvYXQz
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGZsb2F0ND47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMURBcnJheTxib29sPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGJvb2wy
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGJvb2wzPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUxREFycmF5PGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVj
aGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVjaGFyMj47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlMURBcnJheTx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJy
YXk8dWNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVzaG9ydD47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUxREFycmF5PHVzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dXNob3J0
ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTx1aW50PjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUxREFycmF5PHVpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVp
bnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVpbnQ0PjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUxREFycmF5PGNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8
Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8Y2hhcjM+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTFEQXJyYXk8Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJy
YXk8c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8c2hvcnQyPjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
MURBcnJheTxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8aW50PjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGludDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTFEQXJyYXk8aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxpbnQ0PjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGhhbGY+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTFEQXJyYXk8aGFsZjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8aGFsZjM+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTFEQXJyYXk8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8ZmxvYXQy
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGZsb2F0Mz47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlMURBcnJheTxmbG9hdDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJh
eTxib29sPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8Ym9vbDI+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxib29sMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUxREFycmF5PGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8dWNoYXI+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1Y2hhcjI+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMURBcnJheTx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURB
cnJheTx1Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1c2hvcnQ+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTFEQXJyYXk8dXNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFy
cmF5PHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1aW50PjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8dWludDI+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMURBcnJheTx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHVp
bnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8Y2hhcj47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUxREFycmF5PGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFE
QXJyYXk8Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxjaGFyND47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTFEQXJyYXk8c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8
c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8c2hvcnQ0PjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8aW50PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTFEQXJyYXk8aW50Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGludDM+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTFEQXJyYXk8aGFsZj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGhh
bGYyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8aGFsZjM+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMURBcnJheTxoYWxmND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUx
REFycmF5PGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQyPjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxib29s
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxib29sMj47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlMkQ8Ym9vbDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGJvb2w0PjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUyRDx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8dWNoYXIy
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTJEPHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8dXNob3J0PjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUyRDx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1
c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUyRDx1aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1aW50Mj47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8dWludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJE
PHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxjaGFyPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUyRDxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8Y2hhcjM+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxz
aG9ydD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUyRDxzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHNob3J0ND47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxp
bnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUyRDxpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxoYWxmPjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUyRDxoYWxmMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8aGFsZjM+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGhhbGY0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUyRDxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8ZmxvYXQyPjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUyRDxmbG9hdDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGZsb2F0
ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxib29sPjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTJEPGJvb2wyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGJvb2wzPjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTJEPHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVjaGFyMj47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUyRDx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8
dWNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVzaG9ydD47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUyRDx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVz
aG9ydDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8dXNob3J0ND47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUyRDx1aW50PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVpbnQy
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTJEPHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGNoYXI+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
MkQ8Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8Y2hhcjQ+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMkQ8c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8c2hv
cnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHNob3J0Mz47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUyRDxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8aW50PjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGludDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlMkQ8aW50Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxpbnQ0PjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTJEPGhhbGY+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8aGFs
ZjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8aGFsZjM+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlMkQ8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8ZmxvYXQ+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8ZmxvYXQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTJEPGZsb2F0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxmbG9hdDQ+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
MkRBcnJheTxib29sMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxib29sMz47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxib29sND47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlMkRBcnJheTx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1Y2hhcjI+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8dWNoYXIzPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUyREFycmF5PHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1
c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8dXNob3J0Mj47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUy
REFycmF5PHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8dWludD47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1aW50Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlMkRBcnJheTx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1aW50ND47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUyREFycmF5PGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGNoYXIz
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGNoYXI0PjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUyREFycmF5PHNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PHNo
b3J0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxzaG9ydDM+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTJEQXJyYXk8c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFy
cmF5PGludD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxpbnQyPjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUyREFycmF5PGludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJy
YXk8aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxoYWxmPjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUyREFycmF5PGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFy
cmF5PGhhbGYzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGhhbGY0PjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUy
REFycmF5PGZsb2F0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxmbG9hdDM+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTJEQXJyYXk8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGJv
b2wyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8Ym9vbDM+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMkRBcnJheTxib29sND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUy
REFycmF5PHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dWNoYXIyPjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dWNoYXIzPjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTJEQXJyYXk8dWNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJy
YXk8dXNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dXNob3J0Mj47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHVzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlMkRBcnJheTx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJy
YXk8dWludD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHVpbnQyPjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dWludDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlMkRBcnJheTx1aW50ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGNoYXI+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxjaGFyMj47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUyREFycmF5PGNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJy
YXk8Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxzaG9ydD47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUyREFycmF5PHNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHNo
b3J0ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGludD47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUyREFycmF5PGludDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRB
cnJheTxpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8aW50ND47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGhhbGY+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlMkRBcnJheTxoYWxmMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGhhbGYz
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8aGFsZjQ+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMkRBcnJheTxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFy
cmF5PGZsb2F0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGZsb2F0Mz47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGZsb2F0ND47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlM0Q8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8Ym9vbDI+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTNEPGJvb2wzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxib29s
ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dWNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTNEPHVjaGFyMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dWNoYXIzPjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUzRDx1Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHVz
aG9ydD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dXNob3J0Mj47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlM0Q8dXNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dXNob3J0ND47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dWludD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
M0Q8dWludDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHVpbnQzPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUzRDx1aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8Y2hhcj47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNE
PGNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxjaGFyND47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlM0Q8c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHNob3J0Mj47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUz
RDxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGludD47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlM0Q8aW50Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8aW50Mz47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlM0Q8aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8aGFs
Zj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8aGFsZjI+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTNEPGhhbGYzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxoYWxmND47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlM0Q8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGZsb2F0
Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUzRDxmbG9hdDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8Ym9vbD47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUzRDxib29sMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUz
RDxib29sMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxib29sND47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUzRDx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1Y2hh
cjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8dWNoYXIzPjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTNEPHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1c2hvcnQ+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8dXNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUzRDx1c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHVzaG9ydDQ+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8dWludD47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUzRDx1aW50Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1aW50Mz47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1aW50ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUz
RDxjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGNoYXIyPjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTNEPGNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGNoYXI0
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTNEPHNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxzaG9ydDM+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTNEPGludD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxpbnQyPjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTNEPGludDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8aW50
ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxoYWxmPjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTNEPGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGhhbGYzPjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGhhbGY0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTNEPGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGZsb2F0Mj47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUzRDxmbG9hdDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8
ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGJvb2w+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZUN1YmU8Ym9vbDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8Ym9vbDM+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZUN1YmU8dWNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8dWNoYXIyPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
Q3ViZTx1Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8dXNob3J0PjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1
YmU8dXNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1c2hvcnQ0PjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHVpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8
dWludDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8dWludDM+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZUN1YmU8dWludDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8Y2hhcj47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlQ3ViZTxjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxjaGFyND47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxzaG9ydD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3Vi
ZTxzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8c2hvcnQzPjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmVDdWJlPHNob3J0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxp
bnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8aW50Mj47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlQ3ViZTxpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGludDQ+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8aGFsZj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3Vi
ZTxoYWxmMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxoYWxmMz47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlQ3ViZTxoYWxmND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxmbG9h
dD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZUN1YmU8ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGZsb2F0ND47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlRGVwdGgyRDxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlRGVwdGgyRDxoYWxmPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZURlcHRoMkQ8Zmxv
YXQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlRGVwdGgyRDxoYWxmPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZURl
cHRoMkRBcnJheTxoYWxmPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZURlcHRoMkRBcnJheTxm
bG9hdD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmVEZXB0aDJEQXJyYXk8aGFsZj47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlRGVwdGhDdWJlPGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmVEZXB0aEN1YmU8aGFsZj47CisKK25hdGl2ZSBvcGVyYXRvciB1Y2hhcih1c2hvcnQpOwogbmF0
aXZlIG9wZXJhdG9yIHVjaGFyKHVpbnQpOworbmF0aXZlIG9wZXJhdG9yIHVjaGFyKGNoYXIpOwor
bmF0aXZlIG9wZXJhdG9yIHVjaGFyKHNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciB1Y2hhcihpbnQp
OworbmF0aXZlIG9wZXJhdG9yIHVjaGFyKGhhbGYpOwogbmF0aXZlIG9wZXJhdG9yIHVjaGFyKGZs
b2F0KTsKLW5hdGl2ZSBvcGVyYXRvciBmbG9hdChpbnQpOwotbmF0aXZlIG9wZXJhdG9yIGZsb2F0
KHVpbnQpOworbmF0aXZlIG9wZXJhdG9yIHVzaG9ydCh1Y2hhcik7CituYXRpdmUgb3BlcmF0b3Ig
dXNob3J0KHVpbnQpOworbmF0aXZlIG9wZXJhdG9yIHVzaG9ydChjaGFyKTsKK25hdGl2ZSBvcGVy
YXRvciB1c2hvcnQoc2hvcnQpOworbmF0aXZlIG9wZXJhdG9yIHVzaG9ydChpbnQpOworbmF0aXZl
IG9wZXJhdG9yIHVzaG9ydChoYWxmKTsKK25hdGl2ZSBvcGVyYXRvciB1c2hvcnQoZmxvYXQpOwor
bmF0aXZlIG9wZXJhdG9yIHVpbnQodWNoYXIpOworbmF0aXZlIG9wZXJhdG9yIHVpbnQodXNob3J0
KTsKK25hdGl2ZSBvcGVyYXRvciB1aW50KGNoYXIpOworbmF0aXZlIG9wZXJhdG9yIHVpbnQoc2hv
cnQpOworbmF0aXZlIG9wZXJhdG9yIHVpbnQoaW50KTsKK25hdGl2ZSBvcGVyYXRvciB1aW50KGhh
bGYpOworbmF0aXZlIG9wZXJhdG9yIHVpbnQoZmxvYXQpOworbmF0aXZlIG9wZXJhdG9yIGNoYXIo
dWNoYXIpOworbmF0aXZlIG9wZXJhdG9yIGNoYXIodXNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciBj
aGFyKHVpbnQpOworbmF0aXZlIG9wZXJhdG9yIGNoYXIoc2hvcnQpOworbmF0aXZlIG9wZXJhdG9y
IGNoYXIoaW50KTsKK25hdGl2ZSBvcGVyYXRvciBjaGFyKGhhbGYpOworbmF0aXZlIG9wZXJhdG9y
IGNoYXIoZmxvYXQpOworbmF0aXZlIG9wZXJhdG9yIHNob3J0KHVjaGFyKTsKK25hdGl2ZSBvcGVy
YXRvciBzaG9ydCh1c2hvcnQpOworbmF0aXZlIG9wZXJhdG9yIHNob3J0KHVpbnQpOworbmF0aXZl
IG9wZXJhdG9yIHNob3J0KGNoYXIpOworbmF0aXZlIG9wZXJhdG9yIHNob3J0KGludCk7CituYXRp
dmUgb3BlcmF0b3Igc2hvcnQoaGFsZik7CituYXRpdmUgb3BlcmF0b3Igc2hvcnQoZmxvYXQpOwor
bmF0aXZlIG9wZXJhdG9yIGludCh1Y2hhcik7CituYXRpdmUgb3BlcmF0b3IgaW50KHVzaG9ydCk7
CituYXRpdmUgb3BlcmF0b3IgaW50KHVpbnQpOworbmF0aXZlIG9wZXJhdG9yIGludChjaGFyKTsK
K25hdGl2ZSBvcGVyYXRvciBpbnQoc2hvcnQpOworbmF0aXZlIG9wZXJhdG9yIGludChoYWxmKTsK
K25hdGl2ZSBvcGVyYXRvciBpbnQoZmxvYXQpOworbmF0aXZlIG9wZXJhdG9yIGhhbGYodWNoYXIp
OworbmF0aXZlIG9wZXJhdG9yIGhhbGYodXNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciBoYWxmKHVp
bnQpOworbmF0aXZlIG9wZXJhdG9yIGhhbGYoY2hhcik7CituYXRpdmUgb3BlcmF0b3IgaGFsZihz
aG9ydCk7CituYXRpdmUgb3BlcmF0b3IgaGFsZihpbnQpOworbmF0aXZlIG9wZXJhdG9yIGhhbGYo
ZmxvYXQpOwogbmF0aXZlIG9wZXJhdG9yIGZsb2F0KHVjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciBm
bG9hdCh1c2hvcnQpOworbmF0aXZlIG9wZXJhdG9yIGZsb2F0KHVpbnQpOworbmF0aXZlIG9wZXJh
dG9yIGZsb2F0KGNoYXIpOworbmF0aXZlIG9wZXJhdG9yIGZsb2F0KHNob3J0KTsKK25hdGl2ZSBv
cGVyYXRvciBmbG9hdChpbnQpOworbmF0aXZlIG9wZXJhdG9yIGZsb2F0KGhhbGYpOworCitvcGVy
YXRvciBib29sKHVjaGFyIHgpIHsKKyAgICByZXR1cm4geCAhPSAwOworfQorb3BlcmF0b3IgYm9v
bCh1c2hvcnQgeCkgeworICAgIHJldHVybiB4ICE9IDA7Cit9CitvcGVyYXRvciBib29sKHVpbnQg
eCkgeworICAgIHJldHVybiB4ICE9IDA7Cit9CitvcGVyYXRvciBib29sKGNoYXIgeCkgeworICAg
IHJldHVybiB4ICE9IDA7Cit9CitvcGVyYXRvciBib29sKHNob3J0IHgpIHsKKyAgICByZXR1cm4g
eCAhPSAwOworfQorb3BlcmF0b3IgYm9vbChpbnQgeCkgeworICAgIHJldHVybiB4ICE9IDA7Cit9
CitvcGVyYXRvciBib29sKGhhbGYgeCkgeworICAgIHJldHVybiB4ICE9IDA7Cit9CitvcGVyYXRv
ciBib29sKGZsb2F0IHgpIHsKKyAgICByZXR1cm4geCAhPSAwOworfQogCituYXRpdmUgb3BlcmF0
b3IgaW50KGF0b21pY19pbnQpOworbmF0aXZlIG9wZXJhdG9yIHVpbnQoYXRvbWljX3VpbnQpOwor
CituYXRpdmUgYm9vbCBvcGVyYXRvcj09KGJvb2wsIGJvb2wpOworYm9vbCBvcGVyYXRvciYoYm9v
bCBhLCBib29sIGIpIHsKKyAgICByZXR1cm4gYSAmJiBiOworfQorYm9vbCBvcGVyYXRvcnwoYm9v
bCBhLCBib29sIGIpIHsKKyAgICByZXR1cm4gYSB8fCBiOworfQorYm9vbCBvcGVyYXRvcl4oYm9v
bCBhLCBib29sIGIpIHsKKyAgICBpZiAoYSkKKyAgICAgICAgcmV0dXJuICFiOworICAgIHJldHVy
biBiOworfQorYm9vbCBvcGVyYXRvcn4oYm9vbCB2YWx1ZSkgeworICAgIHJldHVybiAhdmFsdWU7
Cit9CiBuYXRpdmUgaW50IG9wZXJhdG9yKyhpbnQsIGludCk7Ci1uYXRpdmUgdWludCBvcGVyYXRv
cisodWludCwgdWludCk7Ci11Y2hhciBvcGVyYXRvcisodWNoYXIgYSwgdWNoYXIgYikgeyByZXR1
cm4gdWNoYXIodWludChhKSArIHVpbnQoYikpOyB9Ci1uYXRpdmUgZmxvYXQgb3BlcmF0b3IrKGZs
b2F0LCBmbG9hdCk7Ci1pbnQgb3BlcmF0b3IrKyhpbnQgdmFsdWUpIHsgcmV0dXJuIHZhbHVlICsg
MTsgfQotdWludCBvcGVyYXRvcisrKHVpbnQgdmFsdWUpIHsgcmV0dXJuIHZhbHVlICsgMTsgfQot
dWNoYXIgb3BlcmF0b3IrKyh1Y2hhciB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgKyAxOyB9CiBuYXRp
dmUgaW50IG9wZXJhdG9yLShpbnQsIGludCk7Ci1uYXRpdmUgdWludCBvcGVyYXRvci0odWludCwg
dWludCk7Ci11Y2hhciBvcGVyYXRvci0odWNoYXIgYSwgdWNoYXIgYikgeyByZXR1cm4gdWNoYXIo
dWludChhKSAtIHVpbnQoYikpOyB9Ci1uYXRpdmUgZmxvYXQgb3BlcmF0b3ItKGZsb2F0LCBmbG9h
dCk7Ci1pbnQgb3BlcmF0b3ItLShpbnQgdmFsdWUpIHsgcmV0dXJuIHZhbHVlIC0gMTsgfQotdWlu
dCBvcGVyYXRvci0tKHVpbnQgdmFsdWUpIHsgcmV0dXJuIHZhbHVlIC0gMTsgfQotdWNoYXIgb3Bl
cmF0b3ItLSh1Y2hhciB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgLSAxOyB9CiBuYXRpdmUgaW50IG9w
ZXJhdG9yKihpbnQsIGludCk7Ci1uYXRpdmUgdWludCBvcGVyYXRvcioodWludCwgdWludCk7Ci11
Y2hhciBvcGVyYXRvcioodWNoYXIgYSwgdWNoYXIgYikgeyByZXR1cm4gdWNoYXIodWludChhKSAq
IHVpbnQoYikpOyB9Ci1uYXRpdmUgZmxvYXQgb3BlcmF0b3IqKGZsb2F0LCBmbG9hdCk7CiBuYXRp
dmUgaW50IG9wZXJhdG9yLyhpbnQsIGludCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcj09KGludCwg
aW50KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPChpbnQsIGludCk7CituYXRpdmUgYm9vbCBvcGVy
YXRvcjw9KGludCwgaW50KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPihpbnQsIGludCk7CituYXRp
dmUgYm9vbCBvcGVyYXRvcj49KGludCwgaW50KTsKK25hdGl2ZSB1aW50IG9wZXJhdG9yKyh1aW50
LCB1aW50KTsKK25hdGl2ZSB1aW50IG9wZXJhdG9yLSh1aW50LCB1aW50KTsKK25hdGl2ZSB1aW50
IG9wZXJhdG9yKih1aW50LCB1aW50KTsKIG5hdGl2ZSB1aW50IG9wZXJhdG9yLyh1aW50LCB1aW50
KTsKLXVjaGFyIG9wZXJhdG9yLyh1Y2hhciBhLCB1Y2hhciBiKSB7IHJldHVybiB1Y2hhcih1aW50
KGEpIC8gdWludChiKSk7IH0KK25hdGl2ZSBib29sIG9wZXJhdG9yPT0odWludCwgdWludCk7Citu
YXRpdmUgYm9vbCBvcGVyYXRvcjwodWludCwgdWludCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcjw9
KHVpbnQsIHVpbnQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I+KHVpbnQsIHVpbnQpOworbmF0aXZl
IGJvb2wgb3BlcmF0b3I+PSh1aW50LCB1aW50KTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRvcisoZmxv
YXQsIGZsb2F0KTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRvci0oZmxvYXQsIGZsb2F0KTsKK25hdGl2
ZSBmbG9hdCBvcGVyYXRvciooZmxvYXQsIGZsb2F0KTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRvci8o
ZmxvYXQsIGZsb2F0KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPT0oZmxvYXQsIGZsb2F0KTsKK25h
dGl2ZSBib29sIG9wZXJhdG9yPChmbG9hdCwgZmxvYXQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I8
PShmbG9hdCwgZmxvYXQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I+KGZsb2F0LCBmbG9hdCk7Citu
YXRpdmUgYm9vbCBvcGVyYXRvcj49KGZsb2F0LCBmbG9hdCk7CiBuYXRpdmUgaW50IG9wZXJhdG9y
JihpbnQsIGludCk7CiBuYXRpdmUgaW50IG9wZXJhdG9yfChpbnQsIGludCk7CiBuYXRpdmUgaW50
IG9wZXJhdG9yXihpbnQsIGludCk7CkBAIC0xNDQsNjIgKzY4MiwyNTM0IEBAIG5hdGl2ZSB1aW50
IG9wZXJhdG9yXih1aW50LCB1aW50KTsKIG5hdGl2ZSB1aW50IG9wZXJhdG9yfih1aW50KTsKIG5h
dGl2ZSB1aW50IG9wZXJhdG9yPDwodWludCwgdWludCk7CiBuYXRpdmUgdWludCBvcGVyYXRvcj4+
KHVpbnQsIHVpbnQpOwotdWNoYXIgb3BlcmF0b3ImKHVjaGFyIGEsIHVjaGFyIGIpIHsgcmV0dXJu
IHVjaGFyKHVpbnQoYSkgJiB1aW50KGIpKTsgfQotdWNoYXIgb3BlcmF0b3J8KHVjaGFyIGEsIHVj
aGFyIGIpIHsgcmV0dXJuIHVjaGFyKHVpbnQoYSkgfCB1aW50KGIpKTsgfQotdWNoYXIgb3BlcmF0
b3JeKHVjaGFyIGEsIHVjaGFyIGIpIHsgcmV0dXJuIHVjaGFyKHVpbnQoYSkgXiB1aW50KGIpKTsg
fQotdWNoYXIgb3BlcmF0b3J+KHVjaGFyIHZhbHVlKSB7IHJldHVybiB1Y2hhcih+dWludCh2YWx1
ZSkpOyB9Ci11Y2hhciBvcGVyYXRvcjw8KHVjaGFyIGEsIHVpbnQgYikgeyByZXR1cm4gdWNoYXIo
dWludChhKSA8PCAoYiAmIDcpKTsgfQotdWNoYXIgb3BlcmF0b3I+Pih1Y2hhciBhLCB1aW50IGIp
IHsgcmV0dXJuIHVjaGFyKHVpbnQoYSkgPj4gKGIgJiA3KSk7IH0KLW5hdGl2ZSBmbG9hdCBvcGVy
YXRvci8oZmxvYXQsIGZsb2F0KTsKLW5hdGl2ZSBib29sIG9wZXJhdG9yPT0oaW50LCBpbnQpOwot
bmF0aXZlIGJvb2wgb3BlcmF0b3I9PSh1aW50LCB1aW50KTsKLWJvb2wgb3BlcmF0b3I9PSh1Y2hh
ciBhLCB1Y2hhciBiKSB7IHJldHVybiB1aW50KGEpID09IHVpbnQoYik7IH0KLW5hdGl2ZSBib29s
IG9wZXJhdG9yPT0oYm9vbCwgYm9vbCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj09KGZsb2F0LCBm
bG9hdCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcjwoaW50LCBpbnQpOwotbmF0aXZlIGJvb2wgb3Bl
cmF0b3I8KHVpbnQsIHVpbnQpOwotYm9vbCBvcGVyYXRvcjwodWNoYXIgYSwgdWNoYXIgYikgeyBy
ZXR1cm4gdWludChhKSA8IHVpbnQoYik7IH0KLW5hdGl2ZSBib29sIG9wZXJhdG9yPChmbG9hdCwg
ZmxvYXQpOwotbmF0aXZlIGJvb2wgb3BlcmF0b3I8PShpbnQsIGludCk7Ci1uYXRpdmUgYm9vbCBv
cGVyYXRvcjw9KHVpbnQsIHVpbnQpOwotYm9vbCBvcGVyYXRvcjw9KHVjaGFyIGEsIHVjaGFyIGIp
IHsgcmV0dXJuIHVpbnQoYSkgPD0gdWludChiKTsgfQotbmF0aXZlIGJvb2wgb3BlcmF0b3I8PShm
bG9hdCwgZmxvYXQpOwotbmF0aXZlIGJvb2wgb3BlcmF0b3I+KGludCwgaW50KTsKLW5hdGl2ZSBi
b29sIG9wZXJhdG9yPih1aW50LCB1aW50KTsKLWJvb2wgb3BlcmF0b3I+KHVjaGFyIGEsIHVjaGFy
IGIpIHsgcmV0dXJuIHVpbnQoYSkgPiB1aW50KGIpOyB9Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj4o
ZmxvYXQsIGZsb2F0KTsKLW5hdGl2ZSBib29sIG9wZXJhdG9yPj0oaW50LCBpbnQpOwotbmF0aXZl
IGJvb2wgb3BlcmF0b3I+PSh1aW50LCB1aW50KTsKLWJvb2wgb3BlcmF0b3I+PSh1Y2hhciBhLCB1
Y2hhciBiKSB7IHJldHVybiB1aW50KGEpID49IHVpbnQoYik7IH0KLW5hdGl2ZSBib29sIG9wZXJh
dG9yPj0oZmxvYXQsIGZsb2F0KTsKLQotYm9vbCBvcGVyYXRvciYoYm9vbCBhLCBib29sIGIpCi17
Ci0gICAgaWYgKGEpCi0gICAgICAgIHJldHVybiBiOwotICAgIHJldHVybiBmYWxzZTsKK3VjaGFy
IG9wZXJhdG9yKyh1Y2hhciBhLCB1Y2hhciBiKSB7CisgICAgcmV0dXJuIHVjaGFyKHVpbnQoYSkg
KyB1aW50KGIpKTsKIH0KLQotYm9vbCBvcGVyYXRvcnwoYm9vbCBhLCBib29sIGIpCi17Ci0gICAg
aWYgKGEpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmIChiKQotICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICByZXR1cm4gZmFsc2U7Cit1Y2hhciBvcGVyYXRvci0odWNoYXIgYSwgdWNoYXIg
YikgeworICAgIHJldHVybiB1Y2hhcih1aW50KGEpIC0gdWludChiKSk7Cit9Cit1Y2hhciBvcGVy
YXRvcioodWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVybiB1Y2hhcih1aW50KGEpICogdWlu
dChiKSk7Cit9Cit1Y2hhciBvcGVyYXRvci8odWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVy
biB1Y2hhcih1aW50KGEpIC8gdWludChiKSk7Cit9Cit1Y2hhciBvcGVyYXRvciYodWNoYXIgYSwg
dWNoYXIgYikgeworICAgIHJldHVybiB1Y2hhcih1aW50KGEpICYgdWludChiKSk7Cit9Cit1Y2hh
ciBvcGVyYXRvcnwodWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVybiB1Y2hhcih1aW50KGEp
IHwgdWludChiKSk7Cit9Cit1Y2hhciBvcGVyYXRvcl4odWNoYXIgYSwgdWNoYXIgYikgeworICAg
IHJldHVybiB1Y2hhcih1aW50KGEpIF4gdWludChiKSk7Cit9Cit1Y2hhciBvcGVyYXRvcn4odWNo
YXIgYSkgeworICAgIHJldHVybiB1Y2hhcih+dWludChhKSk7Cit9Citib29sIG9wZXJhdG9yPT0o
dWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVybiB1aW50KGEpID09IHVpbnQoYik7Cit9Citi
b29sIG9wZXJhdG9yPCh1Y2hhciBhLCB1Y2hhciBiKSB7CisgICAgcmV0dXJuIHVpbnQoYSkgPCB1
aW50KGIpOworfQorYm9vbCBvcGVyYXRvcjw9KHVjaGFyIGEsIHVjaGFyIGIpIHsKKyAgICByZXR1
cm4gdWludChhKSA8PSB1aW50KGIpOworfQorYm9vbCBvcGVyYXRvcj4odWNoYXIgYSwgdWNoYXIg
YikgeworICAgIHJldHVybiB1aW50KGEpID4gdWludChiKTsKK30KK2Jvb2wgb3BlcmF0b3I+PSh1
Y2hhciBhLCB1Y2hhciBiKSB7CisgICAgcmV0dXJuIHVpbnQoYSkgPj0gdWludChiKTsKK30KK3Vz
aG9ydCBvcGVyYXRvcisodXNob3J0IGEsIHVzaG9ydCBiKSB7CisgICAgcmV0dXJuIHVzaG9ydCh1
aW50KGEpICsgdWludChiKSk7Cit9Cit1c2hvcnQgb3BlcmF0b3ItKHVzaG9ydCBhLCB1c2hvcnQg
YikgeworICAgIHJldHVybiB1c2hvcnQodWludChhKSAtIHVpbnQoYikpOworfQordXNob3J0IG9w
ZXJhdG9yKih1c2hvcnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gdXNob3J0KHVpbnQoYSkg
KiB1aW50KGIpKTsKK30KK3VzaG9ydCBvcGVyYXRvci8odXNob3J0IGEsIHVzaG9ydCBiKSB7Cisg
ICAgcmV0dXJuIHVzaG9ydCh1aW50KGEpIC8gdWludChiKSk7Cit9Cit1c2hvcnQgb3BlcmF0b3Im
KHVzaG9ydCBhLCB1c2hvcnQgYikgeworICAgIHJldHVybiB1c2hvcnQodWludChhKSAmIHVpbnQo
YikpOworfQordXNob3J0IG9wZXJhdG9yfCh1c2hvcnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1
cm4gdXNob3J0KHVpbnQoYSkgfCB1aW50KGIpKTsKK30KK3VzaG9ydCBvcGVyYXRvcl4odXNob3J0
IGEsIHVzaG9ydCBiKSB7CisgICAgcmV0dXJuIHVzaG9ydCh1aW50KGEpIF4gdWludChiKSk7Cit9
Cit1c2hvcnQgb3BlcmF0b3J+KHVzaG9ydCBhKSB7CisgICAgcmV0dXJuIHVzaG9ydCh+dWludChh
KSk7Cit9Citib29sIG9wZXJhdG9yPT0odXNob3J0IGEsIHVzaG9ydCBiKSB7CisgICAgcmV0dXJu
IHVpbnQoYSkgPT0gdWludChiKTsKK30KK2Jvb2wgb3BlcmF0b3I8KHVzaG9ydCBhLCB1c2hvcnQg
YikgeworICAgIHJldHVybiB1aW50KGEpIDwgdWludChiKTsKK30KK2Jvb2wgb3BlcmF0b3I8PSh1
c2hvcnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gdWludChhKSA8PSB1aW50KGIpOworfQor
Ym9vbCBvcGVyYXRvcj4odXNob3J0IGEsIHVzaG9ydCBiKSB7CisgICAgcmV0dXJuIHVpbnQoYSkg
PiB1aW50KGIpOworfQorYm9vbCBvcGVyYXRvcj49KHVzaG9ydCBhLCB1c2hvcnQgYikgeworICAg
IHJldHVybiB1aW50KGEpID49IHVpbnQoYik7Cit9Cit1Y2hhciBvcGVyYXRvcjw8KHVjaGFyIGEs
IHVpbnQgYikgeworICAgIHJldHVybiB1Y2hhcih1aW50KGEpIDw8IChiICYgMjU1KSk7Cit9Cit1
c2hvcnQgb3BlcmF0b3I8PCh1c2hvcnQgYSwgdWludCBiKSB7CisgICAgcmV0dXJuIHVzaG9ydCh1
aW50KGEpIDw8IChiICYgNjU1MzUpKTsKIH0KK3VjaGFyIG9wZXJhdG9yPj4odWNoYXIgYSwgdWlu
dCBiKSB7CisgICAgcmV0dXJuIHVjaGFyKHVpbnQoYSkgPj4gKGIgJiAyNTUpKTsKK30KK3VzaG9y
dCBvcGVyYXRvcj4+KHVzaG9ydCBhLCB1aW50IGIpIHsKKyAgICByZXR1cm4gdXNob3J0KHVpbnQo
YSkgPj4gKGIgJiA2NTUzNSkpOworfQorY2hhciBvcGVyYXRvcisoY2hhciBhLCBjaGFyIGIpIHsK
KyAgICByZXR1cm4gY2hhcihpbnQoYSkgKyBpbnQoYikpOworfQorY2hhciBvcGVyYXRvci0oY2hh
ciBhLCBjaGFyIGIpIHsKKyAgICByZXR1cm4gY2hhcihpbnQoYSkgLSBpbnQoYikpOworfQorY2hh
ciBvcGVyYXRvciooY2hhciBhLCBjaGFyIGIpIHsKKyAgICByZXR1cm4gY2hhcihpbnQoYSkgKiBp
bnQoYikpOworfQorY2hhciBvcGVyYXRvci8oY2hhciBhLCBjaGFyIGIpIHsKKyAgICByZXR1cm4g
Y2hhcihpbnQoYSkgLyBpbnQoYikpOworfQorY2hhciBvcGVyYXRvciYoY2hhciBhLCBjaGFyIGIp
IHsKKyAgICByZXR1cm4gY2hhcihpbnQoYSkgJiBpbnQoYikpOworfQorY2hhciBvcGVyYXRvcnwo
Y2hhciBhLCBjaGFyIGIpIHsKKyAgICByZXR1cm4gY2hhcihpbnQoYSkgfCBpbnQoYikpOworfQor
Y2hhciBvcGVyYXRvcl4oY2hhciBhLCBjaGFyIGIpIHsKKyAgICByZXR1cm4gY2hhcihpbnQoYSkg
XiBpbnQoYikpOworfQorY2hhciBvcGVyYXRvcn4oY2hhciBhKSB7CisgICAgcmV0dXJuIGNoYXIo
fmludChhKSk7Cit9Citib29sIG9wZXJhdG9yPT0oY2hhciBhLCBjaGFyIGIpIHsKKyAgICByZXR1
cm4gaW50KGEpID09IGludChiKTsKK30KK2Jvb2wgb3BlcmF0b3I+KGNoYXIgYSwgY2hhciBiKSB7
CisgICAgcmV0dXJuIGludChhKSA+IGludChiKTsKK30KK2Jvb2wgb3BlcmF0b3I+PShjaGFyIGEs
IGNoYXIgYikgeworICAgIHJldHVybiBpbnQoYSkgPj0gaW50KGIpOworfQorYm9vbCBvcGVyYXRv
cjwoY2hhciBhLCBjaGFyIGIpIHsKKyAgICByZXR1cm4gaW50KGEpIDwgaW50KGIpOworfQorYm9v
bCBvcGVyYXRvcjw9KGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGludChhKSA8PSBpbnQo
Yik7Cit9CitzaG9ydCBvcGVyYXRvcisoc2hvcnQgYSwgc2hvcnQgYikgeworICAgIHJldHVybiBz
aG9ydChpbnQoYSkgKyBpbnQoYikpOworfQorc2hvcnQgb3BlcmF0b3ItKHNob3J0IGEsIHNob3J0
IGIpIHsKKyAgICByZXR1cm4gc2hvcnQoaW50KGEpIC0gaW50KGIpKTsKK30KK3Nob3J0IG9wZXJh
dG9yKihzaG9ydCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIHNob3J0KGludChhKSAqIGludChi
KSk7Cit9CitzaG9ydCBvcGVyYXRvci8oc2hvcnQgYSwgc2hvcnQgYikgeworICAgIHJldHVybiBz
aG9ydChpbnQoYSkgLyBpbnQoYikpOworfQorc2hvcnQgb3BlcmF0b3ImKHNob3J0IGEsIHNob3J0
IGIpIHsKKyAgICByZXR1cm4gc2hvcnQoaW50KGEpICYgaW50KGIpKTsKK30KK3Nob3J0IG9wZXJh
dG9yfChzaG9ydCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIHNob3J0KGludChhKSB8IGludChi
KSk7Cit9CitzaG9ydCBvcGVyYXRvcl4oc2hvcnQgYSwgc2hvcnQgYikgeworICAgIHJldHVybiBz
aG9ydChpbnQoYSkgXiBpbnQoYikpOworfQorc2hvcnQgb3BlcmF0b3J+KHNob3J0IGEpIHsKKyAg
ICByZXR1cm4gc2hvcnQofmludChhKSk7Cit9Citib29sIG9wZXJhdG9yPT0oc2hvcnQgYSwgc2hv
cnQgYikgeworICAgIHJldHVybiBpbnQoYSkgPT0gaW50KGIpOworfQorYm9vbCBvcGVyYXRvcj4o
c2hvcnQgYSwgc2hvcnQgYikgeworICAgIHJldHVybiBpbnQoYSkgPiBpbnQoYik7Cit9Citib29s
IG9wZXJhdG9yPj0oc2hvcnQgYSwgc2hvcnQgYikgeworICAgIHJldHVybiBpbnQoYSkgPj0gaW50
KGIpOworfQorYm9vbCBvcGVyYXRvcjwoc2hvcnQgYSwgc2hvcnQgYikgeworICAgIHJldHVybiBp
bnQoYSkgPCBpbnQoYik7Cit9Citib29sIG9wZXJhdG9yPD0oc2hvcnQgYSwgc2hvcnQgYikgewor
ICAgIHJldHVybiBpbnQoYSkgPD0gaW50KGIpOworfQorY2hhciBvcGVyYXRvcjw8KGNoYXIgYSwg
dWludCBiKSB7CisgICAgcmV0dXJuIGNoYXIoaW50KGEpIDw8IChiICYgMjU1KSk7Cit9CitzaG9y
dCBvcGVyYXRvcjw8KHNob3J0IGEsIHVpbnQgYikgeworICAgIHJldHVybiBzaG9ydChpbnQoYSkg
PDwgKGIgJiA2NTUzNSkpOworfQorY2hhciBvcGVyYXRvcj4+KGNoYXIgYSwgdWludCBiKSB7Cisg
ICAgcmV0dXJuIGNoYXIoaW50KGEpID4+IChiICYgMjU1KSk7Cit9CitzaG9ydCBvcGVyYXRvcj4+
KHNob3J0IGEsIHVpbnQgYikgeworICAgIHJldHVybiBzaG9ydChpbnQoYSkgPj4gKGIgJiA2NTUz
NSkpOworfQordWNoYXIgb3BlcmF0b3IrKyh1Y2hhciB2YWx1ZSkgeworICAgIHJldHVybiB2YWx1
ZSArIDE7Cit9Cit1Y2hhciBvcGVyYXRvci0tKHVjaGFyIHZhbHVlKSB7CisgICAgcmV0dXJuIHZh
bHVlIC0gMTsKK30KK3VzaG9ydCBvcGVyYXRvcisrKHVzaG9ydCB2YWx1ZSkgeworICAgIHJldHVy
biB2YWx1ZSArIDE7Cit9Cit1c2hvcnQgb3BlcmF0b3ItLSh1c2hvcnQgdmFsdWUpIHsKKyAgICBy
ZXR1cm4gdmFsdWUgLSAxOworfQordWludCBvcGVyYXRvcisrKHVpbnQgdmFsdWUpIHsKKyAgICBy
ZXR1cm4gdmFsdWUgKyAxOworfQordWludCBvcGVyYXRvci0tKHVpbnQgdmFsdWUpIHsKKyAgICBy
ZXR1cm4gdmFsdWUgLSAxOworfQorY2hhciBvcGVyYXRvcisrKGNoYXIgdmFsdWUpIHsKKyAgICBy
ZXR1cm4gdmFsdWUgKyAxOworfQorY2hhciBvcGVyYXRvci0tKGNoYXIgdmFsdWUpIHsKKyAgICBy
ZXR1cm4gdmFsdWUgLSAxOworfQorc2hvcnQgb3BlcmF0b3IrKyhzaG9ydCB2YWx1ZSkgeworICAg
IHJldHVybiB2YWx1ZSArIDE7Cit9CitzaG9ydCBvcGVyYXRvci0tKHNob3J0IHZhbHVlKSB7Cisg
ICAgcmV0dXJuIHZhbHVlIC0gMTsKK30KK2ludCBvcGVyYXRvcisrKGludCB2YWx1ZSkgeworICAg
IHJldHVybiB2YWx1ZSArIDE7Cit9CitpbnQgb3BlcmF0b3ItLShpbnQgdmFsdWUpIHsKKyAgICBy
ZXR1cm4gdmFsdWUgLSAxOworfQoraGFsZiBvcGVyYXRvcisrKGhhbGYgdmFsdWUpIHsKKyAgICBy
ZXR1cm4gdmFsdWUgKyAxOworfQoraGFsZiBvcGVyYXRvci0tKGhhbGYgdmFsdWUpIHsKKyAgICBy
ZXR1cm4gdmFsdWUgLSAxOworfQorZmxvYXQgb3BlcmF0b3IrKyhmbG9hdCB2YWx1ZSkgeworICAg
IHJldHVybiB2YWx1ZSArIDE7Cit9CitmbG9hdCBvcGVyYXRvci0tKGZsb2F0IHZhbHVlKSB7Cisg
ICAgcmV0dXJuIHZhbHVlIC0gMTsKK30KK2hhbGYgb3BlcmF0b3IrKGhhbGYgYSwgaGFsZiBiKSB7
CisgICAgcmV0dXJuIGhhbGYoZmxvYXQoYSkgKyBmbG9hdChiKSk7Cit9CitoYWxmIG9wZXJhdG9y
LShoYWxmIGEsIGhhbGYgYikgeworICAgIHJldHVybiBoYWxmKGZsb2F0KGEpIC0gZmxvYXQoYikp
OworfQoraGFsZiBvcGVyYXRvciooaGFsZiBhLCBoYWxmIGIpIHsKKyAgICByZXR1cm4gaGFsZihm
bG9hdChhKSAqIGZsb2F0KGIpKTsKK30KK2hhbGYgb3BlcmF0b3IvKGhhbGYgYSwgaGFsZiBiKSB7
CisgICAgcmV0dXJuIGhhbGYoZmxvYXQoYSkgLyBmbG9hdChiKSk7Cit9Citib29sIG9wZXJhdG9y
PT0oaGFsZiBhLCBoYWxmIGIpIHsKKyAgICByZXR1cm4gZmxvYXQoYSkgPT0gZmxvYXQoYik7Cit9
Citib29sIG9wZXJhdG9yPChoYWxmIGEsIGhhbGYgYikgeworICAgIHJldHVybiBmbG9hdChhKSA8
IGZsb2F0KGIpOworfQorYm9vbCBvcGVyYXRvcjw9KGhhbGYgYSwgaGFsZiBiKSB7CisgICAgcmV0
dXJuIGZsb2F0KGEpIDw9IGZsb2F0KGIpOworfQorYm9vbCBvcGVyYXRvcj4oaGFsZiBhLCBoYWxm
IGIpIHsKKyAgICByZXR1cm4gZmxvYXQoYSkgPCBmbG9hdChiKTsKK30KK2Jvb2wgb3BlcmF0b3I+
PShoYWxmIGEsIGhhbGYgYikgeworICAgIHJldHVybiBmbG9hdChhKSA8PSBmbG9hdChiKTsKK30K
K2NoYXIgb3BlcmF0b3ItKGNoYXIgeCkgeworICAgIHJldHVybiBjaGFyKC1pbnQoeCkpOworfQor
c2hvcnQgb3BlcmF0b3ItKHNob3J0IHgpIHsKKyAgICByZXR1cm4gc2hvcnQoLWludCh4KSk7Cit9
CitoYWxmIG9wZXJhdG9yLShoYWxmIHgpIHsKKyAgICByZXR1cm4gaGFsZigtZmxvYXQoeCkpOwor
fQorbmF0aXZlIGludCBvcGVyYXRvci0oaW50KTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRvci0oZmxv
YXQpOwogCi1ib29sIG9wZXJhdG9yXihib29sIGEsIGJvb2wgYikKLXsKLSAgICBpZiAoYSkKLSAg
ICAgICAgcmV0dXJuICFiOwotICAgIHJldHVybiBiOworb3BlcmF0b3IgYm9vbDIoYm9vbCB4LCBi
b29sIHkpIHsKKyAgICBib29sMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3Vs
dC55ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgYm9vbDMoYm9vbCB4LCBi
b29sIHksIGJvb2wgeikgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7Cisg
ICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorb3BlcmF0b3IgYm9vbDMoYm9vbDIgeCwgYm9vbCB5KSB7CisgICAgYm9vbDMgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0g
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgYm9vbDMoYm9vbCB4LCBib29sMiB5
KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9
IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0
b3IgYm9vbDQoYm9vbCB4LCBib29sIHksIGJvb2wgeiwgYm9vbCB3KSB7CisgICAgYm9vbDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0Lnog
PSB6OworICAgIHJlc3VsdC53ID0gdzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Ig
Ym9vbDQoYm9vbDIgeCwgYm9vbCB5LCBib29sIHopIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Owor
ICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgYm9vbDQo
Ym9vbCB4LCBib29sMiB5LCBib29sIHopIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJl
c3VsdC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgYm9vbDQoYm9vbCB4
LCBib29sIHksIGJvb2wyIHopIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4
OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHoueDsKKyAgICByZXN1bHQudyA9
IHoueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgYm9vbDQoYm9vbDIgeCwgYm9v
bDIgeSkgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1
bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHkueDsKKyAgICByZXN1bHQudyA9IHkueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgYm9vbDQoYm9vbDMgeCwgYm9vbCB5KSB7Cisg
ICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55
OworICAgIHJlc3VsdC56ID0geC56OworICAgIHJlc3VsdC53ID0geTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorb3BlcmF0b3IgYm9vbDQoYm9vbCB4LCBib29sMyB5KSB7CisgICAgYm9vbDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQu
eiA9IHkueTsKKyAgICByZXN1bHQudyA9IHkuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWlu
dCBvcGVyYXRvci5sZW5ndGgoYm9vbDIpIHsKKyAgICByZXR1cm4gMjsKK30KK3VpbnQgb3BlcmF0
b3IubGVuZ3RoKGJvb2wzKSB7CisgICAgcmV0dXJuIDM7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0
aChib29sNCkgeworICAgIHJldHVybiA0OworfQorb3BlcmF0b3IgdWNoYXIyKHVjaGFyIHgsIHVj
aGFyIHkpIHsKKyAgICB1Y2hhcjIgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1
bHQueSA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVjaGFyMyh1Y2hhciB4
LCB1Y2hhciB5LCB1Y2hhciB6KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorb3BlcmF0b3IgdWNoYXIzKHVjaGFyMiB4LCB1Y2hhciB5KSB7CisgICAgdWNoYXIz
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICBy
ZXN1bHQueiA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVjaGFyMyh1Y2hh
ciB4LCB1Y2hhcjIgeSkgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Owor
ICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitvcGVyYXRvciB1Y2hhcjQodWNoYXIgeCwgdWNoYXIgeSwgdWNoYXIgeiwgdWNoYXIg
dykgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55
ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmVzdWx0LncgPSB3OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitvcGVyYXRvciB1Y2hhcjQodWNoYXIyIHgsIHVjaGFyIHksIHVjaGFyIHopIHsK
KyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0g
eC55OworICAgIHJlc3VsdC56ID0geTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK29wZXJhdG9yIHVjaGFyNCh1Y2hhciB4LCB1Y2hhcjIgeSwgdWNoYXIgeikgewor
ICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54
OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorb3BlcmF0b3IgdWNoYXI0KHVjaGFyIHgsIHVjaGFyIHksIHVjaGFyMiB6KSB7Cisg
ICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Owor
ICAgIHJlc3VsdC56ID0gei54OworICAgIHJlc3VsdC53ID0gei55OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitvcGVyYXRvciB1Y2hhcjQodWNoYXIyIHgsIHVjaGFyMiB5KSB7CisgICAgdWNoYXI0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICBy
ZXN1bHQueiA9IHkueDsKKyAgICByZXN1bHQudyA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorb3BlcmF0b3IgdWNoYXI0KHVjaGFyMyB4LCB1Y2hhciB5KSB7CisgICAgdWNoYXI0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQu
eiA9IHguejsKKyAgICByZXN1bHQudyA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJh
dG9yIHVjaGFyNCh1Y2hhciB4LCB1Y2hhcjMgeSkgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55Owor
ICAgIHJlc3VsdC53ID0geS56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50IG9wZXJhdG9y
Lmxlbmd0aCh1Y2hhcjIpIHsKKyAgICByZXR1cm4gMjsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3Ro
KHVjaGFyMykgeworICAgIHJldHVybiAzOworfQordWludCBvcGVyYXRvci5sZW5ndGgodWNoYXI0
KSB7CisgICAgcmV0dXJuIDQ7Cit9CitvcGVyYXRvciB1c2hvcnQyKHVzaG9ydCB4LCB1c2hvcnQg
eSkgeworICAgIHVzaG9ydDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQu
eSA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVzaG9ydDModXNob3J0IHgs
IHVzaG9ydCB5LCB1c2hvcnQgeikgeworICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54
ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQzKHVzaG9ydDIgeCwgdXNob3J0IHkpIHsKKyAgICB1
c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsK
KyAgICByZXN1bHQueiA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVzaG9y
dDModXNob3J0IHgsIHVzaG9ydDIgeSkgeworICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdXNob3J0NCh1c2hvcnQgeCwgdXNob3J0IHksIHVz
aG9ydCB6LCB1c2hvcnQgdykgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
eDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6OworICAgIHJlc3VsdC53ID0g
dzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdXNob3J0NCh1c2hvcnQyIHgsIHVz
aG9ydCB5LCB1c2hvcnQgeikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
eC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geTsKKyAgICByZXN1bHQu
dyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVzaG9ydDQodXNob3J0IHgs
IHVzaG9ydDIgeSwgdXNob3J0IHopIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVz
dWx0LncgPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQ0KHVzaG9y
dCB4LCB1c2hvcnQgeSwgdXNob3J0MiB6KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHoueDsKKyAgICBy
ZXN1bHQudyA9IHoueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdXNob3J0NCh1
c2hvcnQyIHgsIHVzaG9ydDIgeSkgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geS54OworICAgIHJl
c3VsdC53ID0geS55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQ0KHVz
aG9ydDMgeCwgdXNob3J0IHkpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHguejsKKyAgICByZXN1
bHQudyA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVzaG9ydDQodXNob3J0
IHgsIHVzaG9ydDMgeSkgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsK
KyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9
IHkuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludCBvcGVyYXRvci5sZW5ndGgodXNob3J0
MikgeworICAgIHJldHVybiAyOworfQordWludCBvcGVyYXRvci5sZW5ndGgodXNob3J0Mykgewor
ICAgIHJldHVybiAzOworfQordWludCBvcGVyYXRvci5sZW5ndGgodXNob3J0NCkgeworICAgIHJl
dHVybiA0OworfQorb3BlcmF0b3IgdWludDIodWludCB4LCB1aW50IHkpIHsKKyAgICB1aW50MiBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorb3BlcmF0b3IgdWludDModWludCB4LCB1aW50IHksIHVpbnQgeikgeworICAg
IHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAg
IHJlc3VsdC56ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWludDModWlu
dDIgeCwgdWludCB5KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54Owor
ICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorb3BlcmF0b3IgdWludDModWludCB4LCB1aW50MiB5KSB7CisgICAgdWludDMgcmVzdWx0
OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9
IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWludDQodWludCB4LCB1aW50
IHksIHVpbnQgeiwgdWludCB3KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
eDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6OworICAgIHJlc3VsdC53ID0g
dzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWludDQodWludDIgeCwgdWludCB5
LCB1aW50IHopIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAg
cmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJlc3VsdC53ID0gejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWludDQodWludCB4LCB1aW50MiB5LCB1aW50
IHopIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55
ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWludDQodWludCB4LCB1aW50IHksIHVpbnQyIHopIHsK
KyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsK
KyAgICByZXN1bHQueiA9IHoueDsKKyAgICByZXN1bHQudyA9IHoueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorb3BlcmF0b3IgdWludDQodWludDIgeCwgdWludDIgeSkgeworICAgIHVpbnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1
bHQueiA9IHkueDsKKyAgICByZXN1bHQudyA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
b3BlcmF0b3IgdWludDQodWludDMgeCwgdWludCB5KSB7CisgICAgdWludDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geC56
OworICAgIHJlc3VsdC53ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWlu
dDQodWludCB4LCB1aW50MyB5KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
eDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQu
dyA9IHkuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludCBvcGVyYXRvci5sZW5ndGgodWlu
dDIpIHsKKyAgICByZXR1cm4gMjsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHVpbnQzKSB7Cisg
ICAgcmV0dXJuIDM7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aCh1aW50NCkgeworICAgIHJldHVy
biA0OworfQorb3BlcmF0b3IgY2hhcjIoY2hhciB4LCBjaGFyIHkpIHsKKyAgICBjaGFyMiByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorb3BlcmF0b3IgY2hhcjMoY2hhciB4LCBjaGFyIHksIGNoYXIgeikgeworICAgIGNo
YXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJl
c3VsdC56ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgY2hhcjMoY2hhcjIg
eCwgY2hhciB5KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAg
IHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorb3BlcmF0b3IgY2hhcjMoY2hhciB4LCBjaGFyMiB5KSB7CisgICAgY2hhcjMgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHku
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgY2hhcjQoY2hhciB4LCBjaGFyIHks
IGNoYXIgeiwgY2hhciB3KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsK
KyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6OworICAgIHJlc3VsdC53ID0gdzsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgY2hhcjQoY2hhcjIgeCwgY2hhciB5LCBj
aGFyIHopIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVz
dWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJlc3VsdC53ID0gejsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgY2hhcjQoY2hhciB4LCBjaGFyMiB5LCBjaGFyIHop
IHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0g
eS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorb3BlcmF0b3IgY2hhcjQoY2hhciB4LCBjaGFyIHksIGNoYXIyIHopIHsKKyAg
ICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAg
ICByZXN1bHQueiA9IHoueDsKKyAgICByZXN1bHQudyA9IHoueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorb3BlcmF0b3IgY2hhcjQoY2hhcjIgeCwgY2hhcjIgeSkgeworICAgIGNoYXI0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQu
eiA9IHkueDsKKyAgICByZXN1bHQudyA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3Bl
cmF0b3IgY2hhcjQoY2hhcjMgeCwgY2hhciB5KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geC56Owor
ICAgIHJlc3VsdC53ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgY2hhcjQo
Y2hhciB4LCBjaGFyMyB5KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsK
KyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9
IHkuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludCBvcGVyYXRvci5sZW5ndGgoY2hhcjIp
IHsKKyAgICByZXR1cm4gMjsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGNoYXIzKSB7CisgICAg
cmV0dXJuIDM7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChjaGFyNCkgeworICAgIHJldHVybiA0
OworfQorb3BlcmF0b3Igc2hvcnQyKHNob3J0IHgsIHNob3J0IHkpIHsKKyAgICBzaG9ydDIgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK29wZXJhdG9yIHNob3J0MyhzaG9ydCB4LCBzaG9ydCB5LCBzaG9ydCB6KSB7Cisg
ICAgc2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Owor
ICAgIHJlc3VsdC56ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Igc2hvcnQz
KHNob3J0MiB4LCBzaG9ydCB5KSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIHNob3J0MyhzaG9ydCB4LCBzaG9ydDIgeSkgeworICAgIHNo
b3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAg
IHJlc3VsdC56ID0geS55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBzaG9ydDQo
c2hvcnQgeCwgc2hvcnQgeSwgc2hvcnQgeiwgc2hvcnQgdykgeworICAgIHNob3J0NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7
CisgICAgcmVzdWx0LncgPSB3OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBzaG9y
dDQoc2hvcnQyIHgsIHNob3J0IHksIHNob3J0IHopIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geTsK
KyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHNob3J0
NChzaG9ydCB4LCBzaG9ydDIgeSwgc2hvcnQgeikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55Owor
ICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Igc2hvcnQ0
KHNob3J0IHgsIHNob3J0IHksIHNob3J0MiB6KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gei54OworICAg
IHJlc3VsdC53ID0gei55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBzaG9ydDQo
c2hvcnQyIHgsIHNob3J0MiB5KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHkueDsKKyAgICByZXN1
bHQudyA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Igc2hvcnQ0KHNob3J0
MyB4LCBzaG9ydCB5KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsK
KyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHguejsKKyAgICByZXN1bHQudyA9
IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHNob3J0NChzaG9ydCB4LCBzaG9y
dDMgeSkgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3Vs
dC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0geS56OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChzaG9ydDIpIHsKKyAgICBy
ZXR1cm4gMjsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHNob3J0MykgeworICAgIHJldHVybiAz
OworfQordWludCBvcGVyYXRvci5sZW5ndGgoc2hvcnQ0KSB7CisgICAgcmV0dXJuIDQ7Cit9Citv
cGVyYXRvciBpbnQyKGludCB4LCBpbnQgeSkgeworICAgIGludDIgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJh
dG9yIGludDMoaW50IHgsIGludCB5LCBpbnQgeikgeworICAgIGludDMgcmVzdWx0OworICAgIHJl
c3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBpbnQzKGludDIgeCwgaW50IHkpIHsKKyAgICBpbnQz
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICBy
ZXN1bHQueiA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGludDMoaW50IHgs
IGludDIgeSkgeworICAgIGludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1
bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
b3BlcmF0b3IgaW50NChpbnQgeCwgaW50IHksIGludCB6LCBpbnQgdykgeworICAgIGludDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0Lnog
PSB6OworICAgIHJlc3VsdC53ID0gdzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Ig
aW50NChpbnQyIHgsIGludCB5LCBpbnQgeikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geTsKKyAgICBy
ZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGludDQoaW50IHgs
IGludDIgeSwgaW50IHopIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7Cisg
ICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB6
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBpbnQ0KGludCB4LCBpbnQgeSwgaW50
MiB6KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55
ID0geTsKKyAgICByZXN1bHQueiA9IHoueDsKKyAgICByZXN1bHQudyA9IHoueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaW50NChpbnQyIHgsIGludDIgeSkgeworICAgIGludDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJl
c3VsdC56ID0geS54OworICAgIHJlc3VsdC53ID0geS55OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitvcGVyYXRvciBpbnQ0KGludDMgeCwgaW50IHkpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHguejsK
KyAgICByZXN1bHQudyA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGludDQo
aW50IHgsIGludDMgeSkgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAg
ICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHku
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludCBvcGVyYXRvci5sZW5ndGgoaW50Mikgewor
ICAgIHJldHVybiAyOworfQordWludCBvcGVyYXRvci5sZW5ndGgoaW50MykgeworICAgIHJldHVy
biAzOworfQordWludCBvcGVyYXRvci5sZW5ndGgoaW50NCkgeworICAgIHJldHVybiA0OworfQor
b3BlcmF0b3IgaGFsZjIoaGFsZiB4LCBoYWxmIHkpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
b3BlcmF0b3IgaGFsZjMoaGFsZiB4LCBoYWxmIHksIGhhbGYgeikgeworICAgIGhhbGYzIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0g
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaGFsZjMoaGFsZjIgeCwgaGFsZiB5
KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55
ID0geC55OworICAgIHJlc3VsdC56ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0
b3IgaGFsZjMoaGFsZiB4LCBoYWxmMiB5KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaGFsZjQoaGFsZiB4LCBoYWxmIHksIGhhbGYgeiwg
aGFsZiB3KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1
bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6OworICAgIHJlc3VsdC53ID0gdzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaGFsZjQoaGFsZjIgeCwgaGFsZiB5LCBoYWxmIHopIHsK
KyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4
Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorb3BlcmF0b3IgaGFsZjQoaGFsZiB4LCBoYWxmMiB5LCBoYWxmIHopIHsKKyAgICBo
YWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAg
IHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorb3BlcmF0b3IgaGFsZjQoaGFsZiB4LCBoYWxmIHksIGhhbGYyIHopIHsKKyAgICBoYWxmNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQu
eiA9IHoueDsKKyAgICByZXN1bHQudyA9IHoueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3Bl
cmF0b3IgaGFsZjQoaGFsZjIgeCwgaGFsZjIgeSkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHkueDsK
KyAgICByZXN1bHQudyA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaGFs
ZjQoaGFsZjMgeCwgaGFsZiB5KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
eC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geC56OworICAgIHJlc3Vs
dC53ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaGFsZjQoaGFsZiB4LCBo
YWxmMyB5KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1
bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHkuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWludCBvcGVyYXRvci5sZW5ndGgoaGFsZjIpIHsKKyAgICBy
ZXR1cm4gMjsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGhhbGYzKSB7CisgICAgcmV0dXJuIDM7
Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChoYWxmNCkgeworICAgIHJldHVybiA0OworfQorb3Bl
cmF0b3IgZmxvYXQyKGZsb2F0IHgsIGZsb2F0IHkpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAg
IHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K29wZXJhdG9yIGZsb2F0MyhmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KSB7CisgICAgZmxvYXQz
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3Vs
dC56ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgZmxvYXQzKGZsb2F0MiB4
LCBmbG9hdCB5KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAg
ICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK29wZXJhdG9yIGZsb2F0MyhmbG9hdCB4LCBmbG9hdDIgeSkgeworICAgIGZsb2F0MyByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56
ID0geS55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9hdDQoZmxvYXQgeCwg
ZmxvYXQgeSwgZmxvYXQgeiwgZmxvYXQgdykgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmVz
dWx0LncgPSB3OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9hdDQoZmxvYXQy
IHgsIGZsb2F0IHksIGZsb2F0IHopIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geTsKKyAgICByZXN1
bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGZsb2F0NChmbG9hdCB4
LCBmbG9hdDIgeSwgZmxvYXQgeikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3Vs
dC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgZmxvYXQ0KGZsb2F0IHgs
IGZsb2F0IHksIGZsb2F0MiB6KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gei54OworICAgIHJlc3VsdC53
ID0gei55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9hdDQoZmxvYXQyIHgs
IGZsb2F0MiB5KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAg
ICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHkueDsKKyAgICByZXN1bHQudyA9IHku
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgZmxvYXQ0KGZsb2F0MyB4LCBmbG9h
dCB5KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1
bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHguejsKKyAgICByZXN1bHQudyA9IHk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGZsb2F0NChmbG9hdCB4LCBmbG9hdDMgeSkgewor
ICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54
OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0geS56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChmbG9hdDIpIHsKKyAgICByZXR1cm4gMjsK
K30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGZsb2F0MykgeworICAgIHJldHVybiAzOworfQordWlu
dCBvcGVyYXRvci5sZW5ndGgoZmxvYXQ0KSB7CisgICAgcmV0dXJuIDQ7Cit9Citib29sIG9wZXJh
dG9yPT0oYm9vbDIgYSwgYm9vbDIgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9
PSBiLnk7Cit9Citib29sIG9wZXJhdG9yPT0oYm9vbDMgYSwgYm9vbDMgYikgeworICAgIHJldHVy
biBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIuejsKK30KK2Jvb2wgb3BlcmF0
b3I9PShib29sNCBhLCBib29sNCBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09
IGIueSAmJiBhLnogPT0gYi56ICYmIGEudyA9PSBiLnc7Cit9CituYXRpdmUgYm9vbCBvcGVyYXRv
ci54KGJvb2wyKTsKK25hdGl2ZSBib29sIG9wZXJhdG9yLnkoYm9vbDIpOworbmF0aXZlIGJvb2wg
b3BlcmF0b3IueChib29sMyk7CituYXRpdmUgYm9vbCBvcGVyYXRvci55KGJvb2wzKTsKK25hdGl2
ZSBib29sIG9wZXJhdG9yLnooYm9vbDMpOworbmF0aXZlIGJvb2wgb3BlcmF0b3IueChib29sNCk7
CituYXRpdmUgYm9vbCBvcGVyYXRvci55KGJvb2w0KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yLnoo
Ym9vbDQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3Iudyhib29sNCk7CituYXRpdmUgYm9vbDIgb3Bl
cmF0b3IueD0oYm9vbDIsIGJvb2wpOworbmF0aXZlIGJvb2wyIG9wZXJhdG9yLnk9KGJvb2wyLCBi
b29sKTsKK25hdGl2ZSBib29sMyBvcGVyYXRvci54PShib29sMywgYm9vbCk7CituYXRpdmUgYm9v
bDMgb3BlcmF0b3IueT0oYm9vbDMsIGJvb2wpOworbmF0aXZlIGJvb2wzIG9wZXJhdG9yLno9KGJv
b2wzLCBib29sKTsKK25hdGl2ZSBib29sNCBvcGVyYXRvci54PShib29sNCwgYm9vbCk7CituYXRp
dmUgYm9vbDQgb3BlcmF0b3IueT0oYm9vbDQsIGJvb2wpOworbmF0aXZlIGJvb2w0IG9wZXJhdG9y
Lno9KGJvb2w0LCBib29sKTsKK25hdGl2ZSBib29sNCBvcGVyYXRvci53PShib29sNCwgYm9vbCk7
Citib29sIG9wZXJhdG9yW10oYm9vbDIgdiwgdWludCBpbmRleCkgeworICAgIHN3aXRjaCAoaW5k
ZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIHYueDsKKyAgICAgICAg
Y2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIHYueTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHRyYXA7CisgICAgfQorfQorYm9vbCBvcGVyYXRvcltdKGJvb2wzIHYsIHVpbnQgaW5k
ZXgpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAg
IHJldHVybiB2Lng7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiB2Lnk7Cisg
ICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVybiB2Lno7CisgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICB0cmFwOworICAgIH0KK30KK2Jvb2wgb3BlcmF0b3JbXShib29sNCB2LCB1
aW50IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAg
ICAgICAgICByZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4g
di55OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gdi56OworICAgICAgICBj
YXNlIDM6CisgICAgICAgICAgICByZXR1cm4gdi53OworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgdHJhcDsKKyAgICB9Cit9Citib29sMiBvcGVyYXRvcltdPShib29sMiB2LCB1aW50IGlu
ZGV4LCBib29sIGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAg
ICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgor
ICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9Citib29sMyBvcGVy
YXRvcltdPShib29sMyB2LCB1aW50IGluZGV4LCBib29sIGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4
KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICB2LnogPSBhOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KKyAg
ICByZXR1cm4gdjsKK30KK2Jvb2w0IG9wZXJhdG9yW109KGJvb2w0IHYsIHVpbnQgaW5kZXgsIGJv
b2wgYSkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAg
ICAgdi54ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAg
ICAgICB2LnkgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAg
ICAgICAgIHYueiA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAg
ICAgICAgICAgdi53ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9Citib29sIG9wZXJhdG9y
PT0odWNoYXIyIGEsIHVjaGFyMiBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09
IGIueTsKK30KK2Jvb2wgb3BlcmF0b3I9PSh1Y2hhcjMgYSwgdWNoYXIzIGIpIHsKKyAgICByZXR1
cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLno7Cit9Citib29sIG9wZXJh
dG9yPT0odWNoYXI0IGEsIHVjaGFyNCBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55
ID09IGIueSAmJiBhLnogPT0gYi56ICYmIGEudyA9PSBiLnc7Cit9CituYXRpdmUgdWNoYXIgb3Bl
cmF0b3IueCh1Y2hhcjIpOworbmF0aXZlIHVjaGFyIG9wZXJhdG9yLnkodWNoYXIyKTsKK25hdGl2
ZSB1Y2hhciBvcGVyYXRvci54KHVjaGFyMyk7CituYXRpdmUgdWNoYXIgb3BlcmF0b3IueSh1Y2hh
cjMpOworbmF0aXZlIHVjaGFyIG9wZXJhdG9yLnoodWNoYXIzKTsKK25hdGl2ZSB1Y2hhciBvcGVy
YXRvci54KHVjaGFyNCk7CituYXRpdmUgdWNoYXIgb3BlcmF0b3IueSh1Y2hhcjQpOworbmF0aXZl
IHVjaGFyIG9wZXJhdG9yLnoodWNoYXI0KTsKK25hdGl2ZSB1Y2hhciBvcGVyYXRvci53KHVjaGFy
NCk7CituYXRpdmUgdWNoYXIyIG9wZXJhdG9yLng9KHVjaGFyMiwgdWNoYXIpOworbmF0aXZlIHVj
aGFyMiBvcGVyYXRvci55PSh1Y2hhcjIsIHVjaGFyKTsKK25hdGl2ZSB1Y2hhcjMgb3BlcmF0b3Iu
eD0odWNoYXIzLCB1Y2hhcik7CituYXRpdmUgdWNoYXIzIG9wZXJhdG9yLnk9KHVjaGFyMywgdWNo
YXIpOworbmF0aXZlIHVjaGFyMyBvcGVyYXRvci56PSh1Y2hhcjMsIHVjaGFyKTsKK25hdGl2ZSB1
Y2hhcjQgb3BlcmF0b3IueD0odWNoYXI0LCB1Y2hhcik7CituYXRpdmUgdWNoYXI0IG9wZXJhdG9y
Lnk9KHVjaGFyNCwgdWNoYXIpOworbmF0aXZlIHVjaGFyNCBvcGVyYXRvci56PSh1Y2hhcjQsIHVj
aGFyKTsKK25hdGl2ZSB1Y2hhcjQgb3BlcmF0b3Iudz0odWNoYXI0LCB1Y2hhcik7Cit1Y2hhciBv
cGVyYXRvcltdKHVjaGFyMiB2LCB1aW50IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkgewor
ICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6
CisgICAgICAgICAgICByZXR1cm4gdi55OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
dHJhcDsKKyAgICB9Cit9Cit1Y2hhciBvcGVyYXRvcltdKHVjaGFyMyB2LCB1aW50IGluZGV4KSB7
CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1
cm4gdi54OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gdi55OworICAgICAg
ICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gdi56OworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgdHJhcDsKKyAgICB9Cit9Cit1Y2hhciBvcGVyYXRvcltdKHVjaGFyNCB2LCB1aW50
IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAg
ICAgICByZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gdi55
OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gdi56OworICAgICAgICBjYXNl
IDM6CisgICAgICAgICAgICByZXR1cm4gdi53OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgdHJhcDsKKyAgICB9Cit9Cit1Y2hhcjIgb3BlcmF0b3JbXT0odWNoYXIyIHYsIHVpbnQgaW5k
ZXgsIHVjaGFyIGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAg
ICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgor
ICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9Cit1Y2hhcjMgb3Bl
cmF0b3JbXT0odWNoYXIzIHYsIHVpbnQgaW5kZXgsIHVjaGFyIGEpIHsKKyAgICBzd2l0Y2ggKGlu
ZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICB2LnogPSBhOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0K
KyAgICByZXR1cm4gdjsKK30KK3VjaGFyNCBvcGVyYXRvcltdPSh1Y2hhcjQgdiwgdWludCBpbmRl
eCwgdWNoYXIgYSkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAg
ICAgICAgICAgdi54ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6Cisg
ICAgICAgICAgICB2LnkgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoK
KyAgICAgICAgICAgIHYueiA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAz
OgorICAgICAgICAgICAgdi53ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9Citib29sIG9w
ZXJhdG9yPT0odXNob3J0MiBhLCB1c2hvcnQyIGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAm
JiBhLnkgPT0gYi55OworfQorYm9vbCBvcGVyYXRvcj09KHVzaG9ydDMgYSwgdXNob3J0MyBiKSB7
CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56OworfQor
Ym9vbCBvcGVyYXRvcj09KHVzaG9ydDQgYSwgdXNob3J0NCBiKSB7CisgICAgcmV0dXJuIGEueCA9
PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56ICYmIGEudyA9PSBiLnc7Cit9CituYXRp
dmUgdXNob3J0IG9wZXJhdG9yLngodXNob3J0Mik7CituYXRpdmUgdXNob3J0IG9wZXJhdG9yLnko
dXNob3J0Mik7CituYXRpdmUgdXNob3J0IG9wZXJhdG9yLngodXNob3J0Myk7CituYXRpdmUgdXNo
b3J0IG9wZXJhdG9yLnkodXNob3J0Myk7CituYXRpdmUgdXNob3J0IG9wZXJhdG9yLnoodXNob3J0
Myk7CituYXRpdmUgdXNob3J0IG9wZXJhdG9yLngodXNob3J0NCk7CituYXRpdmUgdXNob3J0IG9w
ZXJhdG9yLnkodXNob3J0NCk7CituYXRpdmUgdXNob3J0IG9wZXJhdG9yLnoodXNob3J0NCk7Citu
YXRpdmUgdXNob3J0IG9wZXJhdG9yLncodXNob3J0NCk7CituYXRpdmUgdXNob3J0MiBvcGVyYXRv
ci54PSh1c2hvcnQyLCB1c2hvcnQpOworbmF0aXZlIHVzaG9ydDIgb3BlcmF0b3IueT0odXNob3J0
MiwgdXNob3J0KTsKK25hdGl2ZSB1c2hvcnQzIG9wZXJhdG9yLng9KHVzaG9ydDMsIHVzaG9ydCk7
CituYXRpdmUgdXNob3J0MyBvcGVyYXRvci55PSh1c2hvcnQzLCB1c2hvcnQpOworbmF0aXZlIHVz
aG9ydDMgb3BlcmF0b3Iuej0odXNob3J0MywgdXNob3J0KTsKK25hdGl2ZSB1c2hvcnQ0IG9wZXJh
dG9yLng9KHVzaG9ydDQsIHVzaG9ydCk7CituYXRpdmUgdXNob3J0NCBvcGVyYXRvci55PSh1c2hv
cnQ0LCB1c2hvcnQpOworbmF0aXZlIHVzaG9ydDQgb3BlcmF0b3Iuej0odXNob3J0NCwgdXNob3J0
KTsKK25hdGl2ZSB1c2hvcnQ0IG9wZXJhdG9yLnc9KHVzaG9ydDQsIHVzaG9ydCk7Cit1c2hvcnQg
b3BlcmF0b3JbXSh1c2hvcnQyIHYsIHVpbnQgaW5kZXgpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7
CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiB2Lng7CisgICAgICAgIGNhc2Ug
MToKKyAgICAgICAgICAgIHJldHVybiB2Lnk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICB0cmFwOworICAgIH0KK30KK3VzaG9ydCBvcGVyYXRvcltdKHVzaG9ydDMgdiwgdWludCBpbmRl
eCkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAg
cmV0dXJuIHYueDsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIHYueTsKKyAg
ICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmV0dXJuIHYuejsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIHRyYXA7CisgICAgfQorfQordXNob3J0IG9wZXJhdG9yW10odXNob3J0NCB2
LCB1aW50IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6Cisg
ICAgICAgICAgICByZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1
cm4gdi55OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gdi56OworICAgICAg
ICBjYXNlIDM6CisgICAgICAgICAgICByZXR1cm4gdi53OworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgdHJhcDsKKyAgICB9Cit9Cit1c2hvcnQyIG9wZXJhdG9yW109KHVzaG9ydDIgdiwg
dWludCBpbmRleCwgdXNob3J0IGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNh
c2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9Cit1
c2hvcnQzIG9wZXJhdG9yW109KHVzaG9ydDMgdiwgdWludCBpbmRleCwgdXNob3J0IGEpIHsKKyAg
ICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0g
YTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICB2Lnog
PSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0
cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsKK30KK3VzaG9ydDQgb3BlcmF0b3JbXT0odXNob3J0
NCB2LCB1aW50IGluZGV4LCB1c2hvcnQgYSkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAg
ICAgY2FzZSAwOgorICAgICAgICAgICAgdi54ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDE6CisgICAgICAgICAgICB2LnkgPSBhOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHYueiA9IGE7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgdi53ID0gYTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJu
IHY7Cit9Citib29sIG9wZXJhdG9yPT0odWludDIgYSwgdWludDIgYikgeworICAgIHJldHVybiBh
LnggPT0gYi54ICYmIGEueSA9PSBiLnk7Cit9Citib29sIG9wZXJhdG9yPT0odWludDMgYSwgdWlu
dDMgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIu
ejsKK30KK2Jvb2wgb3BlcmF0b3I9PSh1aW50NCBhLCB1aW50NCBiKSB7CisgICAgcmV0dXJuIGEu
eCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56ICYmIGEudyA9PSBiLnc7Cit9Citu
YXRpdmUgdWludCBvcGVyYXRvci54KHVpbnQyKTsKK25hdGl2ZSB1aW50IG9wZXJhdG9yLnkodWlu
dDIpOworbmF0aXZlIHVpbnQgb3BlcmF0b3IueCh1aW50Myk7CituYXRpdmUgdWludCBvcGVyYXRv
ci55KHVpbnQzKTsKK25hdGl2ZSB1aW50IG9wZXJhdG9yLnoodWludDMpOworbmF0aXZlIHVpbnQg
b3BlcmF0b3IueCh1aW50NCk7CituYXRpdmUgdWludCBvcGVyYXRvci55KHVpbnQ0KTsKK25hdGl2
ZSB1aW50IG9wZXJhdG9yLnoodWludDQpOworbmF0aXZlIHVpbnQgb3BlcmF0b3Iudyh1aW50NCk7
CituYXRpdmUgdWludDIgb3BlcmF0b3IueD0odWludDIsIHVpbnQpOworbmF0aXZlIHVpbnQyIG9w
ZXJhdG9yLnk9KHVpbnQyLCB1aW50KTsKK25hdGl2ZSB1aW50MyBvcGVyYXRvci54PSh1aW50Mywg
dWludCk7CituYXRpdmUgdWludDMgb3BlcmF0b3IueT0odWludDMsIHVpbnQpOworbmF0aXZlIHVp
bnQzIG9wZXJhdG9yLno9KHVpbnQzLCB1aW50KTsKK25hdGl2ZSB1aW50NCBvcGVyYXRvci54PSh1
aW50NCwgdWludCk7CituYXRpdmUgdWludDQgb3BlcmF0b3IueT0odWludDQsIHVpbnQpOworbmF0
aXZlIHVpbnQ0IG9wZXJhdG9yLno9KHVpbnQ0LCB1aW50KTsKK25hdGl2ZSB1aW50NCBvcGVyYXRv
ci53PSh1aW50NCwgdWludCk7Cit1aW50IG9wZXJhdG9yW10odWludDIgdiwgdWludCBpbmRleCkg
eworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0
dXJuIHYueDsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIHYueTsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorfQordWludCBvcGVyYXRvcltd
KHVpbnQzIHYsIHVpbnQgaW5kZXgpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNh
c2UgMDoKKyAgICAgICAgICAgIHJldHVybiB2Lng7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAg
ICAgIHJldHVybiB2Lnk7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVybiB2Lno7
CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KK30KK3VpbnQgb3Bl
cmF0b3JbXSh1aW50NCB2LCB1aW50IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAg
ICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6Cisg
ICAgICAgICAgICByZXR1cm4gdi55OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1
cm4gdi56OworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICByZXR1cm4gdi53OworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9Cit9Cit1aW50MiBvcGVyYXRvcltd
PSh1aW50MiB2LCB1aW50IGluZGV4LCB1aW50IGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7Cisg
ICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJu
IHY7Cit9Cit1aW50MyBvcGVyYXRvcltdPSh1aW50MyB2LCB1aW50IGluZGV4LCB1aW50IGEpIHsK
KyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9
IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55
ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICB2
LnogPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICB0cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsKK30KK3VpbnQ0IG9wZXJhdG9yW109KHVpbnQ0
IHYsIHVpbnQgaW5kZXgsIHVpbnQgYSkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAg
Y2FzZSAwOgorICAgICAgICAgICAgdi54ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDE6CisgICAgICAgICAgICB2LnkgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHYueiA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAzOgorICAgICAgICAgICAgdi53ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7
Cit9Citib29sIG9wZXJhdG9yPT0oY2hhcjIgYSwgY2hhcjIgYikgeworICAgIHJldHVybiBhLngg
PT0gYi54ICYmIGEueSA9PSBiLnk7Cit9Citib29sIG9wZXJhdG9yPT0oY2hhcjMgYSwgY2hhcjMg
YikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIuejsK
K30KK2Jvb2wgb3BlcmF0b3I9PShjaGFyNCBhLCBjaGFyNCBiKSB7CisgICAgcmV0dXJuIGEueCA9
PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56ICYmIGEudyA9PSBiLnc7Cit9CituYXRp
dmUgY2hhciBvcGVyYXRvci54KGNoYXIyKTsKK25hdGl2ZSBjaGFyIG9wZXJhdG9yLnkoY2hhcjIp
OworbmF0aXZlIGNoYXIgb3BlcmF0b3IueChjaGFyMyk7CituYXRpdmUgY2hhciBvcGVyYXRvci55
KGNoYXIzKTsKK25hdGl2ZSBjaGFyIG9wZXJhdG9yLnooY2hhcjMpOworbmF0aXZlIGNoYXIgb3Bl
cmF0b3IueChjaGFyNCk7CituYXRpdmUgY2hhciBvcGVyYXRvci55KGNoYXI0KTsKK25hdGl2ZSBj
aGFyIG9wZXJhdG9yLnooY2hhcjQpOworbmF0aXZlIGNoYXIgb3BlcmF0b3IudyhjaGFyNCk7Citu
YXRpdmUgY2hhcjIgb3BlcmF0b3IueD0oY2hhcjIsIGNoYXIpOworbmF0aXZlIGNoYXIyIG9wZXJh
dG9yLnk9KGNoYXIyLCBjaGFyKTsKK25hdGl2ZSBjaGFyMyBvcGVyYXRvci54PShjaGFyMywgY2hh
cik7CituYXRpdmUgY2hhcjMgb3BlcmF0b3IueT0oY2hhcjMsIGNoYXIpOworbmF0aXZlIGNoYXIz
IG9wZXJhdG9yLno9KGNoYXIzLCBjaGFyKTsKK25hdGl2ZSBjaGFyNCBvcGVyYXRvci54PShjaGFy
NCwgY2hhcik7CituYXRpdmUgY2hhcjQgb3BlcmF0b3IueT0oY2hhcjQsIGNoYXIpOworbmF0aXZl
IGNoYXI0IG9wZXJhdG9yLno9KGNoYXI0LCBjaGFyKTsKK25hdGl2ZSBjaGFyNCBvcGVyYXRvci53
PShjaGFyNCwgY2hhcik7CitjaGFyIG9wZXJhdG9yW10oY2hhcjIgdiwgdWludCBpbmRleCkgewor
ICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJu
IHYueDsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIHYueTsKKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorfQorY2hhciBvcGVyYXRvcltdKGNo
YXIzIHYsIHVpbnQgaW5kZXgpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2Ug
MDoKKyAgICAgICAgICAgIHJldHVybiB2Lng7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAg
IHJldHVybiB2Lnk7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVybiB2Lno7Cisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KK30KK2NoYXIgb3BlcmF0
b3JbXShjaGFyNCB2LCB1aW50IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAg
ICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6CisgICAg
ICAgICAgICByZXR1cm4gdi55OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4g
di56OworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICByZXR1cm4gdi53OworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9Cit9CitjaGFyMiBvcGVyYXRvcltdPShj
aGFyMiB2LCB1aW50IGluZGV4LCBjaGFyIGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAg
ICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7
Cit9CitjaGFyMyBvcGVyYXRvcltdPShjaGFyMyB2LCB1aW50IGluZGV4LCBjaGFyIGEpIHsKKyAg
ICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0g
YTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICB2Lnog
PSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0
cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsKK30KK2NoYXI0IG9wZXJhdG9yW109KGNoYXI0IHYs
IHVpbnQgaW5kZXgsIGNoYXIgYSkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2Fz
ZSAwOgorICAgICAgICAgICAgdi54ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDE6CisgICAgICAgICAgICB2LnkgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgMjoKKyAgICAgICAgICAgIHYueiA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAzOgorICAgICAgICAgICAgdi53ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9
Citib29sIG9wZXJhdG9yPT0oc2hvcnQyIGEsIHNob3J0MiBiKSB7CisgICAgcmV0dXJuIGEueCA9
PSBiLnggJiYgYS55ID09IGIueTsKK30KK2Jvb2wgb3BlcmF0b3I9PShzaG9ydDMgYSwgc2hvcnQz
IGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLno7
Cit9Citib29sIG9wZXJhdG9yPT0oc2hvcnQ0IGEsIHNob3J0NCBiKSB7CisgICAgcmV0dXJuIGEu
eCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56ICYmIGEudyA9PSBiLnc7Cit9Citu
YXRpdmUgc2hvcnQgb3BlcmF0b3IueChzaG9ydDIpOworbmF0aXZlIHNob3J0IG9wZXJhdG9yLnko
c2hvcnQyKTsKK25hdGl2ZSBzaG9ydCBvcGVyYXRvci54KHNob3J0Myk7CituYXRpdmUgc2hvcnQg
b3BlcmF0b3IueShzaG9ydDMpOworbmF0aXZlIHNob3J0IG9wZXJhdG9yLnooc2hvcnQzKTsKK25h
dGl2ZSBzaG9ydCBvcGVyYXRvci54KHNob3J0NCk7CituYXRpdmUgc2hvcnQgb3BlcmF0b3IueShz
aG9ydDQpOworbmF0aXZlIHNob3J0IG9wZXJhdG9yLnooc2hvcnQ0KTsKK25hdGl2ZSBzaG9ydCBv
cGVyYXRvci53KHNob3J0NCk7CituYXRpdmUgc2hvcnQyIG9wZXJhdG9yLng9KHNob3J0Miwgc2hv
cnQpOworbmF0aXZlIHNob3J0MiBvcGVyYXRvci55PShzaG9ydDIsIHNob3J0KTsKK25hdGl2ZSBz
aG9ydDMgb3BlcmF0b3IueD0oc2hvcnQzLCBzaG9ydCk7CituYXRpdmUgc2hvcnQzIG9wZXJhdG9y
Lnk9KHNob3J0Mywgc2hvcnQpOworbmF0aXZlIHNob3J0MyBvcGVyYXRvci56PShzaG9ydDMsIHNo
b3J0KTsKK25hdGl2ZSBzaG9ydDQgb3BlcmF0b3IueD0oc2hvcnQ0LCBzaG9ydCk7CituYXRpdmUg
c2hvcnQ0IG9wZXJhdG9yLnk9KHNob3J0NCwgc2hvcnQpOworbmF0aXZlIHNob3J0NCBvcGVyYXRv
ci56PShzaG9ydDQsIHNob3J0KTsKK25hdGl2ZSBzaG9ydDQgb3BlcmF0b3Iudz0oc2hvcnQ0LCBz
aG9ydCk7CitzaG9ydCBvcGVyYXRvcltdKHNob3J0MiB2LCB1aW50IGluZGV4KSB7CisgICAgc3dp
dGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gdi54Owor
ICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gdi55OworICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9Cit9CitzaG9ydCBvcGVyYXRvcltdKHNob3J0MyB2
LCB1aW50IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6Cisg
ICAgICAgICAgICByZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1
cm4gdi55OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gdi56OworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9Cit9CitzaG9ydCBvcGVyYXRvcltd
KHNob3J0NCB2LCB1aW50IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBj
YXNlIDA6CisgICAgICAgICAgICByZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6CisgICAgICAg
ICAgICByZXR1cm4gdi55OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gdi56
OworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICByZXR1cm4gdi53OworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9Cit9CitzaG9ydDIgb3BlcmF0b3JbXT0oc2hv
cnQyIHYsIHVpbnQgaW5kZXgsIHNob3J0IGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAg
ICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7
Cit9CitzaG9ydDMgb3BlcmF0b3JbXT0oc2hvcnQzIHYsIHVpbnQgaW5kZXgsIHNob3J0IGEpIHsK
KyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9
IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55
ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICB2
LnogPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICB0cmFwOworICAgIH0KKyAgICByZXR1cm4gdjsKK30KK3Nob3J0NCBvcGVyYXRvcltdPShzaG9y
dDQgdiwgdWludCBpbmRleCwgc2hvcnQgYSkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAg
ICAgY2FzZSAwOgorICAgICAgICAgICAgdi54ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDE6CisgICAgICAgICAgICB2LnkgPSBhOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHYueiA9IGE7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgdi53ID0gYTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJu
IHY7Cit9Citib29sIG9wZXJhdG9yPT0oaW50MiBhLCBpbnQyIGIpIHsKKyAgICByZXR1cm4gYS54
ID09IGIueCAmJiBhLnkgPT0gYi55OworfQorYm9vbCBvcGVyYXRvcj09KGludDMgYSwgaW50MyBi
KSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56Owor
fQorYm9vbCBvcGVyYXRvcj09KGludDQgYSwgaW50NCBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBi
LnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56ICYmIGEudyA9PSBiLnc7Cit9CituYXRpdmUg
aW50IG9wZXJhdG9yLngoaW50Mik7CituYXRpdmUgaW50IG9wZXJhdG9yLnkoaW50Mik7CituYXRp
dmUgaW50IG9wZXJhdG9yLngoaW50Myk7CituYXRpdmUgaW50IG9wZXJhdG9yLnkoaW50Myk7Citu
YXRpdmUgaW50IG9wZXJhdG9yLnooaW50Myk7CituYXRpdmUgaW50IG9wZXJhdG9yLngoaW50NCk7
CituYXRpdmUgaW50IG9wZXJhdG9yLnkoaW50NCk7CituYXRpdmUgaW50IG9wZXJhdG9yLnooaW50
NCk7CituYXRpdmUgaW50IG9wZXJhdG9yLncoaW50NCk7CituYXRpdmUgaW50MiBvcGVyYXRvci54
PShpbnQyLCBpbnQpOworbmF0aXZlIGludDIgb3BlcmF0b3IueT0oaW50MiwgaW50KTsKK25hdGl2
ZSBpbnQzIG9wZXJhdG9yLng9KGludDMsIGludCk7CituYXRpdmUgaW50MyBvcGVyYXRvci55PShp
bnQzLCBpbnQpOworbmF0aXZlIGludDMgb3BlcmF0b3Iuej0oaW50MywgaW50KTsKK25hdGl2ZSBp
bnQ0IG9wZXJhdG9yLng9KGludDQsIGludCk7CituYXRpdmUgaW50NCBvcGVyYXRvci55PShpbnQ0
LCBpbnQpOworbmF0aXZlIGludDQgb3BlcmF0b3Iuej0oaW50NCwgaW50KTsKK25hdGl2ZSBpbnQ0
IG9wZXJhdG9yLnc9KGludDQsIGludCk7CitpbnQgb3BlcmF0b3JbXShpbnQyIHYsIHVpbnQgaW5k
ZXgpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAg
IHJldHVybiB2Lng7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiB2Lnk7Cisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KK30KK2ludCBvcGVyYXRv
cltdKGludDMgdiwgdWludCBpbmRleCkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAg
Y2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIHYueDsKKyAgICAgICAgY2FzZSAxOgorICAgICAg
ICAgICAgcmV0dXJuIHYueTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmV0dXJuIHYu
ejsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRyYXA7CisgICAgfQorfQoraW50IG9w
ZXJhdG9yW10oaW50NCB2LCB1aW50IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAg
ICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6Cisg
ICAgICAgICAgICByZXR1cm4gdi55OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1
cm4gdi56OworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICByZXR1cm4gdi53OworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9Cit9CitpbnQyIG9wZXJhdG9yW109
KGludDIgdiwgdWludCBpbmRleCwgaW50IGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAg
ICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7
Cit9CitpbnQzIG9wZXJhdG9yW109KGludDMgdiwgdWludCBpbmRleCwgaW50IGEpIHsKKyAgICBz
d2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICB2LnogPSBh
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFw
OworICAgIH0KKyAgICByZXR1cm4gdjsKK30KK2ludDQgb3BlcmF0b3JbXT0oaW50NCB2LCB1aW50
IGluZGV4LCBpbnQgYSkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgor
ICAgICAgICAgICAgdi54ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6
CisgICAgICAgICAgICB2LnkgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
MjoKKyAgICAgICAgICAgIHYueiA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAzOgorICAgICAgICAgICAgdi53ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9Citib29s
IG9wZXJhdG9yPT0oaGFsZjIgYSwgaGFsZjIgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYm
IGEueSA9PSBiLnk7Cit9Citib29sIG9wZXJhdG9yPT0oaGFsZjMgYSwgaGFsZjMgYikgeworICAg
IHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIuejsKK30KK2Jvb2wg
b3BlcmF0b3I9PShoYWxmNCBhLCBoYWxmNCBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYg
YS55ID09IGIueSAmJiBhLnogPT0gYi56ICYmIGEudyA9PSBiLnc7Cit9CituYXRpdmUgaGFsZiBv
cGVyYXRvci54KGhhbGYyKTsKK25hdGl2ZSBoYWxmIG9wZXJhdG9yLnkoaGFsZjIpOworbmF0aXZl
IGhhbGYgb3BlcmF0b3IueChoYWxmMyk7CituYXRpdmUgaGFsZiBvcGVyYXRvci55KGhhbGYzKTsK
K25hdGl2ZSBoYWxmIG9wZXJhdG9yLnooaGFsZjMpOworbmF0aXZlIGhhbGYgb3BlcmF0b3IueCho
YWxmNCk7CituYXRpdmUgaGFsZiBvcGVyYXRvci55KGhhbGY0KTsKK25hdGl2ZSBoYWxmIG9wZXJh
dG9yLnooaGFsZjQpOworbmF0aXZlIGhhbGYgb3BlcmF0b3IudyhoYWxmNCk7CituYXRpdmUgaGFs
ZjIgb3BlcmF0b3IueD0oaGFsZjIsIGhhbGYpOworbmF0aXZlIGhhbGYyIG9wZXJhdG9yLnk9KGhh
bGYyLCBoYWxmKTsKK25hdGl2ZSBoYWxmMyBvcGVyYXRvci54PShoYWxmMywgaGFsZik7CituYXRp
dmUgaGFsZjMgb3BlcmF0b3IueT0oaGFsZjMsIGhhbGYpOworbmF0aXZlIGhhbGYzIG9wZXJhdG9y
Lno9KGhhbGYzLCBoYWxmKTsKK25hdGl2ZSBoYWxmNCBvcGVyYXRvci54PShoYWxmNCwgaGFsZik7
CituYXRpdmUgaGFsZjQgb3BlcmF0b3IueT0oaGFsZjQsIGhhbGYpOworbmF0aXZlIGhhbGY0IG9w
ZXJhdG9yLno9KGhhbGY0LCBoYWxmKTsKK25hdGl2ZSBoYWxmNCBvcGVyYXRvci53PShoYWxmNCwg
aGFsZik7CitoYWxmIG9wZXJhdG9yW10oaGFsZjIgdiwgdWludCBpbmRleCkgeworICAgIHN3aXRj
aCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIHYueDsKKyAg
ICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIHYueTsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIHRyYXA7CisgICAgfQorfQoraGFsZiBvcGVyYXRvcltdKGhhbGYzIHYsIHVp
bnQgaW5kZXgpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAg
ICAgICAgIHJldHVybiB2Lng7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiB2
Lnk7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVybiB2Lno7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAgIH0KK30KK2hhbGYgb3BlcmF0b3JbXShoYWxm
NCB2LCB1aW50IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6
CisgICAgICAgICAgICByZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICBy
ZXR1cm4gdi55OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gdi56OworICAg
ICAgICBjYXNlIDM6CisgICAgICAgICAgICByZXR1cm4gdi53OworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgdHJhcDsKKyAgICB9Cit9CitoYWxmMiBvcGVyYXRvcltdPShoYWxmMiB2LCB1
aW50IGluZGV4LCBoYWxmIGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2Ug
MDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9CitoYWxm
MyBvcGVyYXRvcltdPShoYWxmMyB2LCB1aW50IGluZGV4LCBoYWxmIGEpIHsKKyAgICBzd2l0Y2gg
KGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICB2LnogPSBhOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOworICAg
IH0KKyAgICByZXR1cm4gdjsKK30KK2hhbGY0IG9wZXJhdG9yW109KGhhbGY0IHYsIHVpbnQgaW5k
ZXgsIGhhbGYgYSkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAg
ICAgICAgICAgdi54ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6Cisg
ICAgICAgICAgICB2LnkgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoK
KyAgICAgICAgICAgIHYueiA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAz
OgorICAgICAgICAgICAgdi53ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9Citib29sIG9w
ZXJhdG9yPT0oZmxvYXQyIGEsIGZsb2F0MiBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYg
YS55ID09IGIueTsKK30KK2Jvb2wgb3BlcmF0b3I9PShmbG9hdDMgYSwgZmxvYXQzIGIpIHsKKyAg
ICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLno7Cit9Citib29s
IG9wZXJhdG9yPT0oZmxvYXQ0IGEsIGZsb2F0NCBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLngg
JiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56ICYmIGEudyA9PSBiLnc7Cit9CituYXRpdmUgZmxv
YXQgb3BlcmF0b3IueChmbG9hdDIpOworbmF0aXZlIGZsb2F0IG9wZXJhdG9yLnkoZmxvYXQyKTsK
K25hdGl2ZSBmbG9hdCBvcGVyYXRvci54KGZsb2F0Myk7CituYXRpdmUgZmxvYXQgb3BlcmF0b3Iu
eShmbG9hdDMpOworbmF0aXZlIGZsb2F0IG9wZXJhdG9yLnooZmxvYXQzKTsKK25hdGl2ZSBmbG9h
dCBvcGVyYXRvci54KGZsb2F0NCk7CituYXRpdmUgZmxvYXQgb3BlcmF0b3IueShmbG9hdDQpOwor
bmF0aXZlIGZsb2F0IG9wZXJhdG9yLnooZmxvYXQ0KTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRvci53
KGZsb2F0NCk7CituYXRpdmUgZmxvYXQyIG9wZXJhdG9yLng9KGZsb2F0MiwgZmxvYXQpOworbmF0
aXZlIGZsb2F0MiBvcGVyYXRvci55PShmbG9hdDIsIGZsb2F0KTsKK25hdGl2ZSBmbG9hdDMgb3Bl
cmF0b3IueD0oZmxvYXQzLCBmbG9hdCk7CituYXRpdmUgZmxvYXQzIG9wZXJhdG9yLnk9KGZsb2F0
MywgZmxvYXQpOworbmF0aXZlIGZsb2F0MyBvcGVyYXRvci56PShmbG9hdDMsIGZsb2F0KTsKK25h
dGl2ZSBmbG9hdDQgb3BlcmF0b3IueD0oZmxvYXQ0LCBmbG9hdCk7CituYXRpdmUgZmxvYXQ0IG9w
ZXJhdG9yLnk9KGZsb2F0NCwgZmxvYXQpOworbmF0aXZlIGZsb2F0NCBvcGVyYXRvci56PShmbG9h
dDQsIGZsb2F0KTsKK25hdGl2ZSBmbG9hdDQgb3BlcmF0b3Iudz0oZmxvYXQ0LCBmbG9hdCk7Citm
bG9hdCBvcGVyYXRvcltdKGZsb2F0MiB2LCB1aW50IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRl
eCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gdi54OworICAgICAgICBj
YXNlIDE6CisgICAgICAgICAgICByZXR1cm4gdi55OworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgdHJhcDsKKyAgICB9Cit9CitmbG9hdCBvcGVyYXRvcltdKGZsb2F0MyB2LCB1aW50IGlu
ZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAg
ICByZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gdi55Owor
ICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gdi56OworICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9Cit9CitmbG9hdCBvcGVyYXRvcltdKGZsb2F0NCB2
LCB1aW50IGluZGV4KSB7CisgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICBjYXNlIDA6Cisg
ICAgICAgICAgICByZXR1cm4gdi54OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1
cm4gdi55OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gdi56OworICAgICAg
ICBjYXNlIDM6CisgICAgICAgICAgICByZXR1cm4gdi53OworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgdHJhcDsKKyAgICB9Cit9CitmbG9hdDIgb3BlcmF0b3JbXT0oZmxvYXQyIHYsIHVp
bnQgaW5kZXgsIGZsb2F0IGEpIHsKKyAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2Ug
MDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7Cit9CitmbG9h
dDMgb3BlcmF0b3JbXT0oZmxvYXQzIHYsIHVpbnQgaW5kZXgsIGZsb2F0IGEpIHsKKyAgICBzd2l0
Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHYueCA9IGE7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdi55ID0gYTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICB2LnogPSBhOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cmFwOwor
ICAgIH0KKyAgICByZXR1cm4gdjsKK30KK2Zsb2F0NCBvcGVyYXRvcltdPShmbG9hdDQgdiwgdWlu
dCBpbmRleCwgZmxvYXQgYSkgeworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAw
OgorICAgICAgICAgICAgdi54ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDE6CisgICAgICAgICAgICB2LnkgPSBhOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgMjoKKyAgICAgICAgICAgIHYueiA9IGE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAzOgorICAgICAgICAgICAgdi53ID0gYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgdHJhcDsKKyAgICB9CisgICAgcmV0dXJuIHY7CiB9CiAK
LWJvb2wgb3BlcmF0b3J+KGJvb2wgdmFsdWUpCi17Ci0gICAgcmV0dXJuICF2YWx1ZTsKK25hdGl2
ZSBoYWxmMiBvcGVyYXRvcltdKGhhbGYyeDIsIHVpbnQpOworbmF0aXZlIGhhbGYyeDIgb3BlcmF0
b3JbXT0oaGFsZjJ4MiwgdWludCwgaGFsZjIpOworbmF0aXZlIGhhbGYzIG9wZXJhdG9yW10oaGFs
ZjJ4MywgdWludCk7CituYXRpdmUgaGFsZjJ4MyBvcGVyYXRvcltdPShoYWxmMngzLCB1aW50LCBo
YWxmMyk7CituYXRpdmUgaGFsZjQgb3BlcmF0b3JbXShoYWxmMng0LCB1aW50KTsKK25hdGl2ZSBo
YWxmMng0IG9wZXJhdG9yW109KGhhbGYyeDQsIHVpbnQsIGhhbGY0KTsKK25hdGl2ZSBoYWxmMiBv
cGVyYXRvcltdKGhhbGYzeDIsIHVpbnQpOworbmF0aXZlIGhhbGYzeDIgb3BlcmF0b3JbXT0oaGFs
ZjN4MiwgdWludCwgaGFsZjIpOworbmF0aXZlIGhhbGYzIG9wZXJhdG9yW10oaGFsZjN4MywgdWlu
dCk7CituYXRpdmUgaGFsZjN4MyBvcGVyYXRvcltdPShoYWxmM3gzLCB1aW50LCBoYWxmMyk7Citu
YXRpdmUgaGFsZjQgb3BlcmF0b3JbXShoYWxmM3g0LCB1aW50KTsKK25hdGl2ZSBoYWxmM3g0IG9w
ZXJhdG9yW109KGhhbGYzeDQsIHVpbnQsIGhhbGY0KTsKK25hdGl2ZSBoYWxmMiBvcGVyYXRvcltd
KGhhbGY0eDIsIHVpbnQpOworbmF0aXZlIGhhbGY0eDIgb3BlcmF0b3JbXT0oaGFsZjR4MiwgdWlu
dCwgaGFsZjIpOworbmF0aXZlIGhhbGYzIG9wZXJhdG9yW10oaGFsZjR4MywgdWludCk7CituYXRp
dmUgaGFsZjR4MyBvcGVyYXRvcltdPShoYWxmNHgzLCB1aW50LCBoYWxmMyk7CituYXRpdmUgaGFs
ZjQgb3BlcmF0b3JbXShoYWxmNHg0LCB1aW50KTsKK25hdGl2ZSBoYWxmNHg0IG9wZXJhdG9yW109
KGhhbGY0eDQsIHVpbnQsIGhhbGY0KTsKK25hdGl2ZSBmbG9hdDIgb3BlcmF0b3JbXShmbG9hdDJ4
MiwgdWludCk7CituYXRpdmUgZmxvYXQyeDIgb3BlcmF0b3JbXT0oZmxvYXQyeDIsIHVpbnQsIGZs
b2F0Mik7CituYXRpdmUgZmxvYXQzIG9wZXJhdG9yW10oZmxvYXQyeDMsIHVpbnQpOworbmF0aXZl
IGZsb2F0MngzIG9wZXJhdG9yW109KGZsb2F0MngzLCB1aW50LCBmbG9hdDMpOworbmF0aXZlIGZs
b2F0NCBvcGVyYXRvcltdKGZsb2F0Mng0LCB1aW50KTsKK25hdGl2ZSBmbG9hdDJ4NCBvcGVyYXRv
cltdPShmbG9hdDJ4NCwgdWludCwgZmxvYXQ0KTsKK25hdGl2ZSBmbG9hdDIgb3BlcmF0b3JbXShm
bG9hdDN4MiwgdWludCk7CituYXRpdmUgZmxvYXQzeDIgb3BlcmF0b3JbXT0oZmxvYXQzeDIsIHVp
bnQsIGZsb2F0Mik7CituYXRpdmUgZmxvYXQzIG9wZXJhdG9yW10oZmxvYXQzeDMsIHVpbnQpOwor
bmF0aXZlIGZsb2F0M3gzIG9wZXJhdG9yW109KGZsb2F0M3gzLCB1aW50LCBmbG9hdDMpOworbmF0
aXZlIGZsb2F0NCBvcGVyYXRvcltdKGZsb2F0M3g0LCB1aW50KTsKK25hdGl2ZSBmbG9hdDN4NCBv
cGVyYXRvcltdPShmbG9hdDN4NCwgdWludCwgZmxvYXQ0KTsKK25hdGl2ZSBmbG9hdDIgb3BlcmF0
b3JbXShmbG9hdDR4MiwgdWludCk7CituYXRpdmUgZmxvYXQ0eDIgb3BlcmF0b3JbXT0oZmxvYXQ0
eDIsIHVpbnQsIGZsb2F0Mik7CituYXRpdmUgZmxvYXQzIG9wZXJhdG9yW10oZmxvYXQ0eDMsIHVp
bnQpOworbmF0aXZlIGZsb2F0NHgzIG9wZXJhdG9yW109KGZsb2F0NHgzLCB1aW50LCBmbG9hdDMp
OworbmF0aXZlIGZsb2F0NCBvcGVyYXRvcltdKGZsb2F0NHg0LCB1aW50KTsKK25hdGl2ZSBmbG9h
dDR4NCBvcGVyYXRvcltdPShmbG9hdDR4NCwgdWludCwgZmxvYXQ0KTsKKworYm9vbCBvcGVyYXRv
cj09KGhhbGYyeDIgYSwgaGFsZjJ4MiBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0g
PT0gYlswXVswXSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVsx
XVswXSA9PSBiWzFdWzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgIHRy
dWU7Cit9Citib29sIG9wZXJhdG9yPT0oaGFsZjJ4MyBhLCBoYWxmMngzIGIpIHsKKyAgICByZXR1
cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlsw
XVsxXSAmJgorICAgICAgICBhWzBdWzJdID09IGJbMF1bMl0gJiYKKyAgICAgICAgYVsxXVswXSA9
PSBiWzFdWzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBhWzFd
WzJdID09IGJbMV1bMl0gJiYKKyAgICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGhhbGYyeDQg
YSwgaGFsZjJ4NCBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0gYlswXVswXSAm
JgorICAgICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVswXVsyXSA9PSBiWzBd
WzJdICYmCisgICAgICAgIGFbMF1bM10gPT0gYlswXVszXSAmJgorICAgICAgICBhWzFdWzBdID09
IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYmCisgICAgICAgIGFbMV1b
Ml0gPT0gYlsxXVsyXSAmJgorICAgICAgICBhWzFdWzNdID09IGJbMV1bM10gJiYKKyAgICB0cnVl
OworfQorYm9vbCBvcGVyYXRvcj09KGhhbGYzeDIgYSwgaGFsZjN4MiBiKSB7CisgICAgcmV0dXJu
CisgICAgICAgIGFbMF1bMF0gPT0gYlswXVswXSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1b
MV0gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFdWzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0g
YlsxXVsxXSAmJgorICAgICAgICBhWzJdWzBdID09IGJbMl1bMF0gJiYKKyAgICAgICAgYVsyXVsx
XSA9PSBiWzJdWzFdICYmCisgICAgdHJ1ZTsKK30KK2Jvb2wgb3BlcmF0b3I9PShoYWxmM3gzIGEs
IGhhbGYzeDMgYikgeworICAgIHJldHVybgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYK
KyAgICAgICAgYVswXVsxXSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFbMF1bMl0gPT0gYlswXVsy
XSAmJgorICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBi
WzFdWzFdICYmCisgICAgICAgIGFbMV1bMl0gPT0gYlsxXVsyXSAmJgorICAgICAgICBhWzJdWzBd
ID09IGJbMl1bMF0gJiYKKyAgICAgICAgYVsyXVsxXSA9PSBiWzJdWzFdICYmCisgICAgICAgIGFb
Ml1bMl0gPT0gYlsyXVsyXSAmJgorICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0oaGFsZjN4
NCBhLCBoYWxmM3g0IGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBd
ICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAgICAgICBhWzBdWzJdID09IGJb
MF1bMl0gJiYKKyAgICAgICAgYVswXVszXSA9PSBiWzBdWzNdICYmCisgICAgICAgIGFbMV1bMF0g
PT0gYlsxXVswXSAmJgorICAgICAgICBhWzFdWzFdID09IGJbMV1bMV0gJiYKKyAgICAgICAgYVsx
XVsyXSA9PSBiWzFdWzJdICYmCisgICAgICAgIGFbMV1bM10gPT0gYlsxXVszXSAmJgorICAgICAg
ICBhWzJdWzBdID09IGJbMl1bMF0gJiYKKyAgICAgICAgYVsyXVsxXSA9PSBiWzJdWzFdICYmCisg
ICAgICAgIGFbMl1bMl0gPT0gYlsyXVsyXSAmJgorICAgICAgICBhWzJdWzNdID09IGJbMl1bM10g
JiYKKyAgICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGhhbGY0eDIgYSwgaGFsZjR4MiBiKSB7
CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0gYlswXVswXSAmJgorICAgICAgICBhWzBd
WzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFdWzBdICYmCisgICAgICAg
IGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBhWzJdWzBdID09IGJbMl1bMF0gJiYKKyAg
ICAgICAgYVsyXVsxXSA9PSBiWzJdWzFdICYmCisgICAgICAgIGFbM11bMF0gPT0gYlszXVswXSAm
JgorICAgICAgICBhWzNdWzFdID09IGJbM11bMV0gJiYKKyAgICB0cnVlOworfQorYm9vbCBvcGVy
YXRvcj09KGhhbGY0eDMgYSwgaGFsZjR4MyBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1b
MF0gPT0gYlswXVswXSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAg
YVswXVsyXSA9PSBiWzBdWzJdICYmCisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAmJgorICAg
ICAgICBhWzFdWzFdID09IGJbMV1bMV0gJiYKKyAgICAgICAgYVsxXVsyXSA9PSBiWzFdWzJdICYm
CisgICAgICAgIGFbMl1bMF0gPT0gYlsyXVswXSAmJgorICAgICAgICBhWzJdWzFdID09IGJbMl1b
MV0gJiYKKyAgICAgICAgYVsyXVsyXSA9PSBiWzJdWzJdICYmCisgICAgICAgIGFbM11bMF0gPT0g
YlszXVswXSAmJgorICAgICAgICBhWzNdWzFdID09IGJbM11bMV0gJiYKKyAgICAgICAgYVszXVsy
XSA9PSBiWzNdWzJdICYmCisgICAgdHJ1ZTsKK30KK2Jvb2wgb3BlcmF0b3I9PShoYWxmNHg0IGEs
IGhhbGY0eDQgYikgeworICAgIHJldHVybgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYK
KyAgICAgICAgYVswXVsxXSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFbMF1bMl0gPT0gYlswXVsy
XSAmJgorICAgICAgICBhWzBdWzNdID09IGJbMF1bM10gJiYKKyAgICAgICAgYVsxXVswXSA9PSBi
WzFdWzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBhWzFdWzJd
ID09IGJbMV1bMl0gJiYKKyAgICAgICAgYVsxXVszXSA9PSBiWzFdWzNdICYmCisgICAgICAgIGFb
Ml1bMF0gPT0gYlsyXVswXSAmJgorICAgICAgICBhWzJdWzFdID09IGJbMl1bMV0gJiYKKyAgICAg
ICAgYVsyXVsyXSA9PSBiWzJdWzJdICYmCisgICAgICAgIGFbMl1bM10gPT0gYlsyXVszXSAmJgor
ICAgICAgICBhWzNdWzBdID09IGJbM11bMF0gJiYKKyAgICAgICAgYVszXVsxXSA9PSBiWzNdWzFd
ICYmCisgICAgICAgIGFbM11bMl0gPT0gYlszXVsyXSAmJgorICAgICAgICBhWzNdWzNdID09IGJb
M11bM10gJiYKKyAgICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGZsb2F0MngyIGEsIGZsb2F0
MngyIGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAg
ICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYK
KyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYmCisgICAgdHJ1ZTsKIH0KK2Jvb2wgb3BlcmF0
b3I9PShmbG9hdDJ4MyBhLCBmbG9hdDJ4MyBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1b
MF0gPT0gYlswXVswXSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAg
YVswXVsyXSA9PSBiWzBdWzJdICYmCisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAmJgorICAg
ICAgICBhWzFdWzFdID09IGJbMV1bMV0gJiYKKyAgICAgICAgYVsxXVsyXSA9PSBiWzFdWzJdICYm
CisgICAgdHJ1ZTsKK30KK2Jvb2wgb3BlcmF0b3I9PShmbG9hdDJ4NCBhLCBmbG9hdDJ4NCBiKSB7
CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0gYlswXVswXSAmJgorICAgICAgICBhWzBd
WzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVswXVsyXSA9PSBiWzBdWzJdICYmCisgICAgICAg
IGFbMF1bM10gPT0gYlswXVszXSAmJgorICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAg
ICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYmCisgICAgICAgIGFbMV1bMl0gPT0gYlsxXVsyXSAm
JgorICAgICAgICBhWzFdWzNdID09IGJbMV1bM10gJiYKKyAgICB0cnVlOworfQorYm9vbCBvcGVy
YXRvcj09KGZsb2F0M3gyIGEsIGZsb2F0M3gyIGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAgYVsw
XVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAgICAg
ICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYmCisg
ICAgICAgIGFbMl1bMF0gPT0gYlsyXVswXSAmJgorICAgICAgICBhWzJdWzFdID09IGJbMl1bMV0g
JiYKKyAgICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGZsb2F0M3gzIGEsIGZsb2F0M3gzIGIp
IHsKKyAgICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFb
MF1bMV0gPT0gYlswXVsxXSAmJgorICAgICAgICBhWzBdWzJdID09IGJbMF1bMl0gJiYKKyAgICAg
ICAgYVsxXVswXSA9PSBiWzFdWzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgor
ICAgICAgICBhWzFdWzJdID09IGJbMV1bMl0gJiYKKyAgICAgICAgYVsyXVswXSA9PSBiWzJdWzBd
ICYmCisgICAgICAgIGFbMl1bMV0gPT0gYlsyXVsxXSAmJgorICAgICAgICBhWzJdWzJdID09IGJb
Ml1bMl0gJiYKKyAgICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGZsb2F0M3g0IGEsIGZsb2F0
M3g0IGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAg
ICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAgICAgICBhWzBdWzJdID09IGJbMF1bMl0gJiYK
KyAgICAgICAgYVswXVszXSA9PSBiWzBdWzNdICYmCisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVsw
XSAmJgorICAgICAgICBhWzFdWzFdID09IGJbMV1bMV0gJiYKKyAgICAgICAgYVsxXVsyXSA9PSBi
WzFdWzJdICYmCisgICAgICAgIGFbMV1bM10gPT0gYlsxXVszXSAmJgorICAgICAgICBhWzJdWzBd
ID09IGJbMl1bMF0gJiYKKyAgICAgICAgYVsyXVsxXSA9PSBiWzJdWzFdICYmCisgICAgICAgIGFb
Ml1bMl0gPT0gYlsyXVsyXSAmJgorICAgICAgICBhWzJdWzNdID09IGJbMl1bM10gJiYKKyAgICB0
cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGZsb2F0NHgyIGEsIGZsb2F0NHgyIGIpIHsKKyAgICBy
ZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0g
YlswXVsxXSAmJgorICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsx
XSA9PSBiWzFdWzFdICYmCisgICAgICAgIGFbMl1bMF0gPT0gYlsyXVswXSAmJgorICAgICAgICBh
WzJdWzFdID09IGJbMl1bMV0gJiYKKyAgICAgICAgYVszXVswXSA9PSBiWzNdWzBdICYmCisgICAg
ICAgIGFbM11bMV0gPT0gYlszXVsxXSAmJgorICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0o
ZmxvYXQ0eDMgYSwgZmxvYXQ0eDMgYikgeworICAgIHJldHVybgorICAgICAgICBhWzBdWzBdID09
IGJbMF1bMF0gJiYKKyAgICAgICAgYVswXVsxXSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFbMF1b
Ml0gPT0gYlswXVsyXSAmJgorICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAg
YVsxXVsxXSA9PSBiWzFdWzFdICYmCisgICAgICAgIGFbMV1bMl0gPT0gYlsxXVsyXSAmJgorICAg
ICAgICBhWzJdWzBdID09IGJbMl1bMF0gJiYKKyAgICAgICAgYVsyXVsxXSA9PSBiWzJdWzFdICYm
CisgICAgICAgIGFbMl1bMl0gPT0gYlsyXVsyXSAmJgorICAgICAgICBhWzNdWzBdID09IGJbM11b
MF0gJiYKKyAgICAgICAgYVszXVsxXSA9PSBiWzNdWzFdICYmCisgICAgICAgIGFbM11bMl0gPT0g
YlszXVsyXSAmJgorICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0oZmxvYXQ0eDQgYSwgZmxv
YXQ0eDQgYikgeworICAgIHJldHVybgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAg
ICAgICAgYVswXVsxXSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFbMF1bMl0gPT0gYlswXVsyXSAm
JgorICAgICAgICBhWzBdWzNdID09IGJbMF1bM10gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFd
WzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBhWzFdWzJdID09
IGJbMV1bMl0gJiYKKyAgICAgICAgYVsxXVszXSA9PSBiWzFdWzNdICYmCisgICAgICAgIGFbMl1b
MF0gPT0gYlsyXVswXSAmJgorICAgICAgICBhWzJdWzFdID09IGJbMl1bMV0gJiYKKyAgICAgICAg
YVsyXVsyXSA9PSBiWzJdWzJdICYmCisgICAgICAgIGFbMl1bM10gPT0gYlsyXVszXSAmJgorICAg
ICAgICBhWzNdWzBdID09IGJbM11bMF0gJiYKKyAgICAgICAgYVszXVsxXSA9PSBiWzNdWzFdICYm
CisgICAgICAgIGFbM11bMl0gPT0gYlszXVsyXSAmJgorICAgICAgICBhWzNdWzNdID09IGJbM11b
M10gJiYKKyAgICB0cnVlOworfQorCituYXRpdmUgdWNoYXIgU2FtcGxlKFRleHR1cmUxRDx1Y2hh
cj4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSB1Y2hhciBTYW1wbGUoVGV4dHVy
ZTFEPHVjaGFyPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZl
IHVjaGFyIExvYWQoVGV4dHVyZTFEPHVjaGFyPiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUgdWNo
YXIgTG9hZChUZXh0dXJlMUQ8dWNoYXI+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25h
dGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPHVjaGFyPiwgdWludCBNaXBMZXZlbCwg
dGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZl
IHVjaGFyMiBTYW1wbGUoVGV4dHVyZTFEPHVjaGFyMj4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9u
KTsKK25hdGl2ZSB1Y2hhcjIgU2FtcGxlKFRleHR1cmUxRDx1Y2hhcjI+LCBzYW1wbGVyLCBmbG9h
dCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdWNoYXIyIExvYWQoVGV4dHVyZTFEPHVj
aGFyMj4sIGludDIgbG9jYXRpb24pOworbmF0aXZlIHVjaGFyMiBMb2FkKFRleHR1cmUxRDx1Y2hh
cjI+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lv
bnMoVGV4dHVyZTFEPHVjaGFyMj4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwg
dGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsKK25hdGl2ZSB1Y2hhcjMgU2FtcGxlKFRleHR1
cmUxRDx1Y2hhcjM+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUgdWNoYXIzIFNh
bXBsZShUZXh0dXJlMUQ8dWNoYXIzPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZz
ZXQpOworbmF0aXZlIHVjaGFyMyBMb2FkKFRleHR1cmUxRDx1Y2hhcjM+LCBpbnQyIGxvY2F0aW9u
KTsKK25hdGl2ZSB1Y2hhcjMgTG9hZChUZXh0dXJlMUQ8dWNoYXIzPiwgaW50MiBsb2NhdGlvbiwg
aW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDx1Y2hhcjM+
LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJP
ZkxldmVscyk7CituYXRpdmUgdWNoYXI0IFNhbXBsZShUZXh0dXJlMUQ8dWNoYXI0Piwgc2FtcGxl
ciwgZmxvYXQgbG9jYXRpb24pOworbmF0aXZlIHVjaGFyNCBTYW1wbGUoVGV4dHVyZTFEPHVjaGFy
ND4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB1Y2hhcjQg
TG9hZChUZXh0dXJlMUQ8dWNoYXI0PiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUgdWNoYXI0IExv
YWQoVGV4dHVyZTFEPHVjaGFyND4sIGludDIgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZl
IHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8dWNoYXI0PiwgdWludCBNaXBMZXZlbCwgdGhy
ZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIHVz
aG9ydCBTYW1wbGUoVGV4dHVyZTFEPHVzaG9ydD4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsK
K25hdGl2ZSB1c2hvcnQgU2FtcGxlKFRleHR1cmUxRDx1c2hvcnQ+LCBzYW1wbGVyLCBmbG9hdCBs
b2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdXNob3J0IExvYWQoVGV4dHVyZTFEPHVzaG9y
dD4sIGludDIgbG9jYXRpb24pOworbmF0aXZlIHVzaG9ydCBMb2FkKFRleHR1cmUxRDx1c2hvcnQ+
LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMo
VGV4dHVyZTFEPHVzaG9ydD4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhy
ZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsKK25hdGl2ZSB1c2hvcnQyIFNhbXBsZShUZXh0dXJl
MUQ8dXNob3J0Mj4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSB1c2hvcnQyIFNh
bXBsZShUZXh0dXJlMUQ8dXNob3J0Mj4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zm
c2V0KTsKK25hdGl2ZSB1c2hvcnQyIExvYWQoVGV4dHVyZTFEPHVzaG9ydDI+LCBpbnQyIGxvY2F0
aW9uKTsKK25hdGl2ZSB1c2hvcnQyIExvYWQoVGV4dHVyZTFEPHVzaG9ydDI+LCBpbnQyIGxvY2F0
aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPHVz
aG9ydDI+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBO
dW1iZXJPZkxldmVscyk7CituYXRpdmUgdXNob3J0MyBTYW1wbGUoVGV4dHVyZTFEPHVzaG9ydDM+
LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUgdXNob3J0MyBTYW1wbGUoVGV4dHVy
ZTFEPHVzaG9ydDM+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRp
dmUgdXNob3J0MyBMb2FkKFRleHR1cmUxRDx1c2hvcnQzPiwgaW50MiBsb2NhdGlvbik7CituYXRp
dmUgdXNob3J0MyBMb2FkKFRleHR1cmUxRDx1c2hvcnQzPiwgaW50MiBsb2NhdGlvbiwgaW50IG9m
ZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDx1c2hvcnQzPiwgdWlu
dCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZl
bHMpOworbmF0aXZlIHVzaG9ydDQgU2FtcGxlKFRleHR1cmUxRDx1c2hvcnQ0Piwgc2FtcGxlciwg
ZmxvYXQgbG9jYXRpb24pOworbmF0aXZlIHVzaG9ydDQgU2FtcGxlKFRleHR1cmUxRDx1c2hvcnQ0
Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHVzaG9ydDQg
TG9hZChUZXh0dXJlMUQ8dXNob3J0ND4sIGludDIgbG9jYXRpb24pOworbmF0aXZlIHVzaG9ydDQg
TG9hZChUZXh0dXJlMUQ8dXNob3J0ND4sIGludDIgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0
aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8dXNob3J0ND4sIHVpbnQgTWlwTGV2ZWws
IHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsKK25hdGl2
ZSB1aW50IFNhbXBsZShUZXh0dXJlMUQ8dWludD4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsK
K25hdGl2ZSB1aW50IFNhbXBsZShUZXh0dXJlMUQ8dWludD4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0
aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB1aW50IExvYWQoVGV4dHVyZTFEPHVpbnQ+LCBpbnQy
IGxvY2F0aW9uKTsKK25hdGl2ZSB1aW50IExvYWQoVGV4dHVyZTFEPHVpbnQ+LCBpbnQyIGxvY2F0
aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPHVp
bnQ+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1i
ZXJPZkxldmVscyk7CituYXRpdmUgdWludDIgU2FtcGxlKFRleHR1cmUxRDx1aW50Mj4sIHNhbXBs
ZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSB1aW50MiBTYW1wbGUoVGV4dHVyZTFEPHVpbnQy
Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHVpbnQyIExv
YWQoVGV4dHVyZTFEPHVpbnQyPiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUgdWludDIgTG9hZChU
ZXh0dXJlMUQ8dWludDI+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB2b2lk
IEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPHVpbnQyPiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVp
bnQqIFdpZHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIHVpbnQzIFNh
bXBsZShUZXh0dXJlMUQ8dWludDM+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUg
dWludDMgU2FtcGxlKFRleHR1cmUxRDx1aW50Mz4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBp
bnQgb2Zmc2V0KTsKK25hdGl2ZSB1aW50MyBMb2FkKFRleHR1cmUxRDx1aW50Mz4sIGludDIgbG9j
YXRpb24pOworbmF0aXZlIHVpbnQzIExvYWQoVGV4dHVyZTFEPHVpbnQzPiwgaW50MiBsb2NhdGlv
biwgaW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDx1aW50
Mz4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJl
ck9mTGV2ZWxzKTsKK25hdGl2ZSB1aW50NCBTYW1wbGUoVGV4dHVyZTFEPHVpbnQ0Piwgc2FtcGxl
ciwgZmxvYXQgbG9jYXRpb24pOworbmF0aXZlIHVpbnQ0IFNhbXBsZShUZXh0dXJlMUQ8dWludDQ+
LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdWludDQgTG9h
ZChUZXh0dXJlMUQ8dWludDQ+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSB1aW50NCBMb2FkKFRl
eHR1cmUxRDx1aW50ND4sIGludDIgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQg
R2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8dWludDQ+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWlu
dCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7CituYXRpdmUgY2hhciBTYW1w
bGUoVGV4dHVyZTFEPGNoYXI+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUgY2hh
ciBTYW1wbGUoVGV4dHVyZTFEPGNoYXI+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9m
ZnNldCk7CituYXRpdmUgY2hhciBMb2FkKFRleHR1cmUxRDxjaGFyPiwgaW50MiBsb2NhdGlvbik7
CituYXRpdmUgY2hhciBMb2FkKFRleHR1cmUxRDxjaGFyPiwgaW50MiBsb2NhdGlvbiwgaW50IG9m
ZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDxjaGFyPiwgdWludCBN
aXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMp
OworbmF0aXZlIGNoYXIyIFNhbXBsZShUZXh0dXJlMUQ8Y2hhcjI+LCBzYW1wbGVyLCBmbG9hdCBs
b2NhdGlvbik7CituYXRpdmUgY2hhcjIgU2FtcGxlKFRleHR1cmUxRDxjaGFyMj4sIHNhbXBsZXIs
IGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSBjaGFyMiBMb2FkKFRleHR1cmUx
RDxjaGFyMj4sIGludDIgbG9jYXRpb24pOworbmF0aXZlIGNoYXIyIExvYWQoVGV4dHVyZTFEPGNo
YXIyPiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNp
b25zKFRleHR1cmUxRDxjaGFyMj4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwg
dGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsKK25hdGl2ZSBjaGFyMyBTYW1wbGUoVGV4dHVy
ZTFEPGNoYXIzPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pOworbmF0aXZlIGNoYXIzIFNhbXBs
ZShUZXh0dXJlMUQ8Y2hhcjM+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7
CituYXRpdmUgY2hhcjMgTG9hZChUZXh0dXJlMUQ8Y2hhcjM+LCBpbnQyIGxvY2F0aW9uKTsKK25h
dGl2ZSBjaGFyMyBMb2FkKFRleHR1cmUxRDxjaGFyMz4sIGludDIgbG9jYXRpb24sIGludCBvZmZz
ZXQpOworbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8Y2hhcjM+LCB1aW50IE1p
cExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7
CituYXRpdmUgY2hhcjQgU2FtcGxlKFRleHR1cmUxRDxjaGFyND4sIHNhbXBsZXIsIGZsb2F0IGxv
Y2F0aW9uKTsKK25hdGl2ZSBjaGFyNCBTYW1wbGUoVGV4dHVyZTFEPGNoYXI0Piwgc2FtcGxlciwg
ZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIGNoYXI0IExvYWQoVGV4dHVyZTFE
PGNoYXI0PiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUgY2hhcjQgTG9hZChUZXh0dXJlMUQ8Y2hh
cjQ+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lv
bnMoVGV4dHVyZTFEPGNoYXI0PiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0
aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIHNob3J0IFNhbXBsZShUZXh0dXJl
MUQ8c2hvcnQ+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUgc2hvcnQgU2FtcGxl
KFRleHR1cmUxRDxzaG9ydD4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsK
K25hdGl2ZSBzaG9ydCBMb2FkKFRleHR1cmUxRDxzaG9ydD4sIGludDIgbG9jYXRpb24pOworbmF0
aXZlIHNob3J0IExvYWQoVGV4dHVyZTFEPHNob3J0PiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNl
dCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDxzaG9ydD4sIHVpbnQgTWlw
TGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsK
K25hdGl2ZSBzaG9ydDIgU2FtcGxlKFRleHR1cmUxRDxzaG9ydDI+LCBzYW1wbGVyLCBmbG9hdCBs
b2NhdGlvbik7CituYXRpdmUgc2hvcnQyIFNhbXBsZShUZXh0dXJlMUQ8c2hvcnQyPiwgc2FtcGxl
ciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHNob3J0MiBMb2FkKFRleHR1
cmUxRDxzaG9ydDI+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSBzaG9ydDIgTG9hZChUZXh0dXJl
MUQ8c2hvcnQyPiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXRE
aW1lbnNpb25zKFRleHR1cmUxRDxzaG9ydDI+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCog
V2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7CituYXRpdmUgc2hvcnQzIFNhbXBs
ZShUZXh0dXJlMUQ8c2hvcnQzPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pOworbmF0aXZlIHNo
b3J0MyBTYW1wbGUoVGV4dHVyZTFEPHNob3J0Mz4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBp
bnQgb2Zmc2V0KTsKK25hdGl2ZSBzaG9ydDMgTG9hZChUZXh0dXJlMUQ8c2hvcnQzPiwgaW50MiBs
b2NhdGlvbik7CituYXRpdmUgc2hvcnQzIExvYWQoVGV4dHVyZTFEPHNob3J0Mz4sIGludDIgbG9j
YXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8
c2hvcnQzPiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCog
TnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIHNob3J0NCBTYW1wbGUoVGV4dHVyZTFEPHNob3J0ND4s
IHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSBzaG9ydDQgU2FtcGxlKFRleHR1cmUx
RDxzaG9ydDQ+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUg
c2hvcnQ0IExvYWQoVGV4dHVyZTFEPHNob3J0ND4sIGludDIgbG9jYXRpb24pOworbmF0aXZlIHNo
b3J0NCBMb2FkKFRleHR1cmUxRDxzaG9ydDQ+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsK
K25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPHNob3J0ND4sIHVpbnQgTWlwTGV2
ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsKK25h
dGl2ZSBpbnQgU2FtcGxlKFRleHR1cmUxRDxpbnQ+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7
CituYXRpdmUgaW50IFNhbXBsZShUZXh0dXJlMUQ8aW50Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRp
b24sIGludCBvZmZzZXQpOworbmF0aXZlIGludCBMb2FkKFRleHR1cmUxRDxpbnQ+LCBpbnQyIGxv
Y2F0aW9uKTsKK25hdGl2ZSBpbnQgTG9hZChUZXh0dXJlMUQ8aW50PiwgaW50MiBsb2NhdGlvbiwg
aW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDxpbnQ+LCB1
aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxl
dmVscyk7CituYXRpdmUgaW50MiBTYW1wbGUoVGV4dHVyZTFEPGludDI+LCBzYW1wbGVyLCBmbG9h
dCBsb2NhdGlvbik7CituYXRpdmUgaW50MiBTYW1wbGUoVGV4dHVyZTFEPGludDI+LCBzYW1wbGVy
LCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgaW50MiBMb2FkKFRleHR1cmUx
RDxpbnQyPiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUgaW50MiBMb2FkKFRleHR1cmUxRDxpbnQy
PiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25z
KFRleHR1cmUxRDxpbnQyPiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJl
YWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIGludDMgU2FtcGxlKFRleHR1cmUxRDxp
bnQzPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pOworbmF0aXZlIGludDMgU2FtcGxlKFRleHR1
cmUxRDxpbnQzPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZl
IGludDMgTG9hZChUZXh0dXJlMUQ8aW50Mz4sIGludDIgbG9jYXRpb24pOworbmF0aXZlIGludDMg
TG9hZChUZXh0dXJlMUQ8aW50Mz4sIGludDIgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZl
IHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8aW50Mz4sIHVpbnQgTWlwTGV2ZWwsIHRocmVh
ZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsKK25hdGl2ZSBpbnQ0
IFNhbXBsZShUZXh0dXJlMUQ8aW50ND4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2
ZSBpbnQ0IFNhbXBsZShUZXh0dXJlMUQ8aW50ND4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBp
bnQgb2Zmc2V0KTsKK25hdGl2ZSBpbnQ0IExvYWQoVGV4dHVyZTFEPGludDQ+LCBpbnQyIGxvY2F0
aW9uKTsKK25hdGl2ZSBpbnQ0IExvYWQoVGV4dHVyZTFEPGludDQ+LCBpbnQyIGxvY2F0aW9uLCBp
bnQgb2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPGludDQ+LCB1
aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxl
dmVscyk7CituYXRpdmUgaGFsZiBTYW1wbGUoVGV4dHVyZTFEPGhhbGY+LCBzYW1wbGVyLCBmbG9h
dCBsb2NhdGlvbik7CituYXRpdmUgaGFsZiBTYW1wbGUoVGV4dHVyZTFEPGhhbGY+LCBzYW1wbGVy
LCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgaGFsZiBMb2FkKFRleHR1cmUx
RDxoYWxmPiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUgaGFsZiBMb2FkKFRleHR1cmUxRDxoYWxm
PiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25z
KFRleHR1cmUxRDxoYWxmPiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJl
YWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIGhhbGYyIFNhbXBsZShUZXh0dXJlMUQ8
aGFsZjI+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUgaGFsZjIgU2FtcGxlKFRl
eHR1cmUxRDxoYWxmMj4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25h
dGl2ZSBoYWxmMiBMb2FkKFRleHR1cmUxRDxoYWxmMj4sIGludDIgbG9jYXRpb24pOworbmF0aXZl
IGhhbGYyIExvYWQoVGV4dHVyZTFEPGhhbGYyPiwgaW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7
CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDxoYWxmMj4sIHVpbnQgTWlwTGV2
ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTsKK25h
dGl2ZSBoYWxmMyBTYW1wbGUoVGV4dHVyZTFEPGhhbGYzPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRp
b24pOworbmF0aXZlIGhhbGYzIFNhbXBsZShUZXh0dXJlMUQ8aGFsZjM+LCBzYW1wbGVyLCBmbG9h
dCBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgaGFsZjMgTG9hZChUZXh0dXJlMUQ8aGFs
ZjM+LCBpbnQyIGxvY2F0aW9uKTsKK25hdGl2ZSBoYWxmMyBMb2FkKFRleHR1cmUxRDxoYWxmMz4s
IGludDIgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhU
ZXh0dXJlMUQ8aGFsZjM+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVh
ZCB1aW50KiBOdW1iZXJPZkxldmVscyk7CituYXRpdmUgaGFsZjQgU2FtcGxlKFRleHR1cmUxRDxo
YWxmND4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2ZSBoYWxmNCBTYW1wbGUoVGV4
dHVyZTFEPGhhbGY0Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0
aXZlIGhhbGY0IExvYWQoVGV4dHVyZTFEPGhhbGY0PiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUg
aGFsZjQgTG9hZChUZXh0dXJlMUQ8aGFsZjQ+LCBpbnQyIGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsK
K25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPGhhbGY0PiwgdWludCBNaXBMZXZl
bCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0
aXZlIGZsb2F0IFNhbXBsZShUZXh0dXJlMUQ8ZmxvYXQ+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlv
bik7CituYXRpdmUgZmxvYXQgU2FtcGxlKFRleHR1cmUxRDxmbG9hdD4sIHNhbXBsZXIsIGZsb2F0
IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSBmbG9hdCBMb2FkKFRleHR1cmUxRDxmbG9h
dD4sIGludDIgbG9jYXRpb24pOworbmF0aXZlIGZsb2F0IExvYWQoVGV4dHVyZTFEPGZsb2F0Piwg
aW50MiBsb2NhdGlvbiwgaW50IG9mZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRl
eHR1cmUxRDxmbG9hdD4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFk
IHVpbnQqIE51bWJlck9mTGV2ZWxzKTsKK25hdGl2ZSBmbG9hdDIgU2FtcGxlKFRleHR1cmUxRDxm
bG9hdDI+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7CituYXRpdmUgZmxvYXQyIFNhbXBsZShU
ZXh0dXJlMUQ8ZmxvYXQyPiwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpOwor
bmF0aXZlIGZsb2F0MiBMb2FkKFRleHR1cmUxRDxmbG9hdDI+LCBpbnQyIGxvY2F0aW9uKTsKK25h
dGl2ZSBmbG9hdDIgTG9hZChUZXh0dXJlMUQ8ZmxvYXQyPiwgaW50MiBsb2NhdGlvbiwgaW50IG9m
ZnNldCk7CituYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDxmbG9hdDI+LCB1aW50
IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVs
cyk7CituYXRpdmUgZmxvYXQzIFNhbXBsZShUZXh0dXJlMUQ8ZmxvYXQzPiwgc2FtcGxlciwgZmxv
YXQgbG9jYXRpb24pOworbmF0aXZlIGZsb2F0MyBTYW1wbGUoVGV4dHVyZTFEPGZsb2F0Mz4sIHNh
bXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSBmbG9hdDMgTG9hZChU
ZXh0dXJlMUQ8ZmxvYXQzPiwgaW50MiBsb2NhdGlvbik7CituYXRpdmUgZmxvYXQzIExvYWQoVGV4
dHVyZTFEPGZsb2F0Mz4sIGludDIgbG9jYXRpb24sIGludCBvZmZzZXQpOworbmF0aXZlIHZvaWQg
R2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8ZmxvYXQzPiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVp
bnQqIFdpZHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpOworbmF0aXZlIGZsb2F0NCBT
YW1wbGUoVGV4dHVyZTFEPGZsb2F0ND4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTsKK25hdGl2
ZSBmbG9hdDQgU2FtcGxlKFRleHR1cmUxRDxmbG9hdDQ+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlv
biwgaW50IG9mZnNldCk7CituYXRpdmUgZmxvYXQ0IExvYWQoVGV4dHVyZTFEPGZsb2F0ND4sIGlu
dDIgbG9jYXRpb24pOworbmF0aXZlIGZsb2F0NCBMb2FkKFRleHR1cmUxRDxmbG9hdDQ+LCBpbnQy
IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTsKK25hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVy
ZTFEPGZsb2F0ND4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVp
bnQqIE51bWJlck9mTGV2ZWxzKTsKKwogYDsKIAogLy8gRklYTUU6IE9uY2UgdGhlIHN0YW5kYXJk
IGxpYnJhcnkgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCBhIG5ldyB2ZXJzaW9uLCB0aGlzIGNvbW1l
bnRzIHNob3VsZCBiZSByZW1vdmVkLgpAQCAtMjE3LDIyICszMjI3LDMgQEAgZnVuY3Rpb24gYWxs
VmVjdG9yVHlwZU5hbWVzKCkKICAgICB9CiAgICAgcmV0dXJuIG5hbWVzOwogfQotCi0vLyBQcm92
aWRlcyBvcGVyYXRvciZbXQotc3RhbmRhcmRMaWJyYXJ5ICs9IE9wZXJhdG9yQW5kZXJJbmRleGVy
LmZ1bmN0aW9ucygpLmpvaW4oIjtcbiIpICsgIjtcbiI7Ci0KLS8vIE5hdGl2ZSB2ZWN0b3IgdHlw
ZXMgYXJlIGxpa2Ugc3RydWN0cyBpbiB0aGUgbGFuZ2F1Z2UsIGJ1dCB0aGV5IGRvIG5vdCBoYXZl
IHRoZSBhbmRlciBmaWVsZCBhY2Nlc3MuCi0vLyBJdCBpcyBub3QgcG9zc2libGUgdG8gdGFrZSB0
aGUgYWRkcmVzcyBvZiBhIHZlY3RvciBmaWVsZC4KLXN0YW5kYXJkTGlicmFyeSArPSBCdWlsdGlu
VmVjdG9yR2V0dGVyLmZ1bmN0aW9ucygpLmpvaW4oIjtcbiIpICsgIjtcbiI7Ci1zdGFuZGFyZExp
YnJhcnkgKz0gQnVpbHRpblZlY3RvclNldHRlci5mdW5jdGlvbnMoKS5qb2luKCI7XG4iKSArICI7
XG4iOwotc3RhbmRhcmRMaWJyYXJ5ICs9IEJ1aWx0aW5WZWN0b3JJbmRleEdldHRlci5mdW5jdGlv
bnMoKS5qb2luKCI7XG4iKSArICI7XG4iOwotc3RhbmRhcmRMaWJyYXJ5ICs9IEJ1aWx0aW5WZWN0
b3JJbmRleFNldHRlci5mdW5jdGlvbnMoKS5qb2luKCI7XG4iKSArICI7XG4iOwotCi0vLyBGSVhN
RTogRm9yIG5hdGl2ZSB0eXBlcyB0aGVzZSBjb3VsZCBiZSBpbmNsdWRlZCBhcyBzb3VyY2UgaW4g
dGhlIHN0YW5kYXJkIGxpYnJhcnkuCi0vLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg4Njg1Ci1zdGFuZGFyZExpYnJhcnkgKz0gT3BlcmF0b3JCb29sLmZ1bmN0aW9u
cygpLmpvaW4oIjtcbiIpICsgIjtcbiI7Ci1zdGFuZGFyZExpYnJhcnkgKz0gQnVpbHRpblZlY3Rv
ckVxdWFsaXR5T3BlcmF0b3IuZnVuY3Rpb25zKCkuam9pbigiO1xuIikgKyAiO1xuIjsKLQotLy8g
RklYTUU6IFRoZXNlIG5lZWQgdG8gYmUgaW5jbHVkZWQgYXMgc291cmNlIGluIHRoZSBzdGFuZGFy
ZCBsaWJyYXJ5Lgotc3RhbmRhcmRMaWJyYXJ5ICs9IFN3aXp6bGVPcC5mdW5jdGlvbnMoKS5qb2lu
KCI7XG4iKSArICI7XG4iOwotc3RhbmRhcmRMaWJyYXJ5ICs9IEJ1aWx0aW5WZWN0b3JDb25zdHJ1
Y3RvcnMuZnVuY3Rpb25zKCkuam9pbigiO1xuIikgKyAiO1xuIjsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N3aXp6bGVPcC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1N3aXp6bGVPcC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MjU5OThlZjc5ZDk4YTUyODgyMDk4NzVkMzQ2Y2Y1NTA5ZTliYTcyNi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9Td2l6emxlT3AuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMDcgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0idXNlIHN0cmljdCI7Ci0KLWNs
YXNzIFN3aXp6bGVPcCB7Ci0gICAgY29uc3RydWN0b3IoYmFzZVR5cGVOYW1lLCBvdXRTaXplLCBj
b21wb25lbnRzLCBpblNpemUpCi0gICAgewotICAgICAgICB0aGlzLl9iYXNlVHlwZU5hbWUgPSBi
YXNlVHlwZU5hbWU7Ci0gICAgICAgIHRoaXMuX291dFNpemUgPSBvdXRTaXplOwotICAgICAgICB0
aGlzLl9jb21wb25lbnRzID0gY29tcG9uZW50cy5zbGljZSgpOyAvLyBTaGFsbG93IGNsb25lCi0g
ICAgICAgIHRoaXMuX2luU2l6ZSA9IGluU2l6ZTsKLSAgICB9Ci0KLSAgICBnZXQgYmFzZVR5cGVO
YW1lKCkgeyByZXR1cm4gdGhpcy5fYmFzZVR5cGVOYW1lOyB9Ci0gICAgZ2V0IG91dFNpemUoKSB7
IHJldHVybiB0aGlzLl9vdXRTaXplOyB9Ci0gICAgZ2V0IGNvbXBvbmVudHMoKSB7IHJldHVybiB0
aGlzLl9jb21wb25lbnRzOyB9Ci0gICAgZ2V0IGluU2l6ZSgpIHsgcmV0dXJuIHRoaXMuX2luU2l6
ZTsgfQotCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGBuYXRpdmUgJHt0
aGlzLmJhc2VUeXBlTmFtZX0ke3RoaXMub3V0U2l6ZX0gb3BlcmF0b3IuJHt0aGlzLmNvbXBvbmVu
dHMuam9pbigiIil9KCR7dGhpcy5iYXNlVHlwZU5hbWV9JHt0aGlzLmluU2l6ZX0gdilgOwotICAg
IH0KLQotICAgIHN0YXRpYyBpbnRUb1N0cmluZyh4KQotICAgIHsKLSAgICAgICAgc3dpdGNoICh4
KSB7Ci0gICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAgIHJldHVybiAieCI7Ci0gICAgICAgIGNh
c2UgMToKLSAgICAgICAgICAgIHJldHVybiAieSI7Ci0gICAgICAgIGNhc2UgMjoKLSAgICAgICAg
ICAgIHJldHVybiAieiI7Ci0gICAgICAgIGNhc2UgMzoKLSAgICAgICAgICAgIHJldHVybiAidyI7
Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNvdWxkIG5v
dCBnZW5lcmF0ZSBzdGFuZGFyZCBsaWJyYXJ5LiIpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAg
c3RhdGljIGZ1bmN0aW9ucygpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX2Z1bmN0aW9ucykg
ewotICAgICAgICAgICAgLy8gV2UgY2FuJ3QgZGlyZWN0bHkgdXNlIHRoaXMuX2Z1bmN0aW9ucyBp
biBfZ2VuZXJhdGVTd2l6emxlcy4KLSAgICAgICAgICAgIGNvbnN0IGZ1bmN0aW9ucyA9IFtdOwot
Ci0gICAgICAgICAgICBmdW5jdGlvbiBfZ2VuZXJhdGVTd2l6emxlKGJhc2VUeXBlTmFtZSwgbWF4
RGVwdGgsIG1heEl0ZW1zLCBhcnJheSkgewotICAgICAgICAgICAgICAgIGlmICghYXJyYXkpCi0g
ICAgICAgICAgICAgICAgICAgIGFycmF5ID0gW107Ci0gICAgICAgICAgICAgICAgaWYgKGFycmF5
Lmxlbmd0aCA9PSBtYXhEZXB0aCkgewotICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbnMucHVz
aChuZXcgU3dpenpsZU9wKGJhc2VUeXBlTmFtZSwgYXJyYXkubGVuZ3RoLCBhcnJheSwgbWF4SXRl
bXMpKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1heEl0ZW1zOyArK2kpIHsKLSAgICAg
ICAgICAgICAgICAgICAgYXJyYXkucHVzaChTd2l6emxlT3AuaW50VG9TdHJpbmcoaSkpOwotICAg
ICAgICAgICAgICAgICAgICBfZ2VuZXJhdGVTd2l6emxlKGJhc2VUeXBlTmFtZSwgbWF4RGVwdGgs
IG1heEl0ZW1zLCBhcnJheSk7Ci0gICAgICAgICAgICAgICAgICAgIGFycmF5LnBvcCgpOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH07Ci0KLSAgICAgICAgICAgIGZvciAobGV0IHR5
cGVOYW1lIG9mIFZlY3RvckVsZW1lbnRUeXBlcykgewotICAgICAgICAgICAgICAgIGZvciAobGV0
IG1heERlcHRoIG9mIFZlY3RvckVsZW1lbnRTaXplcykgewotICAgICAgICAgICAgICAgICAgICBm
b3IgKGxldCBtYXhJdGVtcyA9IDI7IG1heEl0ZW1zIDw9IDQ7IG1heEl0ZW1zKyspCi0gICAgICAg
ICAgICAgICAgICAgICAgICBfZ2VuZXJhdGVTd2l6emxlKHR5cGVOYW1lLCBtYXhEZXB0aCwgbWF4
SXRlbXMpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
dGhpcy5fZnVuY3Rpb25zID0gZnVuY3Rpb25zOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0
aGlzLl9mdW5jdGlvbnM7Ci0gICAgfQotCi0gICAgaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihm
dW5jKQotICAgIHsKLSAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmVjXSwgbm9kZSkg
PT4gewotICAgICAgICAgICAgY29uc3Qgb3V0cHV0QnVmZmVyID0gbmV3IEVCdWZmZXIodGhpcy5v
dXRTaXplKTsKLSAgICAgICAgICAgIGNvbnN0IHJlYWRJbmRpY2VzID0geyAneCc6IDAsICd5Jzog
MSwgJ3onOiAyLCAndyc6IDMgfTsKLSAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhp
cy5vdXRTaXplOyBpKyspCi0gICAgICAgICAgICAgICAgb3V0cHV0QnVmZmVyLnNldChpLCB2ZWMu
Z2V0KHJlYWRJbmRpY2VzW3RoaXMuY29tcG9uZW50c1tpXV0pKTsKLQotCi0gICAgICAgICAgICBy
ZXR1cm4gbmV3IEVQdHIob3V0cHV0QnVmZmVyLCAwKTsKLSAgICAgICAgfTsKLSAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbkRhdGEgPSB0aGlzOwotICAgIH0KLX0KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50
aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMKaW5kZXgg
M2EzZjc2NzM4NjdiOWFhYjAxMzIyMTgwMzU2ODczOGMxNjNhNTY3ZS4uZGM1MDY1MzhkMWM2Yzcx
MDliMWFkMWVjYmEzY2VjMjc4ZDBmN2I1YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzCisrKyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0
b3JPcGVyYXRvci5qcwpAQCAtNTEsNiArNTEsMTIgQEAgZnVuY3Rpb24gc3ludGhlc2l6ZURlZmF1
bHRDb25zdHJ1Y3Rvck9wZXJhdG9yKHByb2dyYW0pCiAgICAgICAgICAgICB0eXBlcy5hZGQobm9k
ZSk7CiAgICAgICAgICAgICBzdXBlci52aXNpdFZlY3RvclR5cGUobm9kZSk7CiAgICAgICAgIH0K
KworICAgICAgICB2aXNpdE1hdHJpeFR5cGUobm9kZSkKKyAgICAgICAgeworICAgICAgICAgICAg
dHlwZXMuYWRkKG5vZGUpOworICAgICAgICAgICAgc3VwZXIudmlzaXRNYXRyaXhUeXBlKG5vZGUp
OworICAgICAgICB9CiAgICAgfQogCiAgICAgcHJvZ3JhbS52aXNpdChuZXcgRmluZEFsbFR5cGVz
KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6
ZU9wZXJhdG9yQm9vbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNp
emVPcGVyYXRvckJvb2wuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5NWZlMTM3
NTNkMGEyNjQzYjA5NWI1MzRiMTE5MjE3ZjYyNTM4YjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3lu
dGhlc2l6ZU9wZXJhdG9yQm9vbC5qcworKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsK
LQotZnVuY3Rpb24gc3ludGhlc2l6ZU9wZXJhdG9yQm9vbChwcm9ncmFtKQotewotICAgIGZvciAo
bGV0IHR5cGUgb2YgcHJvZ3JhbS50eXBlcy52YWx1ZXMoKSkgewotICAgICAgICBpZiAoISh0eXBl
IGluc3RhbmNlb2YgU3RydWN0VHlwZSkgJiYgISh0eXBlIGluc3RhbmNlb2YgRW51bVR5cGUpKQot
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGNvbnN0IGZ1bmMgPSBuZXcgTmF0aXZlRnVu
Yyh0eXBlLm9yaWdpbiwgIm9wZXJhdG9yIGNhc3QiLCBUeXBlUmVmLndyYXAocHJvZ3JhbS50eXBl
cy5nZXQoImJvb2wiKSksIFsgbmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51bGwsIFR5
cGVSZWYud3JhcCh0eXBlKSkgXSwgdHJ1ZSwgbnVsbCk7Ci0gICAgICAgIGNvbnN0IG9wZXJhdG9y
Qm9vbCA9IG5ldyBPcGVyYXRvckJvb2wodHlwZS5uYW1lKTsKLSAgICAgICAgb3BlcmF0b3JCb29s
Lmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYyk7Ci0gICAgICAgIHByb2dyYW0uYWRkKGZ1
bmMpOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1Rlc3QuaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbAppbmRl
eCA3ZDI2ZDI2MDdhOTVmOWJmNjRkZjFiY2E5MTY1OGYyZTc0OGMwNDNkLi42OWM5MTA0OTJlZDEx
YWIyYjMwZTI3ODNlYWY3ZWJiZmZkZmUxNjBhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVGVzdC5odG1sCkBAIC0xMSw3ICsxMSw2IEBACiA8c2NyaXB0IHNyYz0iQ3JlYXRlTGl0ZXJh
bC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ3JlYXRlTGl0ZXJhbFR5cGUuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iU3dpenpsZU9wLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOYXRp
dmVUeXBlLmpzIj48L3NjcmlwdD4KIAogPHNjcmlwdCBzcmM9IkFkZHJlc3NTcGFjZS5qcyI+PC9z
Y3JpcHQ+CkBAIC0yMywxMiArMjIsMTAgQEAKIDxzY3JpcHQgc3JjPSJCbG9jay5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iQm9vbExpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
IkJyZWFrLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9yQ29uc3RydWN0
b3JzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJCdWlsdGluTWF0cml4R2V0dGVyLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJCdWlsdGluTWF0cml4U2V0dGVyLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9yR2V0dGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJCdWlsdGluVmVjdG9yU2V0dGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJCdWls
dGluVmVjdG9ySW5kZXhHZXR0ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkJ1aWx0aW5W
ZWN0b3JJbmRleFNldHRlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iQnVpbHRpblZlY3Rv
ckVxdWFsaXR5T3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNhbGxFeHByZXNz
aW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDYWxsRnVuY3Rpb24uanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IkNoZWNrLmpzIj48L3NjcmlwdD4KQEAgLTkwLDYgKzg3LDcgQEAKIDxz
Y3JpcHQgc3JjPSJMb29wQ2hlY2tlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTWFrZUFy
cmF5UmVmRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTWFrZVB0ckV4cHJl
c3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ik1hdHJpeFR5cGUuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9Ik5hbWVDb250ZXh0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJO
YW1lRmluZGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOYW1lUmVzb2x2ZXIuanMiPjwv
c2NyaXB0PgpAQCAtOTcsOSArOTUsOCBAQAogPHNjcmlwdCBzcmM9Ik5vcm1hbFVzZVByb3BlcnR5
UmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik51bGxMaXRlcmFsLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJOdWxsVHlwZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
T3BlcmF0b3JBbmRlckluZGV4LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJPcGVyYXRvckFu
ZGVySW5kZXhlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iT3BlcmF0b3JBcnJheVJlZkxl
bmd0aC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iT3BlcmF0b3JCb29sLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJPcmlnaW5LaW5kLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJP
dmVybG9hZFJlc29sdXRpb25GYWlsdXJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJQYXJz
ZS5qcyI+PC9zY3JpcHQ+CkBAIC0xMjcsMTAgKzEyNCwxMCBAQAogPHNjcmlwdCBzcmM9IlN5bnRo
ZXNpemVBcnJheU9wZXJhdG9yTGVuZ3RoLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTeW50
aGVzaXplRW51bUZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6
ZVN0cnVjdEFjY2Vzc29ycy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iU3ludGhlc2l6ZU9w
ZXJhdG9yQm9vbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlDb25z
dHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRGVm
YXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRlcm5h
cnlFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUZXh0dXJlT3BlcmF0aW9u
cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHJhcFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURl
ZlJlc29sdmVyLmpzIj48L3NjcmlwdD4KQEAgLTE1Niw3ICsxNTMsNyBAQAogPHNjcmlwdD4KIGZ1
bmN0aW9uIGRvVGVzdEluQnJvd3NlcigpCiB7Ci0gICAgdmFyIHRlc3RlciA9IGRvVGVzdCgvLiov
KTsKKyAgICB2YXIgdGVzdGVyID0gZG9UZXN0KC90ZXh0dXJlLyk7CiAgICAgdmFyIGxhc3RUaW1l
OwogICAgIGZ1bmN0aW9uIG5leHQoKQogICAgIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9U
ZXN0LmpzCmluZGV4IDRmMzk1YTk0Y2M3MjgzZGQ2MmEwMDRmYTFkNGMzYjlmYWFkMzBhNjEuLmU4
NTFmZWNkNzk0ZWJiMzAwYjdkMmJlMmI4ZTc0NWJkNDhiMTcxNDggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvVGVzdC5qcwpAQCAtNzgsNiArNzgsMTUwIEBAIGZ1bmN0aW9uIG1ha2VGbG9h
dChwcm9ncmFtLCB2YWx1ZSkKICAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRy
aW5zaWNzLmZsb2F0LCB2YWx1ZSk7CiB9CiAKK2Z1bmN0aW9uIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHNhbXBsZXJEYXRhKQoreworICAgIC8vIGVudW0gQWRkcmVzc01vZGUgeworICAgIC8vICAgICAi
Y2xhbXBUb0VkZ2UiLAorICAgIC8vICAgICAibWlycm9yQ2xhbXBUb0VkZ2UiLAorICAgIC8vICAg
ICAicmVwZWF0IiwKKyAgICAvLyAgICAgIm1pcnJvclJlcGVhdCIsCisgICAgLy8gICAgICJjbGFt
cFRvQm9yZGVyQ29sb3IiCisgICAgLy8gfQorICAgIC8vCisgICAgLy8gZW51bSBGaWx0ZXIgewor
ICAgIC8vICAgICAibmVhcmVzdCIsCisgICAgLy8gICAgICJsaW5lYXIiCisgICAgLy8gfQorICAg
IC8vCisgICAgLy8gZW51bSBDb21wYXJlRnVuY3Rpb24geworICAgIC8vICAgICAibmV2ZXIiLAor
ICAgIC8vICAgICAibGVzcyIsCisgICAgLy8gICAgICJlcXVhbCIsCisgICAgLy8gICAgICJsZXNz
RXF1YWwiLAorICAgIC8vICAgICAiZ3JlYXRlciIsCisgICAgLy8gICAgICJub3RFcXVhbCIsCisg
ICAgLy8gICAgICJncmVhdGVyRXF1YWwiLAorICAgIC8vICAgICAiYWx3YXlzIgorICAgIC8vIH0K
KyAgICAvLworICAgIC8vIGVudW0gQm9yZGVyQ29sb3IgeworICAgIC8vICAgICAidHJhbnNwYXJl
bnRCbGFjayIsCisgICAgLy8gICAgICJvcGFxdWVCbGFjayIsCisgICAgLy8gICAgICJvcGFxdWVX
aGl0ZSIKKyAgICAvLyB9CisgICAgLy8KKyAgICAvLyBkaWN0aW9uYXJ5IFNhbXBsZXJEYXRhIHsK
KyAgICAvLyAgICAgQWRkcmVzc01vZGUgckFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIiwKKyAg
ICAvLyAgICAgQWRkcmVzc01vZGUgc0FkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIiwKKyAgICAv
LyAgICAgQWRkcmVzc01vZGUgdEFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIiwKKyAgICAvLyAg
ICAgRmlsdGVyIG1pbkZpbHRlciA9ICJuZWFyZXN0IiwKKyAgICAvLyAgICAgRmlsdGVyIG1hZ0Zp
bHRlciA9ICJuZWFyZXN0IiwKKyAgICAvLyAgICAgRmlsdGVyIG1pcEZpbHRlciA9ICJuZWFyZXN0
IiwKKyAgICAvLyAgICAgZmxvYXQgbG9kTWluQ2xhbXAgPSAwLAorICAgIC8vICAgICBmbG9hdCBs
b2RNYXhDbGFtcCA9IEZMVF9NQVgsCisgICAgLy8gICAgIHVuc2lnbmVkIGxvbmcgbWF4QW5pc290
cm9weSA9IDEsCisgICAgLy8gICAgIGJvb2xlYW4gbm9ybWFsaXplZENvb3JkaW5hdGVzID0gdHJ1
ZSwKKyAgICAvLyAgICAgQ29tcGFyZUZ1bmN0aW9uIGNvbXBhcmVGdW5jdGlvbiA9ICJuZXZlciIs
CisgICAgLy8gICAgIEJvcmRlckNvbG9yIGJvcmRlckNvbG9yID0gInRyYW5zcGFyZW50QmxhY2si
CisgICAgLy8gICAgIGZsb2F0IGJpYXMgPSAwOworICAgIC8vIH0KKyAgICAvLworICAgIHJldHVy
biBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3Muc2FtcGxlciwgc2FtcGxlckRhdGEp
OworfQorCitmdW5jdGlvbiBpc1Bvd2VyT2YyKHgpCit7CisgICAgcmV0dXJuIHggJiYgKHggJiAo
eCAtIDEpKSA9PT0gMDsKK30KKworZnVuY3Rpb24gZWxlbWVudFZlY3RvclNpemUoZWxlbWVudFR5
cGUpCit7CisgICAgc3dpdGNoIChlbGVtZW50VHlwZSkgeworICAgICAgICBjYXNlICJib29sIjoK
KyAgICAgICAgY2FzZSAidWNoYXIiOgorICAgICAgICBjYXNlICJ1c2hvcnQiOgorICAgICAgICBj
YXNlICJ1aW50IjoKKyAgICAgICAgY2FzZSAiY2hhciI6CisgICAgICAgIGNhc2UgInNob3J0IjoK
KyAgICAgICAgY2FzZSAiaW50IjoKKyAgICAgICAgY2FzZSAiaGFsZiI6CisgICAgICAgIGNhc2Ug
ImZsb2F0IjoKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICBjYXNlICJib29sMiI6
CisgICAgICAgIGNhc2UgInVjaGFyMiI6CisgICAgICAgIGNhc2UgInVzaG9ydDIiOgorICAgICAg
ICBjYXNlICJ1aW50MiI6CisgICAgICAgIGNhc2UgImNoYXIyIjoKKyAgICAgICAgY2FzZSAic2hv
cnQyIjoKKyAgICAgICAgY2FzZSAiaW50MiI6CisgICAgICAgIGNhc2UgImhhbGYyIjoKKyAgICAg
ICAgY2FzZSAiZmxvYXQyIjoKKyAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICBjYXNlICJi
b29sMyI6CisgICAgICAgIGNhc2UgInVjaGFyMyI6CisgICAgICAgIGNhc2UgInVzaG9ydDMiOgor
ICAgICAgICBjYXNlICJ1aW50MyI6CisgICAgICAgIGNhc2UgImNoYXIzIjoKKyAgICAgICAgY2Fz
ZSAic2hvcnQzIjoKKyAgICAgICAgY2FzZSAiaW50MyI6CisgICAgICAgIGNhc2UgImhhbGYzIjoK
KyAgICAgICAgY2FzZSAiZmxvYXQzIjoKKyAgICAgICAgICAgIHJldHVybiAzOworICAgICAgICBj
YXNlICJib29sNCI6CisgICAgICAgIGNhc2UgInVjaGFyNCI6CisgICAgICAgIGNhc2UgInVzaG9y
dDQiOgorICAgICAgICBjYXNlICJ1aW50NCI6CisgICAgICAgIGNhc2UgImNoYXI0IjoKKyAgICAg
ICAgY2FzZSAic2hvcnQ0IjoKKyAgICAgICAgY2FzZSAiaW50NCI6CisgICAgICAgIGNhc2UgImhh
bGY0IjoKKyAgICAgICAgY2FzZSAiZmxvYXQ0IjoKKyAgICAgICAgICAgIHJldHVybiA0OworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHZlY3Rv
ciBlbGVtZW50IHR5cGUiKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIG1ha2UxRFRleHR1cmUocHJv
Z3JhbSwgbWlwbWFwcywgZWxlbWVudFR5cGUpCit7CisgICAgdmFyIHZlY3RvclNpemUgPSBlbGVt
ZW50VmVjdG9yU2l6ZShlbGVtZW50VHlwZSk7CisKKyAgICBpZiAoIShtaXBtYXBzIGluc3RhbmNl
b2YgQXJyYXkpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlRleHR1cmUgbmVlZHMgdG8gYmUg
YW4gYXJyYXkgb2YgbWlwbWFwcyIpOworICAgIGlmIChtaXBtYXBzLmxlbmd0aCA9PSAwKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIk5lZWQgdG8gaGF2ZSBhdCBsZWFzdCAxIG1pcG1hcCIpOwor
ICAgIHZhciBzaXplID0gbWlwbWFwc1swXS5sZW5ndGg7CisgICAgaWYgKCFpc1Bvd2VyT2YyKHNp
emUpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlRleHR1cmVzIG11c3QgYmUgcG93ZXItb2Yt
dHdvIHNpemVkIik7CisgICAgZm9yICh2YXIgbWlwbWFwIG9mIG1pcG1hcHMpIHsKKyAgICAgICAg
aWYgKHNpemUgPT0gMCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGhhdmUg
emVyby1zaXplZCBtaXBtYXAiKTsKKyAgICAgICAgaWYgKCEobWlwbWFwIGluc3RhbmNlb2YgQXJy
YXkpKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJFYWNoIG1pcG1hcCBvZiBhIHRleHR1
cmUgbmVlZHMgdG8gYmUgYW4gYXJyYXkgb2YgdmFsdWVzIik7CisgICAgICAgIGlmIChtaXBtYXAu
bGVuZ3RoICE9IHNpemUpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkVhY2ggbWlwbWFw
IG9mIGEgdGV4dHVyZSBtdXN0IGJlIGhhbGYgYXMgYmlnIGFzIHRoZSBwcmV2aW91cyBvbmUiKTsK
KyAgICAgICAgZm9yICh2YXIgZWxlbWVudCBvZiBtaXBtYXApIHsKKyAgICAgICAgICAgIGlmICh2
ZWN0b3JTaXplID09IG51bGwgJiYgKHR5cGVvZiBlbGVtZW50KSAhPSAibnVtYmVyIikgeworICAg
ICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtlbGVtZW50VHlwZX0gdGV4dHVyZSBlbGVt
ZW50IG11c3QgYmUgYSBudW1iZXJgKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodmVjdG9yU2l6
ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgaWYgKCEoZWxlbWVudCBpbnN0YW5jZW9mIEFy
cmF5KSkKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2VsZW1lbnRUeXBl
fSB0ZXh0dXJlIGVsZW1lbnQgbXVzdCBiZSBhbiBhcnJheWApOworICAgICAgICAgICAgICAgIGlm
IChlbGVtZW50LnNpemUgIT0gdmVjdG9yU2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJXcm9uZyBudW1iZXIgb2YgY29tcG9uZW50cyBpbiB0ZXh0dXJlIGVsZW1lbnQi
KTsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBjb21wb25lbnQgb2YgZWxlbWVudCkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAoKHR5cGVvZiBjb21wb25lbnQpICE9ICJudW1iZXIiKQorICAg
ICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb21wb25lbnQgbmVlZHMgdG8g
YmUgYSBudW1iZXIiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyAgICAgICAgaWYgKHNpemUgPT0gMSkKKyAgICAgICAgICAgIHNpemUgPSAwOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBzaXplIC89IDI7CisgICAgfQorICAgIHJldHVybiBUeXBlZFZh
bHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmUxRDwke2VsZW1lbnRUeXBlfT5gXSwg
bWlwbWFwcyk7Cit9CisKIGZ1bmN0aW9uIG1ha2VFbnVtKHByb2dyYW0sIGVudW1OYW1lLCB2YWx1
ZSkKIHsKICAgICBsZXQgZW51bVR5cGUgPSBwcm9ncmFtLnR5cGVzLmdldChlbnVtTmFtZSk7CkBA
IC0xODEsNiArMzI1LDM1IEBAIHRlc3RzID0gbmV3IFByb3h5KHt9LCB7CiAgICAgfQogfSk7CiAK
K3Rlc3RzLnRleHR1cmVEaW1lbnNpb25zID0gZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0g
PSBkb1ByZXAoYAorICAgICAgICB1aW50IGZvbyhUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUpIHsK
KyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxz
OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZudW1iZXJP
ZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAg
dWludCBiYXIoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdp
ZHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERp
bWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAg
ICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgYCk7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2UxRFRleHR1cmUo
cHJvZ3JhbSwgW1sxLCA3LCAxNCwgNzldLCBbMTMsIDE2XSwgWzE1XV0sICJmbG9hdCIpXSksIDQp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtt
YWtlMURUZXh0dXJlKHByb2dyYW0sIFtbMSwgNywgMTQsIDc5XSwgWzEzLCAxNl0sIFsxNV1dLCAi
ZmxvYXQiKV0pLCAzKTsKK30KKwordGVzdHMudGV4dHVyZUxvYWQgPSBmdW5jdGlvbigpIHsKKyAg
ICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCisgICAgICAgIGZsb2F0IGZvbyhUZXh0dXJlMUQ8Zmxv
YXQ+IHRleHR1cmUsIGludCBtaXBtYXAsIGludCBsb2NhdGlvbikgeworICAgICAgICAgICAgcmV0
dXJuIExvYWQodGV4dHVyZSwgaW50MihtaXBtYXAsIGxvY2F0aW9uKSk7CisgICAgICAgIH0KKyAg
ICBgKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2UxRFRleHR1cmUocHJvZ3JhbSwgW1sxLCA3LCAxNCwgNzldLCBbMTMsIDE2XSwgWzE1
XV0sICJmbG9hdCIpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZTFEVGV4dHVyZShwcm9ncmFtLCBbWzEsIDcsIDE0LCA3OV0sIFsxMywgMTZdLCBbMTVd
XSwgImZsb2F0IiksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
MTYpOworfQorCiB0ZXN0cy5jb21tZW50UGFyc2luZyA9IGZ1bmN0aW9uKCkgewogICAgIGxldCBw
cm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgLyogdGhpcyBjb21tZW50CkBAIC0yMjE1LDQxICsy
Mzg4LDYgQEAgdGVzdHMub3BlcmF0b3JCb29sID0gZnVuY3Rpb24oKQogCiAgICAgICAgIGJvb2wg
Ym9vbEZyb21GbG9hdEZhbHNlKCkgeyByZXR1cm4gYm9vbChmbG9hdCgwKSk7IH0KICAgICAgICAg
Ym9vbCBib29sRnJvbUZsb2F0VHJ1ZSgpIHsgcmV0dXJuIGJvb2woZmxvYXQoMSkpOyB9Ci0KLSAg
ICAgICAgYm9vbCBib29sRnJvbUludDJGYWxzZSgpIHsgcmV0dXJuIGJvb2woaW50MigwLCAwKSk7
IH0KLSAgICAgICAgYm9vbCBib29sRnJvbUludDJUcnVlMSgpIHsgcmV0dXJuIGJvb2woaW50Migx
LCAwKSk7IH0KLSAgICAgICAgYm9vbCBib29sRnJvbUludDJUcnVlMigpIHsgcmV0dXJuIGJvb2wo
aW50MigwLCAxKSk7IH0KLQotICAgICAgICBib29sIGJvb2xGcm9tRmxvYXQzRmFsc2UoKSB7IHJl
dHVybiBib29sKGZsb2F0MygwLCAwLCAwKSk7IH0KLSAgICAgICAgYm9vbCBib29sRnJvbUZsb2F0
M1RydWUxKCkgeyByZXR1cm4gYm9vbChmbG9hdDMoMSwgMCwgMCkpOyB9Ci0gICAgICAgIGJvb2wg
Ym9vbEZyb21GbG9hdDNUcnVlMigpIHsgcmV0dXJuIGJvb2woZmxvYXQzKDAsIDEsIDApKTsgfQot
ICAgICAgICBib29sIGJvb2xGcm9tRmxvYXQzVHJ1ZTMoKSB7IHJldHVybiBib29sKGZsb2F0Mygw
LCAwLCAxKSk7IH0KLQotICAgICAgICBib29sIGJvb2xGcm9tVWludDRGYWxzZSgpIHsgcmV0dXJu
IGJvb2wodWludDQoMCwgMCwgMCwgMCkpOyB9Ci0gICAgICAgIGJvb2wgYm9vbEZyb21VaW50NFRy
dWUxKCkgeyByZXR1cm4gYm9vbCh1aW50NCgxLCAwLCAwLCAwKSk7IH0KLSAgICAgICAgYm9vbCBi
b29sRnJvbVVpbnQ0VHJ1ZTIoKSB7IHJldHVybiBib29sKHVpbnQ0KDAsIDEsIDAsIDApKTsgfQot
ICAgICAgICBib29sIGJvb2xGcm9tVWludDRUcnVlMygpIHsgcmV0dXJuIGJvb2wodWludDQoMCwg
MCwgMSwgMCkpOyB9Ci0gICAgICAgIGJvb2wgYm9vbEZyb21VaW50NFRydWU0KCkgeyByZXR1cm4g
Ym9vbCh1aW50NCgwLCAwLCAwLCAxKSk7IH0KLQotICAgICAgICBzdHJ1Y3QgWCB7IGludCB4OyB9
Ci0KLSAgICAgICAgYm9vbCBib29sRnJvbVN0cnVjdEZhbHNlKCkKLSAgICAgICAgewotICAgICAg
ICAgICAgWCB4OwotICAgICAgICAgICAgcmV0dXJuIGJvb2woeCk7Ci0gICAgICAgIH0KLQotICAg
ICAgICBib29sIGJvb2xGcm9tU3RydWN0VHJ1ZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFgg
eDsKLSAgICAgICAgICAgIHgueCA9IDE7Ci0gICAgICAgICAgICByZXR1cm4gYm9vbCh4KTsKLSAg
ICAgICAgfQotCi0gICAgICAgIGVudW0gWSB7IEEsIEIgfQotCi0gICAgICAgIGJvb2wgYm9vbEZy
b21FbnVtRmFsc2UoKSB7IHJldHVybiBib29sKFkuQSk7IH0KLSAgICAgICAgYm9vbCBib29sRnJv
bUVudW1UcnVlKCkgeyByZXR1cm4gYm9vbChZLkIpOyB9CiAgICAgYCk7CiAKICAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJib29sRnJvbVVjaGFyRmFsc2UiLCBb
XSksIGZhbHNlKTsKQEAgLTIyNjMsMjcgKzI0MDEsNiBAQCB0ZXN0cy5vcGVyYXRvckJvb2wgPSBm
dW5jdGlvbigpCiAKICAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJib29sRnJvbUZsb2F0RmFsc2UiLCBbXSksIGZhbHNlKTsKICAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJib29sRnJvbUZsb2F0VHJ1ZSIsIFtdKSwgdHJ1ZSk7
Ci0KLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJib29sRnJv
bUludDJGYWxzZSIsIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImJvb2xGcm9tSW50MlRydWUxIiwgW10pLCB0cnVlKTsKLSAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJib29sRnJvbUludDJUcnVlMiIs
IFtdKSwgdHJ1ZSk7Ci0KLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJib29sRnJvbUZsb2F0M0ZhbHNlIiwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYm9vbEZyb21GbG9hdDNUcnVlMSIsIFtdKSwg
dHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYm9v
bEZyb21GbG9hdDNUcnVlMiIsIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiYm9vbEZyb21GbG9hdDNUcnVlMyIsIFtdKSwgdHJ1ZSk7Ci0K
LSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJib29sRnJvbVVp
bnQ0RmFsc2UiLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJib29sRnJvbVVpbnQ0VHJ1ZTEiLCBbXSksIHRydWUpOwotICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJvb2xGcm9tVWludDRUcnVlMiIs
IFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiYm9vbEZyb21VaW50NFRydWUzIiwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJib29sRnJvbVVpbnQ0VHJ1ZTQiLCBbXSksIHRydWUp
OwotCi0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYm9vbEZy
b21TdHJ1Y3RGYWxzZSIsIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImJvb2xGcm9tU3RydWN0VHJ1ZSIsIFtdKSwgdHJ1ZSk7Ci0KLSAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJib29sRnJvbUVudW1G
YWxzZSIsIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImJvb2xGcm9tRW51bVRydWUiLCBbXSksIHRydWUpOwogfQogCiB0ZXN0cy5ib29s
Qml0QW5kID0gZnVuY3Rpb24oKQpAQCAtMzU0OCw2ICszNjY1LDcgQEAgdGVzdHMudHJhcCA9IGZ1
bmN0aW9uKCkKICAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7CiB9CiAKKy8q
CiB0ZXN0cy5zd2l6emxlID0gZnVuY3Rpb24oKQogewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVw
KGAKQEAgLTM1NzIsNiArMzY5MCw3IEBAIHRlc3RzLnN3aXp6bGUgPSBmdW5jdGlvbigpCiAgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSksIDYp
OwogICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwg
W10pLCA0KTsKIH0KKyovCiAKIHRlc3RzLmVudW1XaXRoRXhwbGljaXRJbnRCYXNlID0gZnVuY3Rp
b24oKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVy
ZU9wZXJhdGlvbnMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlT3Bl
cmF0aW9ucy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMTcwOGJkYjA0Mjk3MGQ3NmE1NjQ0ODMyMjc1ODkyYjIw
N2MwOTgyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
VGV4dHVyZU9wZXJhdGlvbnMuanMKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisidXNlIHN0cmljdCI7CisKK2Z1bmN0aW9uIHRleHR1
cmVMb2FkKHRleHR1cmUsIHBhdGgpCit7CisgICAgZm9yICh2YXIgaW5kZXggb2YgcGF0aCkgewor
ICAgICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IHRleHR1cmUubGVuZ3RoKQorICAgICAg
ICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9m
IGJvdW5kcyIpOworICAgICAgICB0ZXh0dXJlID0gdGV4dHVyZVtpbmRleF07CisgICAgfQorICAg
IHJldHVybiB0ZXh0dXJlOworfQorCitmdW5jdGlvbiB0ZXh0dXJlU3RvcmUodGV4dHVyZSwgdmFs
dWUsIHBhdGgpCit7CisgICAgZG8geworICAgICAgICBpZiAocGF0aC5sZW5ndGggPT0gMCkKKyAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiWmVyby1sZW5ndGggc3RvcmUgcGF0aCIpOworICAg
ICAgICBpZiAocGF0aC5sZW5ndGggPT0gMSkgeworICAgICAgICAgICAgdGV4dHVyZVtwYXRoWzBd
XSA9IHZhbHVlOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgdGV4dHVyZSA9IHRleHR1cmVbcGF0aFswXV07CisgICAgICAgICAgICBwYXRoLnNoaWZ0
KCk7CisgICAgICAgIH0KKyAgICB9IHdoaWxlICh0cnVlKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Zpc2l0b3IuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9WaXNpdG9yLmpzCmluZGV4IDFmMWY1NGQ4Y2NhNzVjMTEwMTk4ZTUwODQ1ODg3
OTA3OTFkZTBlNTguLmI5ZWE3ZTQ2M2M0ZTA4YmRmODZmZTkwNzZlYWQ0MDU4NzZkMTE1OTIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Zpc2l0b3IuanMKKysrIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcwpAQCAtMzQwLDUgKzM0MCwx
MiBAQCBjbGFzcyBWaXNpdG9yIHsKICAgICAgICAgbm9kZS5lbGVtZW50VHlwZS52aXNpdCh0aGlz
KTsKICAgICAgICAgbm9kZS5udW1FbGVtZW50cy52aXNpdCh0aGlzKTsKICAgICB9CisKKyAgICB2
aXNpdE1hdHJpeFR5cGUobm9kZSkKKyAgICB7CisgICAgICAgIG5vZGUuZWxlbWVudFR5cGUudmlz
aXQodGhpcyk7CisgICAgICAgIG5vZGUubnVtUm93cy52aXNpdCh0aGlzKTsKKyAgICAgICAgbm9k
ZS5udW1Db2x1bW5zLnZpc2l0KHRoaXMpOworICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL2luZGV4Lmh0bWwKaW5kZXggMTdkMGMyMGM5ZmQ2MzhmYjMwZWVkN2JiNjIyMDRh
YTA5N2M1YWNiZC4uODM2NmJiMThkMTcwZTkzZjgwMGRmNTgyMmZhNWVhZmViNDNiZWQ4MyAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbAorKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCkBAIC0xMSw3ICsxMSw2IEBA
CiA8c2NyaXB0IHNyYz0iQ3JlYXRlTGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
Q3JlYXRlTGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlByb3BlcnR5QWNj
ZXNzRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iU3dpenpsZU9wLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOYXRpdmVUeXBlLmpzIj48L3NjcmlwdD4KIAogPHNjcmlw
dCBzcmM9IkFkZHJlc3NTcGFjZS5qcyI+PC9zY3JpcHQ+CkBAIC0yMywxMiArMjIsMTAgQEAKIDxz
Y3JpcHQgc3JjPSJCbG9jay5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQm9vbExpdGVyYWwu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkJyZWFrLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJCdWlsdGluVmVjdG9yQ29uc3RydWN0b3JzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJCdWlsdGluTWF0cml4R2V0dGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJCdWlsdGlu
TWF0cml4U2V0dGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9yR2V0
dGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9yU2V0dGVyLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9ySW5kZXhHZXR0ZXIuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9IkJ1aWx0aW5WZWN0b3JJbmRleFNldHRlci5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iQnVpbHRpblZlY3RvckVxdWFsaXR5T3BlcmF0b3IuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IkNhbGxFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJDYWxsRnVuY3Rpb24uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNoZWNrLmpzIj48L3Nj
cmlwdD4KQEAgLTkwLDYgKzg3LDcgQEAKIDxzY3JpcHQgc3JjPSJMb29wQ2hlY2tlci5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iTWFrZUFycmF5UmVmRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iTWFrZVB0ckV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ik1hdHJpeFR5cGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik5hbWVDb250ZXh0Lmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOYW1lRmluZGVyLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJOYW1lUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgpAQCAtOTcsOSArOTUsOCBAQAogPHNj
cmlwdCBzcmM9Ik5vcm1hbFVzZVByb3BlcnR5UmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9Ik51bGxMaXRlcmFsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOdWxsVHlwZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iT3BlcmF0b3JBbmRlckluZGV4LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJPcGVyYXRvckFuZGVySW5kZXhlci5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iT3BlcmF0b3JBcnJheVJlZkxlbmd0aC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iT3BlcmF0b3JCb29sLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJPcmlnaW5LaW5kLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJQYXJzZS5qcyI+PC9zY3JpcHQ+CkBAIC0xMjcsMTAgKzEy
NCwxMCBAQAogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVBcnJheU9wZXJhdG9yTGVuZ3RoLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRW51bUZ1bmN0aW9ucy5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iU3ludGhlc2l6ZU9wZXJhdG9yQm9vbC5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IlRlcm5hcnlFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJUZXh0dXJlT3BlcmF0aW9ucy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
VHJhcFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348433</attachid>
            <date>2018-08-29 14:19:32 -0700</date>
            <delta_ts>2018-08-29 18:23:37 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188940-20180829141930.patch</filename>
            <type>text/plain</type>
            <size>55544</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NDc1CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDcyYmMzZTlkNmQ0ZjhjMGMwYjIwOTJjNDI3Yzc5MzFl
ODVhMzA4OC4uYWRjYmM2MzI4NzIzMDZjZmQ2MzkwMjQ0YmEwMDg5NjhiMWI3Y2Y0OSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5
IEBACisyMDE4LTA4LTI5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+
CisKKyAgICAgICAgW1dITFNMXSBJbXBsZW1lbnQgdGV4dHVyZSB0eXBlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTQwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2lj
cy5qczoKKyAgICAgICAgKEludHJpbnNpY3MuKToKKyAgICAgICAgKEludHJpbnNpY3MpOgorICAg
ICAgICAoSW50cmluc2ljcy5wcm90b3R5cGUuYWRkKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qczoKKyAgICAgICAgKGxldC5zdGFuZGFyZExpYnJh
cnkpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAobWFrZVNhbXBs
ZXIpOgorICAgICAgICAoaXNQb3dlck9mMik6CisgICAgICAgIChlbGVtZW50VmVjdG9yU2l6ZSk6
CisgICAgICAgIChtYWtlMURUZXh0dXJlKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9UZXh0dXJlT3BlcmF0aW9ucy5qczogQWRkZWQuCisgICAgICAgICh0ZXh0dXJlTG9hZCk6
CisgICAgICAgICh0ZXh0dXJlU3RvcmUpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL2luZGV4Lmh0bWw6CisKIDIwMTgtMDgtMjkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgTXV0ZWQgZWxlbWVudHMgZG8gbm90IGhhdmUgdGhlaXIgTm93IFBs
YXlpbmcgc3RhdHVzIHVwZGF0ZWQgd2hlbiB1bm11dGVkLgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvQWxsLmpzCmluZGV4IDljMmEzNzE1MGMxZTk3NmI5MjZjZmJlZTIzNDM3NTIwYThkZTRhNDcu
LmNjMDdmZGI1MTY2MTZkMzI4ZjM4NDQ1ZTk1YTgyMDUzOTJlNWRhNWEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9BbGwuanMKQEAgLTE1MCw2ICsxNTAsNyBAQCBsb2FkKCJTeW50aGVzaXpl
U3RydWN0QWNjZXNzb3JzLmpzIik7CiBsb2FkKCJTeW50aGVzaXplQ29weUNvbnN0cnVjdG9yT3Bl
cmF0b3IuanMiKTsKIGxvYWQoIlN5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5q
cyIpOwogbG9hZCgiVGVybmFyeUV4cHJlc3Npb24uanMiKTsKK2xvYWQoIlRleHR1cmVPcGVyYXRp
b25zLmpzIik7CiBsb2FkKCJUcmFwU3RhdGVtZW50LmpzIik7CiBsb2FkKCJUeXBlRGVmLmpzIik7
CiBsb2FkKCJUeXBlRGVmUmVzb2x2ZXIuanMiKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9JbnRyaW5zaWNzLmpzCmluZGV4IDc5ZjU5MDcwZGFmZmI1NWEzZjNhNzBhM2IxYmFkYjRj
ZTY4Y2Q0ZWYuLjgyMjZhYjVmOThlZDRiNDJhZDY4NDBkOWQwY2U1MDFjODY5ZjRlNTcgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMKKysrIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcwpAQCAtMzMwLDcgKzMz
MCw4IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIHNh
bXBsZXIiLAogICAgICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAgICAgdGhpcy5zYW1w
bGVyID0gdHlwZTsKLSAgICAgICAgICAgICAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRv
IHB1dCBoZXJlLgorICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAg
ICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVy
LnNldChvZmZzZXQsIHt9KTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIGZvciAobGV0IHRl
eHR1cmVUeXBlIG9mIFsiVGV4dHVyZTFEIiwgIlJXVGV4dHVyZTFEIiwgIlRleHR1cmUxREFycmF5
IiwgIlJXVGV4dHVyZTFEQXJyYXkiLCAiVGV4dHVyZTJEIiwgIlJXVGV4dHVyZTJEIiwgIlRleHR1
cmUyREFycmF5IiwgIlJXVGV4dHVyZTJEQXJyYXkiLCAiVGV4dHVyZTNEIiwgIlJXVGV4dHVyZTNE
IiwgIlRleHR1cmVDdWJlIl0pIHsKQEAgLTMzOSwxMiArMzQwLDE2IEBAIGNsYXNzIEludHJpbnNp
Y3MgewogICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08
JHt0eXBlQXJndW1lbnR9PmAsCiAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAg
ICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmBd
ID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAg
ICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zm
c2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAgICAgICAgICB9KTsK
ICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMjsgaSA8PSA0OyArK2kpIHsKICAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgdHlwZWRlZiAke3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0ke2l9PmAsCiAgICAgICAg
ICAgICAgICAgICAgICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aGlzW2Ake3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0ke2l9PmBdID0gdHlwZTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+
IGJ1ZmZlci5zZXQob2Zmc2V0LCB7fSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC0zNTYsNiArMzYxLDggQEAgY2xhc3Mg
SW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdHlwZWRlZiAke3RleHR1
cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YCwKICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiB7
CiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1cmVUeXBlfTwke3R5cGVBcmd1
bWVudH0+YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVm
ZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCB7fSk7CiAgICAgICAgICAgICAgICAg
ICAgIH0pOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC05MTQsNiArOTIxLDc0NCBAQCBj
bGFzcyBJbnRyaW5zaWNzIHsKIAogICAgICAgICBmb3IgKGxldCBzZXR0ZXIgb2YgQnVpbHRpbk1h
dHJpeFNldHRlci5mdW5jdGlvbnMoKSkKICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoc2V0dGVy
LnRvU3RyaW5nKCksIGZ1bmMgPT4gc2V0dGVyLmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVu
YykpOworICAgICAgICAKKyAgICAgICAgZm9yIChsZXQgdHlwZSBvZiBbImJvb2wiLCAidWNoYXIi
LCAidXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9ydCIsICJpbnQiLCAiaGFsZiIsICJmbG9h
dCJdKSB7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQgbG9jYXRp
b24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxl
KFRleHR1cmUxRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0IGxvY2F0aW9uLGludCBvZmZzZXQpYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2Fk
KFRleHR1cmUxRDwke3R5cGV9PixpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQo
MCksIGxvY2F0aW9uLmdldCgxKV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlMUQ8JHt0eXBlfT4saW50MiBsb2NhdGlvbixpbnQg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZz
ZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxv
YWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEp
ICsgb2Zmc2V0LmxvYWRWYWx1ZSgpXSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDwke3R5cGV9Pix1aW50IE1pcExl
dmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIG51bWJlck9mTGV2
ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZh
bHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2Fk
VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGVuZ3Ro
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9h
ZF0iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXhbbWlwSURdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVy
T2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUo
VGV4dHVyZTFEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmUxREFy
cmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgewor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1
cmUxREFycmF5PCR7dHlwZX0+LGludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
RVB0ci5ib3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMildKSk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZTFEQXJyYXk8JHt0eXBl
fT4saW50MyBsb2NhdGlvbixpbnQgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gRVB0ci5ib3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdl
dCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMikgKyBvZmZzZXQubG9hZFZhbHVl
KCldKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERp
bWVuc2lvbnMoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJl
YWQgV2lkdGgsdWludCogdGhyZWFkIEVsZW1lbnRzLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVs
cylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgZWxl
bWVudHMsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRl
eCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlw
SUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0
ZXgubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdU
cmFwRXJyb3IoIltsb2FkXSIsICJObyBlbGVtZW50cyBpbiB0aGUgdGV4dHVyZSBhcnJheSIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleFswXS5sZW5ndGgpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJS
ZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFsw
XVttaXBJRF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXhbMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKworICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0g
U2FtcGxlKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9m
ZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZUJpYXMoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9u
LGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9j
YXRpb24sZmxvYXQgQmlhcyxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZTJEPCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSlgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRk
eV0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlR3JhZChUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQy
IEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5LCBvZmZzZXRdKSB7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmUy
RDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkgeworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0
dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgTE9ELGludDIgb2Zm
c2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24s
IGxvZCwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlv
bilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkg
eworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
KFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZz
ZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJSZWQoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbigoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChU
ZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyR3JlZW4oVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihU
ZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyQmx1ZShUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4
dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckFscGhhKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4
dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChU
ZXh0dXJlMkQ8JHt0eXBlfT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24g
KFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBF
UHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDAp
LCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKV0pKTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlMkQ8JHt0eXBlfT4saW50
MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQ
dHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCks
IGxvY2F0aW9uLmdldCgxKSArIG9mZnNldC5nZXQoMCksIGxvY2F0aW9uLmdldCgyKSArIG9mZnNl
dC5nZXQoMSldKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lk
IEdldERpbWVuc2lvbnMoVGV4dHVyZTJEPCR7dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhy
ZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxz
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWln
aHQsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9
IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQg
PSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJ
RCA+PSB0ZXgubGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBX
VHJhcEVycm9yKCJbbG9hZF0iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBv
ZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4W21pcElEXS5sZW5n
dGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJv
cigiW2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIHJvd3MiKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbbWlwSURdLmxlbmd0
aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4W21pcElEXVswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5s
ZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
CisgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0gU2FtcGxlKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZShUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9m
ZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZUJpYXMoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9j
YXRpb24sZmxvYXQgQmlhcylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhcywgb2Zmc2V0XSkgeworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRl
eHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0MiBERFgs
ZmxvYXQyIEREWSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uLCBkZHgsIGRkeV0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBERFksaW50MiBvZmZzZXQpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHksIG9m
ZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0g
U2FtcGxlTGV2ZWwoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24sZmxvYXQgTE9EKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIGxvZF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24sZmxvYXQgTE9ELGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
bihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0XSkgeworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyREFy
cmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEQXJyYXk8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUy
REFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEQXJyYXk8
JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4o
VGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1
cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNl
dF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdh
dGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJs
dWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBv
ZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00
IEdhdGhlckFscGhhKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0
aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlMkRBcnJheTwke3R5cGV9PixpbnQ0IGxvY2F0aW9u
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9h
ZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0
KDIpLCBsb2NhdGlvbi5nZXQoMyldKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4saW50NCBsb2NhdGlv
bixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlv
biwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRl
eHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9u
LmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpICsgb2Zmc2V0LmdldCgwKSwgbG9jYXRpb24uZ2V0KDMp
ICsgb2Zmc2V0LmdldCgxKV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMkRBcnJheTwke3R5cGV9Pix1aW50IE1pcExl
dmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBF
bGVtZW50cyx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHMsIG51bWJlck9m
TGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9h
ZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5s
b2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXgubGVuZ3RoID09IDAp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2Fk
XSIsICJObyBlbGVtZW50cyBpbiB0aGUgdGV4dHVyZSBhcnJheSIpOworICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKG1pcElEID49IHRleFswXS5sZW5ndGgpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJSZWFkaW5nIGZyb20gbm9u
ZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlmICh0ZXhbMF1bbWlwSURdLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gcm93cyIp
OworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleFswXVttaXBJRF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF1bbWlwSURdWzBdLmxl
bmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAg
ICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdLmxl
bmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisK
KyAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSBTYW1wbGUoVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0
dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MyBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
KFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUzRDwke3R5
cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVy
ZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTNEPCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUz
RDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTNEPCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTNE
PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
bihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUzRDwke3R5cGV9Pixz
YW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlM0Q8
JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUzRDwke3R5cGV9Pixz
YW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZTNEPCR7dHlwZX0+
LGludDQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRp
b25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxv
YWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEp
LCBsb2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgzKV0pKTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlM0Q8JHt0eXBlfT4saW50
NCBsb2NhdGlvbixpbnQzIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQ
dHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCks
IGxvY2F0aW9uLmdldCgxKSArIG9mZnNldC5nZXQoMCksIGxvY2F0aW9uLmdldCgyKSArIG9mZnNl
dC5nZXQoMSksIGxvY2F0aW9uLmdldCgzKSArIG9mZnNldC5nZXQoMildKSk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTNE
PCR7dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBI
ZWlnaHQsdWludCogdGhyZWFkIERlcHRoLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBk
ZXB0aCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4
ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJ
RCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1p
cElEID49IHRleC5sZW5ndGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3
IFdUcmFwRXJyb3IoIltsb2FkXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVs
IG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXhbbWlwSURdLmxl
bmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVy
cm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgemVybyBkZXB0aCIpOworICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHRleFttaXBJRF1bMF0ubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBu
byByb3dzIik7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aC5sb2FkVmFsdWUoKS5jb3B5
RnJvbShFUHRyLmJveCh0ZXhbbWlwSURdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAg
ICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFttaXBJRF1bMF0u
bGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5j
b3B5RnJvbShFUHRyLmJveCh0ZXhbbWlwSURdWzBdWzBdLmxlbmd0aCksIDEpOworICAgICAgICAg
ICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisKKyAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZUN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0g
U2FtcGxlQmlhcyhUZXh0dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixm
bG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZUN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9j
YXRpb24sZmxvYXQzIEREWCxmbG9hdDMgRERZKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlQ3ViZTwke3R5
cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkgeworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVDdWJlPCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZUN1YmU8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxv
YXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJCbHVlKFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJBbHBoYShUZXh0dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRl
eHR1cmVDdWJlPCR7dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQq
IHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIG51bWJlck9mTGV2
ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZh
bHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2Fk
VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXgubGVuZ3RoICE9IDYpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIs
ICJDdWJlIHRleHR1cmUgZG9lc24ndCBoYXZlIDYgZmFjZXMiKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChtaXBJRCA+PSB0ZXhbMF0ubGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiUmVhZGluZyBmcm9tIG5vbmV4
aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAodGV4WzBdW21pcElEXS5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIHJvd3MiKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXhbMF1bbWlwSURdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAg
d2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdW21pcElEXVswXS5sZW5n
dGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUx
RDwke3R5cGV9Pix1aW50KiB0aHJlYWQgV2lkdGgpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCB3aWR0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleHR1cmUubG9hZFZhbHVlKCkubGVuZ3RoKSwgMSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMo
UldUZXh0dXJlMUQ8JHt0eXBlfT4sZmxvYXQqIHRocmVhZCBXaWR0aClgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgd2lk
dGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4dHVyZS5sb2FkVmFsdWUoKS5sZW5n
dGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0g
TG9hZChSV1RleHR1cmUxRDwke3R5cGV9PixpbnQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9u
LmxvYWRWYWx1ZSgpXSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
dm9pZCBTdG9yZShSV1RleHR1cmUxRDwke3R5cGV9Piwke3R5cGV9LHVpbnQpYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgdGV4dHVyZVN0b3JlKHRleHR1cmUubG9hZFZhbHVlKCksIHZhbHVlLmxvYWRW
YWx1ZSgpLCBbbG9jYXRpb24ubG9hZFZhbHVlKCldKTsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUxREFycmF5PCR7
dHlwZX0+LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgZWxlbWVudHNdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICh0ZXgubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyBlbGVt
ZW50cyIpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAg
d2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25z
KFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfT4sZmxvYXQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJl
YWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgZWxl
bWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2Fk
VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXgubGVuZ3RoID09IDApCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIs
ICJUZXh0dXJlIGhhcyBubyBlbGVtZW50cyIpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxl
bWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAg
ICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSBMb2FkKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfT4saW50MiBsb2NhdGlvbilg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSldKSk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTFEQXJyYXk8
JHt0eXBlfT4sJHt0eXBlfSx1aW50MilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0dXJlU3Rv
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgdmFsdWUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQo
MCksIGxvY2F0aW9uLmdldCgxKV0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisKKyAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTJEPCR7dHlwZX0+LHVpbnQqIHRo
cmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgd2lkdGgsIGhlaWdodF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0
ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRl
eC5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1Ry
YXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIHJvd3MiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3Ro
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJv
bShFUHRyLmJveCh0ZXhbMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkQ8JHt0eXBlfT4sZmxv
YXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhyZWFkIEhlaWdodClgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlmICh0ZXgubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cg
bmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyByb3dzIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFJXVGV4dHVyZTJEPCR7dHlwZX0+LGlu
dDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQo
dGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpXSkp
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1Rl
eHR1cmUyRDwke3R5cGV9Piwke3R5cGV9LHVpbnQyKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRl
eHR1cmVTdG9yZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCB2YWx1ZS5sb2FkVmFsdWUoKSwgW2xvY2F0
aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpXSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkRBcnJheTwke3R5
cGV9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQg
RWxlbWVudHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0
LCBlbGVtZW50c10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJl
LmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sZW5ndGggPT0g
MCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xv
YWRdIiwgIlRleHR1cmUgaGFzIG5vIGVsZW1lbnRzIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAodGV4WzBdLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gcm93cyIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXVsw
XS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZv
aWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUyREFycmF5PCR7dHlwZX0+LGZsb2F0KiB0aHJlYWQg
V2lkdGgsZmxvYXQqIHRocmVhZCBIZWlnaHQsZmxvYXQqIHRocmVhZCBFbGVtZW50cylgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRzXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4Lmxlbmd0aCA9PSAwKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBo
YXMgbm8gZWxlbWVudHMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXhbMF0ubGVu
Z3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJy
b3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyByb3dzIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwg
MSk7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lk
dGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdWzBdLmxlbmd0aCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFJXVGV4
dHVyZTJEQXJyYXk8JHt0eXBlfT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0
KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKV0pKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMkRBcnJheTwke3R5
cGV9Piwke3R5cGV9LHVpbnQzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZh
bHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHR1cmVTdG9yZSh0
ZXh0dXJlLmxvYWRWYWx1ZSgpLCB2YWx1ZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwg
bG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMildKTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUzRDwke3R5
cGV9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQg
RGVwdGgpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBk
ZXB0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRW
YWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sZW5ndGggPT0gMCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwg
IlRleHR1cmUgaGFzIG5vIGRlcHRoIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4
WzBdLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBX
VHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gcm93cyIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgZGVwdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0
aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleFswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXVswXS5sZW5ndGgpLCAx
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5z
aW9ucyhSV1RleHR1cmUzRDwke3R5cGV9PixmbG9hdCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJl
YWQgSGVpZ2h0LGZsb2F0KiB0aHJlYWQgRGVwdGgpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKHRleC5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBu
ZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIGRlcHRoIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAodGV4WzBdLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMg
bm8gcm93cyIpOworICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAg
aGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXS5sZW5ndGgpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIu
Ym94KHRleFswXVswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gTG9hZChSV1RleHR1cmUzRDwke3R5cGV9PixpbnQzIGxvY2F0aW9u
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9h
ZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0
KDIpXSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9y
ZShSV1RleHR1cmUzRDwke3R5cGV9Piwke3R5cGV9LHVpbnQzKWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRleHR1cmVTdG9yZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCB2YWx1ZS5sb2FkVmFsdWUoKSwg
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMildKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBm
dW5jdGlvbiBib3hWZWN0b3IoYSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBsZXQg
cmVzdWx0ID0gbmV3IEVQdHIobmV3IEVCdWZmZXIoYS5sZW5ndGgpLCAwKTsKKyAgICAgICAgICAg
ICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAg
ICAgIHJlc3VsdC5zZXQoaSwgYVtpXSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZm9yIChsZXQgbGVuZ3RoIG9mIFsyLCAzLCA0
XSkgeworICAgICAgICAgICAgfQogICAgIH0KIAogICAgIGFkZCh0aGluZykKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCmluZGV4IDc4ZDAwOGY4MzVmOWU5YzIzNGVmMmRm
NmQ2ZGVlYTNmNzQyNmNlNjUuLmRkYzY1ZTM2N2RkOTk5ZGRiMTdkMjljZjZjNWM2ZTYyNTQxZDJh
NzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwK
KysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbApAQCAtMTMzLDYg
KzEzMyw3IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rv
ck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZURlZmF1
bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVGVy
bmFyeUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJUZXh0dXJlT3Bl
cmF0aW9ucy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcwppbmRleCA2YTMzMjM2NjE3
YTQzMWJkODIzOWJhYTQ2OWQzZWQ4MGMxYTlhMDJmLi44NTc2NzcwZTY1ZGQ3NzZiODFmMGI4OTMz
MWI1Nzk4YWJjYTg4MGE0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9TdGFuZGFyZExpYnJhcnkuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3RhbmRhcmRMaWJyYXJ5LmpzCkBAIC0xODk3LDkgKzE4OTcsOSBAQCBsZXQgc3RhbmRhcmRMaWJy
YXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEludGVy
bG9ja2VkQ29tcGFyZUV4Y2hhbmdlKHRocmVhZCBhdG9taWNfJHt0eXBlfSosICR7dHlwZX0sICR7
dHlwZX0sIHRocmVhZCAke3R5cGV9Kik7YCk7CiAgICAgICAgIH0KICAgICAgICAgcHJpbnQoKTsK
LSAgICAgICAgCisgICAgICAgICovCiAgICAgICAgIGZvciAodmFyIHR5cGUgb2YgW2B1Y2hhcmAs
IGB1c2hvcnRgLCBgdWludGAsIGBjaGFyYCwgYHNob3J0YCwgYGludGAsIGBoYWxmYCwgYGZsb2F0
YF0pIHsKLSAgICAgICAgICAgIGZvciAodmFyIGxlbmd0aCBvZiBbYGAsIGAyYCwgYDNgLCBgNGBd
KSB7CisgICAgICAgICAgICBmb3IgKHZhciBsZW5ndGggb2YgW2BgLyosIGAyYCwgYDNgLCBgNGAq
L10pIHsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2Ft
cGxlKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24p
O2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1w
bGUoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwg
aW50IG9mZnNldCk7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHts
ZW5ndGh9IExvYWQoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LCBpbnQyIGxvY2F0aW9uKTtg
KTsKQEAgLTIwMTAsNyArMjAxMCw3IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24o
KSB7CiAgICAgICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQot
ICAgICAgICAKKyAgICAgICAgLyoKICAgICAgICAgZm9yICh2YXIgdHlwZSBvZiBbYGhhbGZgLCBg
ZmxvYXRgXSkgewogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0
dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uKTtgKTsKICAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sCmluZGV4IDYwN2E2OTUzMjUzZGE3MjdiMWRlMzc2
NzhlYzM4OGI0ZmEyNDA0MDUuLjBkZTc5MWNiZDM2OWQ0MDdmY2YyNjlkMGYwZDMwOTZjNWE3Njg5
ZTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbAor
KysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKQEAgLTEyNyw2ICsx
MjcsNyBAQAogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9w
ZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5
cGVEZWYuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwppbmRleCBhYjk2YmM0Nzdm
N2YxZTI5ZGJkZjYyZjUyNjBjZTQ5ZTVlNzEwMGQ4Li4zN2RhNDYxMGNlNGUwZWYyNmQyMDY3ZmY1
YjFlMTJhMTk4MzQyNjA0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UZXN0LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKQEAg
LTk0LDYgKzk0LDE0OCBAQCBmdW5jdGlvbiBtYWtlRW51bShwcm9ncmFtLCBlbnVtTmFtZSwgdmFs
dWUpCiAgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KGVudW1UeXBlLCBlbnVtTWVtYmVyLnZhbHVl
LnVuaWZ5Tm9kZS52YWx1ZUZvclNlbGVjdGVkVHlwZSk7CiB9CiAKK2Z1bmN0aW9uIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHNhbXBsZXJEYXRhKQoreworICAgIC8vIGVudW0gQWRkcmVzc01vZGUgewor
ICAgIC8vICAgICAiY2xhbXBUb0VkZ2UiLAorICAgIC8vICAgICAicmVwZWF0IiwKKyAgICAvLyAg
ICAgIm1pcnJvclJlcGVhdCIsCisgICAgLy8gICAgICJjbGFtcFRvQm9yZGVyQ29sb3IiCisgICAg
Ly8gfQorICAgIC8vCisgICAgLy8gZW51bSBGaWx0ZXIgeworICAgIC8vICAgICAibmVhcmVzdCIs
CisgICAgLy8gICAgICJsaW5lYXIiCisgICAgLy8gfQorICAgIC8vCisgICAgLy8gZW51bSBDb21w
YXJlRnVuY3Rpb24geworICAgIC8vICAgICAibmV2ZXIiLAorICAgIC8vICAgICAibGVzcyIsCisg
ICAgLy8gICAgICJlcXVhbCIsCisgICAgLy8gICAgICJsZXNzRXF1YWwiLAorICAgIC8vICAgICAi
Z3JlYXRlciIsCisgICAgLy8gICAgICJub3RFcXVhbCIsCisgICAgLy8gICAgICJncmVhdGVyRXF1
YWwiLAorICAgIC8vICAgICAiYWx3YXlzIgorICAgIC8vIH0KKyAgICAvLworICAgIC8vIGVudW0g
Qm9yZGVyQ29sb3IgeworICAgIC8vICAgICAidHJhbnNwYXJlbnRCbGFjayIsCisgICAgLy8gICAg
ICJvcGFxdWVCbGFjayIsCisgICAgLy8gICAgICJvcGFxdWVXaGl0ZSIKKyAgICAvLyB9CisgICAg
Ly8KKyAgICAvLyBkaWN0aW9uYXJ5IFNhbXBsZXJEYXRhIHsKKyAgICAvLyAgICAgQWRkcmVzc01v
ZGUgckFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIiwKKyAgICAvLyAgICAgQWRkcmVzc01vZGUg
c0FkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIiwKKyAgICAvLyAgICAgQWRkcmVzc01vZGUgdEFk
ZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIiwKKyAgICAvLyAgICAgRmlsdGVyIG1pbkZpbHRlciA9
ICJuZWFyZXN0IiwKKyAgICAvLyAgICAgRmlsdGVyIG1hZ0ZpbHRlciA9ICJuZWFyZXN0IiwKKyAg
ICAvLyAgICAgRmlsdGVyIG1pcEZpbHRlciA9ICJuZWFyZXN0IiwKKyAgICAvLyAgICAgZmxvYXQg
bG9kTWluQ2xhbXAgPSAwLAorICAgIC8vICAgICBmbG9hdCBsb2RNYXhDbGFtcCA9IEZMVF9NQVgs
CisgICAgLy8gICAgIHVuc2lnbmVkIGxvbmcgbWF4QW5pc290cm9weSA9IDEsCisgICAgLy8gICAg
IGJvb2xlYW4gbm9ybWFsaXplZENvb3JkaW5hdGVzID0gdHJ1ZSwKKyAgICAvLyAgICAgQ29tcGFy
ZUZ1bmN0aW9uIGNvbXBhcmVGdW5jdGlvbiA9ICJuZXZlciIsCisgICAgLy8gICAgIEJvcmRlckNv
bG9yIGJvcmRlckNvbG9yID0gInRyYW5zcGFyZW50QmxhY2siCisgICAgLy8gfQorICAgIC8vCisg
ICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljcy5zYW1wbGVyLCBzYW1w
bGVyRGF0YSk7Cit9CisKK2Z1bmN0aW9uIGlzUG93ZXJPZjIoeCkKK3sKKyAgICByZXR1cm4geCAm
JiAoeCAmICh4IC0gMSkpID09PSAwOworfQorCitmdW5jdGlvbiBlbGVtZW50VmVjdG9yU2l6ZShl
bGVtZW50VHlwZSkKK3sKKyAgICBzd2l0Y2ggKGVsZW1lbnRUeXBlKSB7CisgICAgICAgIGNhc2Ug
ImJvb2wiOgorICAgICAgICBjYXNlICJ1Y2hhciI6CisgICAgICAgIGNhc2UgInVzaG9ydCI6Cisg
ICAgICAgIGNhc2UgInVpbnQiOgorICAgICAgICBjYXNlICJjaGFyIjoKKyAgICAgICAgY2FzZSAi
c2hvcnQiOgorICAgICAgICBjYXNlICJpbnQiOgorICAgICAgICBjYXNlICJoYWxmIjoKKyAgICAg
ICAgY2FzZSAiZmxvYXQiOgorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIGNhc2Ug
ImJvb2wyIjoKKyAgICAgICAgY2FzZSAidWNoYXIyIjoKKyAgICAgICAgY2FzZSAidXNob3J0MiI6
CisgICAgICAgIGNhc2UgInVpbnQyIjoKKyAgICAgICAgY2FzZSAiY2hhcjIiOgorICAgICAgICBj
YXNlICJzaG9ydDIiOgorICAgICAgICBjYXNlICJpbnQyIjoKKyAgICAgICAgY2FzZSAiaGFsZjIi
OgorICAgICAgICBjYXNlICJmbG9hdDIiOgorICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAg
IGNhc2UgImJvb2wzIjoKKyAgICAgICAgY2FzZSAidWNoYXIzIjoKKyAgICAgICAgY2FzZSAidXNo
b3J0MyI6CisgICAgICAgIGNhc2UgInVpbnQzIjoKKyAgICAgICAgY2FzZSAiY2hhcjMiOgorICAg
ICAgICBjYXNlICJzaG9ydDMiOgorICAgICAgICBjYXNlICJpbnQzIjoKKyAgICAgICAgY2FzZSAi
aGFsZjMiOgorICAgICAgICBjYXNlICJmbG9hdDMiOgorICAgICAgICAgICAgcmV0dXJuIDM7Cisg
ICAgICAgIGNhc2UgImJvb2w0IjoKKyAgICAgICAgY2FzZSAidWNoYXI0IjoKKyAgICAgICAgY2Fz
ZSAidXNob3J0NCI6CisgICAgICAgIGNhc2UgInVpbnQ0IjoKKyAgICAgICAgY2FzZSAiY2hhcjQi
OgorICAgICAgICBjYXNlICJzaG9ydDQiOgorICAgICAgICBjYXNlICJpbnQ0IjoKKyAgICAgICAg
Y2FzZSAiaGFsZjQiOgorICAgICAgICBjYXNlICJmbG9hdDQiOgorICAgICAgICAgICAgcmV0dXJu
IDQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25v
d24gdmVjdG9yIGVsZW1lbnQgdHlwZSIpOworICAgIH0KK30KKworZnVuY3Rpb24gbWFrZTFEVGV4
dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50VHlwZSkKK3sKKyAgICB2YXIgdmVjdG9yU2l6
ZSA9IGVsZW1lbnRWZWN0b3JTaXplKGVsZW1lbnRUeXBlKTsKKworICAgICBpZiAoIShtaXBtYXBz
IGluc3RhbmNlb2YgQXJyYXkpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlRleHR1cmUgbmVl
ZHMgdG8gYmUgYW4gYXJyYXkgb2YgbWlwbWFwcyIpOworICAgIGlmIChtaXBtYXBzLmxlbmd0aCA9
PSAwKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk5lZWQgdG8gaGF2ZSBhdCBsZWFzdCAxIG1p
cG1hcCIpOworICAgIHZhciBzaXplID0gbWlwbWFwc1swXS5sZW5ndGg7CisgICAgaWYgKCFpc1Bv
d2VyT2YyKHNpemUpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlRleHR1cmVzIG11c3QgYmUg
cG93ZXItb2YtdHdvIHNpemVkIik7CisgICAgZm9yICh2YXIgbWlwbWFwIG9mIG1pcG1hcHMpIHsK
KyAgICAgICAgaWYgKHNpemUgPT0gMCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fu
bm90IGhhdmUgemVyby1zaXplZCBtaXBtYXAiKTsKKyAgICAgICAgaWYgKCEobWlwbWFwIGluc3Rh
bmNlb2YgQXJyYXkpKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJFYWNoIG1pcG1hcCBv
ZiBhIHRleHR1cmUgbmVlZHMgdG8gYmUgYW4gYXJyYXkgb2YgdmFsdWVzIik7CisgICAgICAgIGlm
IChtaXBtYXAubGVuZ3RoICE9IHNpemUpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkVh
Y2ggbWlwbWFwIG9mIGEgdGV4dHVyZSBtdXN0IGJlIGhhbGYgYXMgYmlnIGFzIHRoZSBwcmV2aW91
cyBvbmUiKTsKKyAgICAgICAgZm9yICh2YXIgZWxlbWVudCBvZiBtaXBtYXApIHsKKyAgICAgICAg
ICAgIGlmICh2ZWN0b3JTaXplID09IG51bGwgJiYgKHR5cGVvZiBlbGVtZW50KSAhPSAibnVtYmVy
IikgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtlbGVtZW50VHlwZX0gdGV4
dHVyZSBlbGVtZW50IG11c3QgYmUgYSBudW1iZXJgKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAo
dmVjdG9yU2l6ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgaWYgKCEoZWxlbWVudCBpbnN0
YW5jZW9mIEFycmF5KSkKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2Vs
ZW1lbnRUeXBlfSB0ZXh0dXJlIGVsZW1lbnQgbXVzdCBiZSBhbiBhcnJheWApOworICAgICAgICAg
ICAgICAgIGlmIChlbGVtZW50LnNpemUgIT0gdmVjdG9yU2l6ZSkKKyAgICAgICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJXcm9uZyBudW1iZXIgb2YgY29tcG9uZW50cyBpbiB0ZXh0dXJl
IGVsZW1lbnQiKTsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBjb21wb25lbnQgb2YgZWxlbWVu
dCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoKHR5cGVvZiBjb21wb25lbnQpICE9ICJudW1i
ZXIiKQorICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb21wb25lbnQg
bmVlZHMgdG8gYmUgYSBudW1iZXIiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNpemUgPT0gMSkKKyAgICAgICAgICAgIHNpemUgPSAw
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBzaXplIC89IDI7CisgICAgfQorICAgIHJldHVy
biBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmUxRDwke2VsZW1lbnRU
eXBlfT5gXSwgbWlwbWFwcyk7Cit9CisKIGZ1bmN0aW9uIGNoZWNrTnVtYmVyKHByb2dyYW0sIHJl
c3VsdCwgZXhwZWN0ZWQpCiB7CiAgICAgaWYgKCFyZXN1bHQudHlwZS51bmlmeU5vZGUuaXNOdW1i
ZXIpCkBAIC01NDUxLDYgKzU1OTMsMzUgQEAgdGVzdHMuaGFsZlNpbXBsZU1hdGggPSBmdW5jdGlv
bigpIHsKICAgICBjaGVja0hhbGYocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUhhbGYocHJvZ3JhbSwgNyksIG1ha2VIYWxmKHByb2dyYW0sIC0yKV0pLCAtMy41KTsK
IH0KIAordGVzdHMudGV4dHVyZURpbWVuc2lvbnMgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJv
Z3JhbSA9IGRvUHJlcChgCisgICAgICAgIHVpbnQgZm9vKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVy
ZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZM
ZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJm51
bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAg
ICAgICB1aW50IGJhcihUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVp
bnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAg
R2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZudW1iZXJPZkxldmVscyk7CisgICAg
ICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICBgKTsKKyAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZTFEVGV4
dHVyZShwcm9ncmFtLCBbWzEsIDcsIDE0LCA3OV0sIFsxMywgMTZdLCBbMTVdXSwgImZsb2F0Iild
KSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFy
IiwgW21ha2UxRFRleHR1cmUocHJvZ3JhbSwgW1sxLCA3LCAxNCwgNzldLCBbMTMsIDE2XSwgWzE1
XV0sICJmbG9hdCIpXSksIDMpOworfQorCit0ZXN0cy50ZXh0dXJlTG9hZCA9IGZ1bmN0aW9uKCkg
eworICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKKyAgICAgICAgZmxvYXQgZm9vKFRleHR1cmUx
RDxmbG9hdD4gdGV4dHVyZSwgaW50IG1pcG1hcCwgaW50IGxvY2F0aW9uKSB7CisgICAgICAgICAg
ICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKG1pcG1hcCwgbG9jYXRpb24pKTsKKyAgICAgICAg
fQorICAgIGApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZTFEVGV4dHVyZShwcm9ncmFtLCBbWzEsIDcsIDE0LCA3OV0sIFsxMywgMTZd
LCBbMTVdXSwgImZsb2F0IiksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlMURUZXh0dXJlKHByb2dyYW0sIFtbMSwgNywgMTQsIDc5XSwgWzEzLCAxNl0s
IFsxNV1dLCAiZmxvYXQiKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAxNik7Cit9CisKIG9rVG9UZXN0ID0gdHJ1ZTsKIAogbGV0IHRlc3RGaWx0ZXIgPSAvLiov
OyAvLyBydW4gZXZlcnl0aGluZyBieSBkZWZhdWx0CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlT3BlcmF0aW9ucy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1RleHR1cmVPcGVyYXRpb25zLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhYmFjNGI2ZGI2
OTBhNjZmZTk5NzRlODhlZDk4OTUzNGE5MjAxYjkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlT3BlcmF0aW9ucy5qcwpAQCAtMCwwICsxLDUw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyJ1c2Ugc3Ry
aWN0IjsKKworZnVuY3Rpb24gdGV4dHVyZUxvYWQodGV4dHVyZSwgcGF0aCkKK3sKKyAgICBmb3Ig
KHZhciBpbmRleCBvZiBwYXRoKSB7CisgICAgICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0g
dGV4dHVyZS5sZW5ndGgpCisgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0xvYWRd
IiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIik7CisgICAgICAgIHRleHR1cmUgPSB0ZXh0
dXJlW2luZGV4XTsKKyAgICB9CisgICAgcmV0dXJuIHRleHR1cmU7Cit9CisKK2Z1bmN0aW9uIHRl
eHR1cmVTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwgcGF0aCkKK3sKKyAgICBkbyB7CisgICAgICAgIGlm
IChwYXRoLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJaZXJvLWxl
bmd0aCBzdG9yZSBwYXRoIik7CisgICAgICAgIGlmIChwYXRoLmxlbmd0aCA9PSAxKSB7CisgICAg
ICAgICAgICB0ZXh0dXJlW3BhdGhbMF1dID0gdmFsdWU7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXh0dXJlID0gdGV4dHVyZVtwYXRoWzBdXTsK
KyAgICAgICAgICAgIHBhdGguc2hpZnQoKTsKKyAgICAgICAgfQorICAgIH0gd2hpbGUgKHRydWUp
OworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRt
bCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKaW5kZXggNjVhODY0
MTFiM2U3NzBiNTU3YjQxYWNjN2U0MTRkZWY0MjQwMzAxMy4uODM2NmJiMThkMTcwZTkzZjgwMGRm
NTgyMmZhNWVhZmViNDNiZWQ4MyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvaW5kZXguaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRl
eC5odG1sCkBAIC0xMjcsNiArMTI3LDcgQEAKIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplQ29weUNv
bnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVE
ZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVGVy
bmFyeUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlRleHR1cmVPcGVyYXRp
b25zLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUcmFwU3RhdGVtZW50LmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBl
RGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348459</attachid>
            <date>2018-08-29 18:23:38 -0700</date>
            <delta_ts>2018-08-29 19:13:05 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188940-20180829182337.patch</filename>
            <type>text/plain</type>
            <size>55927</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NDkwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2FkNjc3MmE4YTA3YjVlYTY4MTllN2JiNTBiZjZlN2Jh
NjZlZmQ5OS4uOGIwZWFhOWJlMWRlMDU5NmY2ZDA2YjRjYTZiMjU1NGI5NjI2YTU3MCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2
IEBACisyMDE4LTA4LTI5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+
CisKKyAgICAgICAgW1dITFNMXSBJbXBsZW1lbnQgdGV4dHVyZSB0eXBlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTQwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2lj
cy5qczoKKyAgICAgICAgKEludHJpbnNpY3MuKToKKyAgICAgICAgKEludHJpbnNpY3MpOgorICAg
ICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWw6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAobGV0LnN0
YW5kYXJkTGlicmFyeSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5o
dG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanM6CisgICAgICAg
IChtYWtlU2FtcGxlcik6CisgICAgICAgIChtYWtlMURUZXh0dXJlKToKKyAgICAgICAgKG1ha2Ux
RFRleHR1cmVBcnJheSk6CisgICAgICAgIChtYWtlMkRUZXh0dXJlKToKKyAgICAgICAgKG1ha2Uy
RFRleHR1cmVBcnJheSk6CisgICAgICAgIChtYWtlM0RUZXh0dXJlKToKKyAgICAgICAgKG1ha2VU
ZXh0dXJlQ3ViZSk6CisgICAgICAgIChtYWtlUlcxRFRleHR1cmUpOgorICAgICAgICAobWFrZVJX
MURUZXh0dXJlQXJyYXkpOgorICAgICAgICAobWFrZVJXMkRUZXh0dXJlKToKKyAgICAgICAgKG1h
a2VSVzJEVGV4dHVyZUFycmF5KToKKyAgICAgICAgKG1ha2VSVzNEVGV4dHVyZSk6CisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanM6IEFkZGVkLgor
ICAgICAgICAodGV4dHVyZUxvYWQpOgorICAgICAgICAodGV4dHVyZVN0b3JlKToKKyAgICAgICAg
KiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sOgorCiAyMDE4LTA4LTI5ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgdGVzdCBn
YXJkZW5pbmc7IE5vd1BsYXlpbmdUZXN0IEFQSSB0ZXN0cyByZXF1aXJlIEhpZ2ggU2llcnJhLgpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCmluZGV4IDljMmEzNzE1MGMxZTk3NmI5MjZj
ZmJlZTIzNDM3NTIwYThkZTRhNDcuLmNjMDdmZGI1MTY2MTZkMzI4ZjM4NDQ1ZTk1YTgyMDUzOTJl
NWRhNWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwor
KysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKQEAgLTE1MCw2ICsxNTAs
NyBAQCBsb2FkKCJTeW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzIik7CiBsb2FkKCJTeW50aGVz
aXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiKTsKIGxvYWQoIlN5bnRoZXNpemVEZWZhdWx0
Q29uc3RydWN0b3JPcGVyYXRvci5qcyIpOwogbG9hZCgiVGVybmFyeUV4cHJlc3Npb24uanMiKTsK
K2xvYWQoIlRleHR1cmVPcGVyYXRpb25zLmpzIik7CiBsb2FkKCJUcmFwU3RhdGVtZW50LmpzIik7
CiBsb2FkKCJUeXBlRGVmLmpzIik7CiBsb2FkKCJUeXBlRGVmUmVzb2x2ZXIuanMiKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCmluZGV4IDc5ZjU5MDcwZGFm
ZmI1NWEzZjNhNzBhM2IxYmFkYjRjZTY4Y2Q0ZWYuLjA1ZjhkMDk4N2FlMGI3N2FiNWUzZmI5ZDI1
ZDY4YmRhZjMwYjJmYTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0ludHJpbnNpY3MuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmlu
c2ljcy5qcwpAQCAtMzMwLDcgKzMzMCw4IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAg
ICAgIm5hdGl2ZSB0eXBlZGVmIHNhbXBsZXIiLAogICAgICAgICAgICAgdHlwZSA9PiB7CiAgICAg
ICAgICAgICAgICAgdGhpcy5zYW1wbGVyID0gdHlwZTsKLSAgICAgICAgICAgICAgICAvLyBGSVhN
RTogRmlndXJlIG91dCB3aGF0IHRvIHB1dCBoZXJlLgorICAgICAgICAgICAgICAgIHR5cGUuc2l6
ZSA9IDE7CisgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZm
ZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIHt9KTsKICAgICAgICAgICAgIH0pOwog
CiAgICAgICAgIGZvciAobGV0IHRleHR1cmVUeXBlIG9mIFsiVGV4dHVyZTFEIiwgIlJXVGV4dHVy
ZTFEIiwgIlRleHR1cmUxREFycmF5IiwgIlJXVGV4dHVyZTFEQXJyYXkiLCAiVGV4dHVyZTJEIiwg
IlJXVGV4dHVyZTJEIiwgIlRleHR1cmUyREFycmF5IiwgIlJXVGV4dHVyZTJEQXJyYXkiLCAiVGV4
dHVyZTNEIiwgIlJXVGV4dHVyZTNEIiwgIlRleHR1cmVDdWJlIl0pIHsKQEAgLTMzOSwxMiArMzQw
LDE2IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5
cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmAsCiAgICAgICAgICAgICAgICAg
ICAgIHR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlw
ZX08JHt0eXBlQXJndW1lbnR9PmBdID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5
cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVs
dFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwge30pOwogICAg
ICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMjsgaSA8
PSA0OyArK2kpIHsKICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAg
ICAgICAgICAgICAgICAgIGBuYXRpdmUgdHlwZWRlZiAke3RleHR1cmVUeXBlfTwke3R5cGVBcmd1
bWVudH0ke2l9PmAsCiAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0+IHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0k
e2l9PmBdID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAx
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUg
PSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCB7fSk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC0z
NTYsNiArMzYxLDggQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgICAgIGBu
YXRpdmUgdHlwZWRlZiAke3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YCwKICAgICAgICAg
ICAgICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Ake3Rl
eHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAg
ICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxh
dGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCB7
fSk7CiAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBA
IC05MTQsNiArOTIxLDc0NSBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKIAogICAgICAgICBmb3IgKGxl
dCBzZXR0ZXIgb2YgQnVpbHRpbk1hdHJpeFNldHRlci5mdW5jdGlvbnMoKSkKICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoc2V0dGVyLnRvU3RyaW5nKCksIGZ1bmMgPT4gc2V0dGVyLmluc3RhbnRp
YXRlSW1wbGVtZW50YXRpb24oZnVuYykpOworCisgICAgICAgIGZvciAobGV0IHR5cGUgb2YgWyJi
b29sIiwgInVjaGFyIiwgInVzaG9ydCIsICJ1aW50IiwgImNoYXIiLCAic2hvcnQiLCAiaW50Iiwg
ImhhbGYiLCAiZmxvYXQiXSkgeworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmUxRDwke3R5cGV9PixzYW1wbGVy
LGZsb2F0IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9IFNhbXBsZShUZXh0dXJlMUQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdCBsb2NhdGlvbixp
bnQgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0gTG9hZChUZXh0dXJlMUQ8JHt0eXBlfT4saW50MiBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSldKSk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZTFEPCR7dHlwZX0+LGludDIg
bG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBs
b2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIu
Ym94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSArIG9mZnNldC5sb2FkVmFsdWUoKV0pKTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8JHt0eXBl
fT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIE51bWJlck9m
TGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRo
LCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0
ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0g
bWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQg
Pj0gdGV4Lmxlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1Ry
YXBFcnJvcigiW2xvYWRdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2Yg
dGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4W21pcElEXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5s
ZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
CisgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0gU2FtcGxlKFRleHR1cmUxREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZShUZXh0dXJlMURBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQgb2Zm
c2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24s
IG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX0gTG9hZChUZXh0dXJlMURBcnJheTwke3R5cGV9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFts
b2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpXSkpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmUx
REFycmF5PCR7dHlwZX0+LGludDMgbG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCks
IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpICsgb2Zm
c2V0LmxvYWRWYWx1ZSgpXSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxREFycmF5PCR7dHlwZX0+LHVpbnQgTWlwTGV2
ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBFbGVtZW50cyx1aW50KiB0aHJlYWQg
TnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZl
bCwgd2lkdGgsIGVsZW1lbnRzLCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAodGV4Lmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiTm8gZWxlbWVudHMgaW4gdGhlIHRleHR1
cmUgYXJyYXkiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXhbMF0u
bGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9y
KCJbbG9hZF0iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJl
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXhbMF1bbWlwSURdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAg
ICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEp
OworICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTJEPCR7dHlwZX0+LHNh
bXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9j
YXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MiBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBs
ZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhcywgb2Zmc2V0XSkgewor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFk
KFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdDIgRERYLGZs
b2F0MiBERFkpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxv
Y2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeSwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVM
ZXZlbChUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgTE9E
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxv
ZF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlTGV2ZWwoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0
IExPRCxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBsb2QsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlcihUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24s
aW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBs
b2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyUmVkKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQy
IG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9j
YXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdh
dGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQy
IG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyQmx1ZShUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBv
ZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJBbHBoYShUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBv
ZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSBMb2FkKFRleHR1cmUyRDwke3R5cGV9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpXSkpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmUyRDwk
e3R5cGV9PixpbnQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0
aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgwKSwgbG9jYXRpb24uZ2V0
KDIpICsgb2Zmc2V0LmdldCgxKV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMkQ8JHt0eXBlfT4sdWludCBNaXBMZXZl
bCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgTnVt
YmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwg
d2lkdGgsIGhlaWdodCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKG1pcElEID49IHRleC5sZW5ndGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQg
bWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXhb
bWlwSURdLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5l
dyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gcm93cyIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFtt
aXBJRF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbbWlwSURdWzBdLmxlbmd0aCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisKKyAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0gU2FtcGxlKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0
aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZTJEQXJyYXk8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlhcyxpbnQyIG9mZnNldClgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZz
ZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNh
bXBsZUdyYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24s
ZmxvYXQyIEREWCxmbG9hdDIgRERZKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmUyREFycmF5PCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSxpbnQyIG9mZnNl
dClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBk
ZHgsIGRkeSwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlMkRBcnJheTwke3R5cGV9Pixz
YW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QsaW50MiBvZmZzZXQpYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIo
VGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlMkRB
cnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJS
ZWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0
dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZz
ZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJHcmVlbihUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkg
eworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
R3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50
MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LGlu
dDQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQo
dGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBs
b2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgzKV0pKTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlMkRBcnJheTwke3R5cGV9Pixp
bnQ0IGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1
cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
RVB0ci5ib3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMikgKyBvZmZzZXQuZ2V0KDApLCBsb2Nh
dGlvbi5nZXQoMykgKyBvZmZzZXQuZ2V0KDEpXSkpOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUyREFycmF5PCR7dHlwZX0+
LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWlu
dCogdGhyZWFkIEVsZW1lbnRzLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50
cywgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0g
dGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9
IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5s
ZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBF
cnJvcigiW2xvYWRdIiwgIk5vIGVsZW1lbnRzIGluIHRoZSB0ZXh0dXJlIGFycmF5Iik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4WzBdLmxlbmd0aCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlJlYWRp
bmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKHRleFswXVttaXBJRF0ubGVuZ3RoID09IDApCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhh
cyBubyByb3dzIik7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4WzBdW21pcElEXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXVtt
aXBJRF1bMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXhbMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKworICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0g
U2FtcGxlKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9m
ZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXIoVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4
dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
clJlZChUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJl
M0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MyBvZmZzZXQpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgewor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3Jl
ZW4oVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJl
M0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MyBvZmZzZXQpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgewor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1
ZShUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTNE
PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhh
KFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTNE
PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJl
M0Q8JHt0eXBlfT4saW50NCBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJv
eCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBsb2Nh
dGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgbG9jYXRpb24uZ2V0KDMpXSkpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmUzRDwk
e3R5cGV9PixpbnQ0IGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0
aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgwKSwgbG9jYXRpb24uZ2V0
KDIpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDMpICsgb2Zmc2V0LmdldCgyKV0pKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9u
cyhUZXh0dXJlM0Q8JHt0eXBlfT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWlu
dCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRGVwdGgsdWludCogdGhyZWFkIE51bWJlck9m
TGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRo
LCBoZWlnaHQsIGRlcHRoLCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAobWlwSUQgPj0gdGV4Lmxlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFu
dCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRl
eFttaXBJRF0ubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cg
bmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyB6ZXJvIGRlcHRoIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAodGV4W21pcElEXVswXS5sZW5ndGggPT0gMCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRl
eHR1cmUgaGFzIG5vIHJvd3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoLmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFttaXBJRF0ubGVuZ3RoKSwgMSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
W21pcElEXVswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFttaXBJRF1bMF1bMF0ubGVuZ3RoKSwgMSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5
RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlQ3ViZTwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbixmbG9hdDMgRERYLGZsb2F0MyBERFkpYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1
cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IExPRClgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2RdKSB7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4
dHVyZUN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlQ3ViZTwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZUN1YmU8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZUN1YmU8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERp
bWVuc2lvbnMoVGV4dHVyZUN1YmU8JHt0eXBlfT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQg
V2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwg
bnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4
dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1p
cGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sZW5n
dGggIT0gNikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJv
cigiW2xvYWRdIiwgIkN1YmUgdGV4dHVyZSBkb2Vzbid0IGhhdmUgNiBmYWNlcyIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleFswXS5sZW5ndGgpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJSZWFkaW5n
IGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICh0ZXhbMF1bbWlwSURdLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMg
bm8gcm93cyIpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleFswXVttaXBJRF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF1bbWlw
SURdWzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZl
bHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25z
KFJXVGV4dHVyZTFEPCR7dHlwZX0+LHVpbnQqIHRocmVhZCBXaWR0aClgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgd2lk
dGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4dHVyZS5sb2FkVmFsdWUoKS5sZW5n
dGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0
RGltZW5zaW9ucyhSV1RleHR1cmUxRDwke3R5cGV9PixmbG9hdCogdGhyZWFkIFdpZHRoKWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGhdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSBMb2FkKFJXVGV4dHVyZTFEPCR7dHlwZX0+LGludCBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBbbG9jYXRpb24ubG9hZFZhbHVlKCldKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTFEPCR7dHlwZX0+LCR7dHlwZX0sdWludCBs
b2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRp
b25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0dXJlU3RvcmUodGV4dHVyZS5sb2Fk
VmFsdWUoKSwgdmFsdWUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5sb2FkVmFsdWUoKV0pOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25z
KFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVh
ZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBlbGVt
ZW50c10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRW
YWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sZW5ndGggPT0gMCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwg
IlRleHR1cmUgaGFzIG5vIGVsZW1lbnRzIik7CisgICAgICAgICAgICAgICAgICAgICAgICBlbGVt
ZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0
ZXhbMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMURBcnJheTwke3R5cGV9PixmbG9hdCogdGhy
ZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHdpZHRoLCBlbGVtZW50c10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHRleC5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
V1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIGVsZW1lbnRzIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0
ZXgubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUo
KS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoUldUZXh0dXJlMURBcnJheTwke3R5
cGV9PixpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1
cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdl
dCgxKV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3Rv
cmUoUldUZXh0dXJlMURBcnJheTwke3R5cGV9Piwke3R5cGV9LHVpbnQyIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHRleHR1cmVTdG9yZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCB2YWx1
ZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpXSk7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMo
UldUZXh0dXJlMkQ8JHt0eXBlfT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWln
aHQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0XSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4Lmxlbmd0aCA9PSAwKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBo
YXMgbm8gcm93cyIpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgp
LmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXS5sZW5ndGgpLCAx
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5z
aW9ucyhSV1RleHR1cmUyRDwke3R5cGV9PixmbG9hdCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJl
YWQgSGVpZ2h0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdo
dF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1
ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sZW5ndGggPT0gMCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRl
eHR1cmUgaGFzIG5vIHJvd3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF0ubGVu
Z3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
IExvYWQoUldUZXh0dXJlMkQ8JHt0eXBlfT4saW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSldKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTJEPCR7dHlwZX0+LCR7dHlwZX0sdWlu
dDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGV4dHVyZVN0b3JlKHRleHR1cmUu
bG9hZFZhbHVlKCksIHZhbHVlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMSldKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
CisgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZv
aWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUyREFycmF5PCR7dHlwZX0+LHVpbnQqIHRocmVhZCBX
aWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBFbGVtZW50cylgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRzXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAodGV4Lmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMg
bm8gZWxlbWVudHMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXhbMF0ubGVuZ3Ro
ID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Io
Iltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyByb3dzIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdWzBdLmxlbmd0aCksIDEpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJX
VGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhyZWFk
IEhlaWdodCxmbG9hdCogdGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICh0ZXgubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhy
b3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyBlbGVtZW50cyIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleFswXS5sZW5ndGggPT0gMCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1
cmUgaGFzIG5vIHJvd3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF0ubGVu
Z3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5
RnJvbShFUHRyLmJveCh0ZXhbMF1bMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9
PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0
aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVM
b2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSwgbG9jYXRpb24uZ2V0KDIpXSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUyREFycmF5PCR7dHlwZX0+LCR7dHlwZX0sdWludDMg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0
aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGV4dHVyZVN0b3JlKHRleHR1cmUubG9h
ZFZhbHVlKCksIHZhbHVlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIGxvY2F0aW9uLmdldCgyKV0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTNEPCR7dHlwZX0+LHVpbnQq
IHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBEZXB0aClgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGRlcHRoXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4Lmxlbmd0aCA9PSAwKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBo
YXMgbm8gZGVwdGgiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXhbMF0ubGVuZ3Ro
ID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Io
Iltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyByb3dzIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICBkZXB0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdWzBdLmxlbmd0aCksIDEpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4
dHVyZTNEPCR7dHlwZX0+LGZsb2F0KiB0aHJlYWQgV2lkdGgsZmxvYXQqIHRocmVhZCBIZWlnaHQs
ZmxvYXQqIHRocmVhZCBEZXB0aClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdp
ZHRoLCBoZWlnaHQsIGRlcHRoXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9
IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4Lmxl
bmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVy
cm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gZGVwdGgiKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICh0ZXhbMF0ubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyByb3dzIik7
CisgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAg
ICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBd
WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSBMb2FkKFJXVGV4dHVyZTNEPCR7dHlwZX0+LGludDMgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwg
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMildKSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVy
ZTNEPCR7dHlwZX0+LCR7dHlwZX0sdWludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgdGV4dHVyZVN0b3JlKHRleHR1cmUubG9hZFZhbHVlKCksIHZhbHVlLmxvYWRWYWx1ZSgpLCBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKV0pOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGZ1
bmN0aW9uIGJveFZlY3RvcihhKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGxldCBy
ZXN1bHQgPSBuZXcgRVB0cihuZXcgRUJ1ZmZlcihhLmxlbmd0aCksIDApOworICAgICAgICAgICAg
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0LnNldChpLCBhW2ldKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3IgKGxldCBsZW5ndGggb2YgWzIsIDMsIDRd
KSB7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiAKICAgICBhZGQodGhpbmcpCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbAppbmRleCA3OGQwMDhmODM1Zjll
OWMyMzRlZjJkZjZkNmRlZWEzZjc0MjZjZTY1Li5kZGM2NWUzNjdkZDk5OWRkYjE3ZDI5Y2Y2YzVj
NmU2MjU0MWQyYTcxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
UElSVi5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwK
QEAgLTEzMyw2ICsxMzMsNyBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVDb3B5
Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlN5bnRo
ZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IlRlcm5hcnlFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
VGV4dHVyZU9wZXJhdGlvbnMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUcmFwU3Rh
dGVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKaW5kZXgg
NmEzMzIzNjYxN2E0MzFiZDgyMzliYWE0NjlkM2VkODBjMWE5YTAyZi4uNmFjM2VlYmYwMTlkZWQ0
N2MxNDdhZTFmM2UyNmE4NjkxNGZhYWI2YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcwpAQCAtMTg5Nyw5ICsxODk3LDEwIEBAIGxldCBz
dGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBwcmludChgbmF0aXZl
IHZvaWQgSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UodGhyZWFkIGF0b21pY18ke3R5cGV9Kiwg
JHt0eXBlfSwgJHt0eXBlfSwgdGhyZWFkICR7dHlwZX0qKTtgKTsKICAgICAgICAgfQogICAgICAg
ICBwcmludCgpOwotICAgICAgICAKKyAgICAgICAgKi8KKwogICAgICAgICBmb3IgKHZhciB0eXBl
IG9mIFtgdWNoYXJgLCBgdXNob3J0YCwgYHVpbnRgLCBgY2hhcmAsIGBzaG9ydGAsIGBpbnRgLCBg
aGFsZmAsIGBmbG9hdGBdKSB7Ci0gICAgICAgICAgICBmb3IgKHZhciBsZW5ndGggb2YgW2BgLCBg
MmAsIGAzYCwgYDRgXSkgeworICAgICAgICAgICAgZm9yICh2YXIgbGVuZ3RoIG9mIFtgYC8qLCBg
MmAsIGAzYCwgYDRgKi9dKSB7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZs
b2F0IGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxv
YXQgbG9jYXRpb24sIGludCBvZmZzZXQpO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PiwgaW50
MiBsb2NhdGlvbik7YCk7CkBAIC0yMDEwLDcgKzIwMTEsOCBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5
ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIHByaW50KCk7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KLSAgICAgICAgCisKKyAgICAgICAgLyoKICAgICAgICAgZm9yICh2YXIgdHlw
ZSBvZiBbYGhhbGZgLCBgZmxvYXRgXSkgewogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0
aW9uKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVy
ZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQp
O2ApOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1s
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sCmluZGV4IDYwN2E2OTUz
MjUzZGE3MjdiMWRlMzc2NzhlYzM4OGI0ZmEyNDA0MDUuLjBkZTc5MWNiZDM2OWQ0MDdmY2YyNjlk
MGYwZDMwOTZjNWE3Njg5ZTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1Rlc3QuaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0
bWwKQEAgLTEyNyw2ICsxMjcsNyBAQAogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVDb3B5Q29uc3Ry
dWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZURlZmF1
bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUZXJuYXJ5
RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZS
ZXNvbHZlci5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9UZXN0LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwpp
bmRleCBhYjk2YmM0NzdmN2YxZTI5ZGJkZjYyZjUyNjBjZTQ5ZTVlNzEwMGQ4Li44NjU5ZWFlZjk1
MWNmMzA5YzRhYjg2NDI3NDAyNzM3Y2QzOGEzYzIxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1Rlc3QuanMKQEAgLTk0LDYgKzk0LDEyMyBAQCBmdW5jdGlvbiBtYWtlRW51bShwcm9ncmFt
LCBlbnVtTmFtZSwgdmFsdWUpCiAgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KGVudW1UeXBlLCBl
bnVtTWVtYmVyLnZhbHVlLnVuaWZ5Tm9kZS52YWx1ZUZvclNlbGVjdGVkVHlwZSk7CiB9CiAKK2Z1
bmN0aW9uIG1ha2VTYW1wbGVyKHByb2dyYW0sIHNhbXBsZXJEYXRhKQoreworICAgIC8vIGVudW0g
QWRkcmVzc01vZGUgeworICAgIC8vICAgICAiY2xhbXBUb0VkZ2UiLAorICAgIC8vICAgICAicmVw
ZWF0IiwKKyAgICAvLyAgICAgIm1pcnJvclJlcGVhdCIsCisgICAgLy8gICAgICJjbGFtcFRvQm9y
ZGVyQ29sb3IiCisgICAgLy8gfQorICAgIC8vCisgICAgLy8gZW51bSBGaWx0ZXIgeworICAgIC8v
ICAgICAibmVhcmVzdCIsCisgICAgLy8gICAgICJsaW5lYXIiCisgICAgLy8gfQorICAgIC8vCisg
ICAgLy8gZW51bSBDb21wYXJlRnVuY3Rpb24geworICAgIC8vICAgICAibmV2ZXIiLAorICAgIC8v
ICAgICAibGVzcyIsCisgICAgLy8gICAgICJlcXVhbCIsCisgICAgLy8gICAgICJsZXNzRXF1YWwi
LAorICAgIC8vICAgICAiZ3JlYXRlciIsCisgICAgLy8gICAgICJub3RFcXVhbCIsCisgICAgLy8g
ICAgICJncmVhdGVyRXF1YWwiLAorICAgIC8vICAgICAiYWx3YXlzIgorICAgIC8vIH0KKyAgICAv
LworICAgIC8vIGVudW0gQm9yZGVyQ29sb3IgeworICAgIC8vICAgICAidHJhbnNwYXJlbnRCbGFj
ayIsCisgICAgLy8gICAgICJvcGFxdWVCbGFjayIsCisgICAgLy8gICAgICJvcGFxdWVXaGl0ZSIK
KyAgICAvLyB9CisgICAgLy8KKyAgICAvLyBkaWN0aW9uYXJ5IFNhbXBsZXJEYXRhIHsKKyAgICAv
LyAgICAgQWRkcmVzc01vZGUgckFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIiwKKyAgICAvLyAg
ICAgQWRkcmVzc01vZGUgc0FkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIiwKKyAgICAvLyAgICAg
QWRkcmVzc01vZGUgdEFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIiwKKyAgICAvLyAgICAgRmls
dGVyIG1pbkZpbHRlciA9ICJuZWFyZXN0IiwKKyAgICAvLyAgICAgRmlsdGVyIG1hZ0ZpbHRlciA9
ICJuZWFyZXN0IiwKKyAgICAvLyAgICAgRmlsdGVyIG1pcEZpbHRlciA9ICJuZWFyZXN0IiwKKyAg
ICAvLyAgICAgZmxvYXQgbG9kTWluQ2xhbXAgPSAwLAorICAgIC8vICAgICBmbG9hdCBsb2RNYXhD
bGFtcCA9IEZMVF9NQVgsCisgICAgLy8gICAgIHVuc2lnbmVkIGxvbmcgbWF4QW5pc290cm9weSA9
IDEsCisgICAgLy8gICAgIGJvb2xlYW4gbm9ybWFsaXplZENvb3JkaW5hdGVzID0gdHJ1ZSwKKyAg
ICAvLyAgICAgQ29tcGFyZUZ1bmN0aW9uIGNvbXBhcmVGdW5jdGlvbiA9ICJuZXZlciIsCisgICAg
Ly8gICAgIEJvcmRlckNvbG9yIGJvcmRlckNvbG9yID0gInRyYW5zcGFyZW50QmxhY2siCisgICAg
Ly8gfQorICAgIC8vCisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2lj
cy5zYW1wbGVyLCBzYW1wbGVyRGF0YSk7Cit9CisKKy8vIEVsZW1lbnRzIG1heSBlaXRoZXIgYmUg
YSBudW1iZXIgb3IgYSB2ZWN0b3Igb2YgMi00IG51bWJlcnMuCisvLyAxRCBUZXh0dXJlOiBBbiBh
cnJheSBvZiBtaXBtYXBzLiBUaGUgZmlyc3QgbWlwbWFwIGlzIHRoZSBmdWxsIHNpemUsIGFuZCBp
cyBhIHBvd2VyLW9mLXR3by4gRWFjaCBtaXBtYXAgaXMgaGFsZi1zaXplIG9mIHRoZSBwcmV2aW91
cyBzaXplLgorLy8gMUQgVGV4dHVyZSBBcnJheTogQW4gYXJyYXkgb2YgMUQgdGV4dHVyZXMKKy8v
IDJEIFRleHR1cmU6IEFuIGFycmF5IG9mIG1pcG1hcHMuIFRoZSBmaXJzdCBtaXBtYXAgaXMgYSBy
ZWN0YW5ndWxhciBhcnJheSBvZiByb3dzLCBhbmQgZWFjaCByb3cgaXMgYW4gYXJyYXkgb2YgZWxl
bWVudHMuIEJvdGggdGhlIHJvdyBhbmQgY29sdW1uIGNvdW50cyBtdXN0IGJlIHBvd2VycyBvZiB0
d28uIEVhY2ggbWlwbWFwIGlzIGhhbGYtd2lkdGggYW5kIGhhbGYtaGVpZ2h0IG9mIHRoZSBwcmV2
aW91cyBzaXplLgorLy8gMkQgVGV4dHVyZSBBcnJheTogQW4gYXJyYXkgb2YgMkQgdGV4dHVyZXMK
Ky8vIDNEIFRleHR1cmU6IEFuIGFycmF5IG9mIG1pcG1hcHMuIFRoZSBmaXJzdCBtaXBtYXAgaXMg
YSByZWN0YW5ndWxhciBhcnJheSBvZiBjb2x1bW5zLCBlYWNoIGNvbHVtbiBpcyBhbiBhcnJheSBv
ZiByb3dzLCBhbmQgZWFjaCByb3cgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuIEJvdGggZGVwdGgs
IHJvdywgYW5kIGNvbHVtbiBjb3VudHMgbXVzdCBiZSBwb3dlcnMgb2YgdHdvLiBFYWNoIG1pcG1h
cCBpcyBoYWxmLWRlcHRoLCBoYWxmLWhlaWdodCwgYW5kIGhhbGYtd2lkdGggb2YgdGhlIHByZXZp
b3VzIHNpemUuCisvLyBUZXh0dXJlIEN1YmU6IEFuIGFycmF5IG9mIDYgMkQgdGV4dHVyZXMuCisv
LyBSVyAxRCBUZXh0dXJlOiBBbiBhcnJheSBvZiBlbGVtZW50cy4gVGhlIHdpZHRoIG11c3QgYmUg
YSBwb3dlci1vZi10d28uCisvLyBSVyAxRCBUZXh0dXJlIEFycmF5OiBBbiBhcnJheSBvZiBSVyAx
RCB0ZXh0dXJlcworLy8gUlcgMkQgVGV4dHVyZTogQSByZWN0YW5ndWxhciBhcnJheSBvZiByb3dz
LCBhbmQgZWFjaCByb3cgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuIEJvdGggdGhlIHJvdyBhbmQg
Y29sdW1uIGNvdW50cyBtdXN0IGJlIHBvd2VycyBvZiB0d28uCisvLyBSVyAyRCBUZXh0dXJlIEFy
cmF5OiBBbiBhcnJheSBvZiBSVyAyRCB0ZXh0dXJlcworLy8gUlcgM0QgVGV4dHVyZTogQSByZWN0
YW5ndWxhciBhcnJheSBvZiBjb2x1bW5zLCBlYWNoIGNvbHVtbiBpcyBhbiBhcnJheSBvZiByb3dz
LCBhbmQgZWFjaCByb3cgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuIEJvdGggZGVwdGgsIHJvdywg
YW5kIGNvbHVtbiBjb3VudHMgbXVzdCBiZSBwb3dlcnMgb2YgdHdvLgorCitmdW5jdGlvbiBtYWtl
MURUZXh0dXJlKHByb2dyYW0sIG1pcG1hcHMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBU
eXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmUxRDwke2VsZW1lbnRUeXBl
fT5gXSwgbWlwbWFwcyk7Cit9CisKK2Z1bmN0aW9uIG1ha2UxRFRleHR1cmVBcnJheShwcm9ncmFt
LCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dy
YW0uaW50cmluc2ljc1tgVGV4dHVyZTFEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIGFycmF5KTsK
K30KKworZnVuY3Rpb24gbWFrZTJEVGV4dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50VHlw
ZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0
dXJlMkQ8JHtlbGVtZW50VHlwZX0+YF0sIG1pcG1hcHMpOworfQorCitmdW5jdGlvbiBtYWtlMkRU
ZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBU
eXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmUyREFycmF5PCR7ZWxlbWVu
dFR5cGV9PmBdLCBhcnJheSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UzRFRleHR1cmUocHJvZ3JhbSwg
bWlwbWFwcywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dy
YW0uaW50cmluc2ljc1tgVGV4dHVyZTNEPCR7ZWxlbWVudFR5cGV9PmBdLCBtaXBtYXBzKTsKK30K
KworZnVuY3Rpb24gbWFrZVRleHR1cmVDdWJlKHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkK
K3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJl
Q3ViZTwke2VsZW1lbnRUeXBlfT5gXSwgYXJyYXkpOworfQorCitmdW5jdGlvbiBtYWtlUlcxRFRl
eHR1cmUocHJvZ3JhbSwgZWxlbWVudHMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBl
ZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTFEPCR7ZWxlbWVudFR5cGV9
PmBdLCBlbGVtZW50cyk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzFEVGV4dHVyZUFycmF5KHByb2dy
YW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJv
Z3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUxREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBhcnJh
eSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzJEVGV4dHVyZShwcm9ncmFtLCByb3dzLCBlbGVtZW50
VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BS
V1RleHR1cmUyRDwke2VsZW1lbnRUeXBlfT5gXSwgcm93cyk7Cit9CisKK2Z1bmN0aW9uIG1ha2VS
VzJEVGV4dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1
cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUyREFycmF5PCR7
ZWxlbWVudFR5cGV9PmBdLCBhcnJheSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzNEVGV4dHVyZShw
cm9ncmFtLCBkZXB0aCwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94
KHByb2dyYW0uaW50cmluc2ljc1tgUldUZXh0dXJlM0Q8JHtlbGVtZW50VHlwZX0+YF0sIGRlcHRo
KTsKK30KKwogZnVuY3Rpb24gY2hlY2tOdW1iZXIocHJvZ3JhbSwgcmVzdWx0LCBleHBlY3RlZCkK
IHsKICAgICBpZiAoIXJlc3VsdC50eXBlLnVuaWZ5Tm9kZS5pc051bWJlcikKQEAgLTU0NTEsNiAr
NTU2OCwzNSBAQCB0ZXN0cy5oYWxmU2ltcGxlTWF0aCA9IGZ1bmN0aW9uKCkgewogICAgIGNoZWNr
SGFsZihwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSGFsZihwcm9n
cmFtLCA3KSwgbWFrZUhhbGYocHJvZ3JhbSwgLTIpXSksIC0zLjUpOwogfQogCit0ZXN0cy50ZXh0
dXJlRGltZW5zaW9ucyA9IGZ1bmN0aW9uKCkgeworICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAK
KyAgICAgICAgdWludCBmb28oVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAg
ICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAg
ICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmbnVtYmVyT2ZMZXZlbHMpOwor
ICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgYmFyKFRl
eHR1cmUxRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAg
ICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRl
eHR1cmUsIDAsICZ3aWR0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBu
dW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgIGApOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlMURUZXh0dXJlKHByb2dyYW0sIFtb
MSwgNywgMTQsIDc5XSwgWzEzLCAxNl0sIFsxNV1dLCAiZmxvYXQiKV0pLCA0KTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbbWFrZTFEVGV4dHVy
ZShwcm9ncmFtLCBbWzEsIDcsIDE0LCA3OV0sIFsxMywgMTZdLCBbMTVdXSwgImZsb2F0IildKSwg
Myk7Cit9CisKK3Rlc3RzLnRleHR1cmVMb2FkID0gZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dy
YW0gPSBkb1ByZXAoYAorICAgICAgICBmbG9hdCBmb28oVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJl
LCBpbnQgbWlwbWFwLCBpbnQgbG9jYXRpb24pIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRl
eHR1cmUsIGludDIobWlwbWFwLCBsb2NhdGlvbikpOworICAgICAgICB9CisgICAgYCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlMURU
ZXh0dXJlKHByb2dyYW0sIFtbMSwgNywgMTQsIDc5XSwgWzEzLCAxNl0sIFsxNV1dLCAiZmxvYXQi
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2UxRFRl
eHR1cmUocHJvZ3JhbSwgW1sxLCA3LCAxNCwgNzldLCBbMTMsIDE2XSwgWzE1XV0sICJmbG9hdCIp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKK30KKwog
b2tUb1Rlc3QgPSB0cnVlOwogCiBsZXQgdGVzdEZpbHRlciA9IC8uKi87IC8vIHJ1biBldmVyeXRo
aW5nIGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1RleHR1cmVPcGVyYXRpb25zLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4
dHVyZU9wZXJhdGlvbnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmFiYWM0YjZkYjY5MGE2NmZlOTk3NGU4OGVk
OTg5NTM0YTkyMDFiOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1RleHR1cmVPcGVyYXRpb25zLmpzCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworInVzZSBzdHJpY3QiOworCitmdW5jdGlv
biB0ZXh0dXJlTG9hZCh0ZXh0dXJlLCBwYXRoKQoreworICAgIGZvciAodmFyIGluZGV4IG9mIHBh
dGgpIHsKKyAgICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSB0ZXh0dXJlLmxlbmd0aCkK
KyAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFk
IG91dCBvZiBib3VuZHMiKTsKKyAgICAgICAgdGV4dHVyZSA9IHRleHR1cmVbaW5kZXhdOworICAg
IH0KKyAgICByZXR1cm4gdGV4dHVyZTsKK30KKworZnVuY3Rpb24gdGV4dHVyZVN0b3JlKHRleHR1
cmUsIHZhbHVlLCBwYXRoKQoreworICAgIGRvIHsKKyAgICAgICAgaWYgKHBhdGgubGVuZ3RoID09
IDApCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlplcm8tbGVuZ3RoIHN0b3JlIHBhdGgi
KTsKKyAgICAgICAgaWYgKHBhdGgubGVuZ3RoID09IDEpIHsKKyAgICAgICAgICAgIHRleHR1cmVb
cGF0aFswXV0gPSB2YWx1ZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIHRleHR1cmUgPSB0ZXh0dXJlW3BhdGhbMF1dOworICAgICAgICAgICAgcGF0
aC5zaGlmdCgpOworICAgICAgICB9CisgICAgfSB3aGlsZSAodHJ1ZSk7Cit9CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbAppbmRleCA2NWE4NjQxMWIzZTc3MGI1NTdiNDFh
Y2M3ZTQxNGRlZjQyNDAzMDEzLi44MzY2YmIxOGQxNzBlOTNmODAwZGY1ODIyZmE1ZWFmZWI0M2Jl
ZDgzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1s
CisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKQEAgLTEyNyw2
ICsxMjcsNyBAQAogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRv
ci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rv
ck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+
PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348464</attachid>
            <date>2018-08-29 19:13:06 -0700</date>
            <delta_ts>2018-08-29 19:18:43 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188940-20180829191305.patch</filename>
            <type>text/plain</type>
            <size>68448</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NDkwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2FkNjc3MmE4YTA3YjVlYTY4MTllN2JiNTBiZjZlN2Jh
NjZlZmQ5OS4uOGIwZWFhOWJlMWRlMDU5NmY2ZDA2YjRjYTZiMjU1NGI5NjI2YTU3MCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2
IEBACisyMDE4LTA4LTI5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+
CisKKyAgICAgICAgW1dITFNMXSBJbXBsZW1lbnQgdGV4dHVyZSB0eXBlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTQwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2lj
cy5qczoKKyAgICAgICAgKEludHJpbnNpY3MuKToKKyAgICAgICAgKEludHJpbnNpY3MpOgorICAg
ICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWw6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAobGV0LnN0
YW5kYXJkTGlicmFyeSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5o
dG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanM6CisgICAgICAg
IChtYWtlU2FtcGxlcik6CisgICAgICAgIChtYWtlMURUZXh0dXJlKToKKyAgICAgICAgKG1ha2Ux
RFRleHR1cmVBcnJheSk6CisgICAgICAgIChtYWtlMkRUZXh0dXJlKToKKyAgICAgICAgKG1ha2Uy
RFRleHR1cmVBcnJheSk6CisgICAgICAgIChtYWtlM0RUZXh0dXJlKToKKyAgICAgICAgKG1ha2VU
ZXh0dXJlQ3ViZSk6CisgICAgICAgIChtYWtlUlcxRFRleHR1cmUpOgorICAgICAgICAobWFrZVJX
MURUZXh0dXJlQXJyYXkpOgorICAgICAgICAobWFrZVJXMkRUZXh0dXJlKToKKyAgICAgICAgKG1h
a2VSVzJEVGV4dHVyZUFycmF5KToKKyAgICAgICAgKG1ha2VSVzNEVGV4dHVyZSk6CisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanM6IEFkZGVkLgor
ICAgICAgICAodGV4dHVyZUxvYWQpOgorICAgICAgICAodGV4dHVyZVN0b3JlKToKKyAgICAgICAg
KiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sOgorCiAyMDE4LTA4LTI5ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgdGVzdCBn
YXJkZW5pbmc7IE5vd1BsYXlpbmdUZXN0IEFQSSB0ZXN0cyByZXF1aXJlIEhpZ2ggU2llcnJhLgpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCmluZGV4IDljMmEzNzE1MGMxZTk3NmI5MjZj
ZmJlZTIzNDM3NTIwYThkZTRhNDcuLmNjMDdmZGI1MTY2MTZkMzI4ZjM4NDQ1ZTk1YTgyMDUzOTJl
NWRhNWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwor
KysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKQEAgLTE1MCw2ICsxNTAs
NyBAQCBsb2FkKCJTeW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzIik7CiBsb2FkKCJTeW50aGVz
aXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiKTsKIGxvYWQoIlN5bnRoZXNpemVEZWZhdWx0
Q29uc3RydWN0b3JPcGVyYXRvci5qcyIpOwogbG9hZCgiVGVybmFyeUV4cHJlc3Npb24uanMiKTsK
K2xvYWQoIlRleHR1cmVPcGVyYXRpb25zLmpzIik7CiBsb2FkKCJUcmFwU3RhdGVtZW50LmpzIik7
CiBsb2FkKCJUeXBlRGVmLmpzIik7CiBsb2FkKCJUeXBlRGVmUmVzb2x2ZXIuanMiKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCmluZGV4IDc5ZjU5MDcwZGFm
ZmI1NWEzZjNhNzBhM2IxYmFkYjRjZTY4Y2Q0ZWYuLjA1ZjhkMDk4N2FlMGI3N2FiNWUzZmI5ZDI1
ZDY4YmRhZjMwYjJmYTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0ludHJpbnNpY3MuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmlu
c2ljcy5qcwpAQCAtMzMwLDcgKzMzMCw4IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAg
ICAgIm5hdGl2ZSB0eXBlZGVmIHNhbXBsZXIiLAogICAgICAgICAgICAgdHlwZSA9PiB7CiAgICAg
ICAgICAgICAgICAgdGhpcy5zYW1wbGVyID0gdHlwZTsKLSAgICAgICAgICAgICAgICAvLyBGSVhN
RTogRmlndXJlIG91dCB3aGF0IHRvIHB1dCBoZXJlLgorICAgICAgICAgICAgICAgIHR5cGUuc2l6
ZSA9IDE7CisgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZm
ZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIHt9KTsKICAgICAgICAgICAgIH0pOwog
CiAgICAgICAgIGZvciAobGV0IHRleHR1cmVUeXBlIG9mIFsiVGV4dHVyZTFEIiwgIlJXVGV4dHVy
ZTFEIiwgIlRleHR1cmUxREFycmF5IiwgIlJXVGV4dHVyZTFEQXJyYXkiLCAiVGV4dHVyZTJEIiwg
IlJXVGV4dHVyZTJEIiwgIlRleHR1cmUyREFycmF5IiwgIlJXVGV4dHVyZTJEQXJyYXkiLCAiVGV4
dHVyZTNEIiwgIlJXVGV4dHVyZTNEIiwgIlRleHR1cmVDdWJlIl0pIHsKQEAgLTMzOSwxMiArMzQw
LDE2IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5
cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmAsCiAgICAgICAgICAgICAgICAg
ICAgIHR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlw
ZX08JHt0eXBlQXJndW1lbnR9PmBdID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5
cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVs
dFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwge30pOwogICAg
ICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMjsgaSA8
PSA0OyArK2kpIHsKICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAg
ICAgICAgICAgICAgICAgIGBuYXRpdmUgdHlwZWRlZiAke3RleHR1cmVUeXBlfTwke3R5cGVBcmd1
bWVudH0ke2l9PmAsCiAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0+IHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0k
e2l9PmBdID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAx
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUg
PSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCB7fSk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC0z
NTYsNiArMzYxLDggQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgICAgIGBu
YXRpdmUgdHlwZWRlZiAke3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YCwKICAgICAgICAg
ICAgICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Ake3Rl
eHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAg
ICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxh
dGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCB7
fSk7CiAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBA
IC05MTQsNiArOTIxLDc0NSBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKIAogICAgICAgICBmb3IgKGxl
dCBzZXR0ZXIgb2YgQnVpbHRpbk1hdHJpeFNldHRlci5mdW5jdGlvbnMoKSkKICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoc2V0dGVyLnRvU3RyaW5nKCksIGZ1bmMgPT4gc2V0dGVyLmluc3RhbnRp
YXRlSW1wbGVtZW50YXRpb24oZnVuYykpOworCisgICAgICAgIGZvciAobGV0IHR5cGUgb2YgWyJi
b29sIiwgInVjaGFyIiwgInVzaG9ydCIsICJ1aW50IiwgImNoYXIiLCAic2hvcnQiLCAiaW50Iiwg
ImhhbGYiLCAiZmxvYXQiXSkgeworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmUxRDwke3R5cGV9PixzYW1wbGVy
LGZsb2F0IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9IFNhbXBsZShUZXh0dXJlMUQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdCBsb2NhdGlvbixp
bnQgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0gTG9hZChUZXh0dXJlMUQ8JHt0eXBlfT4saW50MiBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSldKSk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZTFEPCR7dHlwZX0+LGludDIg
bG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBs
b2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIu
Ym94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSArIG9mZnNldC5sb2FkVmFsdWUoKV0pKTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8JHt0eXBl
fT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIE51bWJlck9m
TGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRo
LCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0
ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0g
bWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQg
Pj0gdGV4Lmxlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1Ry
YXBFcnJvcigiW2xvYWRdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2Yg
dGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4W21pcElEXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5s
ZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
CisgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0gU2FtcGxlKFRleHR1cmUxREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZShUZXh0dXJlMURBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQgb2Zm
c2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24s
IG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX0gTG9hZChUZXh0dXJlMURBcnJheTwke3R5cGV9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFts
b2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpXSkpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmUx
REFycmF5PCR7dHlwZX0+LGludDMgbG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCks
IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpICsgb2Zm
c2V0LmxvYWRWYWx1ZSgpXSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxREFycmF5PCR7dHlwZX0+LHVpbnQgTWlwTGV2
ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBFbGVtZW50cyx1aW50KiB0aHJlYWQg
TnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZl
bCwgd2lkdGgsIGVsZW1lbnRzLCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAodGV4Lmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiTm8gZWxlbWVudHMgaW4gdGhlIHRleHR1
cmUgYXJyYXkiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXhbMF0u
bGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9y
KCJbbG9hZF0iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJl
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXhbMF1bbWlwSURdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAg
ICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEp
OworICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTJEPCR7dHlwZX0+LHNh
bXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9j
YXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MiBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBs
ZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhcywgb2Zmc2V0XSkgewor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFk
KFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdDIgRERYLGZs
b2F0MiBERFkpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxv
Y2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeSwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVM
ZXZlbChUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgTE9E
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxv
ZF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlTGV2ZWwoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0
IExPRCxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBsb2QsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlcihUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24s
aW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBs
b2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyUmVkKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQy
IG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9j
YXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdh
dGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQy
IG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyQmx1ZShUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBv
ZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJBbHBoYShUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBv
ZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSBMb2FkKFRleHR1cmUyRDwke3R5cGV9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpXSkpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmUyRDwk
e3R5cGV9PixpbnQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0
aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgwKSwgbG9jYXRpb24uZ2V0
KDIpICsgb2Zmc2V0LmdldCgxKV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMkQ8JHt0eXBlfT4sdWludCBNaXBMZXZl
bCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgTnVt
YmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwg
d2lkdGgsIGhlaWdodCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKG1pcElEID49IHRleC5sZW5ndGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQg
bWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXhb
bWlwSURdLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5l
dyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gcm93cyIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFtt
aXBJRF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbbWlwSURdWzBdLmxlbmd0aCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisKKyAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0gU2FtcGxlKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0
aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZTJEQXJyYXk8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlhcyxpbnQyIG9mZnNldClgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZz
ZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNh
bXBsZUdyYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24s
ZmxvYXQyIEREWCxmbG9hdDIgRERZKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmUyREFycmF5PCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSxpbnQyIG9mZnNl
dClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBk
ZHgsIGRkeSwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlMkRBcnJheTwke3R5cGV9Pixz
YW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QsaW50MiBvZmZzZXQpYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIo
VGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlMkRB
cnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJS
ZWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0
dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZz
ZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJHcmVlbihUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkg
eworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
R3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50
MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LGlu
dDQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQo
dGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBs
b2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgzKV0pKTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlMkRBcnJheTwke3R5cGV9Pixp
bnQ0IGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1
cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
RVB0ci5ib3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMikgKyBvZmZzZXQuZ2V0KDApLCBsb2Nh
dGlvbi5nZXQoMykgKyBvZmZzZXQuZ2V0KDEpXSkpOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUyREFycmF5PCR7dHlwZX0+
LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWlu
dCogdGhyZWFkIEVsZW1lbnRzLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50
cywgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0g
dGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9
IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5s
ZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBF
cnJvcigiW2xvYWRdIiwgIk5vIGVsZW1lbnRzIGluIHRoZSB0ZXh0dXJlIGFycmF5Iik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4WzBdLmxlbmd0aCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlJlYWRp
bmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKHRleFswXVttaXBJRF0ubGVuZ3RoID09IDApCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhh
cyBubyByb3dzIik7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4WzBdW21pcElEXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXVtt
aXBJRF1bMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXhbMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKworICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0g
U2FtcGxlKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9m
ZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXIoVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4
dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
clJlZChUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJl
M0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MyBvZmZzZXQpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgewor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3Jl
ZW4oVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJl
M0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MyBvZmZzZXQpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgewor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1
ZShUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTNE
PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhh
KFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTNE
PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJl
M0Q8JHt0eXBlfT4saW50NCBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJv
eCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBsb2Nh
dGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgbG9jYXRpb24uZ2V0KDMpXSkpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmUzRDwk
e3R5cGV9PixpbnQ0IGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0
aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgwKSwgbG9jYXRpb24uZ2V0
KDIpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDMpICsgb2Zmc2V0LmdldCgyKV0pKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9u
cyhUZXh0dXJlM0Q8JHt0eXBlfT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWlu
dCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRGVwdGgsdWludCogdGhyZWFkIE51bWJlck9m
TGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRo
LCBoZWlnaHQsIGRlcHRoLCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAobWlwSUQgPj0gdGV4Lmxlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFu
dCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRl
eFttaXBJRF0ubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cg
bmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyB6ZXJvIGRlcHRoIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAodGV4W21pcElEXVswXS5sZW5ndGggPT0gMCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRl
eHR1cmUgaGFzIG5vIHJvd3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoLmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFttaXBJRF0ubGVuZ3RoKSwgMSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
W21pcElEXVswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFttaXBJRF1bMF1bMF0ubGVuZ3RoKSwgMSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5
RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlQ3ViZTwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbixmbG9hdDMgRERYLGZsb2F0MyBERFkpYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1
cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IExPRClgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2RdKSB7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4
dHVyZUN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlQ3ViZTwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZUN1YmU8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZUN1YmU8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERp
bWVuc2lvbnMoVGV4dHVyZUN1YmU8JHt0eXBlfT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQg
V2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwg
bnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4
dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1p
cGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sZW5n
dGggIT0gNikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJv
cigiW2xvYWRdIiwgIkN1YmUgdGV4dHVyZSBkb2Vzbid0IGhhdmUgNiBmYWNlcyIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleFswXS5sZW5ndGgpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJSZWFkaW5n
IGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICh0ZXhbMF1bbWlwSURdLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMg
bm8gcm93cyIpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleFswXVttaXBJRF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF1bbWlw
SURdWzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZl
bHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25z
KFJXVGV4dHVyZTFEPCR7dHlwZX0+LHVpbnQqIHRocmVhZCBXaWR0aClgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgd2lk
dGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4dHVyZS5sb2FkVmFsdWUoKS5sZW5n
dGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0
RGltZW5zaW9ucyhSV1RleHR1cmUxRDwke3R5cGV9PixmbG9hdCogdGhyZWFkIFdpZHRoKWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGhdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSBMb2FkKFJXVGV4dHVyZTFEPCR7dHlwZX0+LGludCBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBbbG9jYXRpb24ubG9hZFZhbHVlKCldKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTFEPCR7dHlwZX0+LCR7dHlwZX0sdWludCBs
b2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRp
b25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0dXJlU3RvcmUodGV4dHVyZS5sb2Fk
VmFsdWUoKSwgdmFsdWUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5sb2FkVmFsdWUoKV0pOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25z
KFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVh
ZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBlbGVt
ZW50c10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRW
YWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sZW5ndGggPT0gMCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwg
IlRleHR1cmUgaGFzIG5vIGVsZW1lbnRzIik7CisgICAgICAgICAgICAgICAgICAgICAgICBlbGVt
ZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0
ZXhbMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMURBcnJheTwke3R5cGV9PixmbG9hdCogdGhy
ZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHdpZHRoLCBlbGVtZW50c10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHRleC5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
V1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIGVsZW1lbnRzIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0
ZXgubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUo
KS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoUldUZXh0dXJlMURBcnJheTwke3R5
cGV9PixpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1
cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdl
dCgxKV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3Rv
cmUoUldUZXh0dXJlMURBcnJheTwke3R5cGV9Piwke3R5cGV9LHVpbnQyIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHRleHR1cmVTdG9yZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCB2YWx1
ZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpXSk7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMo
UldUZXh0dXJlMkQ8JHt0eXBlfT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWln
aHQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0XSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4Lmxlbmd0aCA9PSAwKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBo
YXMgbm8gcm93cyIpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgp
LmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXS5sZW5ndGgpLCAx
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5z
aW9ucyhSV1RleHR1cmUyRDwke3R5cGV9PixmbG9hdCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJl
YWQgSGVpZ2h0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdo
dF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1
ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sZW5ndGggPT0gMCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRl
eHR1cmUgaGFzIG5vIHJvd3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF0ubGVu
Z3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
IExvYWQoUldUZXh0dXJlMkQ8JHt0eXBlfT4saW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSldKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTJEPCR7dHlwZX0+LCR7dHlwZX0sdWlu
dDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGV4dHVyZVN0b3JlKHRleHR1cmUu
bG9hZFZhbHVlKCksIHZhbHVlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMSldKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
CisgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZv
aWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUyREFycmF5PCR7dHlwZX0+LHVpbnQqIHRocmVhZCBX
aWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBFbGVtZW50cylgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRzXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAodGV4Lmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMg
bm8gZWxlbWVudHMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXhbMF0ubGVuZ3Ro
ID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Io
Iltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyByb3dzIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdWzBdLmxlbmd0aCksIDEpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJX
VGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhyZWFk
IEhlaWdodCxmbG9hdCogdGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICh0ZXgubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhy
b3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyBlbGVtZW50cyIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleFswXS5sZW5ndGggPT0gMCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1
cmUgaGFzIG5vIHJvd3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF0ubGVu
Z3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5
RnJvbShFUHRyLmJveCh0ZXhbMF1bMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9
PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0
aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVM
b2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSwgbG9jYXRpb24uZ2V0KDIpXSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUyREFycmF5PCR7dHlwZX0+LCR7dHlwZX0sdWludDMg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0
aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGV4dHVyZVN0b3JlKHRleHR1cmUubG9h
ZFZhbHVlKCksIHZhbHVlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIGxvY2F0aW9uLmdldCgyKV0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTNEPCR7dHlwZX0+LHVpbnQq
IHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBEZXB0aClgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGRlcHRoXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4Lmxlbmd0aCA9PSAwKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBo
YXMgbm8gZGVwdGgiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXhbMF0ubGVuZ3Ro
ID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Io
Iltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyByb3dzIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICBkZXB0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdWzBdLmxlbmd0aCksIDEpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4
dHVyZTNEPCR7dHlwZX0+LGZsb2F0KiB0aHJlYWQgV2lkdGgsZmxvYXQqIHRocmVhZCBIZWlnaHQs
ZmxvYXQqIHRocmVhZCBEZXB0aClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdp
ZHRoLCBoZWlnaHQsIGRlcHRoXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9
IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4Lmxl
bmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVy
cm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gZGVwdGgiKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICh0ZXhbMF0ubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyByb3dzIik7
CisgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAg
ICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBd
WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSBMb2FkKFJXVGV4dHVyZTNEPCR7dHlwZX0+LGludDMgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwg
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMildKSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVy
ZTNEPCR7dHlwZX0+LCR7dHlwZX0sdWludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgdGV4dHVyZVN0b3JlKHRleHR1cmUubG9hZFZhbHVlKCksIHZhbHVlLmxvYWRWYWx1ZSgpLCBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKV0pOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGZ1
bmN0aW9uIGJveFZlY3RvcihhKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGxldCBy
ZXN1bHQgPSBuZXcgRVB0cihuZXcgRUJ1ZmZlcihhLmxlbmd0aCksIDApOworICAgICAgICAgICAg
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0LnNldChpLCBhW2ldKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3IgKGxldCBsZW5ndGggb2YgWzIsIDMsIDRd
KSB7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiAKICAgICBhZGQodGhpbmcpCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbAppbmRleCA3OGQwMDhmODM1Zjll
OWMyMzRlZjJkZjZkNmRlZWEzZjc0MjZjZTY1Li5kZGM2NWUzNjdkZDk5OWRkYjE3ZDI5Y2Y2YzVj
NmU2MjU0MWQyYTcxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
UElSVi5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwK
QEAgLTEzMyw2ICsxMzMsNyBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVDb3B5
Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlN5bnRo
ZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IlRlcm5hcnlFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
VGV4dHVyZU9wZXJhdGlvbnMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUcmFwU3Rh
dGVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKaW5kZXgg
NmEzMzIzNjYxN2E0MzFiZDgyMzliYWE0NjlkM2VkODBjMWE5YTAyZi4uNmFjM2VlYmYwMTlkZWQ0
N2MxNDdhZTFmM2UyNmE4NjkxNGZhYWI2YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcwpAQCAtMTg5Nyw5ICsxODk3LDEwIEBAIGxldCBz
dGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBwcmludChgbmF0aXZl
IHZvaWQgSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UodGhyZWFkIGF0b21pY18ke3R5cGV9Kiwg
JHt0eXBlfSwgJHt0eXBlfSwgdGhyZWFkICR7dHlwZX0qKTtgKTsKICAgICAgICAgfQogICAgICAg
ICBwcmludCgpOwotICAgICAgICAKKyAgICAgICAgKi8KKwogICAgICAgICBmb3IgKHZhciB0eXBl
IG9mIFtgdWNoYXJgLCBgdXNob3J0YCwgYHVpbnRgLCBgY2hhcmAsIGBzaG9ydGAsIGBpbnRgLCBg
aGFsZmAsIGBmbG9hdGBdKSB7Ci0gICAgICAgICAgICBmb3IgKHZhciBsZW5ndGggb2YgW2BgLCBg
MmAsIGAzYCwgYDRgXSkgeworICAgICAgICAgICAgZm9yICh2YXIgbGVuZ3RoIG9mIFtgYC8qLCBg
MmAsIGAzYCwgYDRgKi9dKSB7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZs
b2F0IGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxv
YXQgbG9jYXRpb24sIGludCBvZmZzZXQpO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PiwgaW50
MiBsb2NhdGlvbik7YCk7CkBAIC0yMDEwLDcgKzIwMTEsOCBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5
ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIHByaW50KCk7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KLSAgICAgICAgCisKKyAgICAgICAgLyoKICAgICAgICAgZm9yICh2YXIgdHlw
ZSBvZiBbYGhhbGZgLCBgZmxvYXRgXSkgewogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0
aW9uKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVy
ZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQp
O2ApOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1s
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sCmluZGV4IDYwN2E2OTUz
MjUzZGE3MjdiMWRlMzc2NzhlYzM4OGI0ZmEyNDA0MDUuLjY5YzkxMDQ5MmVkMTFhYjJiMzBlMjc4
M2VhZjdlYmJmZmRmZTE2MGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1Rlc3QuaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0
bWwKQEAgLTEyNyw2ICsxMjcsNyBAQAogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVDb3B5Q29uc3Ry
dWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZURlZmF1
bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUZXJuYXJ5
RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZS
ZXNvbHZlci5qcyI+PC9zY3JpcHQ+CkBAIC0xNTIsNyArMTUzLDcgQEAKIDxzY3JpcHQ+CiBmdW5j
dGlvbiBkb1Rlc3RJbkJyb3dzZXIoKQogewotICAgIHZhciB0ZXN0ZXIgPSBkb1Rlc3QoLy4qLyk7
CisgICAgdmFyIHRlc3RlciA9IGRvVGVzdCgvdGV4dHVyZS8pOwogICAgIHZhciBsYXN0VGltZTsK
ICAgICBmdW5jdGlvbiBuZXh0KCkKICAgICB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9UZXN0LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVz
dC5qcwppbmRleCBhYjk2YmM0NzdmN2YxZTI5ZGJkZjYyZjUyNjBjZTQ5ZTVlNzEwMGQ4Li5mYzA5
ZDZlZWE0Y2Y1NDI2N2RjM2JhMTMwZjUyYTRiOWNkMGZlOTQwIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1Rlc3QuanMKQEAgLTk0LDYgKzk0LDEyMyBAQCBmdW5jdGlvbiBtYWtlRW51bShw
cm9ncmFtLCBlbnVtTmFtZSwgdmFsdWUpCiAgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KGVudW1U
eXBlLCBlbnVtTWVtYmVyLnZhbHVlLnVuaWZ5Tm9kZS52YWx1ZUZvclNlbGVjdGVkVHlwZSk7CiB9
CiAKK2Z1bmN0aW9uIG1ha2VTYW1wbGVyKHByb2dyYW0sIHNhbXBsZXJEYXRhKQoreworICAgIC8v
IGVudW0gQWRkcmVzc01vZGUgeworICAgIC8vICAgICAiY2xhbXBUb0VkZ2UiLAorICAgIC8vICAg
ICAicmVwZWF0IiwKKyAgICAvLyAgICAgIm1pcnJvclJlcGVhdCIsCisgICAgLy8gICAgICJjbGFt
cFRvQm9yZGVyQ29sb3IiCisgICAgLy8gfQorICAgIC8vCisgICAgLy8gZW51bSBGaWx0ZXIgewor
ICAgIC8vICAgICAibmVhcmVzdCIsCisgICAgLy8gICAgICJsaW5lYXIiCisgICAgLy8gfQorICAg
IC8vCisgICAgLy8gZW51bSBDb21wYXJlRnVuY3Rpb24geworICAgIC8vICAgICAibmV2ZXIiLAor
ICAgIC8vICAgICAibGVzcyIsCisgICAgLy8gICAgICJlcXVhbCIsCisgICAgLy8gICAgICJsZXNz
RXF1YWwiLAorICAgIC8vICAgICAiZ3JlYXRlciIsCisgICAgLy8gICAgICJub3RFcXVhbCIsCisg
ICAgLy8gICAgICJncmVhdGVyRXF1YWwiLAorICAgIC8vICAgICAiYWx3YXlzIgorICAgIC8vIH0K
KyAgICAvLworICAgIC8vIGVudW0gQm9yZGVyQ29sb3IgeworICAgIC8vICAgICAidHJhbnNwYXJl
bnRCbGFjayIsCisgICAgLy8gICAgICJvcGFxdWVCbGFjayIsCisgICAgLy8gICAgICJvcGFxdWVX
aGl0ZSIKKyAgICAvLyB9CisgICAgLy8KKyAgICAvLyBkaWN0aW9uYXJ5IFNhbXBsZXJEYXRhIHsK
KyAgICAvLyAgICAgQWRkcmVzc01vZGUgckFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIiwKKyAg
ICAvLyAgICAgQWRkcmVzc01vZGUgc0FkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIiwKKyAgICAv
LyAgICAgQWRkcmVzc01vZGUgdEFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIiwKKyAgICAvLyAg
ICAgRmlsdGVyIG1pbkZpbHRlciA9ICJuZWFyZXN0IiwKKyAgICAvLyAgICAgRmlsdGVyIG1hZ0Zp
bHRlciA9ICJuZWFyZXN0IiwKKyAgICAvLyAgICAgRmlsdGVyIG1pcEZpbHRlciA9ICJuZWFyZXN0
IiwKKyAgICAvLyAgICAgZmxvYXQgbG9kTWluQ2xhbXAgPSAwLAorICAgIC8vICAgICBmbG9hdCBs
b2RNYXhDbGFtcCA9IEZMVF9NQVgsCisgICAgLy8gICAgIHVuc2lnbmVkIGxvbmcgbWF4QW5pc290
cm9weSA9IDEsCisgICAgLy8gICAgIGJvb2xlYW4gbm9ybWFsaXplZENvb3JkaW5hdGVzID0gdHJ1
ZSwKKyAgICAvLyAgICAgQ29tcGFyZUZ1bmN0aW9uIGNvbXBhcmVGdW5jdGlvbiA9ICJuZXZlciIs
CisgICAgLy8gICAgIEJvcmRlckNvbG9yIGJvcmRlckNvbG9yID0gInRyYW5zcGFyZW50QmxhY2si
CisgICAgLy8gfQorICAgIC8vCisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50
cmluc2ljcy5zYW1wbGVyLCBzYW1wbGVyRGF0YSk7Cit9CisKKy8vIEVsZW1lbnRzIG1heSBlaXRo
ZXIgYmUgYSBudW1iZXIgb3IgYSB2ZWN0b3Igb2YgMi00IG51bWJlcnMuCisvLyAxRCBUZXh0dXJl
OiBBbiBhcnJheSBvZiBtaXBtYXBzLiBUaGUgZmlyc3QgbWlwbWFwIGlzIHRoZSBmdWxsIHNpemUs
IGFuZCBpcyBhIHBvd2VyLW9mLXR3by4gRWFjaCBtaXBtYXAgaXMgaGFsZi1zaXplIG9mIHRoZSBw
cmV2aW91cyBzaXplLgorLy8gMUQgVGV4dHVyZSBBcnJheTogQW4gYXJyYXkgb2YgMUQgdGV4dHVy
ZXMKKy8vIDJEIFRleHR1cmU6IEFuIGFycmF5IG9mIG1pcG1hcHMuIFRoZSBmaXJzdCBtaXBtYXAg
aXMgYSByZWN0YW5ndWxhciBhcnJheSBvZiByb3dzLCBhbmQgZWFjaCByb3cgaXMgYW4gYXJyYXkg
b2YgZWxlbWVudHMuIEJvdGggdGhlIHJvdyBhbmQgY29sdW1uIGNvdW50cyBtdXN0IGJlIHBvd2Vy
cyBvZiB0d28uIEVhY2ggbWlwbWFwIGlzIGhhbGYtd2lkdGggYW5kIGhhbGYtaGVpZ2h0IG9mIHRo
ZSBwcmV2aW91cyBzaXplLgorLy8gMkQgVGV4dHVyZSBBcnJheTogQW4gYXJyYXkgb2YgMkQgdGV4
dHVyZXMKKy8vIDNEIFRleHR1cmU6IEFuIGFycmF5IG9mIG1pcG1hcHMuIFRoZSBmaXJzdCBtaXBt
YXAgaXMgYSByZWN0YW5ndWxhciBhcnJheSBvZiBjb2x1bW5zLCBlYWNoIGNvbHVtbiBpcyBhbiBh
cnJheSBvZiByb3dzLCBhbmQgZWFjaCByb3cgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuIEJvdGgg
ZGVwdGgsIHJvdywgYW5kIGNvbHVtbiBjb3VudHMgbXVzdCBiZSBwb3dlcnMgb2YgdHdvLiBFYWNo
IG1pcG1hcCBpcyBoYWxmLWRlcHRoLCBoYWxmLWhlaWdodCwgYW5kIGhhbGYtd2lkdGggb2YgdGhl
IHByZXZpb3VzIHNpemUuCisvLyBUZXh0dXJlIEN1YmU6IEFuIGFycmF5IG9mIDYgMkQgdGV4dHVy
ZXMuCisvLyBSVyAxRCBUZXh0dXJlOiBBbiBhcnJheSBvZiBlbGVtZW50cy4gVGhlIHdpZHRoIG11
c3QgYmUgYSBwb3dlci1vZi10d28uCisvLyBSVyAxRCBUZXh0dXJlIEFycmF5OiBBbiBhcnJheSBv
ZiBSVyAxRCB0ZXh0dXJlcworLy8gUlcgMkQgVGV4dHVyZTogQSByZWN0YW5ndWxhciBhcnJheSBv
ZiByb3dzLCBhbmQgZWFjaCByb3cgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuIEJvdGggdGhlIHJv
dyBhbmQgY29sdW1uIGNvdW50cyBtdXN0IGJlIHBvd2VycyBvZiB0d28uCisvLyBSVyAyRCBUZXh0
dXJlIEFycmF5OiBBbiBhcnJheSBvZiBSVyAyRCB0ZXh0dXJlcworLy8gUlcgM0QgVGV4dHVyZTog
QSByZWN0YW5ndWxhciBhcnJheSBvZiBjb2x1bW5zLCBlYWNoIGNvbHVtbiBpcyBhbiBhcnJheSBv
ZiByb3dzLCBhbmQgZWFjaCByb3cgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuIEJvdGggZGVwdGgs
IHJvdywgYW5kIGNvbHVtbiBjb3VudHMgbXVzdCBiZSBwb3dlcnMgb2YgdHdvLgorCitmdW5jdGlv
biBtYWtlMURUZXh0dXJlKHByb2dyYW0sIG1pcG1hcHMsIGVsZW1lbnRUeXBlKQoreworICAgIHJl
dHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmUxRDwke2VsZW1l
bnRUeXBlfT5gXSwgbWlwbWFwcyk7Cit9CisKK2Z1bmN0aW9uIG1ha2UxRFRleHR1cmVBcnJheShw
cm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94
KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZTFEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIGFy
cmF5KTsKK30KKworZnVuY3Rpb24gbWFrZTJEVGV4dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVt
ZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNz
W2BUZXh0dXJlMkQ8JHtlbGVtZW50VHlwZX0+YF0sIG1pcG1hcHMpOworfQorCitmdW5jdGlvbiBt
YWtlMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJl
dHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmUyREFycmF5PCR7
ZWxlbWVudFR5cGV9PmBdLCBhcnJheSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UzRFRleHR1cmUocHJv
Z3JhbSwgbWlwbWFwcywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94
KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZTNEPCR7ZWxlbWVudFR5cGV9PmBdLCBtaXBtYXBz
KTsKK30KKworZnVuY3Rpb24gbWFrZVRleHR1cmVDdWJlKHByb2dyYW0sIGFycmF5LCBlbGVtZW50
VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BU
ZXh0dXJlQ3ViZTwke2VsZW1lbnRUeXBlfT5gXSwgYXJyYXkpOworfQorCitmdW5jdGlvbiBtYWtl
UlcxRFRleHR1cmUocHJvZ3JhbSwgZWxlbWVudHMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVy
biBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTFEPCR7ZWxlbWVu
dFR5cGV9PmBdLCBlbGVtZW50cyk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzFEVGV4dHVyZUFycmF5
KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5i
b3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUxREFycmF5PCR7ZWxlbWVudFR5cGV9PmBd
LCBhcnJheSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzJEVGV4dHVyZShwcm9ncmFtLCByb3dzLCBl
bGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5z
aWNzW2BSV1RleHR1cmUyRDwke2VsZW1lbnRUeXBlfT5gXSwgcm93cyk7Cit9CisKK2Z1bmN0aW9u
IG1ha2VSVzJEVGV4dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAg
ICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUyREFy
cmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBhcnJheSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzNEVGV4
dHVyZShwcm9ncmFtLCBkZXB0aCwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFs
dWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldUZXh0dXJlM0Q8JHtlbGVtZW50VHlwZX0+YF0s
IGRlcHRoKTsKK30KKwogZnVuY3Rpb24gY2hlY2tOdW1iZXIocHJvZ3JhbSwgcmVzdWx0LCBleHBl
Y3RlZCkKIHsKICAgICBpZiAoIXJlc3VsdC50eXBlLnVuaWZ5Tm9kZS5pc051bWJlcikKQEAgLTU0
NTEsNiArNTU2OCwzNjkgQEAgdGVzdHMuaGFsZlNpbXBsZU1hdGggPSBmdW5jdGlvbigpIHsKICAg
ICBjaGVja0hhbGYocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUhh
bGYocHJvZ3JhbSwgNyksIG1ha2VIYWxmKHByb2dyYW0sIC0yKV0pLCAtMy41KTsKIH0KIAordGVz
dHMudGV4dHVyZURpbWVuc2lvbnMgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcChgCisgICAgICAgIHVpbnQgZm9vMShUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAg
ICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZudW1iZXJPZkxl
dmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWlu
dCBmb28yKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0
aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1l
bnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAg
IHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzMoVGV4
dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7Cisg
ICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVs
czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmZWxlbWVu
dHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAg
IH0KKyAgICAgICAgdWludCBmb280KFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7Cisg
ICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAg
ICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRl
eHR1cmUsIDAsICZ3aWR0aCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAg
ICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNShUZXh0dXJl
MURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAg
ICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZlbGVtZW50cywg
Jm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAg
ICAgICAgfQorICAgICAgICB1aW50IGZvbzYoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7Cisg
ICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAg
ICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0
dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICBy
ZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb283KFRleHR1cmUyRDxmbG9h
dD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQg
aGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdl
dERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMp
OworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZv
bzgoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOwor
ICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxz
OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQs
ICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7Cisg
ICAgICAgIH0KKyAgICAgICAgdWludCBmb285KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJl
KSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7Cisg
ICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVs
czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0
LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7
CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xMChUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4
dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0
OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZM
ZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhl
aWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGhl
aWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzExKFRleHR1cmUyREFycmF5PGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1i
ZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRo
LCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1
cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xMihUZXh0dXJlMkRBcnJh
eTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAg
IHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVp
bnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAs
ICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAg
ICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTMo
VGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAg
ICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAg
ICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAg
ICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xNChUZXh0dXJl
M0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAg
ICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICB1aW50
IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAm
d2lkdGgsICZoZWlnaHQsICZkZXB0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJl
dHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xNShUZXh0dXJlM0Q8Zmxv
YXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50
IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICB1aW50IG51bWJl
ck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgs
ICZoZWlnaHQsICZkZXB0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBk
ZXB0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE2KFRleHR1cmUzRDxmbG9hdD4gdGV4
dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0
OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZl
bHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdo
dCwgJmRlcHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9m
TGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTcoVGV4dHVyZUN1YmU8ZmxvYXQ+
IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhl
aWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXRE
aW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsK
KyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE4
KFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOwor
ICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxz
OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQs
ICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9
CisgICAgICAgIHVpbnQgZm9vMTkoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAg
ICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAg
IHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUs
IDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVy
biBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIwKFJXVGV4dHVy
ZTFEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAg
ICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgpOworICAgICAgICAgICAgcmV0dXJuIHdp
ZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjEoUldUZXh0dXJlMURBcnJheTxmbG9h
dD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQg
ZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmVs
ZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1
aW50IGZvbzIyKFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAg
IHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0
RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1
cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yMyhSV1RleHR1cmUyRDxm
bG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVp
bnQgaGVpZ2h0OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZo
ZWlnaHQpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVp
bnQgZm9vMjQoUldUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQg
d2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7
CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yNShSV1RleHR1cmUyREFycmF5PGZsb2F0PiB0
ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWln
aHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9u
cyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1
cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yNihSV1RleHR1cmUyREFycmF5
PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAg
dWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0
RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cyk7CisgICAgICAg
ICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjcoUldUZXh0
dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAg
ICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAg
ICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMp
OworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAgICB9CisgICAgICAgIHVpbnQg
Zm9vMjgoUldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lk
dGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7Cisg
ICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRo
KTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZv
bzI5KFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRo
OworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAg
ICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCk7
CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9v
MzAoUldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7
CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAg
ICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoKTsK
KyAgICAgICAgICAgIHJldHVybiBkZXB0aDsKKyAgICAgICAgfQorICAgIGApOworICAgIGxldCB0
ZXh0dXJlMUQgPSBtYWtlMURUZXh0dXJlKHByb2dyYW0sIFtbMSwgNywgMTQsIDc5XSwgWzEzLCAx
Nl0sIFsxNV1dLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZTFEQXJyYXkgPSBtYWtlMURUZXh0
dXJlQXJyYXkocHJvZ3JhbSwgW1tbMSwgNywgMTQsIDc5XSwgWzEzLCAxNl0sIFsxNV1dLCBbWzE2
LCAxNywgMTgsIDE5XSwgWzIwLCAyMV0sIFsyMl1dXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1
cmUyRCA9IG1ha2UyRFRleHR1cmUocHJvZ3JhbSwgWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUs
IDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAg
ICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwg
MjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2XSwKKyAg
ICAgICAgWzM3LCAzOCwgMzksIDQwXV0sCisgICAgICAgIFtbNDEsIDQyXV0KKyAgICBdLCAiZmxv
YXQiKTsKKyAgICBsZXQgdGV4dHVyZTJEQXJyYXkgPSBtYWtlMkRUZXh0dXJlQXJyYXkocHJvZ3Jh
bSwgW1sKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEw
LCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwg
MjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwK
KyAgICAgICAgW1szMywgMzQsIDM1LCAzNl0sCisgICAgICAgIFszNywgMzgsIDM5LCA0MF1dLAor
ICAgICAgICBbWzQxLCA0Ml1dCisgICAgXSwgWworICAgICAgICBbWzQzLCA0NCwgNDUsIDQ2LCA0
NywgNDgsIDQ5LCA1MF0sCisgICAgICAgIFs1MSwgNTIsIDUzLCA1NCwgNTUsIDU2LCA1NywgNThd
LAorICAgICAgICBbNTksIDYwLCA2MSwgNjIsIDYzLCA2NCwgNjUsIDY2XSwKKyAgICAgICAgWzY3
LCA2OCwgNjksIDcwLCA3MSwgNzIsIDczLCA3NF1dLAorICAgICAgICBbWzc1LCA3NiwgNzcsIDc4
XSwKKyAgICAgICAgWzc5LCA4MCwgODEsIDgyXV0sCisgICAgICAgIFtbODMsIDg0XV0KKyAgICBd
XSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmUzRCA9IG1ha2UzRFRleHR1cmUocHJvZ3JhbSwg
WworICAgICAgICBbW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAx
MSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIs
IDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAg
ICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIs
IDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAy
NF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXV0sCisgICAgICAg
IFtbWzMzLCAzNCwgMzUsIDM2XSwKKyAgICAgICAgWzM3LCAzOCwgMzksIDQwXV1dCisgICAgXSwg
ImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmVDdWJlID0gbWFrZVRleHR1cmVDdWJlKHByb2dyYW0s
IFtbCisgICAgICAgIFtbMSwgMl0sCisgICAgICAgIFszLCA0XSwKKyAgICAgICAgWzUsIDZdLAor
ICAgICAgICBbNywgOF1dLAorICAgICAgICBbWzldLAorICAgICAgICBbMTBdXSwKKyAgICBdLCBb
CisgICAgICAgIFtbMTEsIDEyXSwKKyAgICAgICAgWzEzLCAxNF0sCisgICAgICAgIFsxNSwgMTZd
LAorICAgICAgICBbMTcsIDE4XV0sCisgICAgICAgIFtbMTldLAorICAgICAgICBbMjBdXSwKKyAg
ICBdLCBbCisgICAgICAgIFtbMjEsIDIyXSwKKyAgICAgICAgWzIzLCAyNF0sCisgICAgICAgIFsy
NSwgMjZdLAorICAgICAgICBbMjcsIDI4XV0sCisgICAgICAgIFtbMjldLAorICAgICAgICBbMzBd
XSwKKyAgICBdLCBbCisgICAgICAgIFtbMzEsIDMyXSwKKyAgICAgICAgWzMzLCAzNF0sCisgICAg
ICAgIFszNSwgMzZdLAorICAgICAgICBbMzcsIDM4XV0sCisgICAgICAgIFtbMzldLAorICAgICAg
ICBbNDBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbNDEsIDQyXSwKKyAgICAgICAgWzQzLCA0NF0s
CisgICAgICAgIFs0NSwgNDZdLAorICAgICAgICBbNDcsIDQ4XV0sCisgICAgICAgIFtbNDldLAor
ICAgICAgICBbNTBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbNTEsIDUyXSwKKyAgICAgICAgWzUz
LCA1NF0sCisgICAgICAgIFs1NSwgNTZdLAorICAgICAgICBbNTcsIDU4XV0sCisgICAgICAgIFtb
NTldLAorICAgICAgICBbNjBdXSwKKyAgICBdXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4dHVy
ZTFEID0gWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdOworICAgIGxldCByd1RleHR1cmUxREFycmF5
ID0gW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUs
IDE2XSwgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF1dOworICAgIGxldCByd1RleHR1
cmUyRCA9IFsKKyAgICAgICAgWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwg
MTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIx
LCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1d
OworICAgIGxldCByd1RleHR1cmUyREFycmF5ID0gWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUs
IDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAg
ICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwg
MjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2LCAzNywg
MzgsIDM5LCA0MF0sCisgICAgICAgIFs0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDhdLAor
ICAgICAgICBbNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2XSwKKyAgICAgICAgWzU3LCA1
OCwgNTksIDYwLCA2MSwgNjIsIDYzLCA2NF1dXTsKKyAgICBsZXQgcndUZXh0dXJlM0QgPSBbCisg
ICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEy
LCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywg
MjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAg
IFtbMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwXSwKKyAgICAgICAgWzQxLCA0MiwgNDMs
IDQ0LCA0NSwgNDYsIDQ3LCA0OF0sCisgICAgICAgIFs0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1
NSwgNTZdLAorICAgICAgICBbNTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjMsIDY0XV1dOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVy
ZTFEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIiLCBbdGV4dHVyZTFEXSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXldKSwgNCk7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJh
eV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b281IiwgW3RleHR1cmUxREFycmF5XSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJEXSksIDgpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEXSksIDQp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBb
dGV4dHVyZTJEXSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzkiLCBbdGV4dHVyZTJEQXJyYXldKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTJEQXJyYXldKSwgNCk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBb
dGV4dHVyZTJEQXJyYXldKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTIiLCBbdGV4dHVyZTJEQXJyYXldKSwgMyk7CisgICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZTNEXSksIDgp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0Iiwg
W3RleHR1cmUzRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xNSIsIFt0ZXh0dXJlM0RdKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZTNEXSksIDIpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVD
dWJlXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE4IiwgW3RleHR1cmVDdWJlXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVDdWJlXSksIDIpOworICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZTFE
XSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIxIiwgW3J3VGV4dHVyZTFEQXJyYXldKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbcndUZXh0dXJlMURBcnJheV0pLCAzKTsKKyAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFtyd1Rl
eHR1cmUyRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yNCIsIFtyd1RleHR1cmUyRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNSIsIFtyd1RleHR1cmUyREFycmF5XSksIDgpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI2IiwgW3J3
VGV4dHVyZTJEQXJyYXldKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjciLCBbcndUZXh0dXJlMkRBcnJheV0pLCAyKTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOCIsIFtyd1RleHR1cmUzRF0p
LCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
OSIsIFtyd1RleHR1cmUzRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zMCIsIFtyd1RleHR1cmUzRF0pLCAyKTsKK30KKwordGVzdHMudGV4
dHVyZUxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCisgICAg
ICAgIGZsb2F0IGZvbyhUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIGludCBtaXBtYXAsIGludCBs
b2NhdGlvbikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MihtaXBtYXAs
IGxvY2F0aW9uKSk7CisgICAgICAgIH0KKyAgICBgKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2UxRFRleHR1cmUocHJvZ3JhbSwgW1sx
LCA3LCAxNCwgNzldLCBbMTMsIDE2XSwgWzE1XV0sICJmbG9hdCIpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZTFEVGV4dHVyZShwcm9ncmFtLCBbWzEs
IDcsIDE0LCA3OV0sIFsxMywgMTZdLCBbMTVdXSwgImZsb2F0IiksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOworfQorCiBva1RvVGVzdCA9IHRydWU7CiAK
IGxldCB0ZXN0RmlsdGVyID0gLy4qLzsgLy8gcnVuIGV2ZXJ5dGhpbmcgYnkgZGVmYXVsdApkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlT3BlcmF0aW9ucy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iYWJhYzRiNmRiNjkwYTY2ZmU5OTc0ZTg4ZWQ5ODk1MzRhOTIwMWI5Ci0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJh
dGlvbnMuanMKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisidXNlIHN0cmljdCI7CisKK2Z1bmN0aW9uIHRleHR1cmVMb2FkKHRleHR1
cmUsIHBhdGgpCit7CisgICAgZm9yICh2YXIgaW5kZXggb2YgcGF0aCkgeworICAgICAgICBpZiAo
aW5kZXggPCAwIHx8IGluZGV4ID49IHRleHR1cmUubGVuZ3RoKQorICAgICAgICAgICAgdGhyb3cg
bmV3IFdUcmFwRXJyb3IoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIpOwor
ICAgICAgICB0ZXh0dXJlID0gdGV4dHVyZVtpbmRleF07CisgICAgfQorICAgIHJldHVybiB0ZXh0
dXJlOworfQorCitmdW5jdGlvbiB0ZXh0dXJlU3RvcmUodGV4dHVyZSwgdmFsdWUsIHBhdGgpCit7
CisgICAgZG8geworICAgICAgICBpZiAocGF0aC5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiWmVyby1sZW5ndGggc3RvcmUgcGF0aCIpOworICAgICAgICBpZiAocGF0
aC5sZW5ndGggPT0gMSkgeworICAgICAgICAgICAgdGV4dHVyZVtwYXRoWzBdXSA9IHZhbHVlOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGV4dHVy
ZSA9IHRleHR1cmVbcGF0aFswXV07CisgICAgICAgICAgICBwYXRoLnNoaWZ0KCk7CisgICAgICAg
IH0KKyAgICB9IHdoaWxlICh0cnVlKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9p
bmRleC5odG1sCmluZGV4IDY1YTg2NDExYjNlNzcwYjU1N2I0MWFjYzdlNDE0ZGVmNDI0MDMwMTMu
LjgzNjZiYjE4ZDE3MGU5M2Y4MDBkZjU4MjJmYTVlYWZlYjQzYmVkODMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKKysrIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbApAQCAtMTI3LDYgKzEyNyw3IEBACiA8c2NyaXB0
IHNyYz0iU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJTeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IlRlcm5hcnlFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJUZXh0dXJlT3BlcmF0aW9ucy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHJh
cFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348467</attachid>
            <date>2018-08-29 19:18:44 -0700</date>
            <delta_ts>2018-08-30 11:54:22 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188940-20180829191843.patch</filename>
            <type>text/plain</type>
            <size>68595</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NDkzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDUwZGE1MGVlYTI3MjJhZDFjMmZlZmY3ODczYzc4ZGRm
YjE4MTdiMC4uYWVlNDFlYjhhN2NiNWY5YTI5ZjMzMzdmYjQxMzBlMDJjMzUxNmJiYSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2
IEBACisyMDE4LTA4LTI5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+
CisKKyAgICAgICAgW1dITFNMXSBJbXBsZW1lbnQgdGV4dHVyZSB0eXBlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTQwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2lj
cy5qczoKKyAgICAgICAgKEludHJpbnNpY3MuKToKKyAgICAgICAgKEludHJpbnNpY3MpOgorICAg
ICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWw6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAobGV0LnN0
YW5kYXJkTGlicmFyeSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5o
dG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanM6CisgICAgICAg
IChtYWtlU2FtcGxlcik6CisgICAgICAgIChtYWtlMURUZXh0dXJlKToKKyAgICAgICAgKG1ha2Ux
RFRleHR1cmVBcnJheSk6CisgICAgICAgIChtYWtlMkRUZXh0dXJlKToKKyAgICAgICAgKG1ha2Uy
RFRleHR1cmVBcnJheSk6CisgICAgICAgIChtYWtlM0RUZXh0dXJlKToKKyAgICAgICAgKG1ha2VU
ZXh0dXJlQ3ViZSk6CisgICAgICAgIChtYWtlUlcxRFRleHR1cmUpOgorICAgICAgICAobWFrZVJX
MURUZXh0dXJlQXJyYXkpOgorICAgICAgICAobWFrZVJXMkRUZXh0dXJlKToKKyAgICAgICAgKG1h
a2VSVzJEVGV4dHVyZUFycmF5KToKKyAgICAgICAgKG1ha2VSVzNEVGV4dHVyZSk6CisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanM6IEFkZGVkLgor
ICAgICAgICAodGV4dHVyZUxvYWQpOgorICAgICAgICAodGV4dHVyZVN0b3JlKToKKyAgICAgICAg
KiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sOgorCiAyMDE4LTA4LTI5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dITFNMXSBU
ZXN0IHJvdy1tYWpvcm5lc3Mgb2YgbWF0cmljZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0FsbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Fs
bC5qcwppbmRleCA5YzJhMzcxNTBjMWU5NzZiOTI2Y2ZiZWUyMzQzNzUyMGE4ZGU0YTQ3Li5jYzA3
ZmRiNTE2NjE2ZDMyOGYzODQ0NWU5NWE4MjA1MzkyZTVkYTVhIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQWxsLmpzCkBAIC0xNTAsNiArMTUwLDcgQEAgbG9hZCgiU3ludGhlc2l6ZVN0cnVj
dEFjY2Vzc29ycy5qcyIpOwogbG9hZCgiU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9y
LmpzIik7CiBsb2FkKCJTeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiKTsK
IGxvYWQoIlRlcm5hcnlFeHByZXNzaW9uLmpzIik7Citsb2FkKCJUZXh0dXJlT3BlcmF0aW9ucy5q
cyIpOwogbG9hZCgiVHJhcFN0YXRlbWVudC5qcyIpOwogbG9hZCgiVHlwZURlZi5qcyIpOwogbG9h
ZCgiVHlwZURlZlJlc29sdmVyLmpzIik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
SW50cmluc2ljcy5qcwppbmRleCBiMDA0MDY3ZjVlYmZiM2E4YjRiZDk4ZTQzN2E4YzA3NjhiZTI2
ZjFlLi5lYTM5NGU0MmZiYWU0NTJjY2M5NDcwOGEzNTRjODQxZjZjMzUxY2EyIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCisrKyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMKQEAgLTMzMCw3ICszMzAsOCBA
QCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiBzYW1wbGVy
IiwKICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAgICAgICAgICAgIHRoaXMuc2FtcGxlciA9
IHR5cGU7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBwdXQg
aGVyZS4KKyAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgIHR5
cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQo
b2Zmc2V0LCB7fSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICBmb3IgKGxldCB0ZXh0dXJl
VHlwZSBvZiBbIlRleHR1cmUxRCIsICJSV1RleHR1cmUxRCIsICJUZXh0dXJlMURBcnJheSIsICJS
V1RleHR1cmUxREFycmF5IiwgIlRleHR1cmUyRCIsICJSV1RleHR1cmUyRCIsICJUZXh0dXJlMkRB
cnJheSIsICJSV1RleHR1cmUyREFycmF5IiwgIlRleHR1cmUzRCIsICJSV1RleHR1cmUzRCIsICJU
ZXh0dXJlQ3ViZSJdKSB7CkBAIC0zMzksMTIgKzM0MCwxNiBAQCBjbGFzcyBJbnRyaW5zaWNzIHsK
ICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlw
ZUFyZ3VtZW50fT5gLAogICAgICAgICAgICAgICAgICAgICB0eXBlID0+IHsKICAgICAgICAgICAg
ICAgICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gXSA9IHR5
cGU7CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAg
ICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkg
PT4gYnVmZmVyLnNldChvZmZzZXQsIHt9KTsKICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAg
ICAgICAgICAgICAgZm9yIChsZXQgaSA9IDI7IGkgPD0gNDsgKytpKSB7CiAgICAgICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5
cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9JHtpfT5gLAogICAgICAgICAgICAg
ICAgICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tg
JHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9JHtpfT5gXSA9IHR5cGU7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZm
ZXIuc2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtMzU2LDYgKzM2MSw4IEBAIGNsYXNzIEludHJp
bnNpY3MgewogICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlw
ZX08JHt0eXBlQXJndW1lbnR9PmAsCiAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gewogICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9
PmBdID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAg
ICAgICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwg
b2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAgICAgICAgICB9
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtOTE0LDYgKzkyMSw3NDUgQEAgY2xhc3Mg
SW50cmluc2ljcyB7CiAKICAgICAgICAgZm9yIChsZXQgc2V0dGVyIG9mIEJ1aWx0aW5NYXRyaXhT
ZXR0ZXIuZnVuY3Rpb25zKCkpCiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KHNldHRlci50b1N0
cmluZygpLCBmdW5jID0+IHNldHRlci5pbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsK
KworICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFsiYm9vbCIsICJ1Y2hhciIsICJ1c2hvcnQiLCAi
dWludCIsICJjaGFyIiwgInNob3J0IiwgImludCIsICJoYWxmIiwgImZsb2F0Il0pIHsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNh
bXBsZShUZXh0dXJlMUQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdCBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTFEPCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQgbG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZTFEPCR7
dHlwZX0+LGludDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwg
bG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3godGV4
dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24u
Z2V0KDEpXSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSBMb2FkKFRleHR1cmUxRDwke3R5cGV9PixpbnQyIGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQubG9h
ZFZhbHVlKCldKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lk
IEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPCR7dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhy
ZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZW5ndGgpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJSZWFkaW5n
IGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFttaXBJRF0u
bGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlMURBcnJh
eTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZTFEQXJyYXk8JHt0
eXBlfT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0
dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIGxvY2F0aW9uLmdldCgyKV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlMURBcnJheTwke3R5cGV9PixpbnQzIGxvY2F0
aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRp
b24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0
ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSArIG9mZnNldC5sb2FkVmFsdWUoKV0pKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0
dXJlMURBcnJheTwke3R5cGV9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50
KiB0aHJlYWQgRWxlbWVudHMsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBlbGVtZW50cywgbnVtYmVy
T2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5s
b2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVs
LmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sZW5ndGggPT0g
MCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xv
YWRdIiwgIk5vIGVsZW1lbnRzIGluIHRoZSB0ZXh0dXJlIGFycmF5Iik7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4WzBdLmxlbmd0aCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlJlYWRpbmcgZnJvbSBu
b25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdW21pcElEXS5sZW5n
dGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleC5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXS5sZW5n
dGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworCisg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX0gU2FtcGxlKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVy
ZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlh
cyhUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgQmlhcylg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFz
XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1w
bGVCaWFzKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBC
aWFzLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb24sIGJpYXMsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1
cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBE
RFksaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEPCR7dHlwZX0+LHNh
bXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IExPRClgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2RdKSB7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmUyRDwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBMT0QsaW50MiBvZmZzZXQpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kLCBvZmZzZXRd
KSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXIoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0
dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkQ8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVy
ZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkQ8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJl
MkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUy
RDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEPCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlMkQ8JHt0eXBl
fT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJl
TG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQo
MSksIGxvY2F0aW9uLmdldCgyKV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlMkQ8JHt0eXBlfT4saW50MyBsb2NhdGlvbixpbnQy
IG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVM
b2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSArIG9mZnNldC5nZXQoMCksIGxvY2F0aW9uLmdldCgyKSArIG9mZnNldC5nZXQoMSldKSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMo
VGV4dHVyZTJEPCR7dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQq
IHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIG51bWJlck9mTGV2
ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZh
bHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2Fk
VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGVuZ3Ro
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9h
ZF0iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4W21pcElEXS5sZW5ndGggPT0gMCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRl
eHR1cmUgaGFzIG5vIHJvd3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbbWlwSURdLmxlbmd0aCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
W21pcElEXVswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9m
TGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZW5ndGgpLCAxKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRl
eHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlMkRBcnJh
eTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMo
VGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlh
cylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBi
aWFzXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBT
YW1wbGVCaWFzKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
LGZsb2F0IEJpYXMsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhcywgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmUyREFycmF5PCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSlgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRk
eV0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlR3JhZChUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixm
bG9hdDIgRERYLGZsb2F0MiBERFksaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4
dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9EKWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxl
TGV2ZWwoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxv
YXQgTE9ELGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNh
bXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUyREFycmF5PCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8
JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyREFycmF5PCR7dHlw
ZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVy
ZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJy
YXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgewor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxw
aGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRl
eHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9m
ZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0g
TG9hZChUZXh0dXJlMkRBcnJheTwke3R5cGV9PixpbnQ0IGxvY2F0aW9uKWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5n
ZXQoMyldKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
IExvYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4saW50NCBsb2NhdGlvbixpbnQyIG9mZnNldClg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1
cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRp
b24uZ2V0KDIpICsgb2Zmc2V0LmdldCgwKSwgbG9jYXRpb24uZ2V0KDMpICsgb2Zmc2V0LmdldCgx
KV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGlt
ZW5zaW9ucyhUZXh0dXJlMkRBcnJheTwke3R5cGV9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVh
ZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBFbGVtZW50cyx1aW50KiB0
aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBt
aXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHMsIG51bWJlck9mTGV2ZWxzXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXgubGVuZ3RoID09IDApCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJObyBlbGVtZW50
cyBpbiB0aGUgdGV4dHVyZSBhcnJheSIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1p
cElEID49IHRleFswXS5sZW5ndGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cg
bmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxl
dmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXhbMF1bbWlw
SURdLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBX
VHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gcm93cyIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXVtt
aXBJRF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF1bbWlwSURdWzBdLmxlbmd0aCksIDEpOworICAg
ICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZl
bHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4
dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlM0Q8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MyBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUzRDwke3R5
cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbixpbnQzIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTNEPCR7dHlwZX0+LHNh
bXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUzRDwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBs
ZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBs
b2NhdGlvbixpbnQzIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBs
b2NhdGlvbixpbnQzIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZTNEPCR7dHlwZX0+LGludDQgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2Fk
VmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQo
MiksIGxvY2F0aW9uLmdldCgzKV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlM0Q8JHt0eXBlfT4saW50NCBsb2NhdGlvbixpbnQz
IG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVM
b2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSArIG9mZnNldC5nZXQoMCksIGxvY2F0aW9uLmdldCgyKSArIG9mZnNldC5nZXQoMSksIGxvY2F0
aW9uLmdldCgzKSArIG9mZnNldC5nZXQoMildKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTNEPCR7dHlwZX0+LHVpbnQg
TWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhy
ZWFkIERlcHRoLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbnVtYmVyT2ZM
ZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2Fk
VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxv
YWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZW5n
dGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIlts
b2FkXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXhbbWlwSURdLmxlbmd0aCA9PSAwKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAi
VGV4dHVyZSBoYXMgemVybyBkZXB0aCIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRl
eFttaXBJRF1bMF0ubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhy
b3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyByb3dzIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBkZXB0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0
ZXhbbWlwSURdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0Lmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFttaXBJRF1bMF0ubGVuZ3RoKSwgMSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXhbbWlwSURdWzBdWzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAg
bnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCks
IDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBT
YW1wbGUoVGV4dHVyZUN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0
dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdy
YWQoVGV4dHVyZUN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQzIERE
WCxmbG9hdDMgRERZKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZUN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9j
YXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdh
dGhlckdyZWVuKFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVl
KFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJl
Q3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmVDdWJlPCR7dHlw
ZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQs
dWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICh0ZXgubGVuZ3RoICE9IDYpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJDdWJlIHRleHR1cmUg
ZG9lc24ndCBoYXZlIDYgZmFjZXMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJ
RCA+PSB0ZXhbMF0ubGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5l
dyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZl
bCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4WzBdW21pcElE
XS5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1Ry
YXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIHJvd3MiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF1bbWlw
SURdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdW21pcElEXVswXS5sZW5ndGgpLCAxKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleFswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUxRDwke3R5cGV9Pix1aW50
KiB0aHJlYWQgV2lkdGgpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleHR1cmUubG9hZFZhbHVlKCkubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMUQ8JHt0
eXBlfT4sZmxvYXQqIHRocmVhZCBXaWR0aClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHdpZHRoXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4dHVyZS5sb2FkVmFsdWUoKS5sZW5ndGgpLCAxKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChSV1RleHR1cmUx
RDwke3R5cGV9PixpbnQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVy
ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3go
dGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmxvYWRWYWx1ZSgpXSkp
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1Rl
eHR1cmUxRDwke3R5cGV9Piwke3R5cGV9LHVpbnQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgdGV4dHVyZVN0b3JlKHRleHR1cmUubG9hZFZhbHVlKCksIHZhbHVlLmxvYWRWYWx1ZSgp
LCBbbG9jYXRpb24ubG9hZFZhbHVlKCldKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUxREFycmF5PCR7dHlwZX0+
LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICh0ZXgubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyBlbGVtZW50cyIp
OworICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4
dHVyZTFEQXJyYXk8JHt0eXBlfT4sZmxvYXQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgRWxl
bWVudHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgZWxlbWVudHNd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXgubGVuZ3RoID09IDApCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0
dXJlIGhhcyBubyBlbGVtZW50cyIpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAg
ICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBd
Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSBMb2FkKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfT4saW50MiBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSldKSk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBl
fT4sJHt0eXBlfSx1aW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0dXJl
U3RvcmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgdmFsdWUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5n
ZXQoMCksIGxvY2F0aW9uLmdldCgxKV0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTJEPCR7dHlwZX0+LHVpbnQq
IHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0KWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
bihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHRleC5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
V1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIHJvd3MiKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVu
Z3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5
RnJvbShFUHRyLmJveCh0ZXhbMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkQ8JHt0eXBlfT4s
ZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhyZWFkIEhlaWdodClgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHRdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICh0ZXgubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhy
b3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyByb3dzIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFJXVGV4dHVyZTJEPCR7dHlwZX0+
LGludDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRp
b25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxv
YWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEp
XSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShS
V1RleHR1cmUyRDwke3R5cGV9Piwke3R5cGV9LHVpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHRleHR1cmVTdG9yZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCB2YWx1ZS5sb2FkVmFs
dWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpXSk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJl
MkRBcnJheTwke3R5cGV9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1
aW50KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3
aWR0aCwgaGVpZ2h0LCBlbGVtZW50c10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0
ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRl
eC5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1Ry
YXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIGVsZW1lbnRzIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAodGV4WzBdLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8g
cm93cyIpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAg
aGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXS5sZW5ndGgpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIu
Ym94KHRleFswXVswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUyREFycmF5PCR7dHlwZX0+LGZs
b2F0KiB0aHJlYWQgV2lkdGgsZmxvYXQqIHRocmVhZCBIZWlnaHQsZmxvYXQqIHRocmVhZCBFbGVt
ZW50cylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGVs
ZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9h
ZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4Lmxlbmd0aCA9PSAwKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0i
LCAiVGV4dHVyZSBoYXMgbm8gZWxlbWVudHMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICh0ZXhbMF0ubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cg
bmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyByb3dzIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0
ZXgubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAg
ICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdWzBdLmxl
bmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSBMb2FkKFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4saW50MyBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKV0pKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJl
MkRBcnJheTwke3R5cGV9Piwke3R5cGV9LHVpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRleHR1cmVTdG9yZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCB2YWx1ZS5sb2FkVmFsdWUo
KSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMildKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5z
aW9ucyhSV1RleHR1cmUzRDwke3R5cGV9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFk
IEhlaWdodCx1aW50KiB0aHJlYWQgRGVwdGgpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHRleC5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
V1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIGRlcHRoIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAodGV4WzBdLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8g
cm93cyIpOworICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGgubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVp
Z2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXS5sZW5ndGgpLCAxKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KHRleFswXVswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUzRDwke3R5cGV9PixmbG9hdCogdGhy
ZWFkIFdpZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0LGZsb2F0KiB0aHJlYWQgRGVwdGgpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFz
IG5vIGRlcHRoIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4WzBdLmxlbmd0aCA9
PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJb
bG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gcm93cyIpOworICAgICAgICAgICAgICAgICAgICAgICAg
ZGVwdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAg
ICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KHRleFswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXVswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChSV1RleHR1cmUzRDwk
e3R5cGV9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRl
eHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9u
LmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpXSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUzRDwke3R5cGV9Piwke3R5cGV9LHVpbnQz
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHR1cmVTdG9yZSh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCB2YWx1ZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24u
Z2V0KDEpLCBsb2NhdGlvbi5nZXQoMildKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworCisgICAgICAgICAgICBmdW5jdGlvbiBib3hWZWN0b3IoYSkKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEVQdHIobmV3IEVCdWZm
ZXIoYS5sZW5ndGgpLCAwKTsKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGEu
bGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5zZXQoaSwgYVtpXSk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgZm9yIChsZXQgbGVuZ3RoIG9mIFsyLCAzLCA0XSkgeworICAgICAgICAgICAgfQorICAgICAg
ICB9CiAgICAgfQogCiAgICAgYWRkKHRoaW5nKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1NQSVJWLmh0bWwKaW5kZXggNzhkMDA4ZjgzNWY5ZTljMjM0ZWYyZGY2ZDZkZWVhM2Y3NDI2Y2U2
NS4uZGRjNjVlMzY3ZGQ5OTlkZGIxN2QyOWNmNmM1YzZlNjI1NDFkMmE3MSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbAorKysgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCkBAIC0xMzMsNiArMTMzLDcgQEAgdGQgewog
ICAgIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3Bl
cmF0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlRleHR1cmVPcGVyYXRpb25zLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVHJhcFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUeXBl
RGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCmluZGV4IDNkZDRmZWUxODYwMGQ1Y2QyYTg5NWFkNWE0
Nzk3MjFkYTc3ODhjYzEuLjIxYThkMjkyYjhmYmI1OGVhYzk4MDNkYjgwYTRlMzMwMWFlZDVjZGEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFy
eS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnku
anMKQEAgLTE4OTcsOSArMTg5NywxMCBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9u
KCkgewogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEludGVybG9ja2VkQ29tcGFyZUV4
Y2hhbmdlKHRocmVhZCBhdG9taWNfJHt0eXBlfSosICR7dHlwZX0sICR7dHlwZX0sIHRocmVhZCAk
e3R5cGV9Kik7YCk7CiAgICAgICAgIH0KICAgICAgICAgcHJpbnQoKTsKLSAgICAgICAgCisgICAg
ICAgICovCisKICAgICAgICAgZm9yICh2YXIgdHlwZSBvZiBbYHVjaGFyYCwgYHVzaG9ydGAsIGB1
aW50YCwgYGNoYXJgLCBgc2hvcnRgLCBgaW50YCwgYGhhbGZgLCBgZmxvYXRgXSkgewotICAgICAg
ICAgICAgZm9yICh2YXIgbGVuZ3RoIG9mIFtgYCwgYDJgLCBgM2AsIGA0YF0pIHsKKyAgICAgICAg
ICAgIGZvciAodmFyIGxlbmd0aCBvZiBbYGAvKiwgYDJgLCBgM2AsIGA0YCovXSkgewogICAgICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTFE
PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7YCk7CiAgICAgICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMUQ8
JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTtg
KTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChU
ZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sIGludDIgbG9jYXRpb24pO2ApOwpAQCAtMjAxMCw3
ICsyMDExLDggQEAgbGV0IHN0YW5kYXJkTGlicmFyeSA9IChmdW5jdGlvbigpIHsKICAgICAgICAg
ICAgICAgICBwcmludCgpOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIAorCisg
ICAgICAgIC8qCiAgICAgICAgIGZvciAodmFyIHR5cGUgb2YgW2BoYWxmYCwgYGZsb2F0YF0pIHsK
ICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkQ8
JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVy
LCBmbG9hdDIgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1Rlc3QuaHRtbAppbmRleCA2MDdhNjk1MzI1M2RhNzI3YjFkZTM3Njc4ZWMzODhiNGZh
MjQwNDA1Li42OWM5MTA0OTJlZDExYWIyYjMwZTI3ODNlYWY3ZWJiZmZkZmUxNjBhIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKKysrIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sCkBAIC0xMjcsNiArMTI3LDcgQEAKIDxz
Y3JpcHQgc3JjPSJTeW50aGVzaXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVGVybmFyeUV4cHJlc3Npb24uanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9IlRleHR1cmVPcGVyYXRpb25zLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJUcmFwU3RhdGVtZW50LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgpAQCAt
MTUyLDcgKzE1Myw3IEBACiA8c2NyaXB0PgogZnVuY3Rpb24gZG9UZXN0SW5Ccm93c2VyKCkKIHsK
LSAgICB2YXIgdGVzdGVyID0gZG9UZXN0KC8uKi8pOworICAgIHZhciB0ZXN0ZXIgPSBkb1Rlc3Qo
L3RleHR1cmUvKTsKICAgICB2YXIgbGFzdFRpbWU7CiAgICAgZnVuY3Rpb24gbmV4dCgpCiAgICAg
ewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKaW5kZXggMmI1Zjg3MmQ4OTcwYzll
OWUwMzlhOGIxODI3ZTM3NzM4MDc4OWZmYi4uODM2NWFkMmZlM2U0MTg1OWFjODY1NzZjOTBmZjE5
MjMzZTNmNDI5YiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVz
dC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCkBAIC05NCw2
ICs5NCwxMjMgQEAgZnVuY3Rpb24gbWFrZUVudW0ocHJvZ3JhbSwgZW51bU5hbWUsIHZhbHVlKQog
ICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChlbnVtVHlwZSwgZW51bU1lbWJlci52YWx1ZS51bmlm
eU5vZGUudmFsdWVGb3JTZWxlY3RlZFR5cGUpOwogfQogCitmdW5jdGlvbiBtYWtlU2FtcGxlcihw
cm9ncmFtLCBzYW1wbGVyRGF0YSkKK3sKKyAgICAvLyBlbnVtIEFkZHJlc3NNb2RlIHsKKyAgICAv
LyAgICAgImNsYW1wVG9FZGdlIiwKKyAgICAvLyAgICAgInJlcGVhdCIsCisgICAgLy8gICAgICJt
aXJyb3JSZXBlYXQiLAorICAgIC8vICAgICAiY2xhbXBUb0JvcmRlckNvbG9yIgorICAgIC8vIH0K
KyAgICAvLworICAgIC8vIGVudW0gRmlsdGVyIHsKKyAgICAvLyAgICAgIm5lYXJlc3QiLAorICAg
IC8vICAgICAibGluZWFyIgorICAgIC8vIH0KKyAgICAvLworICAgIC8vIGVudW0gQ29tcGFyZUZ1
bmN0aW9uIHsKKyAgICAvLyAgICAgIm5ldmVyIiwKKyAgICAvLyAgICAgImxlc3MiLAorICAgIC8v
ICAgICAiZXF1YWwiLAorICAgIC8vICAgICAibGVzc0VxdWFsIiwKKyAgICAvLyAgICAgImdyZWF0
ZXIiLAorICAgIC8vICAgICAibm90RXF1YWwiLAorICAgIC8vICAgICAiZ3JlYXRlckVxdWFsIiwK
KyAgICAvLyAgICAgImFsd2F5cyIKKyAgICAvLyB9CisgICAgLy8KKyAgICAvLyBlbnVtIEJvcmRl
ckNvbG9yIHsKKyAgICAvLyAgICAgInRyYW5zcGFyZW50QmxhY2siLAorICAgIC8vICAgICAib3Bh
cXVlQmxhY2siLAorICAgIC8vICAgICAib3BhcXVlV2hpdGUiCisgICAgLy8gfQorICAgIC8vCisg
ICAgLy8gZGljdGlvbmFyeSBTYW1wbGVyRGF0YSB7CisgICAgLy8gICAgIEFkZHJlc3NNb2RlIHJB
ZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSIsCisgICAgLy8gICAgIEFkZHJlc3NNb2RlIHNBZGRy
ZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSIsCisgICAgLy8gICAgIEFkZHJlc3NNb2RlIHRBZGRyZXNz
TW9kZSA9ICJjbGFtcFRvRWRnZSIsCisgICAgLy8gICAgIEZpbHRlciBtaW5GaWx0ZXIgPSAibmVh
cmVzdCIsCisgICAgLy8gICAgIEZpbHRlciBtYWdGaWx0ZXIgPSAibmVhcmVzdCIsCisgICAgLy8g
ICAgIEZpbHRlciBtaXBGaWx0ZXIgPSAibmVhcmVzdCIsCisgICAgLy8gICAgIGZsb2F0IGxvZE1p
bkNsYW1wID0gMCwKKyAgICAvLyAgICAgZmxvYXQgbG9kTWF4Q2xhbXAgPSBGTFRfTUFYLAorICAg
IC8vICAgICB1bnNpZ25lZCBsb25nIG1heEFuaXNvdHJvcHkgPSAxLAorICAgIC8vICAgICBib29s
ZWFuIG5vcm1hbGl6ZWRDb29yZGluYXRlcyA9IHRydWUsCisgICAgLy8gICAgIENvbXBhcmVGdW5j
dGlvbiBjb21wYXJlRnVuY3Rpb24gPSAibmV2ZXIiLAorICAgIC8vICAgICBCb3JkZXJDb2xvciBi
b3JkZXJDb2xvciA9ICJ0cmFuc3BhcmVudEJsYWNrIgorICAgIC8vIH0KKyAgICAvLworICAgIHJl
dHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3Muc2FtcGxlciwgc2FtcGxlckRh
dGEpOworfQorCisvLyBFbGVtZW50cyBtYXkgZWl0aGVyIGJlIGEgbnVtYmVyIG9yIGEgdmVjdG9y
IG9mIDItNCBudW1iZXJzLgorLy8gMUQgVGV4dHVyZTogQW4gYXJyYXkgb2YgbWlwbWFwcy4gVGhl
IGZpcnN0IG1pcG1hcCBpcyB0aGUgZnVsbCBzaXplLCBhbmQgaXMgYSBwb3dlci1vZi10d28uIEVh
Y2ggbWlwbWFwIGlzIGhhbGYtc2l6ZSBvZiB0aGUgcHJldmlvdXMgc2l6ZS4KKy8vIDFEIFRleHR1
cmUgQXJyYXk6IEFuIGFycmF5IG9mIDFEIHRleHR1cmVzCisvLyAyRCBUZXh0dXJlOiBBbiBhcnJh
eSBvZiBtaXBtYXBzLiBUaGUgZmlyc3QgbWlwbWFwIGlzIGEgcmVjdGFuZ3VsYXIgYXJyYXkgb2Yg
cm93cywgYW5kIGVhY2ggcm93IGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLiBCb3RoIHRoZSByb3cg
YW5kIGNvbHVtbiBjb3VudHMgbXVzdCBiZSBwb3dlcnMgb2YgdHdvLiBFYWNoIG1pcG1hcCBpcyBo
YWxmLXdpZHRoIGFuZCBoYWxmLWhlaWdodCBvZiB0aGUgcHJldmlvdXMgc2l6ZS4KKy8vIDJEIFRl
eHR1cmUgQXJyYXk6IEFuIGFycmF5IG9mIDJEIHRleHR1cmVzCisvLyAzRCBUZXh0dXJlOiBBbiBh
cnJheSBvZiBtaXBtYXBzLiBUaGUgZmlyc3QgbWlwbWFwIGlzIGEgcmVjdGFuZ3VsYXIgYXJyYXkg
b2YgY29sdW1ucywgZWFjaCBjb2x1bW4gaXMgYW4gYXJyYXkgb2Ygcm93cywgYW5kIGVhY2ggcm93
IGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLiBCb3RoIGRlcHRoLCByb3csIGFuZCBjb2x1bW4gY291
bnRzIG11c3QgYmUgcG93ZXJzIG9mIHR3by4gRWFjaCBtaXBtYXAgaXMgaGFsZi1kZXB0aCwgaGFs
Zi1oZWlnaHQsIGFuZCBoYWxmLXdpZHRoIG9mIHRoZSBwcmV2aW91cyBzaXplLgorLy8gVGV4dHVy
ZSBDdWJlOiBBbiBhcnJheSBvZiA2IDJEIHRleHR1cmVzLgorLy8gUlcgMUQgVGV4dHVyZTogQW4g
YXJyYXkgb2YgZWxlbWVudHMuIFRoZSB3aWR0aCBtdXN0IGJlIGEgcG93ZXItb2YtdHdvLgorLy8g
UlcgMUQgVGV4dHVyZSBBcnJheTogQW4gYXJyYXkgb2YgUlcgMUQgdGV4dHVyZXMKKy8vIFJXIDJE
IFRleHR1cmU6IEEgcmVjdGFuZ3VsYXIgYXJyYXkgb2Ygcm93cywgYW5kIGVhY2ggcm93IGlzIGFu
IGFycmF5IG9mIGVsZW1lbnRzLiBCb3RoIHRoZSByb3cgYW5kIGNvbHVtbiBjb3VudHMgbXVzdCBi
ZSBwb3dlcnMgb2YgdHdvLgorLy8gUlcgMkQgVGV4dHVyZSBBcnJheTogQW4gYXJyYXkgb2YgUlcg
MkQgdGV4dHVyZXMKKy8vIFJXIDNEIFRleHR1cmU6IEEgcmVjdGFuZ3VsYXIgYXJyYXkgb2YgY29s
dW1ucywgZWFjaCBjb2x1bW4gaXMgYW4gYXJyYXkgb2Ygcm93cywgYW5kIGVhY2ggcm93IGlzIGFu
IGFycmF5IG9mIGVsZW1lbnRzLiBCb3RoIGRlcHRoLCByb3csIGFuZCBjb2x1bW4gY291bnRzIG11
c3QgYmUgcG93ZXJzIG9mIHR3by4KKworZnVuY3Rpb24gbWFrZTFEVGV4dHVyZShwcm9ncmFtLCBt
aXBtYXBzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3Jh
bS5pbnRyaW5zaWNzW2BUZXh0dXJlMUQ8JHtlbGVtZW50VHlwZX0+YF0sIG1pcG1hcHMpOworfQor
CitmdW5jdGlvbiBtYWtlMURUZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBl
KQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1
cmUxREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBhcnJheSk7Cit9CisKK2Z1bmN0aW9uIG1ha2Uy
RFRleHR1cmUocHJvZ3JhbSwgbWlwbWFwcywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5
cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZTJEPCR7ZWxlbWVudFR5cGV9
PmBdLCBtaXBtYXBzKTsKK30KKworZnVuY3Rpb24gbWFrZTJEVGV4dHVyZUFycmF5KHByb2dyYW0s
IGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3Jh
bS5pbnRyaW5zaWNzW2BUZXh0dXJlMkRBcnJheTwke2VsZW1lbnRUeXBlfT5gXSwgYXJyYXkpOwor
fQorCitmdW5jdGlvbiBtYWtlM0RUZXh0dXJlKHByb2dyYW0sIG1pcG1hcHMsIGVsZW1lbnRUeXBl
KQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1
cmUzRDwke2VsZW1lbnRUeXBlfT5gXSwgbWlwbWFwcyk7Cit9CisKK2Z1bmN0aW9uIG1ha2VUZXh0
dXJlQ3ViZShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVk
VmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZUN1YmU8JHtlbGVtZW50VHlwZX0+
YF0sIGFycmF5KTsKK30KKworZnVuY3Rpb24gbWFrZVJXMURUZXh0dXJlKHByb2dyYW0sIGVsZW1l
bnRzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5p
bnRyaW5zaWNzW2BSV1RleHR1cmUxRDwke2VsZW1lbnRUeXBlfT5gXSwgZWxlbWVudHMpOworfQor
CitmdW5jdGlvbiBtYWtlUlcxRFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5
cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldU
ZXh0dXJlMURBcnJheTwke2VsZW1lbnRUeXBlfT5gXSwgYXJyYXkpOworfQorCitmdW5jdGlvbiBt
YWtlUlcyRFRleHR1cmUocHJvZ3JhbSwgcm93cywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJu
IFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldUZXh0dXJlMkQ8JHtlbGVtZW50
VHlwZX0+YF0sIHJvd3MpOworfQorCitmdW5jdGlvbiBtYWtlUlcyRFRleHR1cmVBcnJheShwcm9n
cmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHBy
b2dyYW0uaW50cmluc2ljc1tgUldUZXh0dXJlMkRBcnJheTwke2VsZW1lbnRUeXBlfT5gXSwgYXJy
YXkpOworfQorCitmdW5jdGlvbiBtYWtlUlczRFRleHR1cmUocHJvZ3JhbSwgZGVwdGgsIGVsZW1l
bnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3Nb
YFJXVGV4dHVyZTNEPCR7ZWxlbWVudFR5cGV9PmBdLCBkZXB0aCk7Cit9CisKIGZ1bmN0aW9uIGNo
ZWNrTnVtYmVyKHByb2dyYW0sIHJlc3VsdCwgZXhwZWN0ZWQpCiB7CiAgICAgaWYgKCFyZXN1bHQu
dHlwZS51bmlmeU5vZGUuaXNOdW1iZXIpCkBAIC01NTUxLDYgKzU2NjgsMzY5IEBAIHRlc3RzLm1h
dHJpeE11bHRpcGxpY2F0aW9uID0gZnVuY3Rpb24oKSB7CiAgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW10pLCAyOSAqIDcgKyA0MyAqIDExICsg
NjEgKiAxMyk7CiB9CiAKK3Rlc3RzLnRleHR1cmVEaW1lbnNpb25zID0gZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICB1aW50IGZvbzEoVGV4dHVyZTFEPGZs
b2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWlu
dCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwg
JndpZHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAg
ICAgICB9CisgICAgICAgIHVpbnQgZm9vMihUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAg
ICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZudW1iZXJPZkxl
dmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAg
ICAgICAgdWludCBmb28zKFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAg
ICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAg
IHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUs
IDAsICZ3aWR0aCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0
dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNChUZXh0dXJlMURBcnJheTxm
bG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVp
bnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAg
ICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZlbGVtZW50cywgJm51bWJlck9m
TGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50czsKKyAgICAgICAgfQorICAgICAg
ICB1aW50IGZvbzUoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAg
IHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWlu
dCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwg
JndpZHRoLCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4g
bnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb282KFRleHR1cmUyRDxm
bG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVp
bnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAg
IEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZl
bHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQg
Zm9vNyhUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7
CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZl
bHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdo
dCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAg
IH0KKyAgICAgICAgdWludCBmb284KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAg
ICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAg
dWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwg
MCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJu
IG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vOShUZXh0dXJlMkRB
cnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAg
ICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAg
IHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUs
IDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAg
ICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTAoVGV4dHVy
ZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAg
ICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAg
ICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0
dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAg
ICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xMShU
ZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsK
KyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAg
ICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25z
KHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMp
OworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAgICB9CisgICAgICAgIHVpbnQg
Zm9vMTIoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQg
d2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVu
dHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGlt
ZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJlck9m
TGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQor
ICAgICAgICB1aW50IGZvbzEzKFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAg
ICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWlu
dCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBH
ZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoLCAmbnVtYmVy
T2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAg
IHVpbnQgZm9vMTQoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50
IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRo
OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVu
c2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgsICZudW1iZXJPZkxldmVs
cyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQg
Zm9vMTUoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRo
OworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAg
ICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnMo
dGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgsICZudW1iZXJPZkxldmVscyk7Cisg
ICAgICAgICAgICByZXR1cm4gZGVwdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xNihU
ZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAg
ICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAg
ICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJl
LCAwLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAg
ICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE3
KFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOwor
ICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxz
OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQs
ICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0K
KyAgICAgICAgdWludCBmb28xOChUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAg
ICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAg
dWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwg
MCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJu
IGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE5KFRleHR1cmVDdWJlPGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0
RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7
CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAg
dWludCBmb28yMChSV1RleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWlu
dCB3aWR0aDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoKTsKKyAg
ICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIxKFJX
VGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7
CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0
ZXh0dXJlLCAmd2lkdGgsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7Cisg
ICAgICAgIH0KKyAgICAgICAgdWludCBmb28yMihSV1RleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0
dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBlbGVtZW50
czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmZWxlbWVudHMp
OworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAgICB9CisgICAgICAgIHVpbnQg
Zm9vMjMoUldUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lk
dGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnMo
dGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAg
ICAgICAgfQorICAgICAgICB1aW50IGZvbzI0KFJXVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7
CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAg
ICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCk7CisgICAgICAg
ICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjUoUldUZXh0
dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAg
ICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAg
ICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMp
OworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9v
MjYoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3
aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50
czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAm
ZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAg
ICB1aW50IGZvbzI3KFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAg
ICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVp
bnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwg
JmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50czsKKyAgICAg
ICAgfQorICAgICAgICB1aW50IGZvbzI4KFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7Cisg
ICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAg
ICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lk
dGgsICZoZWlnaHQsICZkZXB0aCk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAg
IH0KKyAgICAgICAgdWludCBmb28yOShSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAg
ICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRo
LCAmaGVpZ2h0LCAmZGVwdGgpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAg
fQorICAgICAgICB1aW50IGZvbzMwKFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAg
ICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAg
ICB1aW50IGRlcHRoOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgs
ICZoZWlnaHQsICZkZXB0aCk7CisgICAgICAgICAgICByZXR1cm4gZGVwdGg7CisgICAgICAgIH0K
KyAgICBgKTsKKyAgICBsZXQgdGV4dHVyZTFEID0gbWFrZTFEVGV4dHVyZShwcm9ncmFtLCBbWzEs
IDcsIDE0LCA3OV0sIFsxMywgMTZdLCBbMTVdXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmUx
REFycmF5ID0gbWFrZTFEVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbWzEsIDcsIDE0LCA3OV0sIFsx
MywgMTZdLCBbMTVdXSwgW1sxNiwgMTcsIDE4LCAxOV0sIFsyMCwgMjFdLCBbMjJdXV0sICJmbG9h
dCIpOworICAgIGxldCB0ZXh0dXJlMkQgPSBtYWtlMkRUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAg
ICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEz
LCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0s
CisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1sz
MywgMzQsIDM1LCAzNl0sCisgICAgICAgIFszNywgMzgsIDM5LCA0MF1dLAorICAgICAgICBbWzQx
LCA0Ml1dCisgICAgXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmUyREFycmF5ID0gbWFrZTJE
VGV4dHVyZUFycmF5KHByb2dyYW0sIFtbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywg
OF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsx
NywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgs
IDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzZdLAorICAgICAgICBb
MzcsIDM4LCAzOSwgNDBdXSwKKyAgICAgICAgW1s0MSwgNDJdXQorICAgIF0sIFsKKyAgICAgICAg
W1s0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4LCA0OSwgNTBdLAorICAgICAgICBbNTEsIDUyLCA1Mywg
NTQsIDU1LCA1NiwgNTcsIDU4XSwKKyAgICAgICAgWzU5LCA2MCwgNjEsIDYyLCA2MywgNjQsIDY1
LCA2Nl0sCisgICAgICAgIFs2NywgNjgsIDY5LCA3MCwgNzEsIDcyLCA3MywgNzRdXSwKKyAgICAg
ICAgW1s3NSwgNzYsIDc3LCA3OF0sCisgICAgICAgIFs3OSwgODAsIDgxLCA4Ml1dLAorICAgICAg
ICBbWzgzLCA4NF1dCisgICAgXV0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlM0QgPSBtYWtl
M0RUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAgICAgW1tbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0s
CisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywg
MTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5
LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAg
ICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5
LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwg
MzEsIDMyXV1dLAorICAgICAgICBbW1szMywgMzQsIDM1LCAzNl0sCisgICAgICAgIFszNywgMzgs
IDM5LCA0MF1dXQorICAgIF0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlQ3ViZSA9IG1ha2VU
ZXh0dXJlQ3ViZShwcm9ncmFtLCBbWworICAgICAgICBbWzEsIDJdLAorICAgICAgICBbMywgNF0s
CisgICAgICAgIFs1LCA2XSwKKyAgICAgICAgWzcsIDhdXSwKKyAgICAgICAgW1s5XSwKKyAgICAg
ICAgWzEwXV0sCisgICAgXSwgWworICAgICAgICBbWzExLCAxMl0sCisgICAgICAgIFsxMywgMTRd
LAorICAgICAgICBbMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOF1dLAorICAgICAgICBbWzE5XSwK
KyAgICAgICAgWzIwXV0sCisgICAgXSwgWworICAgICAgICBbWzIxLCAyMl0sCisgICAgICAgIFsy
MywgMjRdLAorICAgICAgICBbMjUsIDI2XSwKKyAgICAgICAgWzI3LCAyOF1dLAorICAgICAgICBb
WzI5XSwKKyAgICAgICAgWzMwXV0sCisgICAgXSwgWworICAgICAgICBbWzMxLCAzMl0sCisgICAg
ICAgIFszMywgMzRdLAorICAgICAgICBbMzUsIDM2XSwKKyAgICAgICAgWzM3LCAzOF1dLAorICAg
ICAgICBbWzM5XSwKKyAgICAgICAgWzQwXV0sCisgICAgXSwgWworICAgICAgICBbWzQxLCA0Ml0s
CisgICAgICAgIFs0MywgNDRdLAorICAgICAgICBbNDUsIDQ2XSwKKyAgICAgICAgWzQ3LCA0OF1d
LAorICAgICAgICBbWzQ5XSwKKyAgICAgICAgWzUwXV0sCisgICAgXSwgWworICAgICAgICBbWzUx
LCA1Ml0sCisgICAgICAgIFs1MywgNTRdLAorICAgICAgICBbNTUsIDU2XSwKKyAgICAgICAgWzU3
LCA1OF1dLAorICAgICAgICBbWzU5XSwKKyAgICAgICAgWzYwXV0sCisgICAgXV0sICJmbG9hdCIp
OworICAgIGxldCByd1RleHR1cmUxRCA9IG1ha2VSVzFEVGV4dHVyZShwcm9ncmFtLCBbMSwgMiwg
MywgNCwgNSwgNiwgNywgOF0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmUxREFycmF5ID0g
bWFrZVJXMURUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwg
WzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIs
IDIzLCAyNF1dLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlMkQgPSBtYWtlUlcyRFRleHR1
cmUocHJvZ3JhbSwgWworICAgICAgICBbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAg
IFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAy
MCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEs
IDMyXV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmUyREFycmF5ID0gbWFrZVJXMkRUZXh0
dXJlQXJyYXkocHJvZ3JhbSwgWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAor
ICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4
LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwg
MzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MF0s
CisgICAgICAgIFs0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDhdLAorICAgICAgICBbNDks
IDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2XSwKKyAgICAgICAgWzU3LCA1OCwgNTksIDYwLCA2
MSwgNjIsIDYzLCA2NF1dXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4dHVyZTNEID0gbWFrZVJX
M0RUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwK
KyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAx
OCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjks
IDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDBd
LAorICAgICAgICBbNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4XSwKKyAgICAgICAgWzQ5
LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1Nl0sCisgICAgICAgIFs1NywgNTgsIDU5LCA2MCwg
NjEsIDYyLCA2MywgNjRdXV0sICJmbG9hdCIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFEXSksIDQpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTFEXSksIDMp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBb
dGV4dHVyZTFEQXJyYXldKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheV0pLCAyKTsKKyAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUxREFycmF5XSks
IDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYi
LCBbdGV4dHVyZTJEXSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEXSksIDMpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTJE
QXJyYXldKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTAiLCBbdGV4dHVyZTJEQXJyYXldKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZTJEQXJyYXldKSwgMik7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbdGV4
dHVyZTJEQXJyYXldKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZTNEXSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmUzRF0pLCA0KTsKKyAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFt0ZXh0dXJl
M0RdKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTYiLCBbdGV4dHVyZTNEXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVDdWJlXSksIDIpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVDdWJlXSks
IDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5
IiwgW3RleHR1cmVDdWJlXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZTFEXSksIDgpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZTFEQXJyYXld
KSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjIiLCBbcndUZXh0dXJlMURBcnJheV0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFtyd1RleHR1cmUyRF0pLCA4KTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNCIsIFtyd1RleHR1cmUy
RF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yNSIsIFtyd1RleHR1cmUyREFycmF5XSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI2IiwgW3J3VGV4dHVyZTJEQXJyYXldKSwgNCk7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjciLCBbcndU
ZXh0dXJlMkRBcnJheV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yOCIsIFtyd1RleHR1cmUzRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOSIsIFtyd1RleHR1cmUzRF0pLCA0KTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMCIsIFty
d1RleHR1cmUzRF0pLCAyKTsKK30KKwordGVzdHMudGV4dHVyZUxvYWQgPSBmdW5jdGlvbigpIHsK
KyAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCisgICAgICAgIGZsb2F0IGZvbyhUZXh0dXJlMUQ8
ZmxvYXQ+IHRleHR1cmUsIGludCBtaXBtYXAsIGludCBsb2NhdGlvbikgeworICAgICAgICAgICAg
cmV0dXJuIExvYWQodGV4dHVyZSwgaW50MihtaXBtYXAsIGxvY2F0aW9uKSk7CisgICAgICAgIH0K
KyAgICBgKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2UxRFRleHR1cmUocHJvZ3JhbSwgW1sxLCA3LCAxNCwgNzldLCBbMTMsIDE2XSwg
WzE1XV0sICJmbG9hdCIpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZTFEVGV4dHVyZShwcm9ncmFtLCBbWzEsIDcsIDE0LCA3OV0sIFsxMywgMTZdLCBb
MTVdXSwgImZsb2F0IiksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgMTYpOworfQorCiBva1RvVGVzdCA9IHRydWU7CiAKIGxldCB0ZXN0RmlsdGVyID0gLy4qLzsg
Ly8gcnVuIGV2ZXJ5dGhpbmcgYnkgZGVmYXVsdApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UZXh0dXJlT3BlcmF0aW9ucy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWJhYzRiNmRiNjkw
YTY2ZmU5OTc0ZTg4ZWQ5ODk1MzRhOTIwMWI5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanMKQEAgLTAsMCArMSw1MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisidXNlIHN0cmlj
dCI7CisKK2Z1bmN0aW9uIHRleHR1cmVMb2FkKHRleHR1cmUsIHBhdGgpCit7CisgICAgZm9yICh2
YXIgaW5kZXggb2YgcGF0aCkgeworICAgICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IHRl
eHR1cmUubGVuZ3RoKQorICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltMb2FkXSIs
ICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIpOworICAgICAgICB0ZXh0dXJlID0gdGV4dHVy
ZVtpbmRleF07CisgICAgfQorICAgIHJldHVybiB0ZXh0dXJlOworfQorCitmdW5jdGlvbiB0ZXh0
dXJlU3RvcmUodGV4dHVyZSwgdmFsdWUsIHBhdGgpCit7CisgICAgZG8geworICAgICAgICBpZiAo
cGF0aC5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiWmVyby1sZW5n
dGggc3RvcmUgcGF0aCIpOworICAgICAgICBpZiAocGF0aC5sZW5ndGggPT0gMSkgeworICAgICAg
ICAgICAgdGV4dHVyZVtwYXRoWzBdXSA9IHZhbHVlOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGV4dHVyZSA9IHRleHR1cmVbcGF0aFswXV07Cisg
ICAgICAgICAgICBwYXRoLnNoaWZ0KCk7CisgICAgICAgIH0KKyAgICB9IHdoaWxlICh0cnVlKTsK
K30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCmluZGV4IDY1YTg2NDEx
YjNlNzcwYjU1N2I0MWFjYzdlNDE0ZGVmNDI0MDMwMTMuLjgzNjZiYjE4ZDE3MGU5M2Y4MDBkZjU4
MjJmYTVlYWZlYjQzYmVkODMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL2luZGV4Lmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXgu
aHRtbApAQCAtMTI3LDYgKzEyNyw3IEBACiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlDb25z
dHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRGVm
YXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRlcm5h
cnlFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUZXh0dXJlT3BlcmF0aW9u
cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHJhcFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURl
ZlJlc29sdmVyLmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348521</attachid>
            <date>2018-08-30 11:54:23 -0700</date>
            <delta_ts>2018-08-30 19:24:01 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188940-20180830115423.patch</filename>
            <type>text/plain</type>
            <size>81911</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTA1CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTgzYjcwZjYxMjJjZGI4ODBmYzU4MmRlMmE4Y2NmZDEz
YzgxNTVhYi4uYzJiYTJmZjU1ZjA0YTczYjU3YWRkZjZiYmYwNDY0YTcyMTEzN2U5ZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2
IEBACisyMDE4LTA4LTMwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+
CisKKyAgICAgICAgW1dITFNMXSBJbXBsZW1lbnQgdGV4dHVyZSB0eXBlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTQwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2lj
cy5qczoKKyAgICAgICAgKEludHJpbnNpY3MuKToKKyAgICAgICAgKEludHJpbnNpY3MpOgorICAg
ICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWw6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAobGV0LnN0
YW5kYXJkTGlicmFyeSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5o
dG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanM6CisgICAgICAg
IChtYWtlU2FtcGxlcik6CisgICAgICAgIChtYWtlMURUZXh0dXJlKToKKyAgICAgICAgKG1ha2Ux
RFRleHR1cmVBcnJheSk6CisgICAgICAgIChtYWtlMkRUZXh0dXJlKToKKyAgICAgICAgKG1ha2Uy
RFRleHR1cmVBcnJheSk6CisgICAgICAgIChtYWtlM0RUZXh0dXJlKToKKyAgICAgICAgKG1ha2VU
ZXh0dXJlQ3ViZSk6CisgICAgICAgIChtYWtlUlcxRFRleHR1cmUpOgorICAgICAgICAobWFrZVJX
MURUZXh0dXJlQXJyYXkpOgorICAgICAgICAobWFrZVJXMkRUZXh0dXJlKToKKyAgICAgICAgKG1h
a2VSVzJEVGV4dHVyZUFycmF5KToKKyAgICAgICAgKG1ha2VSVzNEVGV4dHVyZSk6CisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanM6IEFkZGVkLgor
ICAgICAgICAodGV4dHVyZUxvYWQpOgorICAgICAgICAodGV4dHVyZVN0b3JlKToKKyAgICAgICAg
KiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sOgorCiAyMDE4LTA4LTMwICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bRmxvYXRpbmddIEZv
cm1hdHRpbmcgY29udGV4dCByb290cyBhdm9pZCBmbG9hdHMuCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9BbGwuanMKaW5kZXggOWMyYTM3MTUwYzFlOTc2YjkyNmNmYmVlMjM0Mzc1MjBhOGRlNGE0
Ny4uY2MwN2ZkYjUxNjYxNmQzMjhmMzg0NDVlOTVhODIwNTM5MmU1ZGE1YSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0FsbC5qcwpAQCAtMTUwLDYgKzE1MCw3IEBAIGxvYWQoIlN5bnRoZXNp
emVTdHJ1Y3RBY2Nlc3NvcnMuanMiKTsKIGxvYWQoIlN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JP
cGVyYXRvci5qcyIpOwogbG9hZCgiU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9y
LmpzIik7CiBsb2FkKCJUZXJuYXJ5RXhwcmVzc2lvbi5qcyIpOworbG9hZCgiVGV4dHVyZU9wZXJh
dGlvbnMuanMiKTsKIGxvYWQoIlRyYXBTdGF0ZW1lbnQuanMiKTsKIGxvYWQoIlR5cGVEZWYuanMi
KTsKIGxvYWQoIlR5cGVEZWZSZXNvbHZlci5qcyIpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0ludHJpbnNpY3MuanMKaW5kZXggYjAwNDA2N2Y1ZWJmYjNhOGI0YmQ5OGU0MzdhOGMw
NzY4YmUyNmYxZS4uZWEzOTRlNDJmYmFlNDUyY2NjOTQ3MDhhMzU0Yzg0MWY2YzM1MWNhMiAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcworKysg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCkBAIC0zMzAsNyAr
MzMwLDggQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYg
c2FtcGxlciIsCiAgICAgICAgICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAgICB0aGlzLnNh
bXBsZXIgPSB0eXBlOwotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQg
dG8gcHV0IGhlcmUuCisgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAg
ICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZm
ZXIuc2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgZm9yIChsZXQg
dGV4dHVyZVR5cGUgb2YgWyJUZXh0dXJlMUQiLCAiUldUZXh0dXJlMUQiLCAiVGV4dHVyZTFEQXJy
YXkiLCAiUldUZXh0dXJlMURBcnJheSIsICJUZXh0dXJlMkQiLCAiUldUZXh0dXJlMkQiLCAiVGV4
dHVyZTJEQXJyYXkiLCAiUldUZXh0dXJlMkRBcnJheSIsICJUZXh0dXJlM0QiLCAiUldUZXh0dXJl
M0QiLCAiVGV4dHVyZUN1YmUiXSkgewpAQCAtMzM5LDEyICszNDAsMTYgQEAgY2xhc3MgSW50cmlu
c2ljcyB7CiAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdHlwZWRlZiAke3RleHR1cmVUeXBl
fTwke3R5cGVBcmd1bWVudH0+YCwKICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+
YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBv
ZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCB7fSk7CiAgICAgICAgICAgICAgICAgICAgIH0p
OwogICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAyOyBpIDw9IDQ7ICsraSkgewogICAgICAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fSR7aX0+YCwKICAgICAg
ICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fSR7aX0+YF0gPSB0eXBlOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkg
PT4gYnVmZmVyLnNldChvZmZzZXQsIHt9KTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTM1Niw2ICszNjEsOCBAQCBjbGFz
cyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4
dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gLAogICAgICAgICAgICAgICAgICAgICB0eXBlID0+
IHsKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFy
Z3VtZW50fT5gXSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAx
OworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChi
dWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIHt9KTsKICAgICAgICAgICAgICAg
ICAgICAgfSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTkxNCw2ICs5MjEsNzQ1IEBA
IGNsYXNzIEludHJpbnNpY3MgewogCiAgICAgICAgIGZvciAobGV0IHNldHRlciBvZiBCdWlsdGlu
TWF0cml4U2V0dGVyLmZ1bmN0aW9ucygpKQogICAgICAgICAgICAgdGhpcy5fbWFwLnNldChzZXR0
ZXIudG9TdHJpbmcoKSwgZnVuYyA9PiBzZXR0ZXIuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihm
dW5jKSk7CisKKyAgICAgICAgZm9yIChsZXQgdHlwZSBvZiBbImJvb2wiLCAidWNoYXIiLCAidXNo
b3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9ydCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQgbG9jYXRpb24pYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1
cmUxRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0IGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgewor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1
cmUxRDwke3R5cGV9PixpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIu
Ym94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0gTG9hZChUZXh0dXJlMUQ8JHt0eXBlfT4saW50MiBsb2NhdGlvbixpbnQgb2Zmc2V0
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQodGV4
dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpICsgb2Zm
c2V0LmxvYWRWYWx1ZSgpXSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDwke3R5cGV9Pix1aW50IE1pcExldmVsLHVp
bnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIG51bWJlck9mTGV2ZWxzXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGVuZ3RoKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAi
UmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhb
bWlwSURdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZl
bHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVy
ZTFEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmUxREFycmF5PCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmUxREFy
cmF5PCR7dHlwZX0+LGludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5i
b3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9j
YXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMildKSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfT4saW50
MyBsb2NhdGlvbixpbnQgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0
ci5ib3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwg
bG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMikgKyBvZmZzZXQubG9hZFZhbHVlKCldKSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lv
bnMoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lk
dGgsdWludCogdGhyZWFkIEVsZW1lbnRzLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgZWxlbWVudHMs
IG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRl
eHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBt
aXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXgubGVu
Z3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJy
b3IoIltsb2FkXSIsICJObyBlbGVtZW50cyBpbiB0aGUgdGV4dHVyZSBhcnJheSIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleFswXS5sZW5ndGgpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJSZWFkaW5n
IGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXVttaXBJ
RF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhb
MF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKworICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRp
b24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxl
KFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZz
ZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNh
bXBsZUJpYXMoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0
IEJpYXMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgYmlhc10pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX0gU2FtcGxlQmlhcyhUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24s
ZmxvYXQgQmlhcyxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZTJEPCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSlgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeV0pIHsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3Jh
ZChUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQyIEREWCxm
bG9hdDIgRERZLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmUyRDwke3R5
cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkgeworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlMkQ8
JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgTE9ELGludDIgb2Zmc2V0KWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwg
b2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1
cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJS
ZWQoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJE
PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVu
KFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJE
PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUo
VGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyRDwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShU
ZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyRDwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZTJE
PCR7dHlwZX0+LGludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVy
ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3go
dGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRp
b24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMildKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZTJEPCR7dHlwZX0+LGludDMgbG9jYXRp
b24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRp
b24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0
ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMSkgKyBvZmZzZXQuZ2V0KDApLCBsb2NhdGlvbi5nZXQoMikgKyBvZmZzZXQuZ2V0KDEp
XSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1l
bnNpb25zKFRleHR1cmUyRDwke3R5cGV9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0
aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBudW1i
ZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJl
LmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2
ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4
Lmxlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJv
cigiW2xvYWRdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVy
ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleFttaXBJRF0ubGVuZ3RoID09IDAp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2Fk
XSIsICJUZXh0dXJlIGhhcyBubyByb3dzIik7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWln
aHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4W21pcElEXS5sZW5ndGgpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIu
Ym94KHRleFttaXBJRF1bMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBu
dW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwg
MSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNh
bXBsZShUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVy
ZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1w
bGVCaWFzKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZs
b2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBs
b2NhdGlvbixmbG9hdCBCaWFzLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXMsIG9mZnNldF0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlMkRB
cnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBE
RFkpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
ZGR4LCBkZHldKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZUdyYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9j
YXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5LCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxl
dmVsKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0
IExPRClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBsb2RdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
IFNhbXBsZUxldmVsKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0
aW9uLGZsb2F0IExPRCxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2QsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlMkRBcnJheTwke3R5
cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBs
ZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkRBcnJheTwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUyREFycmF5PCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUy
REFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkRBcnJh
eTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVl
KFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1
cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNl
dF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdh
dGhlckFscGhhKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJB
bHBoYShUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQy
IG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9IExvYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4saW50NCBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgbG9j
YXRpb24uZ2V0KDMpXSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSBMb2FkKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LGludDQgbG9jYXRpb24saW50MiBv
ZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNl
dF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9h
ZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSks
IGxvY2F0aW9uLmdldCgyKSArIG9mZnNldC5nZXQoMCksIGxvY2F0aW9uLmdldCgzKSArIG9mZnNl
dC5nZXQoMSldKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lk
IEdldERpbWVuc2lvbnMoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sdWludCBNaXBMZXZlbCx1aW50
KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRWxlbWVudHMs
dWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRzLCBudW1iZXJPZkxldmVsc10p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgp
OworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVl
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4Lmxlbmd0aCA9PSAwKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiTm8g
ZWxlbWVudHMgaW4gdGhlIHRleHR1cmUgYXJyYXkiKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChtaXBJRCA+PSB0ZXhbMF0ubGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50
IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4
WzBdW21pcElEXS5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJv
dyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIHJvd3MiKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0
ZXhbMF1bbWlwSURdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdW21pcElEXVswXS5sZW5ndGgpLCAx
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9t
KEVQdHIuYm94KHRleC5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJl
ck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXS5sZW5ndGgpLCAx
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTNEPCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJl
M0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlM0Q8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24saW50MyBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUzRDwke3R5
cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbixpbnQzIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlM0Q8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbixpbnQzIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUzRDwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24saW50MyBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTNEPCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24saW50MyBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmUzRDwke3R5cGV9PixpbnQ0IGxv
Y2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1
cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRp
b24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMyldKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZTNEPCR7dHlwZX0+LGludDQgbG9jYXRp
b24saW50MyBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRp
b24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0
ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMSkgKyBvZmZzZXQuZ2V0KDApLCBsb2NhdGlvbi5nZXQoMikgKyBvZmZzZXQuZ2V0KDEp
LCBsb2NhdGlvbi5nZXQoMykgKyBvZmZzZXQuZ2V0KDIpXSkpOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUzRDwke3R5cGV9
Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVp
bnQqIHRocmVhZCBEZXB0aCx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIG51
bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1
cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBs
ZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0
ZXgubGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVy
cm9yKCJbbG9hZF0iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0
dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4W21pcElEXS5sZW5ndGggPT0g
MCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xv
YWRdIiwgIlRleHR1cmUgaGFzIHplcm8gZGVwdGgiKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlmICh0ZXhbbWlwSURdWzBdLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gcm93cyIp
OworICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4W21pcElEXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhl
aWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbbWlwSURdWzBdLmxlbmd0aCks
IDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4W21pcElEXVswXVswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5s
ZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
CisgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0gU2FtcGxlKFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJp
YXMoVGV4dHVyZUN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlh
cylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBi
aWFzXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBT
YW1wbGVHcmFkKFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZs
b2F0MyBERFgsZmxvYXQzIEREWSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeV0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZUN1YmU8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlQ3ViZTwke3R5cGV9Pixz
YW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxv
YXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyQmx1ZShUZXh0dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEo
VGV4dHVyZUN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlQ3Vi
ZTwke3R5cGV9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQg
SGVpZ2h0LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBudW1iZXJPZkxldmVsc10pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7
CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4Lmxlbmd0aCAhPSA2KQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiQ3ViZSB0
ZXh0dXJlIGRvZXNuJ3QgaGF2ZSA2IGZhY2VzIik7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAobWlwSUQgPj0gdGV4WzBdLmxlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBt
aXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleFsw
XVttaXBJRF0ubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cg
bmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyByb3dzIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
WzBdW21pcElEXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXVttaXBJRF1bMF0ubGVuZ3RoKSwgMSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5
RnJvbShFUHRyLmJveCh0ZXhbMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMUQ8JHt0eXBl
fT4sdWludCogdGhyZWFkIFdpZHRoKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
d2lkdGhdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5
RnJvbShFUHRyLmJveCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLmxlbmd0aCksIDEpOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVy
ZTFEPCR7dHlwZX0+LGZsb2F0KiB0aHJlYWQgV2lkdGgpYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCB3aWR0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleHR1cmUubG9hZFZhbHVlKCkubGVuZ3RoKSwgMSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoUldU
ZXh0dXJlMUQ8JHt0eXBlfT4saW50IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQ
dHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5sb2FkVmFs
dWUoKV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3Rv
cmUoUldUZXh0dXJlMUQ8JHt0eXBlfT4sJHt0eXBlfSx1aW50IGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRleHR1cmVTdG9yZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCB2YWx1ZS5sb2Fk
VmFsdWUoKSwgW2xvY2F0aW9uLmxvYWRWYWx1ZSgpXSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMURBcnJheTwk
e3R5cGV9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEVsZW1lbnRzKWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGVsZW1lbnRzXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAodGV4Lmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gZWxl
bWVudHMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleC5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXS5sZW5ndGgpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9u
cyhSV1RleHR1cmUxREFycmF5PCR7dHlwZX0+LGZsb2F0KiB0aHJlYWQgV2lkdGgsdWludCogdGhy
ZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGVs
ZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9h
ZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4Lmxlbmd0aCA9PSAwKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0i
LCAiVGV4dHVyZSBoYXMgbm8gZWxlbWVudHMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVs
ZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZW5ndGgpLCAxKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KHRleFswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0gTG9hZChSV1RleHR1cmUxREFycmF5PCR7dHlwZX0+LGludDIgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2Fk
VmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpXSkpOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUxREFycmF5
PCR7dHlwZX0+LCR7dHlwZX0sdWludDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
dGV4dHVyZVN0b3JlKHRleHR1cmUubG9hZFZhbHVlKCksIHZhbHVlLmxvYWRWYWx1ZSgpLCBbbG9j
YXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSldKTsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUyRDwke3R5cGV9
Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodClgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHRdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICh0ZXgubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhy
b3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyByb3dzIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTJEPCR7
dHlwZX0+LGZsb2F0KiB0aHJlYWQgV2lkdGgsZmxvYXQqIHRocmVhZCBIZWlnaHQpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0XSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAodGV4Lmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gcm93cyIp
OworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChSV1RleHR1cmUyRDwk
e3R5cGV9PixpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRl
eHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9u
LmdldCgxKV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQg
U3RvcmUoUldUZXh0dXJlMkQ8JHt0eXBlfT4sJHt0eXBlfSx1aW50MiBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXh0dXJlU3RvcmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgdmFsdWUu
bG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKV0pOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJX
VGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBI
ZWlnaHQsdWludCogdGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlmICh0ZXgubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cg
bmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyBlbGVtZW50cyIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHRleFswXS5sZW5ndGggPT0gMCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUg
aGFzIG5vIHJvd3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF0ubGVuZ3Ro
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJv
bShFUHRyLmJveCh0ZXhbMF1bMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkRBcnJheTwke3R5
cGV9PixmbG9hdCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0LGZsb2F0KiB0aHJl
YWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVp
Z2h0LCBlbGVtZW50c10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0
dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sZW5ndGgg
PT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigi
W2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIGVsZW1lbnRzIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAodGV4WzBdLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gcm93cyIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0Lmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFsw
XVswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0gTG9hZChSV1RleHR1cmUyREFycmF5PCR7dHlwZX0+LGludDMgbG9jYXRpb24pYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFs
dWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMild
KSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJX
VGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sJHt0eXBlfSx1aW50MyBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXh0dXJlU3RvcmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgdmFsdWUubG9h
ZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0
KDIpXSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKworICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdl
dERpbWVuc2lvbnMoUldUZXh0dXJlM0Q8JHt0eXBlfT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQq
IHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIERlcHRoKWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
bihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZGVwdGhdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICh0ZXgubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhy
b3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyBkZXB0aCIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHRleFswXS5sZW5ndGggPT0gMCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUg
aGFzIG5vIHJvd3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoLmxvYWRWYWx1ZSgp
LmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF0ubGVuZ3RoKSwg
MSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXhbMF1bMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlM0Q8JHt0eXBlfT4sZmxv
YXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhyZWFkIEhlaWdodCxmbG9hdCogdGhyZWFkIERlcHRo
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZGVwdGhd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXgubGVuZ3RoID09IDApCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0
dXJlIGhhcyBubyBkZXB0aCIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleFswXS5s
ZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBF
cnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIHJvd3MiKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGRlcHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZW5ndGgpLCAx
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXhbMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0
aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF1bMF0ubGVuZ3RoKSwgMSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoUldUZXh0
dXJlM0Q8JHt0eXBlfT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0
ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRy
LmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBs
b2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKV0pKTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlM0Q8JHt0eXBlfT4sJHt0eXBl
fSx1aW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1
ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0dXJlU3RvcmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgdmFsdWUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpXSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgZnVuY3Rpb24gYm94VmVjdG9yKGEp
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBFUHRyKG5l
dyBFQnVmZmVyKGEubGVuZ3RoKSwgMCk7CisgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7
IGkgPCBhLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgICAgICAgICByZXN1bHQuc2V0KGksIGFb
aV0pOworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGZvciAobGV0IGxlbmd0aCBvZiBbMiwgMywgNF0pIHsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQogICAgIH0KIAogICAgIGFkZCh0aGluZykKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9TUElSVi5odG1sCmluZGV4IDc4ZDAwOGY4MzVmOWU5YzIzNGVmMmRmNmQ2ZGVlYTNm
NzQyNmNlNjUuLmRkYzY1ZTM2N2RkOTk5ZGRiMTdkMjljZjZjNWM2ZTYyNTQxZDJhNzEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbApAQCAtMTMzLDYgKzEzMyw3IEBA
IHRkIHsKICAgICA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9y
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1
Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVGVybmFyeUV4cHJl
c3Npb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJUZXh0dXJlT3BlcmF0aW9ucy5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcwppbmRleCAzZGQ0ZmVlMTg2MDBkNWNkMmE4
OTVhZDVhNDc5NzIxZGE3Nzg4Y2MxLi4yMWE4ZDI5MmI4ZmJiNThlYWM5ODAzZGI4MGE0ZTMzMDFh
ZWQ1Y2RhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFy
ZExpYnJhcnkuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRM
aWJyYXJ5LmpzCkBAIC0xODk3LDkgKzE4OTcsMTAgQEAgbGV0IHN0YW5kYXJkTGlicmFyeSA9IChm
dW5jdGlvbigpIHsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBJbnRlcmxvY2tlZENv
bXBhcmVFeGNoYW5nZSh0aHJlYWQgYXRvbWljXyR7dHlwZX0qLCAke3R5cGV9LCAke3R5cGV9LCB0
aHJlYWQgJHt0eXBlfSopO2ApOwogICAgICAgICB9CiAgICAgICAgIHByaW50KCk7Ci0gICAgICAg
IAorICAgICAgICAqLworCiAgICAgICAgIGZvciAodmFyIHR5cGUgb2YgW2B1Y2hhcmAsIGB1c2hv
cnRgLCBgdWludGAsIGBjaGFyYCwgYHNob3J0YCwgYGludGAsIGBoYWxmYCwgYGZsb2F0YF0pIHsK
LSAgICAgICAgICAgIGZvciAodmFyIGxlbmd0aCBvZiBbYGAsIGAyYCwgYDNgLCBgNGBdKSB7Cisg
ICAgICAgICAgICBmb3IgKHZhciBsZW5ndGggb2YgW2BgLyosIGAyYCwgYDNgLCBgNGAqL10pIHsK
ICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRl
eHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pO2ApOwog
ICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4
dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9m
ZnNldCk7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9
IExvYWQoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LCBpbnQyIGxvY2F0aW9uKTtgKTsKQEAg
LTIwMTAsNyArMjAxMSw4IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAg
ICAgICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAg
ICAKKworICAgICAgICAvKgogICAgICAgICBmb3IgKHZhciB0eXBlIG9mIFtgaGFsZmAsIGBmbG9h
dGBdKSB7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVE
ZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwogICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwg
c2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKaW5kZXggNjA3YTY5NTMyNTNkYTcyN2IxZGUzNzY3OGVj
Mzg4YjRmYTI0MDQwNS4uNjljOTEwNDkyZWQxMWFiMmIzMGUyNzgzZWFmN2ViYmZmZGZlMTYwYSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sCisrKyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbApAQCAtMTI3LDYgKzEyNyw3
IEBACiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0
b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRlcm5hcnlFeHByZXNzaW9uLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJUZXh0dXJlT3BlcmF0aW9ucy5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iVHJhcFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURl
Zi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3Njcmlw
dD4KQEAgLTE1Miw3ICsxNTMsNyBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIGRvVGVzdEluQnJvd3Nl
cigpCiB7Ci0gICAgdmFyIHRlc3RlciA9IGRvVGVzdCgvLiovKTsKKyAgICB2YXIgdGVzdGVyID0g
ZG9UZXN0KC90ZXh0dXJlLyk7CiAgICAgdmFyIGxhc3RUaW1lOwogICAgIGZ1bmN0aW9uIG5leHQo
KQogICAgIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3Qu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCmluZGV4IDJiNWY4NzJk
ODk3MGM5ZTllMDM5YThiMTgyN2UzNzczODA3ODlmZmIuLjE1MmViYjZiNGYzOWY1MmI0ZDRkNTc4
YWEwZWZlMzNiYjdkZmViNjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1Rlc3QuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwpA
QCAtOTQsNiArOTQsMTU3IEBAIGZ1bmN0aW9uIG1ha2VFbnVtKHByb2dyYW0sIGVudW1OYW1lLCB2
YWx1ZSkKICAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3goZW51bVR5cGUsIGVudW1NZW1iZXIudmFs
dWUudW5pZnlOb2RlLnZhbHVlRm9yU2VsZWN0ZWRUeXBlKTsKIH0KIAorZnVuY3Rpb24gbWFrZVNh
bXBsZXIocHJvZ3JhbSwgZGljdCkKK3sKKyAgICAvLyBlbnVtIFdlYkdQVUFkZHJlc3NNb2RlIHsK
KyAgICAvLyAgICAgImNsYW1wVG9FZGdlIiwKKyAgICAvLyAgICAgInJlcGVhdCIsCisgICAgLy8g
ICAgICJtaXJyb3JSZXBlYXQiLAorICAgIC8vICAgICAiY2xhbXBUb0JvcmRlckNvbG9yIgorICAg
IC8vIH0KKyAgICAvLyAKKyAgICAvLyBlbnVtIFdlYkdQVUZpbHRlck1vZGUgeworICAgIC8vICAg
ICAibmVhcmVzdCIsCisgICAgLy8gICAgICJsaW5lYXIiCisgICAgLy8gfQorICAgIC8vIAorICAg
IC8vIGVudW0gV2ViR1BVQ29tcGFyZUZ1bmN0aW9uIHsKKyAgICAvLyAgICAgIm5ldmVyIiwKKyAg
ICAvLyAgICAgImxlc3MiLAorICAgIC8vICAgICAiZXF1YWwiLAorICAgIC8vICAgICAibGVzc0Vx
dWFsIiwKKyAgICAvLyAgICAgImdyZWF0ZXIiLAorICAgIC8vICAgICAibm90RXF1YWwiLAorICAg
IC8vICAgICAiZ3JlYXRlckVxdWFsIiwKKyAgICAvLyAgICAgImFsd2F5cyIKKyAgICAvLyB9Cisg
ICAgLy8gCisgICAgLy8gZW51bSBXZWJHUFVCb3JkZXJDb2xvciB7CisgICAgLy8gICAgICJ0cmFu
c3BhcmVudEJsYWNrIiwKKyAgICAvLyAgICAgIm9wYXF1ZUJsYWNrIiwKKyAgICAvLyAgICAgIm9w
YXF1ZVdoaXRlIgorICAgIC8vIH0KKyAgICAvLyAKKyAgICAvLyBkaWN0aW9uYXJ5IFdlYkdQVVNh
bXBsZXJEZXNjcmlwdG9yIHsKKyAgICAvLyAgICAgV2ViR1BVZGRyZXNzTW9kZSByQWRkcmVzc01v
ZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgIC8vICAgICBXZWJHUFVkZHJlc3NNb2RlIHNBZGRyZXNz
TW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAgLy8gICAgIFdlYkdQVWRkcmVzc01vZGUgdEFkZHJl
c3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICAvLyAgICAgV2ViR1BVRmlsdGVyTW9kZUVudW0g
bWFnRmlsdGVyID0gIm5lYXJlc3QiOworICAgIC8vICAgICBXZWJHUFVGaWx0ZXJNb2RlRW51bSBt
aW5GaWx0ZXIgPSAibmVhcmVzdCI7CisgICAgLy8gICAgIFdlYkdQVUZpbHRlck1vZGVFbnVtIG1p
cG1hcEZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICAvLyAgICAgZmxvYXQgbG9kTWluQ2xhbXAgPSAw
OworICAgIC8vICAgICBmbG9hdCBsb2RNYXhDbGFtcCA9IE51bWJlci5NQVhfVkFMVUU7CisgICAg
Ly8gICAgIHVuc2lnbmVkIGxvbmcgbWF4QW5pc290cm9weSA9IDE7CisgICAgLy8gICAgIFdlYkdQ
VUNvbXBhcmVGdW5jdGlvbiBjb21wYXJlRnVuY3Rpb24gPSAibmV2ZXIiOworICAgIC8vICAgICBX
ZWJHUFVCb3JkZXJDb2xvciBib3JkZXJDb2xvciA9ICJ0cmFuc3BhcmVudEJsYWNrIjsKKyAgICAv
LyB9OworCisgICAgbGV0IHNhbXBsZXJEYXRhID0ge307CisgICAgc2FtcGxlckRhdGEuckFkZHJl
c3NNb2RlID0gZGljdC5yQWRkcmVzc01vZGUsCisgICAgc2FtcGxlckRhdGEuc0FkZHJlc3NNb2Rl
ID0gZGljdC5zQWRkcmVzc01vZGUsCisgICAgc2FtcGxlckRhdGEudEFkZHJlc3NNb2RlID0gZGlj
dC50QWRkcmVzc01vZGUsCisgICAgc2FtcGxlckRhdGEubWFnRmlsdGVyID0gZGljdC5tYWdGaWx0
ZXI7CisgICAgc2FtcGxlckRhdGEubWluRmlsdGVyID0gZGljdC5taW5GaWx0ZXIKKyAgICBzYW1w
bGVyRGF0YS5taXBtYXBGaWx0ZXIgPSBkaWN0Lm1pcG1hcEZpbHRlcjsKKyAgICBzYW1wbGVyRGF0
YS5sb2RNaW5DbGFtcCA9IGRpY3QubG9kTWluQ2xhbXAsCisgICAgc2FtcGxlckRhdGEubG9kTWF4
Q2xhbXAgPSBkaWN0LmxvZE1heENsYW1wLAorICAgIHNhbXBsZXJEYXRhLm1heEFuaXNvdHJvcHkg
PSBkaWN0Lm1heEFuaXNvdHJvcHksCisgICAgc2FtcGxlckRhdGEuY29tcGFyZUZ1bmN0aW9uID0g
ZGljdC5jb21wYXJlRnVuY3Rpb247CisgICAgc2FtcGxlckRhdGEuYm9yZGVyQ29sb3IgPSBkaWN0
LmJvcmRlckNvbG9yOworCisgICAgaWYgKHNhbXBsZXJEYXRhLnJBZGRyZXNzTW9kZSA9PSB1bmRl
ZmluZWQpCisgICAgICAgIHNhbXBsZXJEYXRhLnJBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7
CisgICAgaWYgKHNhbXBsZXJEYXRhLnNBZGRyZXNzTW9kZSA9PSB1bmRlZmluZWQpCisgICAgICAg
IHNhbXBsZXJEYXRhLnNBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAgaWYgKHNhbXBs
ZXJEYXRhLnRBZGRyZXNzTW9kZSA9PSB1bmRlZmluZWQpCisgICAgICAgIHNhbXBsZXJEYXRhLnRB
ZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAgaWYgKHNhbXBsZXJEYXRhLm1pbkZpbHRl
ciA9PSB1bmRlZmluZWQpCisgICAgICAgIHNhbXBsZXJEYXRhLm1pbkZpbHRlciA9ICJuZWFyZXN0
IjsKKyAgICBpZiAoc2FtcGxlckRhdGEubWFnRmlsdGVyID09IHVuZGVmaW5lZCkKKyAgICAgICAg
c2FtcGxlckRhdGEubWFnRmlsdGVyID0gIm5lYXJlc3QiOworICAgIGlmIChzYW1wbGVyRGF0YS5t
aXBGaWx0ZXIgPT0gdW5kZWZpbmVkKQorICAgICAgICBzYW1wbGVyRGF0YS5taXBGaWx0ZXIgPSAi
bmVhcmVzdCI7CisgICAgaWYgKHNhbXBsZXJEYXRhLmxvZE1pbkNsYW1wID09IHVuZGVmaW5lZCkK
KyAgICAgICAgc2FtcGxlckRhdGEubG9kTWluQ2xhbXAgPSAwOworICAgIGlmIChzYW1wbGVyRGF0
YS5sb2RNYXhDbGFtcCA9PSB1bmRlZmluZWQpCisgICAgICAgIHNhbXBsZXJEYXRhLmxvZE1heENs
YW1wID0gTnVtYmVyLk1BWF9WQUxVRTsKKyAgICBpZiAoc2FtcGxlckRhdGEubWF4QW5pc290cm9w
eSA9PSB1bmRlZmluZWQpCisgICAgICAgIHNhbXBsZXJEYXRhLm1heEFuaXNvdHJvcHkgPSAxOwor
ICAgIGlmIChzYW1wbGVyRGF0YS5jb21wYXJlRnVuY3Rpb24gPT0gdW5kZWZpbmVkKQorICAgICAg
ICBzYW1wbGVyRGF0YS5jb21wYXJlRnVuY3Rpb24gPSAibmV2ZXIiOworICAgIGlmIChzYW1wbGVy
RGF0YS5ib3JkZXJDb2xvciA9PSB1bmRlZmluZWQpCisgICAgICAgIHNhbXBsZXJEYXRhLmJvcmRl
ckNvbG9yID0gInRyYW5zcGFyZW50QmxhY2siOworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChw
cm9ncmFtLmludHJpbnNpY3Muc2FtcGxlciwgc2FtcGxlckRhdGEpOworfQorCisvLyBFbGVtZW50
cyBtYXkgZWl0aGVyIGJlIGEgbnVtYmVyIG9yIGEgdmVjdG9yIG9mIDItNCBudW1iZXJzLgorLy8g
MUQgVGV4dHVyZTogQW4gYXJyYXkgb2YgbWlwbWFwcy4gVGhlIGZpcnN0IG1pcG1hcCBpcyB0aGUg
ZnVsbCBzaXplLCBhbmQgaXMgYSBwb3dlci1vZi10d28uIEVhY2ggbWlwbWFwIGlzIGhhbGYtc2l6
ZSBvZiB0aGUgcHJldmlvdXMgc2l6ZS4KKy8vIDFEIFRleHR1cmUgQXJyYXk6IEFuIGFycmF5IG9m
IDFEIHRleHR1cmVzCisvLyAyRCBUZXh0dXJlOiBBbiBhcnJheSBvZiBtaXBtYXBzLiBUaGUgZmly
c3QgbWlwbWFwIGlzIGEgcmVjdGFuZ3VsYXIgYXJyYXkgb2Ygcm93cywgYW5kIGVhY2ggcm93IGlz
IGFuIGFycmF5IG9mIGVsZW1lbnRzLiBCb3RoIHRoZSByb3cgYW5kIGNvbHVtbiBjb3VudHMgbXVz
dCBiZSBwb3dlcnMgb2YgdHdvLiBFYWNoIG1pcG1hcCBpcyBoYWxmLXdpZHRoIGFuZCBoYWxmLWhl
aWdodCBvZiB0aGUgcHJldmlvdXMgc2l6ZS4KKy8vIDJEIFRleHR1cmUgQXJyYXk6IEFuIGFycmF5
IG9mIDJEIHRleHR1cmVzCisvLyAzRCBUZXh0dXJlOiBBbiBhcnJheSBvZiBtaXBtYXBzLiBUaGUg
Zmlyc3QgbWlwbWFwIGlzIGEgcmVjdGFuZ3VsYXIgYXJyYXkgb2YgY29sdW1ucywgZWFjaCBjb2x1
bW4gaXMgYW4gYXJyYXkgb2Ygcm93cywgYW5kIGVhY2ggcm93IGlzIGFuIGFycmF5IG9mIGVsZW1l
bnRzLiBCb3RoIGRlcHRoLCByb3csIGFuZCBjb2x1bW4gY291bnRzIG11c3QgYmUgcG93ZXJzIG9m
IHR3by4gRWFjaCBtaXBtYXAgaXMgaGFsZi1kZXB0aCwgaGFsZi1oZWlnaHQsIGFuZCBoYWxmLXdp
ZHRoIG9mIHRoZSBwcmV2aW91cyBzaXplLgorLy8gVGV4dHVyZSBDdWJlOiBBbiBhcnJheSBvZiA2
IDJEIHRleHR1cmVzLgorLy8gUlcgMUQgVGV4dHVyZTogQW4gYXJyYXkgb2YgZWxlbWVudHMuIFRo
ZSB3aWR0aCBtdXN0IGJlIGEgcG93ZXItb2YtdHdvLgorLy8gUlcgMUQgVGV4dHVyZSBBcnJheTog
QW4gYXJyYXkgb2YgUlcgMUQgdGV4dHVyZXMKKy8vIFJXIDJEIFRleHR1cmU6IEEgcmVjdGFuZ3Vs
YXIgYXJyYXkgb2Ygcm93cywgYW5kIGVhY2ggcm93IGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLiBC
b3RoIHRoZSByb3cgYW5kIGNvbHVtbiBjb3VudHMgbXVzdCBiZSBwb3dlcnMgb2YgdHdvLgorLy8g
UlcgMkQgVGV4dHVyZSBBcnJheTogQW4gYXJyYXkgb2YgUlcgMkQgdGV4dHVyZXMKKy8vIFJXIDNE
IFRleHR1cmU6IEEgcmVjdGFuZ3VsYXIgYXJyYXkgb2YgY29sdW1ucywgZWFjaCBjb2x1bW4gaXMg
YW4gYXJyYXkgb2Ygcm93cywgYW5kIGVhY2ggcm93IGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLiBC
b3RoIGRlcHRoLCByb3csIGFuZCBjb2x1bW4gY291bnRzIG11c3QgYmUgcG93ZXJzIG9mIHR3by4K
KworZnVuY3Rpb24gbWFrZTFEVGV4dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50VHlwZSkK
K3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJl
MUQ8JHtlbGVtZW50VHlwZX0+YF0sIG1pcG1hcHMpOworfQorCitmdW5jdGlvbiBtYWtlMURUZXh0
dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBl
ZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmUxREFycmF5PCR7ZWxlbWVudFR5
cGV9PmBdLCBhcnJheSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UyRFRleHR1cmUocHJvZ3JhbSwgbWlw
bWFwcywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0u
aW50cmluc2ljc1tgVGV4dHVyZTJEPCR7ZWxlbWVudFR5cGV9PmBdLCBtaXBtYXBzKTsKK30KKwor
ZnVuY3Rpb24gbWFrZTJEVGV4dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkK
K3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJl
MkRBcnJheTwke2VsZW1lbnRUeXBlfT5gXSwgYXJyYXkpOworfQorCitmdW5jdGlvbiBtYWtlM0RU
ZXh0dXJlKHByb2dyYW0sIG1pcG1hcHMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBl
ZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmUzRDwke2VsZW1lbnRUeXBlfT5g
XSwgbWlwbWFwcyk7Cit9CisKK2Z1bmN0aW9uIG1ha2VUZXh0dXJlQ3ViZShwcm9ncmFtLCBhcnJh
eSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50
cmluc2ljc1tgVGV4dHVyZUN1YmU8JHtlbGVtZW50VHlwZX0+YF0sIGFycmF5KTsKK30KKworZnVu
Y3Rpb24gbWFrZVJXMURUZXh0dXJlKHByb2dyYW0sIGVsZW1lbnRzLCBlbGVtZW50VHlwZSkKK3sK
KyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUx
RDwke2VsZW1lbnRUeXBlfT5gXSwgZWxlbWVudHMpOworfQorCitmdW5jdGlvbiBtYWtlUlcxRFRl
eHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5
cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldUZXh0dXJlMURBcnJheTwke2VsZW1l
bnRUeXBlfT5gXSwgYXJyYXkpOworfQorCitmdW5jdGlvbiBtYWtlUlcyRFRleHR1cmUocHJvZ3Jh
bSwgcm93cywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dy
YW0uaW50cmluc2ljc1tgUldUZXh0dXJlMkQ8JHtlbGVtZW50VHlwZX0+YF0sIHJvd3MpOworfQor
CitmdW5jdGlvbiBtYWtlUlcyRFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5
cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldU
ZXh0dXJlMkRBcnJheTwke2VsZW1lbnRUeXBlfT5gXSwgYXJyYXkpOworfQorCitmdW5jdGlvbiBt
YWtlUlczRFRleHR1cmUocHJvZ3JhbSwgZGVwdGgsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVy
biBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTNEPCR7ZWxlbWVu
dFR5cGV9PmBdLCBkZXB0aCk7Cit9CisKIGZ1bmN0aW9uIGNoZWNrTnVtYmVyKHByb2dyYW0sIHJl
c3VsdCwgZXhwZWN0ZWQpCiB7CiAgICAgaWYgKCFyZXN1bHQudHlwZS51bmlmeU5vZGUuaXNOdW1i
ZXIpCkBAIC01NTUxLDYgKzU3MDIsMzY5IEBAIHRlc3RzLm1hdHJpeE11bHRpcGxpY2F0aW9uID0g
ZnVuY3Rpb24oKSB7CiAgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEzIiwgW10pLCAyOSAqIDcgKyA0MyAqIDExICsgNjEgKiAxMyk7CiB9CiAKK3Rlc3Rz
LnRleHR1cmVEaW1lbnNpb25zID0gZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1By
ZXAoYAorICAgICAgICB1aW50IGZvbzEoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAg
ICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAg
ICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmbnVtYmVyT2ZMZXZl
bHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQg
Zm9vMihUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7
CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5z
aW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICBy
ZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28zKFRleHR1
cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAg
ICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7
CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmVsZW1lbnRz
LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9
CisgICAgICAgIHVpbnQgZm9vNChUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAg
ICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0
dXJlLCAwLCAmd2lkdGgsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAg
IHJldHVybiBlbGVtZW50czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzUoVGV4dHVyZTFE
QXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAg
ICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAg
ICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmZWxlbWVudHMsICZu
dW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb282KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAg
ICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0
dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNyhUZXh0dXJlMkQ8ZmxvYXQ+
IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhl
aWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXRE
aW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsK
KyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb284
KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAg
ICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsK
KyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAm
bnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAg
ICAgICB9CisgICAgICAgIHVpbnQgZm9vOShUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkg
eworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAg
ICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7
CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwg
JmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOwor
ICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTAoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1
cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsK
KyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2
ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWln
aHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWln
aHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xMShUZXh0dXJlMkRBcnJheTxmbG9hdD4g
dGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVp
Z2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVy
T2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwg
JmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJu
IGVsZW1lbnRzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTIoVGV4dHVyZTJEQXJyYXk8
ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1
aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50
IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAm
d2lkdGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAg
IHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzEzKFRl
eHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAg
ICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAg
IHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUs
IDAsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAg
ICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTQoVGV4dHVyZTNE
PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAg
dWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgdWludCBu
dW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndp
ZHRoLCAmaGVpZ2h0LCAmZGVwdGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1
cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTUoVGV4dHVyZTNEPGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgdWludCBudW1iZXJP
ZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAm
aGVpZ2h0LCAmZGVwdGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gZGVw
dGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xNihUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1
cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsK
KyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxz
OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQs
ICZkZXB0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxl
dmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE3KFRleHR1cmVDdWJlPGZsb2F0PiB0
ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWln
aHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGlt
ZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7Cisg
ICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xOChU
ZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAg
ICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsK
KyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAm
bnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQor
ICAgICAgICB1aW50IGZvbzE5KFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAg
ICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1
aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAw
LCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4g
bnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yMChSV1RleHR1cmUx
RDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAg
IEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0
aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIxKFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+
IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVs
ZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZlbGVt
ZW50cyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWlu
dCBmb28yMihSV1RleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1
aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERp
bWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJu
IGVsZW1lbnRzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjMoUldUZXh0dXJlMkQ8Zmxv
YXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50
IGhlaWdodDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVp
Z2h0KTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50
IGZvbzI0KFJXVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdp
ZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICBHZXREaW1lbnNpb25z
KHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0Owor
ICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjUoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4
dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0
OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnMo
dGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJu
IHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjYoUldUZXh0dXJlMkRBcnJheTxm
bG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVp
bnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERp
bWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMpOworICAgICAgICAg
ICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI3KFJXVGV4dHVy
ZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAg
ICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAg
ICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsK
KyAgICAgICAgICAgIHJldHVybiBlbGVtZW50czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZv
bzI4KFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRo
OworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAg
ICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCk7
CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28y
OShSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsK
KyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAg
ICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgpOwor
ICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzMw
KFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOwor
ICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAg
ICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCk7Cisg
ICAgICAgICAgICByZXR1cm4gZGVwdGg7CisgICAgICAgIH0KKyAgICBgKTsKKyAgICBsZXQgdGV4
dHVyZTFEID0gbWFrZTFEVGV4dHVyZShwcm9ncmFtLCBbWzEsIDcsIDE0LCA3OV0sIFsxMywgMTZd
LCBbMTVdXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmUxREFycmF5ID0gbWFrZTFEVGV4dHVy
ZUFycmF5KHByb2dyYW0sIFtbWzEsIDcsIDE0LCA3OV0sIFsxMywgMTZdLCBbMTVdXSwgW1sxNiwg
MTcsIDE4LCAxOV0sIFsyMCwgMjFdLCBbMjJdXV0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJl
MkQgPSBtYWtlMkRUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2
LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAg
ICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3
LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNl0sCisgICAg
ICAgIFszNywgMzgsIDM5LCA0MF1dLAorICAgICAgICBbWzQxLCA0Ml1dCisgICAgXSwgImZsb2F0
Iik7CisgICAgbGV0IHRleHR1cmUyREFycmF5ID0gbWFrZTJEVGV4dHVyZUFycmF5KHByb2dyYW0s
IFtbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwg
MTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIy
LCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisg
ICAgICAgIFtbMzMsIDM0LCAzNSwgMzZdLAorICAgICAgICBbMzcsIDM4LCAzOSwgNDBdXSwKKyAg
ICAgICAgW1s0MSwgNDJdXQorICAgIF0sIFsKKyAgICAgICAgW1s0MywgNDQsIDQ1LCA0NiwgNDcs
IDQ4LCA0OSwgNTBdLAorICAgICAgICBbNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTcsIDU4XSwK
KyAgICAgICAgWzU5LCA2MCwgNjEsIDYyLCA2MywgNjQsIDY1LCA2Nl0sCisgICAgICAgIFs2Nywg
NjgsIDY5LCA3MCwgNzEsIDcyLCA3MywgNzRdXSwKKyAgICAgICAgW1s3NSwgNzYsIDc3LCA3OF0s
CisgICAgICAgIFs3OSwgODAsIDgxLCA4Ml1dLAorICAgICAgICBbWzgzLCA4NF1dCisgICAgXV0s
ICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlM0QgPSBtYWtlM0RUZXh0dXJlKHByb2dyYW0sIFsK
KyAgICAgICAgW1tbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEs
IDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAy
MywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAg
ICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAx
MywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRd
LAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV1dLAorICAgICAgICBb
W1szMywgMzQsIDM1LCAzNl0sCisgICAgICAgIFszNywgMzgsIDM5LCA0MF1dXQorICAgIF0sICJm
bG9hdCIpOworICAgIGxldCB0ZXh0dXJlQ3ViZSA9IG1ha2VUZXh0dXJlQ3ViZShwcm9ncmFtLCBb
WworICAgICAgICBbWzEsIDJdLAorICAgICAgICBbMywgNF0sCisgICAgICAgIFs1LCA2XSwKKyAg
ICAgICAgWzcsIDhdXSwKKyAgICAgICAgW1s5XSwKKyAgICAgICAgWzEwXV0sCisgICAgXSwgWwor
ICAgICAgICBbWzExLCAxMl0sCisgICAgICAgIFsxMywgMTRdLAorICAgICAgICBbMTUsIDE2XSwK
KyAgICAgICAgWzE3LCAxOF1dLAorICAgICAgICBbWzE5XSwKKyAgICAgICAgWzIwXV0sCisgICAg
XSwgWworICAgICAgICBbWzIxLCAyMl0sCisgICAgICAgIFsyMywgMjRdLAorICAgICAgICBbMjUs
IDI2XSwKKyAgICAgICAgWzI3LCAyOF1dLAorICAgICAgICBbWzI5XSwKKyAgICAgICAgWzMwXV0s
CisgICAgXSwgWworICAgICAgICBbWzMxLCAzMl0sCisgICAgICAgIFszMywgMzRdLAorICAgICAg
ICBbMzUsIDM2XSwKKyAgICAgICAgWzM3LCAzOF1dLAorICAgICAgICBbWzM5XSwKKyAgICAgICAg
WzQwXV0sCisgICAgXSwgWworICAgICAgICBbWzQxLCA0Ml0sCisgICAgICAgIFs0MywgNDRdLAor
ICAgICAgICBbNDUsIDQ2XSwKKyAgICAgICAgWzQ3LCA0OF1dLAorICAgICAgICBbWzQ5XSwKKyAg
ICAgICAgWzUwXV0sCisgICAgXSwgWworICAgICAgICBbWzUxLCA1Ml0sCisgICAgICAgIFs1Mywg
NTRdLAorICAgICAgICBbNTUsIDU2XSwKKyAgICAgICAgWzU3LCA1OF1dLAorICAgICAgICBbWzU5
XSwKKyAgICAgICAgWzYwXV0sCisgICAgXV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmUx
RCA9IG1ha2VSVzFEVGV4dHVyZShwcm9ncmFtLCBbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sICJm
bG9hdCIpOworICAgIGxldCByd1RleHR1cmUxREFycmF5ID0gbWFrZVJXMURUZXh0dXJlQXJyYXko
cHJvZ3JhbSwgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwgWzksIDEwLCAxMSwgMTIsIDEzLCAx
NCwgMTUsIDE2XSwgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF1dLCAiZmxvYXQiKTsK
KyAgICBsZXQgcndUZXh0dXJlMkQgPSBtYWtlUlcyRFRleHR1cmUocHJvZ3JhbSwgWworICAgICAg
ICBbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywg
MTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAor
ICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sICJmbG9hdCIpOworICAg
IGxldCByd1RleHR1cmUyREFycmF5ID0gbWFrZVJXMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwgWwor
ICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAx
MiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMs
IDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAg
ICBbWzMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MF0sCisgICAgICAgIFs0MSwgNDIsIDQz
LCA0NCwgNDUsIDQ2LCA0NywgNDhdLAorICAgICAgICBbNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwg
NTUsIDU2XSwKKyAgICAgICAgWzU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLCA2NF1dXSwgImZs
b2F0Iik7CisgICAgbGV0IHJ3VGV4dHVyZTNEID0gbWFrZVJXM0RUZXh0dXJlKHByb2dyYW0sIFsK
KyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwg
MTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIz
LCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAg
ICAgW1szMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDBdLAorICAgICAgICBbNDEsIDQyLCA0
MywgNDQsIDQ1LCA0NiwgNDcsIDQ4XSwKKyAgICAgICAgWzQ5LCA1MCwgNTEsIDUyLCA1MywgNTQs
IDU1LCA1Nl0sCisgICAgICAgIFs1NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2MywgNjRdXV0sICJm
bG9hdCIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEiLCBbdGV4dHVyZTFEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTFEXSksIDMpOworICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXldKSwgNCk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0
ZXh0dXJlMURBcnJheV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb281IiwgW3RleHR1cmUxREFycmF5XSksIDMpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJEXSksIDgpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4
dHVyZTJEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzgiLCBbdGV4dHVyZTJEXSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTJEQXJyYXldKSwgOCk7CisgICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTJE
QXJyYXldKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTEiLCBbdGV4dHVyZTJEQXJyYXldKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbdGV4dHVyZTJEQXJyYXldKSwgMyk7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4
dHVyZTNEXSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE0IiwgW3RleHR1cmUzRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFt0ZXh0dXJlM0RdKSwgMik7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZTNEXSks
IDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3
IiwgW3RleHR1cmVDdWJlXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVDdWJlXSksIDQpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVDdWJlXSksIDIp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwg
W3J3VGV4dHVyZTFEXSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZTFEQXJyYXldKSwgOCk7CisgICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbcndUZXh0dXJlMURBcnJh
eV0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMyIsIFtyd1RleHR1cmUyRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yNCIsIFtyd1RleHR1cmUyRF0pLCA0KTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNSIsIFtyd1RleHR1cmUyREFy
cmF5XSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzI2IiwgW3J3VGV4dHVyZTJEQXJyYXldKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjciLCBbcndUZXh0dXJlMkRBcnJheV0pLCAyKTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOCIsIFty
d1RleHR1cmUzRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yOSIsIFtyd1RleHR1cmUzRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMCIsIFtyd1RleHR1cmUzRF0pLCAyKTsKK30K
KwordGVzdHMudGV4dHVyZUxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcChgCisgICAgICAgIGZsb2F0IGZvbyhUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIGludCBt
aXBtYXAsIGludCBsb2NhdGlvbikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwg
aW50MihtaXBtYXAsIGxvY2F0aW9uKSk7CisgICAgICAgIH0KKyAgICBgKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2UxRFRleHR1cmUo
cHJvZ3JhbSwgW1sxLCA3LCAxNCwgNzldLCBbMTMsIDE2XSwgWzE1XV0sICJmbG9hdCIpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDcpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZTFEVGV4dHVyZShw
cm9ncmFtLCBbWzEsIDcsIDE0LCA3OV0sIFsxMywgMTZdLCBbMTVdXSwgImZsb2F0IiksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOworfQorCiBva1RvVGVz
dCA9IHRydWU7CiAKIGxldCB0ZXN0RmlsdGVyID0gLy4qLzsgLy8gcnVuIGV2ZXJ5dGhpbmcgYnkg
ZGVmYXVsdApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVy
ZU9wZXJhdGlvbnMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlT3Bl
cmF0aW9ucy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZGViOWQzZjNkZWExZjYwODhhYWQxNWJkYTVkZTFlYjZm
NDVlMWY4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
VGV4dHVyZU9wZXJhdGlvbnMuanMKQEAgLTAsMCArMSwzNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworInVzZSBzdHJpY3QiOworCitmdW5jdGlvbiB0ZXh0
dXJlTG9hZCh0ZXh0dXJlLCBwYXRoKQoreworICAgIGZvciAodmFyIGluZGV4IG9mIHBhdGgpIHsK
KyAgICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSB0ZXh0dXJlLmxlbmd0aCkKKyAgICAg
ICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBv
ZiBib3VuZHMiKTsKKyAgICAgICAgdGV4dHVyZSA9IHRleHR1cmVbaW5kZXhdOworICAgIH0KKyAg
ICByZXR1cm4gdGV4dHVyZTsKK30KKworZnVuY3Rpb24gdGV4dHVyZVN0b3JlKHRleHR1cmUsIHZh
bHVlLCBwYXRoKQoreworICAgIGRvIHsKKyAgICAgICAgaWYgKHBhdGgubGVuZ3RoID09IDApCisg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlplcm8tbGVuZ3RoIHN0b3JlIHBhdGgiKTsKKyAg
ICAgICAgaWYgKHBhdGgubGVuZ3RoID09IDEpIHsKKyAgICAgICAgICAgIHRleHR1cmVbcGF0aFsw
XV0gPSB2YWx1ZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIHRleHR1cmUgPSB0ZXh0dXJlW3BhdGhbMF1dOworICAgICAgICAgICAgcGF0aC5zaGlm
dCgpOworICAgICAgICB9CisgICAgfSB3aGlsZSAodHJ1ZSk7Cit9CisKK2Z1bmN0aW9uIGRlcHRo
Q29tcGFyZU9wZXJhdGlvbihkcmVmLCBkLCBjb21wYXJlRnVuY3Rpb24pCit7CisgICAgLy8gVnVs
a2FuIDEuMS44MyBzZWN0aW9uIDE1LjMuNAorICAgIHN3aXRjaCAoY29tcGFyZUZ1bmN0aW9uKSB7
CisgICAgICAgIGNhc2UgIm5ldmVyIjoKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBj
YXNlICJsZXNzIjoKKyAgICAgICAgICAgIHJldHVybiBkcmVmIDwgZCA/IDEgOiAwOworICAgICAg
ICBjYXNlICJlcXVhbCI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiA9PSBkID8gMSA6IDA7Cisg
ICAgICAgIGNhc2UgImxlc3NFcXVhbCI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiA8PSBkID8g
MSA6IDA7CisgICAgICAgIGNhc2UgImdyZWF0ZXIiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYg
PiBkID8gMSA6IDA7CisgICAgICAgIGNhc2UgIm5vdEVxdWFsIjoKKyAgICAgICAgICAgIHJldHVy
biBkcmVmICE9IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAiZ3JlYXRlckVxdWFsIjoKKyAgICAg
ICAgICAgIHJldHVybiBkcmVmID49IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAiYWx3YXlzIjoK
KyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJVbmtub3duIGRlcHRoIGNvbXBhcmlzb24gZnVuY3Rpb24iKTsKKyAgICB9
Cit9CisKK2Z1bmN0aW9uIGNvbnZlcnNpb25Ub1JHQkEodmFsdWUpCit7CisgICAgLy8gVnVsa2Fu
IDEuMS44MyBzZWN0aW9uIDE1LjMuNQorICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7
CisgICAgICAgIHZhciByZXN1bHQgPSBbXTsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2
YWx1ZS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlW2ldKTsKKyAg
ICAgICAgd2hpbGUgKHJlc3VsdC5sZW5ndGggIT0gNCkKKyAgICAgICAgICAgIHJlc3VsdC5wdXNo
KHJlc3VsdC5sZW5ndGggPT0gMyA/IDEgOiAwKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICB9CisgICAgcmV0dXJuIFt2YWx1ZSwgMCwgMCwgMV07Cit9CisKKy8vRm9yIGV4cGxpY2l0IExP
RCBpbWFnZSBpbnN0cnVjdGlvbnMsIGlmIHRoZSBvcHRpb25hbCBTUElSLVYgb3BlcmFuZCBHcmFk
IGlzIHByb3ZpZGVkLCB0aGVuIHRoZSBvcGVyYW5kIHZhbHVlcyBhcmUgdXNlZCBmb3IgdGhlIGRl
cml2YXRpdmVzLiBUaGUgbnVtYmVyIG9mIGNvbXBvbmVudHMgcHJlc2VudCBpbiBlYWNoIGRlcml2
YXRpdmUgZm9yIGEgZ2l2ZW4gaW1hZ2UgZGltZW5zaW9uYWxpdHkgbWF0Y2hlcyB0aGUgbnVtYmVy
IG9mIHBhcnRpYWwgZGVyaXZhdGl2ZXMgY29tcHV0ZWQgYWJvdmUuCisvL0lmIHRoZSBvcHRpb25h
bCBTUElSLVYgb3BlcmFuZCBMb2QgaXMgcHJvdmlkZWQsIHRoZW4gZGVyaXZhdGl2ZXMgYXJlIHNl
dCB0byB6ZXJvLCB0aGUgY3ViZSBtYXAgZGVyaXZhdGl2ZSB0cmFuc2Zvcm1hdGlvbiBpcyBza2lw
cGVkLCBhbmQgdGhlIHNjYWxlIGZhY3RvciBvcGVyYXRpb24gaXMgc2tpcHBlZC4gSW5zdGVhZCwg
dGhlIGZsb2F0aW5nIHBvaW50IHNjYWxhciBjb29yZGluYXRlIGlzIGRpcmVjdGx5IGFzc2lnbmVk
IHRvIM67YmFzZSBhcyBkZXNjcmliZWQgaW4gTGV2ZWwtb2YtRGV0YWlsIE9wZXJhdGlvbi4KK2Z1
bmN0aW9uIGltcGxpY2l0RGVyaXZhdGl2ZSgpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0
aW9uIDE1LjUKKyAgICByZXR1cm4gMDsKK30KKworZnVuY3Rpb24gcHJvamVjdGlvbk9wZXJhdGlv
bihzLCB0LCByLCBkcmVmLCBxKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42
LjEKKyAgICByZXR1cm4gW3MgLyBxLCB0IC8gcSwgciAvIHEsIGRyZWYgLyBxXTsKK30KKworZnVu
Y3Rpb24gY3ViZU1hcEZhY2VTZWxlY3Rpb24ocywgdCwgciwgcGFydGlhbFJ4V2l0aFJlc3BlY3RU
b1gsIHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWCwgcGFy
dGlhbFJ5V2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSeldpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUnpX
aXRoUmVzcGVjdFRvWSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi40Cisg
ICAgbGV0IHJ4ID0gczsKKyAgICBsZXQgcnkgPSB0OworICAgIGxldCByeiA9IHI7CisgICAgbGV0
IHdpbm5lciA9IDA7CisgICAgaWYgKE1hdGguYWJzKHJ6KSA+PSBNYXRoLmFicyhyeSkgJiYgTWF0
aC5hYnMocnopID49IE1hdGguYWJzKHJ4KSkKKyAgICAgICAgd2lubmVyID0gMjsKKyAgICBlbHNl
IGlmIChNYXRoLmFicyhyeSkgPj0gTWF0aC5hYnMocngpICYmIE1hdGguYWJzKHJ5KSA+PSBNYXRo
LmFicyhyeikpCisgICAgICAgIHdpbm5lciA9IDE7CisKKyAgICBsZXQgbGF5ZXJOdW1iZXI7Cisg
ICAgbGV0IHNjOworICAgIGxldCB0YzsKKyAgICBsZXQgcmM7CisgICAgbGV0IHBhcnRpYWxTY1dp
dGhSZXNwZWN0VG9YOworICAgIGxldCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWTsKKyAgICBsZXQg
cGFydGlhbFRjV2l0aFJlc3BlY3RUb1g7CisgICAgbGV0IHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9Z
OworICAgIGxldCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWDsKKyAgICBsZXQgcGFydGlhbFJjV2l0
aFJlc3BlY3RUb1k7CisgICAgaWYgKHdpbm5lciA9PSAwICYmIHJ4ID49IDApIHsKKyAgICAgICAg
bGF5ZXJOdW1iZXIgPSAwOworICAgICAgICBzYyA9IC1yejsKKyAgICAgICAgdGMgPSAtcnk7Cisg
ICAgICAgIHJjID0gcng7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRp
YWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9IC1w
YXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1gg
PSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0
VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVz
cGVjdFRvWCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsUmNXaXRo
UmVzcGVjdFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxzZSBpZiAod2lu
bmVyID09IDApIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSAxOworICAgICAgICBzYyA9IHJ6Owor
ICAgICAgICB0YyA9IC1yeTsKKyAgICAgICAgcmMgPSByeDsKKyAgICAgICAgcGFydGlhbFNjV2l0
aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNj
V2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlh
bFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBh
cnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgICAg
ICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsKKyAg
ICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7
CisgICAgfSBlbHNlIGlmICh3aW5uZXIgPT0gMSAmJiByeSA+PSAwKSB7CisgICAgICAgIGxheWVy
TnVtYmVyID0gMjsKKyAgICAgICAgc2MgPSByeDsKKyAgICAgICAgdGMgPSAtcno7CisgICAgICAg
IHJjID0gcnk7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ4V2l0
aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ4
V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gcGFydGlh
bFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gcGFy
dGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YID0g
cGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9Z
ID0gcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgfSBlbHNlIGlmICh3aW5uZXIgPT0gMSkg
eworICAgICAgICBsYXllck51bWJlciA9IDM7CisgICAgICAgIHNjID0gcng7CisgICAgICAgIHRj
ID0gLXJ6OworICAgICAgICByYyA9IHJ5OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRv
WCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVj
dFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVz
cGVjdFRvWCA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0
aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxS
Y1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0
aWFsUmNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICB9IGVs
c2UgaWYgKHdpbm5lciA9PSAyICYmIHJ6ID49IDApIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSA0
OworICAgICAgICBzYyA9IHJ4OworICAgICAgICB0YyA9IC1yeTsKKyAgICAgICAgcmMgPSByejsK
KyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRv
WDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnhXaXRoUmVzcGVj
dFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJl
c3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdp
dGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxS
eldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IHBhcnRp
YWxSeldpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxzZSB7CisgICAgICAgIGxheWVyTnVtYmVyID0g
NTsKKyAgICAgICAgc2MgPSAtcng7CisgICAgICAgIHRjID0gLXJ5OworICAgICAgICByYyA9IHJ6
OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnhXaXRoUmVzcGVj
dFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ4V2l0aFJl
c3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdp
dGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFs
UnlXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSAtcGFy
dGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0g
LXBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgIH0KKyAgICByZXR1cm4gW2xheWVyTnVtYmVy
LCBzYywgdGMsIHJjLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNjV2l0aFJlc3Bl
Y3RUb1ksIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSwg
cGFydGlhbFJjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZXQorfQorCitm
dW5jdGlvbiBjdWJlTWFwQ29vcmRpbmF0ZVRyYW5zZm9ybWF0aW9uKHNjLCByYykKK3sKKyAgICAv
LyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi41CisgICAgbGV0IHNGYWNlID0gKDEgLyAyKSAq
IHNjIC8gTWF0aC5hYnMocmMpICsgKDEgLyAyKTsKKyAgICBsZXQgdEZhY2UgPSAoMSAvIDIpICog
dGMgLyBNYXRoLmFicyhyYykgKyAoMSAvIDIpOworICAgIHJldHVybiBbc0ZhY2UsIHRGYWNlXTsK
K30KKworZnVuY3Rpb24gY3ViZU1hcERlcml2YXRpdmVUcmFuc2Zvcm1hdGlvbihzYywgdGMsIHJj
LCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ksIHBhcnRp
YWxUY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJjV2l0
aFJlc3BlY3RUb1gsIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZKQoreworICAgIC8vIFZ1bGthbiAx
LjEuODMgc2VjdGlvbiAxNS42LjYKKyAgICBsZXQgcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1gg
PSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCAtIHNj
ICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICBsZXQg
cGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1kgPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBw
YXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSAtIHNjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kpIC8g
TWF0aC5wb3cocmMsIDIpKTsKKyAgICBsZXQgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1ggPSAo
MSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCAtIHRjICog
cGFydGlhbFJjV2l0aFJlc3BlY3RUb1gpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICBsZXQgcGFy
dGlhbFRGYWNlV2l0aFJlc3BlY3RUb1kgPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0
aWFsVGNXaXRoUmVzcGVjdFRvWSAtIHRjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kpIC8gTWF0
aC5wb3cocmMsIDIpKTsKKyAgICByZXR1cm4gW3BhcnRpYWxTRmFjZVdpdGhSZXNwZWN0VG9YLCBw
YXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1gsIHBh
cnRpYWxURmFjZVdpdGhSZXNwZWN0VG9ZXTsKK30KKworZnVuY3Rpb24gc2NhbGVGYWN0b3JPcGVy
YXRpb24oKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjcKKyAgICAvLyBG
SVhNRTogSW1wbGVtZW50IHRoaXMuCit9CisKK2Z1bmN0aW9uIGxldmVsT2ZEZXRhaWxPcGVyYXRp
b24obWF4U2FtcGxlckxvZEJpYXMsIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsIGxvZE1pbkZyb21G
dW5jdGlvbk9wZXJhbmQsIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLCBzYW1wbGVyQmlhcywgc2Ft
cGxlckxvZE1pbiwgc2FtcGxlckxvYWRNYXgsIHJob01heCwgZXRhKQoreworICAgIGxldCBsYW1i
ZGFCYXNlID0gbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCAhPSB1bmRlZmluZWQgPyBsb2RGcm9tRnVu
Y3Rpb25PcGVyYW5kIDogTWF0aC5sb2cyKHJob01heCAvIGV0YSk7CisgICAgbGV0IGxhbWJkYVBy
aW1lID0gbGFtYmRhQmFzZSArIE1hdGgubWluKE1hdGgubWF4KHNhbXBsZXJCaWFzICsgYmlhc0Zy
b21GdW5jdGlvbk9wZXJhbmQsIC1tYXhTYW1wbGVyTG9kQmlhcyksIG1heFNhbXBsZXJMb2RCaWFz
KTsKKyAgICBsZXQgbG9kTWluID0gTWF0aC5tYXgoc2FtcGxlckxvZE1pbiwgbG9kTWluRnJvbUZ1
bmN0aW9uT3BlcmFuZCk7CisgICAgbGV0IGxvZE1heCA9IHNhbXBsZXJMb2FkTWF4OworICAgIGxl
dCBsYW1iZGE7CisgICAgaWYgKGxhbWJkYVByaW1lID4gbG9kTWF4KQorICAgICAgICBsYW1iZGEg
PSBsb2RNYXg7CisgICAgZWxzZSBpZiAobG9kTWluIDw9IGxhbWJkYVByaW1lICYmIGxhbWJkYVBy
aW1lIDw9IGxvZE1heCkKKyAgICAgICAgbGFtYmRhID0gbGFtYmRhUHJpbWU7CisgICAgZWxzZSBp
ZiAobGFtYmRhUHJpbWUgPCBsb2RNaW4pCisgICAgICAgIGxhbWJkYSA9IGxvZE1pbjsKKyAgICBl
bHNlCisgICAgICAgIHRocm93IG5ldyBFcnJvcigibG9kTWluID49IGxvZE1heCIpOworICAgIHJl
dHVybiBsYW1iZGE7Cit9CisKK2Z1bmN0aW9uIGltYWdlTGV2ZWxTZWxlY3Rpb24oYmFzZU1pcExl
dmVsLCBsZXZlbENvdW50LCBtaXBtYXBNb2RlLCBsYW1iZGEpCit7CisgICAgZnVuY3Rpb24gbmVh
cmVzdChkUHJpbWUpCisgICAgeworICAgICAgICByZXR1cm4gTWF0aC5jZWlsKGRQcmltZSArIDAu
NSkgLSAxOworICAgIH0KKworICAgIGxldCBxID0gbGV2ZWxDb3VudCAtIDE7CisgICAgbGV0IGRQ
cmltZSA9IGJhc2VNaXBMZXZlbCArIE1hdGgubWluKE1hdGgubWF4KGxhbWJkYSwgMCksIHEpOwor
ICAgIGxldCBkbDsKKyAgICBpZiAobWlwbWFwTW9kZSA9PSAibmVhcmVzdCIpCisgICAgICAgIGRs
ID0gbmVhcmVzdChkUHJpbWUpOworICAgIGVsc2UKKyAgICAgICAgZGwgPSBkUHJpbWU7CisgICAg
aWYgKG1pcG1hcE1vZGUgPT0gIm5lYXJlc3QiKQorICAgICAgICByZXR1cm4gZGw7CisgICAgZWxz
ZSB7CisgICAgICAgIGxldCBkSGkgPSBNYXRoLmZsb29yKGRsKTsKKyAgICAgICAgbGV0IGRMb3cg
PSBNYXRoLm1pbihkSGkgKyAxLCBxKTsKKyAgICAgICAgbGV0IGRlbHRhID0gZGwgLSBkSGk7Cisg
ICAgICAgIHJldHVybiBbZEhpLCBkTG93LCBkZWx0YV07CisgICAgfQorfQorCitmdW5jdGlvbiBz
dHJxYVRvVVZXQVRyYW5zZm9ybWF0aW9uKHMsIHQsIHIsIHEsIGEsIHdpZHRoLCBoZWlnaHQsIGRl
cHRoKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjgKKyAgICBsZXQgdSA9
IHMgKiB3aWR0aDsKKyAgICBsZXQgdiA9IHQgKiBoZWlnaHQ7CisgICAgbGV0IHcgPSByICogZGVw
dGg7CisgICAgcmV0dXJuIFt1LCB2LCB3LCBhXTsKK30KKworZnVuY3Rpb24gdXZ3YVRvSUpLTE5U
cmFuc2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJTZWxlY3Rpb24obGF5ZXJDb3VudCwgYmFzZUFycmF5
TGF5ZXIsIGZpbHRlciwgdSwgdiwgdywgYSwgZGVsdGFJLCBkZWx0YUosIGRlbHRhSykKK3sKKyAg
ICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNy4xCisgICAgZnVuY3Rpb24gcm5lKGEpCisg
ICAgeworICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihhICsgMC41KTsKKyAgICB9CisgICAgbGV0
IGwgPSBNYXRoLm1pbihNYXRoLm1heChybmUoYSksIDApLCBsYXllckNvdW50IC0gMSkgKyBiYXNl
QXJyYXlMYXllcjsKKyAgICBsZXQgaTsKKyAgICBsZXQgajsKKyAgICBsZXQgazsKKyAgICBpZiAo
ZmlsdGVyID09ICJuZWFyZXN0IikgeworICAgICAgICBpID0gTWF0aC5mbG9vcih1KTsKKyAgICAg
ICAgaiA9IE1hdGguZmxvb3Iodik7CisgICAgICAgIGsgPSBNYXRoLmZsb29yKHcpOworICAgICAg
ICAKKyAgICAgICAgaSArPSBkZWx0YUk7CisgICAgICAgIGogKz0gZGVsdGFKOworICAgICAgICBr
ICs9IGRlbHRhSzsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBbaSwgaiwga107CisgICAgfSBl
bHNlIHsKKyAgICAgICAgaWYgKGZpbHRlciAhPSAibGluZWFyIikKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiVW5rbm93biBmaWx0ZXIiKTsKKyAgICAgICAgbGV0IGkwID0gTWF0aC5mbG9v
cih1IC0gMC41KTsKKyAgICAgICAgbGV0IGkxID0gaTAgKyAxOworICAgICAgICBsZXQgajAgPSBN
YXRoLmZsb29yKHYgLSAwLjUpOworICAgICAgICBsZXQgajEgPSBqMCArIDE7CisgICAgICAgIGxl
dCBrMCA9IE1hdGguZmxvb3IodyAtIDAuNSk7CisgICAgICAgIGxldCBrMSA9IGswICsgMTsKKyAg
ICAgICAgbGV0IGFscGhhID0gKHUgLSAwLjUpIC0gaTA7CisgICAgICAgIGxldCBiZXRhID0gKHYg
LSAwLjUpIC0gajA7CisgICAgICAgIGxldCBnYW1tYSA9ICh3IC0gMC41KSAtIGswOworICAgICAg
ICAKKyAgICAgICAgaTAgKz0gZGVsdGFJOworICAgICAgICBpMSArPSBkZWx0YUk7CisgICAgICAg
IGowICs9IGRlbHRhSjsKKyAgICAgICAgajEgKz0gZGVsdGFKOworICAgICAgICBrMCArPSBkZWx0
YUs7CisgICAgICAgIGsxICs9IGRlbHRhSzsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBbaTAs
IGkxLCBqMCwgajEsIGswLCBrMSwgYWxwaGEsIGJldGEsIGdhbW1hXTsKKyAgICB9Cit9CisKK2Z1
bmN0aW9uIGludGVnZXJUZXhlbENvb3JkaW5hdGVPcGVyYXRpb25zKGJhc2VNaXBMZXZlbCwgbGV2
ZWxDb3VudCwgbGV2ZWxCYXNlLCBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kKQoreworICAgIC8vIFZ1
bGthbiAxLjEuODMgc2VjdGlvbiAxNS44CisgICAgbGV0IGQgPSBsZXZlbEJhc2UgKyBsb2RGcm9t
RnVuY3Rpb25PcGVyYW5kOworICAgIGlmIChkIDwgYmFzZU1pcExldmVsIHx8IGQgPj0gYmFzZU1p
cExldmVsICsgbGV2ZWxDb3VudCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTZWxlY3RlZCBs
ZXZlbCBkb2VzIG5vdCBsaWUgaW5zaWRlIHRoZSBpbWFnZSIpOworICAgIHJldHVybiBkOworfQor
CitmdW5jdGlvbiB3cmFwcGluZ09wZXJhdGlvbih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgYWRkcmVz
c01vZGVVLCBhZGRyZXNzTW9kZVYsIGFkZHJlc3NNb2RlVywgaSwgaiwgaykKK3sKKyAgICAvLyBW
dWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOS4xCisgICAgLy8gRklYTUU6IEltcGxlbWVudCBjdWJl
IG1hcCBoYW5kbGluZworICAgIGZ1bmN0aW9uIHRyYW5zZm9ybShhZGRyZXNzTW9kZSwgc2l6ZSwg
aSkKKyAgICB7CisgICAgICAgIGZ1bmN0aW9uIG1pcnJvcihuKSB7CisgICAgICAgICAgICBpZiAo
biA+PSAwKQorICAgICAgICAgICAgICAgIHJldHVybiBuOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIHJldHVybiAtKDEgKyBuKTsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2gg
KGFkZHJlc3NNb2RlKSB7CisgICAgICAgICAgICBjYXNlICJjbGFtcFRvRWRnZSI6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGksIDApLCBzaXplIC0gMSk7CisgICAg
ICAgICAgICBjYXNlICJyZXBlYXQiOgorICAgICAgICAgICAgICAgIHJldHVybiBpICUgc2l6ZTsK
KyAgICAgICAgICAgIGNhc2UgIm1pcnJvclJlcGVhdCI6CisgICAgICAgICAgICAgICAgcmV0dXJu
IChzaXplIC0gMSkgLSBtaXJyb3IoKGkgJSAoMiAqIHNpemUpKSAtIHNpemUpOworICAgICAgICAg
ICAgY2FzZSAiY2xhbXBUb0JvcmRlckNvbG9yIjoKKyAgICAgICAgICAgICAgICByZXR1cm4gTWF0
aC5taW4oTWF0aC5tYXgoaSwgLTEpLCBzaXplKTsKKyAgICAgICAgICAgIGRlZmF1bHQKKyAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gYWRkcmVzcyBtb2RlIik7CisgICAg
ICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFt0cmFuc2Zvcm0oYWRkcmVzc01vZGVVLCB3aWR0aCwg
aSksIHRyYW5zZm9ybShhZGRyZXNzTW9kZVYsIGhlaWdodCwgaiksIHRyYW5zZm9ybShhZGRyZXNz
TW9kZVcsIGRlcHRoLCBrKV07Cit9CisKK2Z1bmN0aW9uIHRleGVsR2F0aGVyaW5nKCkKK3sKKyAg
ICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOS4yCisgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0aGlzCisgICAgLypsZXQgdGF1UiA9IDsKKyAgICBsZXQgdGF1RyA9IDsKKyAgICBsZXQgdGF1
QiA9IDsKKyAgICBsZXQgdGF1QSA9IDsqLworfQorCitmdW5jdGlvbiB0ZXhlbEZpbHRlcmluZyht
YWdGaWx0ZXIsIG1pbkZpbHRlciwgbGFtYmRhKQoreworICAgIGxldCBmaWx0ZXI7CisgICAgaWYg
KGxhbWJkYSA8PSAwKQorICAgICAgICBmaWx0ZXIgPSBtYWdGaWx0ZXI7CisgICAgZWxzZQorICAg
ICAgICBmaWx0ZXIgPSBtaW5GaWx0ZXI7CisgICAgCit9CisKK2Z1bmN0aW9uIHNhbXBsZTFEKHRl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uKQoreworICAgIAorfQpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL2luZGV4Lmh0bWwKaW5kZXggNjVhODY0MTFiM2U3NzBiNTU3YjQxYWNjN2U0MTRk
ZWY0MjQwMzAxMy4uODM2NmJiMThkMTcwZTkzZjgwMGRmNTgyMmZhNWVhZmViNDNiZWQ4MyAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbAorKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCkBAIC0xMjcsNiArMTI3LDcg
QEAKIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRv
ci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVGVybmFyeUV4cHJlc3Npb24uanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IlRleHR1cmVPcGVyYXRpb25zLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJUcmFwU3RhdGVtZW50LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVm
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348581</attachid>
            <date>2018-08-30 19:24:02 -0700</date>
            <delta_ts>2018-08-30 19:25:34 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188940-20180830192401.patch</filename>
            <type>text/plain</type>
            <size>88660</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTI5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTUwNDIyMTY4MTkxNWY1OTZhY2JjYmMzNmJlYTJiOWI4
M2RiOTg0ZC4uOTkzNzk2MDNkMDc1YTY2ZjcxMGIxNzlkMjM1M2M2NWRmMTdlYjlkMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2
IEBACisyMDE4LTA4LTMwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+
CisKKyAgICAgICAgW1dITFNMXSBJbXBsZW1lbnQgdGV4dHVyZSB0eXBlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTQwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2lj
cy5qczoKKyAgICAgICAgKEludHJpbnNpY3MuKToKKyAgICAgICAgKEludHJpbnNpY3MpOgorICAg
ICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWw6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAobGV0LnN0
YW5kYXJkTGlicmFyeSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5o
dG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanM6CisgICAgICAg
IChtYWtlU2FtcGxlcik6CisgICAgICAgIChtYWtlMURUZXh0dXJlKToKKyAgICAgICAgKG1ha2Ux
RFRleHR1cmVBcnJheSk6CisgICAgICAgIChtYWtlMkRUZXh0dXJlKToKKyAgICAgICAgKG1ha2Uy
RFRleHR1cmVBcnJheSk6CisgICAgICAgIChtYWtlM0RUZXh0dXJlKToKKyAgICAgICAgKG1ha2VU
ZXh0dXJlQ3ViZSk6CisgICAgICAgIChtYWtlUlcxRFRleHR1cmUpOgorICAgICAgICAobWFrZVJX
MURUZXh0dXJlQXJyYXkpOgorICAgICAgICAobWFrZVJXMkRUZXh0dXJlKToKKyAgICAgICAgKG1h
a2VSVzJEVGV4dHVyZUFycmF5KToKKyAgICAgICAgKG1ha2VSVzNEVGV4dHVyZSk6CisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanM6IEFkZGVkLgor
ICAgICAgICAodGV4dHVyZUxvYWQpOgorICAgICAgICAodGV4dHVyZVN0b3JlKToKKyAgICAgICAg
KiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sOgorCiAyMDE4LTA4LTMwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEZvbGxvd3VwIHRv
IFtpT1NdIFRlc3RXZWJLaXRBUEkuUGFzdGVJbWFnZSB0ZXN0cyBhcmUgZmxha3kgZmFpbHVyZXMK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwppbmRleCA5YzJhMzcxNTBjMWU5NzZiOTI2
Y2ZiZWUyMzQzNzUyMGE4ZGU0YTQ3Li5jYzA3ZmRiNTE2NjE2ZDMyOGYzODQ0NWU5NWE4MjA1Mzky
ZTVkYTVhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMK
KysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCkBAIC0xNTAsNiArMTUw
LDcgQEAgbG9hZCgiU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyIpOwogbG9hZCgiU3ludGhl
c2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIik7CiBsb2FkKCJTeW50aGVzaXplRGVmYXVs
dENvbnN0cnVjdG9yT3BlcmF0b3IuanMiKTsKIGxvYWQoIlRlcm5hcnlFeHByZXNzaW9uLmpzIik7
Citsb2FkKCJUZXh0dXJlT3BlcmF0aW9ucy5qcyIpOwogbG9hZCgiVHJhcFN0YXRlbWVudC5qcyIp
OwogbG9hZCgiVHlwZURlZi5qcyIpOwogbG9hZCgiVHlwZURlZlJlc29sdmVyLmpzIik7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcwppbmRleCBiMDA0MDY3ZjVl
YmZiM2E4YjRiZDk4ZTQzN2E4YzA3NjhiZTI2ZjFlLi5lYTM5NGU0MmZiYWU0NTJjY2M5NDcwOGEz
NTRjODQxZjZjMzUxY2EyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9JbnRyaW5zaWNzLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJp
bnNpY3MuanMKQEAgLTMzMCw3ICszMzAsOCBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAg
ICAgICJuYXRpdmUgdHlwZWRlZiBzYW1wbGVyIiwKICAgICAgICAgICAgIHR5cGUgPT4gewogICAg
ICAgICAgICAgICAgIHRoaXMuc2FtcGxlciA9IHR5cGU7Ci0gICAgICAgICAgICAgICAgLy8gRklY
TUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBwdXQgaGVyZS4KKyAgICAgICAgICAgICAgICB0eXBlLnNp
emUgPSAxOworICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVm
ZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCB7fSk7CiAgICAgICAgICAgICB9KTsK
IAogICAgICAgICBmb3IgKGxldCB0ZXh0dXJlVHlwZSBvZiBbIlRleHR1cmUxRCIsICJSV1RleHR1
cmUxRCIsICJUZXh0dXJlMURBcnJheSIsICJSV1RleHR1cmUxREFycmF5IiwgIlRleHR1cmUyRCIs
ICJSV1RleHR1cmUyRCIsICJUZXh0dXJlMkRBcnJheSIsICJSV1RleHR1cmUyREFycmF5IiwgIlRl
eHR1cmUzRCIsICJSV1RleHR1cmUzRCIsICJUZXh0dXJlQ3ViZSJdKSB7CkBAIC0zMzksMTIgKzM0
MCwxNiBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0
eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gLAogICAgICAgICAgICAgICAg
ICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5
cGV9PCR7dHlwZUFyZ3VtZW50fT5gXSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICB0
eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1
bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIHt9KTsKICAg
ICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDI7IGkg
PD0gNDsgKytpKSB7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAg
ICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJn
dW1lbnR9JHtpfT5gLAogICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9
JHtpfT5gXSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0g
MTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVl
ID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwge30pOwogICAgICAgICAg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAt
MzU2LDYgKzM2MSw4IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmAsCiAgICAgICAg
ICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0
ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmBdID0gdHlwZTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnBvcHVs
YXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwg
e30pOwogICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpA
QCAtOTE0LDYgKzkyMSw3NDUgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAKICAgICAgICAgZm9yIChs
ZXQgc2V0dGVyIG9mIEJ1aWx0aW5NYXRyaXhTZXR0ZXIuZnVuY3Rpb25zKCkpCiAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KHNldHRlci50b1N0cmluZygpLCBmdW5jID0+IHNldHRlci5pbnN0YW50
aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsKKworICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFsi
Ym9vbCIsICJ1Y2hhciIsICJ1c2hvcnQiLCAidWludCIsICJjaGFyIiwgInNob3J0IiwgImludCIs
ICJoYWxmIiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlMUQ8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdCBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQgbG9jYXRpb24s
aW50IG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9IExvYWQoVGV4dHVyZTFEPCR7dHlwZX0+LGludDIgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwg
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpXSkpOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmUxRDwke3R5cGV9PixpbnQy
IGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwg
bG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRy
LmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBs
b2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQubG9hZFZhbHVlKCldKSk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPCR7dHlw
ZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBOdW1iZXJP
ZkxldmVscylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0
aCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0g
dGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9
IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElE
ID49IHRleC5sZW5ndGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdU
cmFwRXJyb3IoIltsb2FkXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9m
IHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleFttaXBJRF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
bGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KworICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9IFNhbXBsZShUZXh0dXJlMURBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1w
bGUoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50IG9m
ZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9IExvYWQoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfT4saW50MyBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKV0pKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJl
MURBcnJheTwke3R5cGV9PixpbnQzIGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSArIG9m
ZnNldC5sb2FkVmFsdWUoKV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMURBcnJheTwke3R5cGV9Pix1aW50IE1pcExl
dmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgRWxlbWVudHMsdWludCogdGhyZWFk
IE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2
ZWwsIHdpZHRoLCBlbGVtZW50cywgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHRleC5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIk5vIGVsZW1lbnRzIGluIHRoZSB0ZXh0
dXJlIGFycmF5Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4WzBd
Lmxlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJv
cigiW2xvYWRdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVy
ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4WzBdW21pcElEXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZW5ndGgpLCAx
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleFswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmUyRDwke3R5cGV9Pixz
YW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxv
Y2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDIgbG9jYXRpb24sZmxvYXQgQmlhcylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmUyRDwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBCaWFzLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXMsIG9mZnNldF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3Jh
ZChUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQyIEREWCxm
bG9hdDIgRERZKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBs
b2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBERFksaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHksIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxl
TGV2ZWwoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IExP
RClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBs
b2RdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNh
bXBsZUxldmVsKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9h
dCBMT0QsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgbG9kLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9u
LGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00
IEdhdGhlclJlZChUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50
MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxv
Y2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJHcmVlbihUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50
MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9j
YXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdh
dGhlckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyQWxwaGEoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0gTG9hZChUZXh0dXJlMkQ8JHt0eXBlfT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9j
YXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKV0pKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlMkQ8
JHt0eXBlfT4saW50MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSArIG9mZnNldC5nZXQoMCksIGxvY2F0aW9uLmdl
dCgyKSArIG9mZnNldC5nZXQoMSldKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTJEPCR7dHlwZX0+LHVpbnQgTWlwTGV2
ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIE51
bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWws
IHdpZHRoLCBoZWlnaHQsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChtaXBJRCA+PSB0ZXgubGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50
IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4
W21pcElEXS5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBu
ZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIHJvd3MiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhb
bWlwSURdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4W21pcElEXVswXS5sZW5ndGgpLCAxKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworCisgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9IFNhbXBsZShUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlhcylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmUyREFycmF5PCR7dHlw
ZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMsaW50MiBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhcywgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBT
YW1wbGVHcmFkKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
LGZsb2F0MiBERFgsZmxvYXQyIEREWSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeV0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlMkRBcnJheTwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBERFksaW50MiBvZmZz
ZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
ZGR4LCBkZHksIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9ELGludDIgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
KFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJE
QXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
UmVkKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4
dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQp
YCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckdyZWVuKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGlu
dDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9j
YXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlMkRBcnJheTwke3R5cGV9Pixp
bnQ0IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9u
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2Fk
KHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
bG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMyldKSk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4s
aW50NCBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQo
MCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpICsgb2Zmc2V0LmdldCgwKSwgbG9j
YXRpb24uZ2V0KDMpICsgb2Zmc2V0LmdldCgxKV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMkRBcnJheTwke3R5cGV9
Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVp
bnQqIHRocmVhZCBFbGVtZW50cyx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgZWxlbWVu
dHMsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9
IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQg
PSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXgu
bGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFw
RXJyb3IoIltsb2FkXSIsICJObyBlbGVtZW50cyBpbiB0aGUgdGV4dHVyZSBhcnJheSIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleFswXS5sZW5ndGgpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJSZWFk
aW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICh0ZXhbMF1bbWlwSURdLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBo
YXMgbm8gcm93cyIpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgp
LmNvcHlGcm9tKEVQdHIuYm94KHRleFswXVttaXBJRF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF1b
bWlwSURdWzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAg
ICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisKKyAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
IFNhbXBsZShUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MyBv
ZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgewor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRl
eHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9mZnNldClgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRd
KSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJSZWQoVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVy
ZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdy
ZWVuKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVy
ZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJs
dWUoVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUz
RDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBo
YShUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUz
RDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVy
ZTNEPCR7dHlwZX0+LGludDQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5i
b3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9j
YXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgzKV0pKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlM0Q8
JHt0eXBlfT4saW50NCBsb2NhdGlvbixpbnQzIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSArIG9mZnNldC5nZXQoMCksIGxvY2F0aW9uLmdl
dCgyKSArIG9mZnNldC5nZXQoMSksIGxvY2F0aW9uLmdldCgzKSArIG9mZnNldC5nZXQoMildKSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lv
bnMoVGV4dHVyZTNEPCR7dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVp
bnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIERlcHRoLHVpbnQqIHRocmVhZCBOdW1iZXJP
ZkxldmVscylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0
aCwgaGVpZ2h0LCBkZXB0aCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKG1pcElEID49IHRleC5sZW5ndGgpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3Rh
bnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0
ZXhbbWlwSURdLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93
IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgemVybyBkZXB0aCIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHRleFttaXBJRF1bMF0ubGVuZ3RoID09IDApCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJU
ZXh0dXJlIGhhcyBubyByb3dzIik7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aC5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbbWlwSURdLmxlbmd0aCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRl
eFttaXBJRF1bMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbbWlwSURdWzBdWzBdLmxlbmd0aCksIDEp
OworICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZUN1YmU8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZUN1YmU8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24sZmxvYXQzIEREWCxmbG9hdDMgRERZKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0
dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkgewor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRl
eHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZUN1YmU8
JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmVDdWJlPCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBs
b2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXRE
aW1lbnNpb25zKFRleHR1cmVDdWJlPCR7dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFk
IFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQs
IG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRl
eHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBt
aXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXgubGVu
Z3RoICE9IDYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJy
b3IoIltsb2FkXSIsICJDdWJlIHRleHR1cmUgZG9lc24ndCBoYXZlIDYgZmFjZXMiKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXhbMF0ubGVuZ3RoKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiUmVhZGlu
ZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAodGV4WzBdW21pcElEXS5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFz
IG5vIHJvd3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5j
b3B5RnJvbShFUHRyLmJveCh0ZXhbMF1bbWlwSURdLmxlbmd0aCksIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdW21p
cElEXVswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2
ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXS5sZW5ndGgpLCAxKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9u
cyhSV1RleHR1cmUxRDwke3R5cGV9Pix1aW50KiB0aHJlYWQgV2lkdGgpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdp
ZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleHR1cmUubG9hZFZhbHVlKCkubGVu
Z3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdl
dERpbWVuc2lvbnMoUldUZXh0dXJlMUQ8JHt0eXBlfT4sZmxvYXQqIHRocmVhZCBXaWR0aClgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4dHVyZS5sb2Fk
VmFsdWUoKS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0gTG9hZChSV1RleHR1cmUxRDwke3R5cGV9PixpbnQgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUo
KSwgW2xvY2F0aW9uLmxvYWRWYWx1ZSgpXSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUxRDwke3R5cGV9Piwke3R5cGV9LHVpbnQg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0
aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGV4dHVyZVN0b3JlKHRleHR1cmUubG9h
ZFZhbHVlKCksIHZhbHVlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24ubG9hZFZhbHVlKCldKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9u
cyhSV1RleHR1cmUxREFycmF5PCR7dHlwZX0+LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJl
YWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgZWxl
bWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2Fk
VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXgubGVuZ3RoID09IDApCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIs
ICJUZXh0dXJlIGhhcyBubyBlbGVtZW50cyIpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxl
bWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAg
ICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfT4sZmxvYXQqIHRo
cmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCB3aWR0aCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICh0ZXgubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3
IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyBlbGVtZW50cyIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFJXVGV4dHVyZTFEQXJyYXk8JHt0
eXBlfT4saW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0
dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSldKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0
b3JlKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfT4sJHt0eXBlfSx1aW50MiBsb2NhdGlvbilgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICB0ZXh0dXJlU3RvcmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgdmFs
dWUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKV0pOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25z
KFJXVGV4dHVyZTJEPCR7dHlwZX0+LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVp
Z2h0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sZW5ndGggPT0gMCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUg
aGFzIG5vIHJvd3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUo
KS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF0ubGVuZ3RoKSwg
MSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVu
c2lvbnMoUldUZXh0dXJlMkQ8JHt0eXBlfT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhy
ZWFkIEhlaWdodClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWln
aHRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFs
dWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXgubGVuZ3RoID09IDApCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJU
ZXh0dXJlIGhhcyBubyByb3dzIik7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdLmxl
bmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSBMb2FkKFJXVGV4dHVyZTJEPCR7dHlwZX0+LGludDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0
aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpXSkpOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUyRDwke3R5cGV9Piwke3R5cGV9LHVp
bnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHR1cmVTdG9yZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCB2YWx1ZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRp
b24uZ2V0KDEpXSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KworICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2
b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9Pix1aW50KiB0aHJlYWQg
V2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50c10pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFz
IG5vIGVsZW1lbnRzIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4WzBdLmxlbmd0
aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9y
KCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gcm93cyIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEp
OworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleFswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRo
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXVswXS5sZW5ndGgpLCAxKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhS
V1RleHR1cmUyREFycmF5PCR7dHlwZX0+LGZsb2F0KiB0aHJlYWQgV2lkdGgsZmxvYXQqIHRocmVh
ZCBIZWlnaHQsZmxvYXQqIHRocmVhZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAodGV4Lmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gZWxlbWVudHMiKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXhbMF0ubGVuZ3RoID09IDApCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0
dXJlIGhhcyBubyByb3dzIik7CisgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdLmxl
bmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4WzBdWzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBl
fT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJl
TG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQo
MSksIGxvY2F0aW9uLmdldCgyKV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9Piwke3R5cGV9LHVpbnQz
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHR1cmVTdG9yZSh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCB2YWx1ZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24u
Z2V0KDEpLCBsb2NhdGlvbi5nZXQoMildKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUzRDwke3R5cGV9Pix1aW50
KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRGVwdGgpYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sZW5ndGggPT0gMCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUg
aGFzIG5vIGRlcHRoIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4WzBdLmxlbmd0
aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9y
KCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gcm93cyIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgZGVwdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIu
Ym94KHRleFswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXVswXS5sZW5ndGgpLCAxKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1Rl
eHR1cmUzRDwke3R5cGV9PixmbG9hdCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0
LGZsb2F0KiB0aHJlYWQgRGVwdGgpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3
aWR0aCwgaGVpZ2h0LCBkZXB0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXgg
PSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5s
ZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBF
cnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIGRlcHRoIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAodGV4WzBdLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gcm93cyIp
OworICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0Lmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFsw
XVswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0gTG9hZChSV1RleHR1cmUzRDwke3R5cGV9PixpbnQzIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCks
IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpXSkpOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1
cmUzRDwke3R5cGV9Piwke3R5cGV9LHVpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRleHR1cmVTdG9yZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCB2YWx1ZS5sb2FkVmFsdWUoKSwg
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMildKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBm
dW5jdGlvbiBib3hWZWN0b3IoYSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBsZXQg
cmVzdWx0ID0gbmV3IEVQdHIobmV3IEVCdWZmZXIoYS5sZW5ndGgpLCAwKTsKKyAgICAgICAgICAg
ICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAg
ICAgIHJlc3VsdC5zZXQoaSwgYVtpXSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZm9yIChsZXQgbGVuZ3RoIG9mIFsyLCAzLCA0
XSkgeworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQogCiAgICAgYWRkKHRoaW5nKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbCBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKaW5kZXggNzhkMDA4ZjgzNWY5
ZTljMjM0ZWYyZGY2ZDZkZWVhM2Y3NDI2Y2U2NS4uZGRjNjVlMzY3ZGQ5OTlkZGIxN2QyOWNmNmM1
YzZlNjI1NDFkMmE3MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U1BJUlYuaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1s
CkBAIC0xMzMsNiArMTMzLDcgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplQ29w
eUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJTeW50
aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
IlRleHR1cmVPcGVyYXRpb25zLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVHJhcFN0
YXRlbWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5Lmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCmluZGV4
IDNkZDRmZWUxODYwMGQ1Y2QyYTg5NWFkNWE0Nzk3MjFkYTc3ODhjYzEuLjIxYThkMjkyYjhmYmI1
OGVhYzk4MDNkYjgwYTRlMzMwMWFlZDVjZGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKQEAgLTE4OTcsOSArMTg5NywxMCBAQCBsZXQg
c3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSB2b2lkIEludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlKHRocmVhZCBhdG9taWNfJHt0eXBlfSos
ICR7dHlwZX0sICR7dHlwZX0sIHRocmVhZCAke3R5cGV9Kik7YCk7CiAgICAgICAgIH0KICAgICAg
ICAgcHJpbnQoKTsKLSAgICAgICAgCisgICAgICAgICovCisKICAgICAgICAgZm9yICh2YXIgdHlw
ZSBvZiBbYHVjaGFyYCwgYHVzaG9ydGAsIGB1aW50YCwgYGNoYXJgLCBgc2hvcnRgLCBgaW50YCwg
YGhhbGZgLCBgZmxvYXRgXSkgewotICAgICAgICAgICAgZm9yICh2YXIgbGVuZ3RoIG9mIFtgYCwg
YDJgLCBgM2AsIGA0YF0pIHsKKyAgICAgICAgICAgIGZvciAodmFyIGxlbmd0aCBvZiBbYGAvKiwg
YDJgLCBgM2AsIGA0YCovXSkgewogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBm
bG9hdCBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZs
b2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sIGlu
dDIgbG9jYXRpb24pO2ApOwpAQCAtMjAxMCw3ICsyMDExLDggQEAgbGV0IHN0YW5kYXJkTGlicmFy
eSA9IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICBwcmludCgpOwogICAgICAgICAgICAg
fQogICAgICAgICB9Ci0gICAgICAgIAorCisgICAgICAgIC8qCiAgICAgICAgIGZvciAodmFyIHR5
cGUgb2YgW2BoYWxmYCwgYGZsb2F0YF0pIHsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2Nh
dGlvbik7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGludDIgb2Zmc2V0
KTtgKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRt
bCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbAppbmRleCA2MDdhNjk1
MzI1M2RhNzI3YjFkZTM3Njc4ZWMzODhiNGZhMjQwNDA1Li42OWM5MTA0OTJlZDExYWIyYjMwZTI3
ODNlYWY3ZWJiZmZkZmUxNjBhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9UZXN0Lmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5o
dG1sCkBAIC0xMjcsNiArMTI3LDcgQEAKIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplQ29weUNvbnN0
cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVEZWZh
dWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVGVybmFy
eUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlRleHR1cmVPcGVyYXRpb25z
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUcmFwU3RhdGVtZW50LmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVm
UmVzb2x2ZXIuanMiPjwvc2NyaXB0PgpAQCAtMTUyLDcgKzE1Myw3IEBACiA8c2NyaXB0PgogZnVu
Y3Rpb24gZG9UZXN0SW5Ccm93c2VyKCkKIHsKLSAgICB2YXIgdGVzdGVyID0gZG9UZXN0KC8uKi8p
OworICAgIHZhciB0ZXN0ZXIgPSBkb1Rlc3QoL3RleHR1cmUvKTsKICAgICB2YXIgbGFzdFRpbWU7
CiAgICAgZnVuY3Rpb24gbmV4dCgpCiAgICAgewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVGVzdC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rl
c3QuanMKaW5kZXggMDAwZDA1NDA3MTE1ODUwZmYzMGVjMjM2NmFlYjE4NWFjNTczZGNkMy4uNDk1
ZmVmZTlkMzk1YWQ2YzA4ZGQ5ZjBiZjg3NGViMjI4ZmIwMjgzMiAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UZXN0LmpzCkBAIC05NCw2ICs5NCwxNTcgQEAgZnVuY3Rpb24gbWFrZUVudW0o
cHJvZ3JhbSwgZW51bU5hbWUsIHZhbHVlKQogICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChlbnVt
VHlwZSwgZW51bU1lbWJlci52YWx1ZS51bmlmeU5vZGUudmFsdWVGb3JTZWxlY3RlZFR5cGUpOwog
fQogCitmdW5jdGlvbiBtYWtlU2FtcGxlcihwcm9ncmFtLCBkaWN0KQoreworICAgIC8vIGVudW0g
V2ViR1BVQWRkcmVzc01vZGUgeworICAgIC8vICAgICAiY2xhbXBUb0VkZ2UiLAorICAgIC8vICAg
ICAicmVwZWF0IiwKKyAgICAvLyAgICAgIm1pcnJvclJlcGVhdCIsCisgICAgLy8gICAgICJjbGFt
cFRvQm9yZGVyQ29sb3IiCisgICAgLy8gfQorICAgIC8vIAorICAgIC8vIGVudW0gV2ViR1BVRmls
dGVyTW9kZSB7CisgICAgLy8gICAgICJuZWFyZXN0IiwKKyAgICAvLyAgICAgImxpbmVhciIKKyAg
ICAvLyB9CisgICAgLy8gCisgICAgLy8gZW51bSBXZWJHUFVDb21wYXJlRnVuY3Rpb24geworICAg
IC8vICAgICAibmV2ZXIiLAorICAgIC8vICAgICAibGVzcyIsCisgICAgLy8gICAgICJlcXVhbCIs
CisgICAgLy8gICAgICJsZXNzRXF1YWwiLAorICAgIC8vICAgICAiZ3JlYXRlciIsCisgICAgLy8g
ICAgICJub3RFcXVhbCIsCisgICAgLy8gICAgICJncmVhdGVyRXF1YWwiLAorICAgIC8vICAgICAi
YWx3YXlzIgorICAgIC8vIH0KKyAgICAvLyAKKyAgICAvLyBlbnVtIFdlYkdQVUJvcmRlckNvbG9y
IHsKKyAgICAvLyAgICAgInRyYW5zcGFyZW50QmxhY2siLAorICAgIC8vICAgICAib3BhcXVlQmxh
Y2siLAorICAgIC8vICAgICAib3BhcXVlV2hpdGUiCisgICAgLy8gfQorICAgIC8vIAorICAgIC8v
IGRpY3Rpb25hcnkgV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IgeworICAgIC8vICAgICBXZWJHUFVk
ZHJlc3NNb2RlIHJBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAgLy8gICAgIFdlYkdQ
VWRkcmVzc01vZGUgc0FkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICAvLyAgICAgV2Vi
R1BVZGRyZXNzTW9kZSB0QWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgIC8vICAgICBX
ZWJHUFVGaWx0ZXJNb2RlRW51bSBtYWdGaWx0ZXIgPSAibmVhcmVzdCI7CisgICAgLy8gICAgIFdl
YkdQVUZpbHRlck1vZGVFbnVtIG1pbkZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICAvLyAgICAgV2Vi
R1BVRmlsdGVyTW9kZUVudW0gbWlwbWFwRmlsdGVyID0gIm5lYXJlc3QiOworICAgIC8vICAgICBm
bG9hdCBsb2RNaW5DbGFtcCA9IDA7CisgICAgLy8gICAgIGZsb2F0IGxvZE1heENsYW1wID0gTnVt
YmVyLk1BWF9WQUxVRTsKKyAgICAvLyAgICAgdW5zaWduZWQgbG9uZyBtYXhBbmlzb3Ryb3B5ID0g
MTsKKyAgICAvLyAgICAgV2ViR1BVQ29tcGFyZUZ1bmN0aW9uIGNvbXBhcmVGdW5jdGlvbiA9ICJu
ZXZlciI7CisgICAgLy8gICAgIFdlYkdQVUJvcmRlckNvbG9yIGJvcmRlckNvbG9yID0gInRyYW5z
cGFyZW50QmxhY2siOworICAgIC8vIH07CisKKyAgICBsZXQgc2FtcGxlckRhdGEgPSB7fTsKKyAg
ICBzYW1wbGVyRGF0YS5yQWRkcmVzc01vZGUgPSBkaWN0LnJBZGRyZXNzTW9kZSwKKyAgICBzYW1w
bGVyRGF0YS5zQWRkcmVzc01vZGUgPSBkaWN0LnNBZGRyZXNzTW9kZSwKKyAgICBzYW1wbGVyRGF0
YS50QWRkcmVzc01vZGUgPSBkaWN0LnRBZGRyZXNzTW9kZSwKKyAgICBzYW1wbGVyRGF0YS5tYWdG
aWx0ZXIgPSBkaWN0Lm1hZ0ZpbHRlcjsKKyAgICBzYW1wbGVyRGF0YS5taW5GaWx0ZXIgPSBkaWN0
Lm1pbkZpbHRlcgorICAgIHNhbXBsZXJEYXRhLm1pcG1hcEZpbHRlciA9IGRpY3QubWlwbWFwRmls
dGVyOworICAgIHNhbXBsZXJEYXRhLmxvZE1pbkNsYW1wID0gZGljdC5sb2RNaW5DbGFtcCwKKyAg
ICBzYW1wbGVyRGF0YS5sb2RNYXhDbGFtcCA9IGRpY3QubG9kTWF4Q2xhbXAsCisgICAgc2FtcGxl
ckRhdGEubWF4QW5pc290cm9weSA9IGRpY3QubWF4QW5pc290cm9weSwKKyAgICBzYW1wbGVyRGF0
YS5jb21wYXJlRnVuY3Rpb24gPSBkaWN0LmNvbXBhcmVGdW5jdGlvbjsKKyAgICBzYW1wbGVyRGF0
YS5ib3JkZXJDb2xvciA9IGRpY3QuYm9yZGVyQ29sb3I7CisKKyAgICBpZiAoc2FtcGxlckRhdGEu
ckFkZHJlc3NNb2RlID09IHVuZGVmaW5lZCkKKyAgICAgICAgc2FtcGxlckRhdGEuckFkZHJlc3NN
b2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICBpZiAoc2FtcGxlckRhdGEuc0FkZHJlc3NNb2RlID09
IHVuZGVmaW5lZCkKKyAgICAgICAgc2FtcGxlckRhdGEuc0FkZHJlc3NNb2RlID0gImNsYW1wVG9F
ZGdlIjsKKyAgICBpZiAoc2FtcGxlckRhdGEudEFkZHJlc3NNb2RlID09IHVuZGVmaW5lZCkKKyAg
ICAgICAgc2FtcGxlckRhdGEudEFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICBpZiAo
c2FtcGxlckRhdGEubWluRmlsdGVyID09IHVuZGVmaW5lZCkKKyAgICAgICAgc2FtcGxlckRhdGEu
bWluRmlsdGVyID0gIm5lYXJlc3QiOworICAgIGlmIChzYW1wbGVyRGF0YS5tYWdGaWx0ZXIgPT0g
dW5kZWZpbmVkKQorICAgICAgICBzYW1wbGVyRGF0YS5tYWdGaWx0ZXIgPSAibmVhcmVzdCI7Cisg
ICAgaWYgKHNhbXBsZXJEYXRhLm1pcEZpbHRlciA9PSB1bmRlZmluZWQpCisgICAgICAgIHNhbXBs
ZXJEYXRhLm1pcEZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICBpZiAoc2FtcGxlckRhdGEubG9kTWlu
Q2xhbXAgPT0gdW5kZWZpbmVkKQorICAgICAgICBzYW1wbGVyRGF0YS5sb2RNaW5DbGFtcCA9IDA7
CisgICAgaWYgKHNhbXBsZXJEYXRhLmxvZE1heENsYW1wID09IHVuZGVmaW5lZCkKKyAgICAgICAg
c2FtcGxlckRhdGEubG9kTWF4Q2xhbXAgPSBOdW1iZXIuTUFYX1ZBTFVFOworICAgIGlmIChzYW1w
bGVyRGF0YS5tYXhBbmlzb3Ryb3B5ID09IHVuZGVmaW5lZCkKKyAgICAgICAgc2FtcGxlckRhdGEu
bWF4QW5pc290cm9weSA9IDE7CisgICAgaWYgKHNhbXBsZXJEYXRhLmNvbXBhcmVGdW5jdGlvbiA9
PSB1bmRlZmluZWQpCisgICAgICAgIHNhbXBsZXJEYXRhLmNvbXBhcmVGdW5jdGlvbiA9ICJuZXZl
ciI7CisgICAgaWYgKHNhbXBsZXJEYXRhLmJvcmRlckNvbG9yID09IHVuZGVmaW5lZCkKKyAgICAg
ICAgc2FtcGxlckRhdGEuYm9yZGVyQ29sb3IgPSAidHJhbnNwYXJlbnRCbGFjayI7CisgICAgcmV0
dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljcy5zYW1wbGVyLCBzYW1wbGVyRGF0
YSk7Cit9CisKKy8vIEVsZW1lbnRzIG1heSBlaXRoZXIgYmUgYSBudW1iZXIgb3IgYSB2ZWN0b3Ig
b2YgMi00IG51bWJlcnMuCisvLyAxRCBUZXh0dXJlOiBBbiBhcnJheSBvZiBtaXBtYXBzLiBUaGUg
Zmlyc3QgbWlwbWFwIGlzIHRoZSBmdWxsIHNpemUsIGFuZCBpcyBhIHBvd2VyLW9mLXR3by4gRWFj
aCBtaXBtYXAgaXMgaGFsZi1zaXplIG9mIHRoZSBwcmV2aW91cyBzaXplLgorLy8gMUQgVGV4dHVy
ZSBBcnJheTogQW4gYXJyYXkgb2YgMUQgdGV4dHVyZXMKKy8vIDJEIFRleHR1cmU6IEFuIGFycmF5
IG9mIG1pcG1hcHMuIFRoZSBmaXJzdCBtaXBtYXAgaXMgYSByZWN0YW5ndWxhciBhcnJheSBvZiBy
b3dzLCBhbmQgZWFjaCByb3cgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuIEJvdGggdGhlIHJvdyBh
bmQgY29sdW1uIGNvdW50cyBtdXN0IGJlIHBvd2VycyBvZiB0d28uIEVhY2ggbWlwbWFwIGlzIGhh
bGYtd2lkdGggYW5kIGhhbGYtaGVpZ2h0IG9mIHRoZSBwcmV2aW91cyBzaXplLgorLy8gMkQgVGV4
dHVyZSBBcnJheTogQW4gYXJyYXkgb2YgMkQgdGV4dHVyZXMKKy8vIDNEIFRleHR1cmU6IEFuIGFy
cmF5IG9mIG1pcG1hcHMuIFRoZSBmaXJzdCBtaXBtYXAgaXMgYSByZWN0YW5ndWxhciBhcnJheSBv
ZiBjb2x1bW5zLCBlYWNoIGNvbHVtbiBpcyBhbiBhcnJheSBvZiByb3dzLCBhbmQgZWFjaCByb3cg
aXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuIEJvdGggZGVwdGgsIHJvdywgYW5kIGNvbHVtbiBjb3Vu
dHMgbXVzdCBiZSBwb3dlcnMgb2YgdHdvLiBFYWNoIG1pcG1hcCBpcyBoYWxmLWRlcHRoLCBoYWxm
LWhlaWdodCwgYW5kIGhhbGYtd2lkdGggb2YgdGhlIHByZXZpb3VzIHNpemUuCisvLyBUZXh0dXJl
IEN1YmU6IEFuIGFycmF5IG9mIDYgMkQgdGV4dHVyZXMuCisvLyBSVyAxRCBUZXh0dXJlOiBBbiBh
cnJheSBvZiBlbGVtZW50cy4gVGhlIHdpZHRoIG11c3QgYmUgYSBwb3dlci1vZi10d28uCisvLyBS
VyAxRCBUZXh0dXJlIEFycmF5OiBBbiBhcnJheSBvZiBSVyAxRCB0ZXh0dXJlcworLy8gUlcgMkQg
VGV4dHVyZTogQSByZWN0YW5ndWxhciBhcnJheSBvZiByb3dzLCBhbmQgZWFjaCByb3cgaXMgYW4g
YXJyYXkgb2YgZWxlbWVudHMuIEJvdGggdGhlIHJvdyBhbmQgY29sdW1uIGNvdW50cyBtdXN0IGJl
IHBvd2VycyBvZiB0d28uCisvLyBSVyAyRCBUZXh0dXJlIEFycmF5OiBBbiBhcnJheSBvZiBSVyAy
RCB0ZXh0dXJlcworLy8gUlcgM0QgVGV4dHVyZTogQSByZWN0YW5ndWxhciBhcnJheSBvZiBjb2x1
bW5zLCBlYWNoIGNvbHVtbiBpcyBhbiBhcnJheSBvZiByb3dzLCBhbmQgZWFjaCByb3cgaXMgYW4g
YXJyYXkgb2YgZWxlbWVudHMuIEJvdGggZGVwdGgsIHJvdywgYW5kIGNvbHVtbiBjb3VudHMgbXVz
dCBiZSBwb3dlcnMgb2YgdHdvLgorCitmdW5jdGlvbiBtYWtlMURUZXh0dXJlKHByb2dyYW0sIG1p
cG1hcHMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFt
LmludHJpbnNpY3NbYFRleHR1cmUxRDwke2VsZW1lbnRUeXBlfT5gXSwgbWlwbWFwcyk7Cit9CisK
K2Z1bmN0aW9uIG1ha2UxRFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUp
Cit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVy
ZTFEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIGFycmF5KTsKK30KKworZnVuY3Rpb24gbWFrZTJE
VGV4dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlw
ZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlMkQ8JHtlbGVtZW50VHlwZX0+
YF0sIG1pcG1hcHMpOworfQorCitmdW5jdGlvbiBtYWtlMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwg
YXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFt
LmludHJpbnNpY3NbYFRleHR1cmUyREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBhcnJheSk7Cit9
CisKK2Z1bmN0aW9uIG1ha2UzRFRleHR1cmUocHJvZ3JhbSwgbWlwbWFwcywgZWxlbWVudFR5cGUp
Cit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVy
ZTNEPCR7ZWxlbWVudFR5cGV9PmBdLCBtaXBtYXBzKTsKK30KKworZnVuY3Rpb24gbWFrZVRleHR1
cmVDdWJlKHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRW
YWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlQ3ViZTwke2VsZW1lbnRUeXBlfT5g
XSwgYXJyYXkpOworfQorCitmdW5jdGlvbiBtYWtlUlcxRFRleHR1cmUocHJvZ3JhbSwgZWxlbWVu
dHMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmlu
dHJpbnNpY3NbYFJXVGV4dHVyZTFEPCR7ZWxlbWVudFR5cGV9PmBdLCBlbGVtZW50cyk7Cit9CisK
K2Z1bmN0aW9uIG1ha2VSVzFEVGV4dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlw
ZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1Rl
eHR1cmUxREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBhcnJheSk7Cit9CisKK2Z1bmN0aW9uIG1h
a2VSVzJEVGV4dHVyZShwcm9ncmFtLCByb3dzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4g
VHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUyRDwke2VsZW1lbnRU
eXBlfT5gXSwgcm93cyk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzJEVGV4dHVyZUFycmF5KHByb2dy
YW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJv
Z3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUyREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBhcnJh
eSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzNEVGV4dHVyZShwcm9ncmFtLCBkZXB0aCwgZWxlbWVu
dFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tg
UldUZXh0dXJlM0Q8JHtlbGVtZW50VHlwZX0+YF0sIGRlcHRoKTsKK30KKwogZnVuY3Rpb24gY2hl
Y2tOdW1iZXIocHJvZ3JhbSwgcmVzdWx0LCBleHBlY3RlZCkKIHsKICAgICBpZiAoIXJlc3VsdC50
eXBlLnVuaWZ5Tm9kZS5pc051bWJlcikKQEAgLTU1ODIsNyArNTczMywzNzAgQEAgdGVzdHMuRElT
QUJMRURfYXJyYXlJbmRleCA9IGZ1bmN0aW9uKCkgewogICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VVaW50KHByb2dyYW0sIDIpIF0pLCAzKTsKICAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0s
IDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSBdKSwgNCk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSkgXSksIDUpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDIpIF0pLCA2KTsgICAgCisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMikgXSksIDYpOworfQorCit0ZXN0cy50ZXh0
dXJlRGltZW5zaW9ucyA9IGZ1bmN0aW9uKCkgeworICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAK
KyAgICAgICAgdWludCBmb28xKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAg
ICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAg
ICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJm51bWJlck9mTGV2ZWxzKTsK
KyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIo
VGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAg
ICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnMo
dGV4dHVyZSwgMCwgJndpZHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJu
IG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMyhUZXh0dXJlMURB
cnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAg
ICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAg
ICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZlbGVtZW50cywgJm51
bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAg
ICAgICB1aW50IGZvbzQoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAg
ICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAg
dWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwg
MCwgJndpZHRoLCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1
cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb281KFRleHR1cmUxREFycmF5
PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAg
dWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAg
ICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmVsZW1lbnRzLCAmbnVtYmVy
T2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9
CisgICAgICAgIHVpbnQgZm9vNihUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAg
ICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVp
bnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAs
ICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3
aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzcoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0
dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7
CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5z
aW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAg
ICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vOChUZXh0
dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAg
ICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAg
ICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJl
ck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAg
fQorICAgICAgICB1aW50IGZvbzkoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAg
ICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAg
ICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAg
ICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVt
ZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAg
ICAgfQorICAgICAgICB1aW50IGZvbzEwKFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7
CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAg
ICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsK
KyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAm
ZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0Owor
ICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTEoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1
cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsK
KyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2
ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWln
aHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVt
ZW50czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzEyKFRleHR1cmUyREFycmF5PGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1i
ZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRo
LCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1
cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xMyhUZXh0dXJl
M0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAg
ICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICB1aW50
IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAm
d2lkdGgsICZoZWlnaHQsICZkZXB0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJl
dHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE0KFRleHR1cmUzRDxmbG9h
dD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQg
aGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVy
T2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwg
JmhlaWdodCwgJmRlcHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGhl
aWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE1KFRleHR1cmUzRDxmbG9hdD4gdGV4
dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0
OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZl
bHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdo
dCwgJmRlcHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGRlcHRoOwor
ICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTYoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7
CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAg
ICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAg
ICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZGVw
dGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7
CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xNyhUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVy
ZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0Owor
ICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAg
ICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTgoVGV4dHVy
ZUN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAg
ICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAg
ICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJl
ck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAg
ICAgdWludCBmb28xOShUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAg
dWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBu
dW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndp
ZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJl
ck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjAoUldUZXh0dXJlMUQ8Zmxv
YXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICBHZXRE
aW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7Cisg
ICAgICAgIH0KKyAgICAgICAgdWludCBmb28yMShSV1RleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0
dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBlbGVtZW50
czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmZWxlbWVudHMp
OworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9v
MjIoUldUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3
aWR0aDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNp
b25zKHRleHR1cmUsICZ3aWR0aCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVt
ZW50czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIzKFJXVGV4dHVyZTJEPGZsb2F0PiB0
ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWln
aHQ7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCk7
CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28y
NChSV1RleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsK
KyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0
dXJlLCAmd2lkdGgsICZoZWlnaHQpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAg
ICAgfQorICAgICAgICB1aW50IGZvbzI1KFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUp
IHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAg
ICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1
cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0
aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI2KFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+
IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhl
aWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNp
b25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJl
dHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yNyhSV1RleHR1cmUyREFy
cmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAg
ICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAg
R2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cyk7CisgICAg
ICAgICAgICByZXR1cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yOChS
V1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAg
ICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAg
ICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgpOworICAg
ICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjkoUldU
ZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAg
ICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAg
ICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoKTsKKyAgICAg
ICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28zMChSV1Rl
eHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAg
ICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAg
IEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgpOworICAgICAg
ICAgICAgcmV0dXJuIGRlcHRoOworICAgICAgICB9CisgICAgYCk7CisgICAgbGV0IHRleHR1cmUx
RCA9IG1ha2UxRFRleHR1cmUocHJvZ3JhbSwgW1sxLCA3LCAxNCwgNzldLCBbMTMsIDE2XSwgWzE1
XV0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlMURBcnJheSA9IG1ha2UxRFRleHR1cmVBcnJh
eShwcm9ncmFtLCBbW1sxLCA3LCAxNCwgNzldLCBbMTMsIDE2XSwgWzE1XV0sIFtbMTYsIDE3LCAx
OCwgMTldLCBbMjAsIDIxXSwgWzIyXV1dLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZTJEID0g
bWFrZTJEVGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywg
OF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsx
NywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgs
IDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzZdLAorICAgICAgICBb
MzcsIDM4LCAzOSwgNDBdXSwKKyAgICAgICAgW1s0MSwgNDJdXQorICAgIF0sICJmbG9hdCIpOwor
ICAgIGxldCB0ZXh0dXJlMkRBcnJheSA9IG1ha2UyRFRleHR1cmVBcnJheShwcm9ncmFtLCBbWwor
ICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAx
MiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMs
IDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAg
ICBbWzMzLCAzNCwgMzUsIDM2XSwKKyAgICAgICAgWzM3LCAzOCwgMzksIDQwXV0sCisgICAgICAg
IFtbNDEsIDQyXV0KKyAgICBdLCBbCisgICAgICAgIFtbNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwg
NDksIDUwXSwKKyAgICAgICAgWzUxLCA1MiwgNTMsIDU0LCA1NSwgNTYsIDU3LCA1OF0sCisgICAg
ICAgIFs1OSwgNjAsIDYxLCA2MiwgNjMsIDY0LCA2NSwgNjZdLAorICAgICAgICBbNjcsIDY4LCA2
OSwgNzAsIDcxLCA3MiwgNzMsIDc0XV0sCisgICAgICAgIFtbNzUsIDc2LCA3NywgNzhdLAorICAg
ICAgICBbNzksIDgwLCA4MSwgODJdXSwKKyAgICAgICAgW1s4MywgODRdXQorICAgIF1dLCAiZmxv
YXQiKTsKKyAgICBsZXQgdGV4dHVyZTNEID0gbWFrZTNEVGV4dHVyZShwcm9ncmFtLCBbCisgICAg
ICAgIFtbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwg
MTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0
XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBb
WzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0
LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAg
ICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dXSwKKyAgICAgICAgW1tbMzMs
IDM0LCAzNSwgMzZdLAorICAgICAgICBbMzcsIDM4LCAzOSwgNDBdXV0KKyAgICBdLCAiZmxvYXQi
KTsKKyAgICBsZXQgdGV4dHVyZUN1YmUgPSBtYWtlVGV4dHVyZUN1YmUocHJvZ3JhbSwgW1sKKyAg
ICAgICAgW1sxLCAyXSwKKyAgICAgICAgWzMsIDRdLAorICAgICAgICBbNSwgNl0sCisgICAgICAg
IFs3LCA4XV0sCisgICAgICAgIFtbOV0sCisgICAgICAgIFsxMF1dLAorICAgIF0sIFsKKyAgICAg
ICAgW1sxMSwgMTJdLAorICAgICAgICBbMTMsIDE0XSwKKyAgICAgICAgWzE1LCAxNl0sCisgICAg
ICAgIFsxNywgMThdXSwKKyAgICAgICAgW1sxOV0sCisgICAgICAgIFsyMF1dLAorICAgIF0sIFsK
KyAgICAgICAgW1syMSwgMjJdLAorICAgICAgICBbMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNl0s
CisgICAgICAgIFsyNywgMjhdXSwKKyAgICAgICAgW1syOV0sCisgICAgICAgIFszMF1dLAorICAg
IF0sIFsKKyAgICAgICAgW1szMSwgMzJdLAorICAgICAgICBbMzMsIDM0XSwKKyAgICAgICAgWzM1
LCAzNl0sCisgICAgICAgIFszNywgMzhdXSwKKyAgICAgICAgW1szOV0sCisgICAgICAgIFs0MF1d
LAorICAgIF0sIFsKKyAgICAgICAgW1s0MSwgNDJdLAorICAgICAgICBbNDMsIDQ0XSwKKyAgICAg
ICAgWzQ1LCA0Nl0sCisgICAgICAgIFs0NywgNDhdXSwKKyAgICAgICAgW1s0OV0sCisgICAgICAg
IFs1MF1dLAorICAgIF0sIFsKKyAgICAgICAgW1s1MSwgNTJdLAorICAgICAgICBbNTMsIDU0XSwK
KyAgICAgICAgWzU1LCA1Nl0sCisgICAgICAgIFs1NywgNThdXSwKKyAgICAgICAgW1s1OV0sCisg
ICAgICAgIFs2MF1dLAorICAgIF1dLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlMUQgPSBt
YWtlUlcxRFRleHR1cmUocHJvZ3JhbSwgWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLCAiZmxvYXQi
KTsKKyAgICBsZXQgcndUZXh0dXJlMURBcnJheSA9IG1ha2VSVzFEVGV4dHVyZUFycmF5KHByb2dy
YW0sIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1
LCAxNl0sIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdXSwgImZsb2F0Iik7CisgICAg
bGV0IHJ3VGV4dHVyZTJEID0gbWFrZVJXMkRUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAgICAgWzEs
IDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAx
NSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAg
ICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLCAiZmxvYXQiKTsKKyAgICBsZXQg
cndUZXh0dXJlMkRBcnJheSA9IG1ha2VSVzJEVGV4dHVyZUFycmF5KHByb2dyYW0sIFsKKyAgICAg
ICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEz
LCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0s
CisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1sz
MywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDBdLAorICAgICAgICBbNDEsIDQyLCA0MywgNDQs
IDQ1LCA0NiwgNDcsIDQ4XSwKKyAgICAgICAgWzQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1
Nl0sCisgICAgICAgIFs1NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2MywgNjRdXV0sICJmbG9hdCIp
OworICAgIGxldCByd1RleHR1cmUzRCA9IG1ha2VSVzNEVGV4dHVyZShwcm9ncmFtLCBbCisgICAg
ICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAx
MywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRd
LAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtb
MzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwXSwKKyAgICAgICAgWzQxLCA0MiwgNDMsIDQ0
LCA0NSwgNDYsIDQ3LCA0OF0sCisgICAgICAgIFs0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwg
NTZdLAorICAgICAgICBbNTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjMsIDY0XV1dLCAiZmxvYXQi
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3RleHR1cmUxRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yIiwgW3RleHR1cmUxRF0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5XSksIDQpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVy
ZTFEQXJyYXldKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNSIsIFt0ZXh0dXJlMURBcnJheV0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRF0pLCA4KTsKKyAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUy
RF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b284IiwgW3RleHR1cmUyRF0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUyREFycmF5XSksIDgpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUyREFycmF5
XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzExIiwgW3RleHR1cmUyREFycmF5XSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1cmUyREFycmF5XSksIDMpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3RleHR1cmUz
RF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNCIsIFt0ZXh0dXJlM0RdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTNEXSksIDIpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUzRF0pLCAyKTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0
ZXh0dXJlQ3ViZV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlQ3ViZV0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlQ3ViZV0pLCAyKTsKKyAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1Rl
eHR1cmUxRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yMSIsIFtyd1RleHR1cmUxREFycmF5XSksIDgpOworICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3J3VGV4dHVyZTFEQXJyYXldKSwg
Myk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMi
LCBbcndUZXh0dXJlMkRdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjQiLCBbcndUZXh0dXJlMkRdKSwgNCk7CisgICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjUiLCBbcndUZXh0dXJlMkRBcnJheV0p
LCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
NiIsIFtyd1RleHR1cmUyREFycmF5XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI3IiwgW3J3VGV4dHVyZTJEQXJyYXldKSwgMik7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjgiLCBbcndUZXh0
dXJlM0RdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjkiLCBbcndUZXh0dXJlM0RdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzAiLCBbcndUZXh0dXJlM0RdKSwgMik7Cit9CisKK3Rl
c3RzLnRleHR1cmVMb2FkID0gZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAo
YAorICAgICAgICBmbG9hdCBmb28oVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgbWlwbWFw
LCBpbnQgbG9jYXRpb24pIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIo
bWlwbWFwLCBsb2NhdGlvbikpOworICAgICAgICB9CisgICAgYCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlMURUZXh0dXJlKHByb2dy
YW0sIFtbMSwgNywgMTQsIDc5XSwgWzEzLCAxNl0sIFsxNV1dLCAiZmxvYXQiKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2UxRFRleHR1cmUocHJvZ3Jh
bSwgW1sxLCA3LCAxNCwgNzldLCBbMTMsIDE2XSwgWzE1XV0sICJmbG9hdCIpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKIH0KIAogb2tUb1Rlc3QgPSB0
cnVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9w
ZXJhdGlvbnMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlT3BlcmF0
aW9ucy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lNzA4NzNlMWE4MDZmZDY4ZmY3YjliMzFmNTM5ODI1ZjE5MjJj
YTFhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4
dHVyZU9wZXJhdGlvbnMuanMKQEAgLTAsMCArMSw0ODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworInVzZSBzdHJpY3QiOworCitmdW5jdGlvbiB0ZXh0dXJl
TG9hZCh0ZXh0dXJlLCBwYXRoKQoreworICAgIGZvciAodmFyIGluZGV4IG9mIHBhdGgpIHsKKyAg
ICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSB0ZXh0dXJlLmxlbmd0aCkKKyAgICAgICAg
ICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBi
b3VuZHMiKTsKKyAgICAgICAgdGV4dHVyZSA9IHRleHR1cmVbaW5kZXhdOworICAgIH0KKyAgICBy
ZXR1cm4gdGV4dHVyZTsKK30KKworZnVuY3Rpb24gdGV4dHVyZVN0b3JlKHRleHR1cmUsIHZhbHVl
LCBwYXRoKQoreworICAgIGRvIHsKKyAgICAgICAgaWYgKHBhdGgubGVuZ3RoID09IDApCisgICAg
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlplcm8tbGVuZ3RoIHN0b3JlIHBhdGgiKTsKKyAgICAg
ICAgaWYgKHBhdGgubGVuZ3RoID09IDEpIHsKKyAgICAgICAgICAgIHRleHR1cmVbcGF0aFswXV0g
PSB2YWx1ZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIHRleHR1cmUgPSB0ZXh0dXJlW3BhdGhbMF1dOworICAgICAgICAgICAgcGF0aC5zaGlmdCgp
OworICAgICAgICB9CisgICAgfSB3aGlsZSAodHJ1ZSk7Cit9CisKK2Z1bmN0aW9uIGRlcHRoQ29t
cGFyZU9wZXJhdGlvbihkcmVmLCBkLCBjb21wYXJlRnVuY3Rpb24pCit7CisgICAgLy8gVnVsa2Fu
IDEuMS44MyBzZWN0aW9uIDE1LjMuNAorICAgIHN3aXRjaCAoY29tcGFyZUZ1bmN0aW9uKSB7Cisg
ICAgICAgIGNhc2UgIm5ldmVyIjoKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBjYXNl
ICJsZXNzIjoKKyAgICAgICAgICAgIHJldHVybiBkcmVmIDwgZCA/IDEgOiAwOworICAgICAgICBj
YXNlICJlcXVhbCI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiA9PSBkID8gMSA6IDA7CisgICAg
ICAgIGNhc2UgImxlc3NFcXVhbCI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiA8PSBkID8gMSA6
IDA7CisgICAgICAgIGNhc2UgImdyZWF0ZXIiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYgPiBk
ID8gMSA6IDA7CisgICAgICAgIGNhc2UgIm5vdEVxdWFsIjoKKyAgICAgICAgICAgIHJldHVybiBk
cmVmICE9IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAiZ3JlYXRlckVxdWFsIjoKKyAgICAgICAg
ICAgIHJldHVybiBkcmVmID49IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAiYWx3YXlzIjoKKyAg
ICAgICAgICAgIHJldHVybiAxOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJVbmtub3duIGRlcHRoIGNvbXBhcmlzb24gZnVuY3Rpb24iKTsKKyAgICB9Cit9
CisKK2Z1bmN0aW9uIGNvbnZlcnNpb25Ub1JHQkEodmFsdWUpCit7CisgICAgLy8gVnVsa2FuIDEu
MS44MyBzZWN0aW9uIDE1LjMuNQorICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7Cisg
ICAgICAgIHZhciByZXN1bHQgPSBbXTsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1
ZS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlW2ldKTsKKyAgICAg
ICAgd2hpbGUgKHJlc3VsdC5sZW5ndGggIT0gNCkKKyAgICAgICAgICAgIHJlc3VsdC5wdXNoKHJl
c3VsdC5sZW5ndGggPT0gMyA/IDEgOiAwKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9
IGVsc2UKKyAgICAgICAgcmV0dXJuIFt2YWx1ZSwgMCwgMCwgMV07Cit9CisKKy8vRm9yIGV4cGxp
Y2l0IExPRCBpbWFnZSBpbnN0cnVjdGlvbnMsIGlmIHRoZSBvcHRpb25hbCBTUElSLVYgb3BlcmFu
ZCBHcmFkIGlzIHByb3ZpZGVkLCB0aGVuIHRoZSBvcGVyYW5kIHZhbHVlcyBhcmUgdXNlZCBmb3Ig
dGhlIGRlcml2YXRpdmVzLiBUaGUgbnVtYmVyIG9mIGNvbXBvbmVudHMgcHJlc2VudCBpbiBlYWNo
IGRlcml2YXRpdmUgZm9yIGEgZ2l2ZW4gaW1hZ2UgZGltZW5zaW9uYWxpdHkgbWF0Y2hlcyB0aGUg
bnVtYmVyIG9mIHBhcnRpYWwgZGVyaXZhdGl2ZXMgY29tcHV0ZWQgYWJvdmUuCisvL0lmIHRoZSBv
cHRpb25hbCBTUElSLVYgb3BlcmFuZCBMb2QgaXMgcHJvdmlkZWQsIHRoZW4gZGVyaXZhdGl2ZXMg
YXJlIHNldCB0byB6ZXJvLCB0aGUgY3ViZSBtYXAgZGVyaXZhdGl2ZSB0cmFuc2Zvcm1hdGlvbiBp
cyBza2lwcGVkLCBhbmQgdGhlIHNjYWxlIGZhY3RvciBvcGVyYXRpb24gaXMgc2tpcHBlZC4gSW5z
dGVhZCwgdGhlIGZsb2F0aW5nIHBvaW50IHNjYWxhciBjb29yZGluYXRlIGlzIGRpcmVjdGx5IGFz
c2lnbmVkIHRvIM67YmFzZSBhcyBkZXNjcmliZWQgaW4gTGV2ZWwtb2YtRGV0YWlsIE9wZXJhdGlv
bi4KK2Z1bmN0aW9uIGltcGxpY2l0RGVyaXZhdGl2ZSgpCit7CisgICAgLy8gVnVsa2FuIDEuMS44
MyBzZWN0aW9uIDE1LjUKKyAgICByZXR1cm4gMDsKK30KKworZnVuY3Rpb24gcHJvamVjdGlvbk9w
ZXJhdGlvbihzLCB0LCByLCBkcmVmLCBxKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlv
biAxNS42LjEKKyAgICByZXR1cm4gW3MgLyBxLCB0IC8gcSwgciAvIHEsIGRyZWYgLyBxXTsKK30K
KworZnVuY3Rpb24gY3ViZU1hcEZhY2VTZWxlY3Rpb24ocywgdCwgciwgcGFydGlhbFJ4V2l0aFJl
c3BlY3RUb1gsIHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUnlXaXRoUmVzcGVjdFRv
WCwgcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSeldpdGhSZXNwZWN0VG9YLCBwYXJ0
aWFsUnpXaXRoUmVzcGVjdFRvWSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUu
Ni40CisgICAgbGV0IHJ4ID0gczsKKyAgICBsZXQgcnkgPSB0OworICAgIGxldCByeiA9IHI7Cisg
ICAgbGV0IHdpbm5lciA9IDA7CisgICAgaWYgKE1hdGguYWJzKHJ6KSA+PSBNYXRoLmFicyhyeSkg
JiYgTWF0aC5hYnMocnopID49IE1hdGguYWJzKHJ4KSkKKyAgICAgICAgd2lubmVyID0gMjsKKyAg
ICBlbHNlIGlmIChNYXRoLmFicyhyeSkgPj0gTWF0aC5hYnMocngpICYmIE1hdGguYWJzKHJ5KSA+
PSBNYXRoLmFicyhyeikpCisgICAgICAgIHdpbm5lciA9IDE7CisKKyAgICBsZXQgbGF5ZXJOdW1i
ZXI7CisgICAgbGV0IHNjOworICAgIGxldCB0YzsKKyAgICBsZXQgcmM7CisgICAgbGV0IHBhcnRp
YWxTY1dpdGhSZXNwZWN0VG9YOworICAgIGxldCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWTsKKyAg
ICBsZXQgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1g7CisgICAgbGV0IHBhcnRpYWxUY1dpdGhSZXNw
ZWN0VG9ZOworICAgIGxldCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWDsKKyAgICBsZXQgcGFydGlh
bFJjV2l0aFJlc3BlY3RUb1k7CisgICAgaWYgKHdpbm5lciA9PSAwICYmIHJ4ID49IDApIHsKKyAg
ICAgICAgbGF5ZXJOdW1iZXIgPSAwOworICAgICAgICBzYyA9IC1yejsKKyAgICAgICAgdGMgPSAt
cnk7CisgICAgICAgIHJjID0gcng7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0g
LXBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRv
WSA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3Bl
Y3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhS
ZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNX
aXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFs
UmNXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxzZSBp
ZiAod2lubmVyID09IDApIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSAxOworICAgICAgICBzYyA9
IHJ6OworICAgICAgICB0YyA9IC1yeTsKKyAgICAgICAgcmMgPSByeDsKKyAgICAgICAgcGFydGlh
bFNjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFy
dGlhbFNjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAg
cGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAg
ICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOwor
ICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnhXaXRoUmVzcGVjdFRv
WDsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ4V2l0aFJlc3Bl
Y3RUb1k7CisgICAgfSBlbHNlIGlmICh3aW5uZXIgPT0gMSAmJiByeSA+PSAwKSB7CisgICAgICAg
IGxheWVyTnVtYmVyID0gMjsKKyAgICAgICAgc2MgPSByeDsKKyAgICAgICAgdGMgPSAtcno7Cisg
ICAgICAgIHJjID0gcnk7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gcGFydGlh
bFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0gcGFy
dGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0g
cGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9Z
ID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0
VG9YID0gcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNw
ZWN0VG9ZID0gcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgfSBlbHNlIGlmICh3aW5uZXIg
PT0gMSkgeworICAgICAgICBsYXllck51bWJlciA9IDM7CisgICAgICAgIHNjID0gcng7CisgICAg
ICAgIHRjID0gLXJ6OworICAgICAgICByYyA9IHJ5OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVz
cGVjdFRvWCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRo
UmVzcGVjdFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNX
aXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlh
bFRjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBh
cnRpYWxSY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAg
ICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAg
ICB9IGVsc2UgaWYgKHdpbm5lciA9PSAyICYmIHJ6ID49IDApIHsKKyAgICAgICAgbGF5ZXJOdW1i
ZXIgPSA0OworICAgICAgICBzYyA9IHJ4OworICAgICAgICB0YyA9IC1yeTsKKyAgICAgICAgcmMg
PSByejsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnhXaXRoUmVz
cGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnhXaXRo
UmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5
V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRp
YWxSeVdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IHBh
cnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9
IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxzZSB7CisgICAgICAgIGxheWVyTnVt
YmVyID0gNTsKKyAgICAgICAgc2MgPSAtcng7CisgICAgICAgIHRjID0gLXJ5OworICAgICAgICBy
YyA9IHJ6OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnhXaXRo
UmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ4
V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRp
YWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1w
YXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gg
PSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0
VG9ZID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgIH0KKyAgICByZXR1cm4gW2xheWVy
TnVtYmVyLCBzYywgdGMsIHJjLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNjV2l0
aFJlc3BlY3RUb1ksIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVGNXaXRoUmVzcGVj
dFRvWSwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZXQor
fQorCitmdW5jdGlvbiBjdWJlTWFwQ29vcmRpbmF0ZVRyYW5zZm9ybWF0aW9uKHNjLCByYykKK3sK
KyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi41CisgICAgbGV0IHNGYWNlID0gKDEg
LyAyKSAqIHNjIC8gTWF0aC5hYnMocmMpICsgKDEgLyAyKTsKKyAgICBsZXQgdEZhY2UgPSAoMSAv
IDIpICogdGMgLyBNYXRoLmFicyhyYykgKyAoMSAvIDIpOworICAgIHJldHVybiBbc0ZhY2UsIHRG
YWNlXTsKK30KKworZnVuY3Rpb24gY3ViZU1hcERlcml2YXRpdmVUcmFuc2Zvcm1hdGlvbihzYywg
dGMsIHJjLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ks
IHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSwgcGFydGlh
bFJjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZKQoreworICAgIC8vIFZ1
bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjYKKyAgICBsZXQgcGFydGlhbFNGYWNlV2l0aFJlc3Bl
Y3RUb1ggPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRv
WCAtIHNjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAg
ICBsZXQgcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1kgPSAoMSAvIDIpICogKChNYXRoLmFicyhy
YykgKiBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSAtIHNjICogcGFydGlhbFJjV2l0aFJlc3BlY3RU
b1kpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICBsZXQgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RU
b1ggPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCAt
IHRjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICBs
ZXQgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1kgPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykg
KiBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSAtIHRjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kp
IC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICByZXR1cm4gW3BhcnRpYWxTRmFjZVdpdGhSZXNwZWN0
VG9YLCBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RU
b1gsIHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0VG9ZXTsKK30KKworZnVuY3Rpb24gc2NhbGVGYWN0
b3JPcGVyYXRpb24oKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjcKKyAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCit9CisKK2Z1bmN0aW9uIGxldmVsT2ZEZXRhaWxP
cGVyYXRpb24obWF4U2FtcGxlckxvZEJpYXMsIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsIGxvZE1p
bkZyb21GdW5jdGlvbk9wZXJhbmQsIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLCBzYW1wbGVyQmlh
cywgc2FtcGxlckxvZE1pbiwgc2FtcGxlckxvYWRNYXgsIHJob01heCwgZXRhKQoreworICAgIGxl
dCBsYW1iZGFCYXNlID0gbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCAhPSB1bmRlZmluZWQgPyBsb2RG
cm9tRnVuY3Rpb25PcGVyYW5kIDogTWF0aC5sb2cyKHJob01heCAvIGV0YSk7CisgICAgbGV0IGxh
bWJkYVByaW1lID0gbGFtYmRhQmFzZSArIE1hdGgubWluKE1hdGgubWF4KHNhbXBsZXJCaWFzICsg
Ymlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIC1tYXhTYW1wbGVyTG9kQmlhcyksIG1heFNhbXBsZXJM
b2RCaWFzKTsKKyAgICBsZXQgbG9kTWluID0gTWF0aC5tYXgoc2FtcGxlckxvZE1pbiwgbG9kTWlu
RnJvbUZ1bmN0aW9uT3BlcmFuZCk7CisgICAgbGV0IGxvZE1heCA9IHNhbXBsZXJMb2FkTWF4Owor
ICAgIGxldCBsYW1iZGE7CisgICAgaWYgKGxhbWJkYVByaW1lID4gbG9kTWF4KQorICAgICAgICBs
YW1iZGEgPSBsb2RNYXg7CisgICAgZWxzZSBpZiAobG9kTWluIDw9IGxhbWJkYVByaW1lICYmIGxh
bWJkYVByaW1lIDw9IGxvZE1heCkKKyAgICAgICAgbGFtYmRhID0gbGFtYmRhUHJpbWU7CisgICAg
ZWxzZSBpZiAobGFtYmRhUHJpbWUgPCBsb2RNaW4pCisgICAgICAgIGxhbWJkYSA9IGxvZE1pbjsK
KyAgICBlbHNlCisgICAgICAgIHRocm93IG5ldyBFcnJvcigibG9kTWluID49IGxvZE1heCIpOwor
ICAgIHJldHVybiBsYW1iZGE7Cit9CisKK2Z1bmN0aW9uIGltYWdlTGV2ZWxTZWxlY3Rpb24oYmFz
ZU1pcExldmVsLCBsZXZlbENvdW50LCBtaXBtYXBNb2RlLCBsYW1iZGEpCit7CisgICAgZnVuY3Rp
b24gbmVhcmVzdChkUHJpbWUpCisgICAgeworICAgICAgICByZXR1cm4gTWF0aC5jZWlsKGRQcmlt
ZSArIDAuNSkgLSAxOworICAgIH0KKworICAgIGxldCBxID0gbGV2ZWxDb3VudCAtIDE7CisgICAg
bGV0IGRQcmltZSA9IGJhc2VNaXBMZXZlbCArIE1hdGgubWluKE1hdGgubWF4KGxhbWJkYSwgMCks
IHEpOworICAgIGxldCBkbDsKKyAgICBpZiAobWlwbWFwTW9kZSA9PSAibmVhcmVzdCIpCisgICAg
ICAgIGRsID0gbmVhcmVzdChkUHJpbWUpOworICAgIGVsc2UKKyAgICAgICAgZGwgPSBkUHJpbWU7
CisgICAgaWYgKG1pcG1hcE1vZGUgPT0gIm5lYXJlc3QiKQorICAgICAgICByZXR1cm4gZGw7Cisg
ICAgZWxzZSB7CisgICAgICAgIGxldCBkSGkgPSBNYXRoLmZsb29yKGRsKTsKKyAgICAgICAgbGV0
IGRMb3cgPSBNYXRoLm1pbihkSGkgKyAxLCBxKTsKKyAgICAgICAgbGV0IGRlbHRhID0gZGwgLSBk
SGk7CisgICAgICAgIHJldHVybiBbZEhpLCBkTG93LCBkZWx0YV07CisgICAgfQorfQorCitmdW5j
dGlvbiBzdHJxYVRvVVZXQVRyYW5zZm9ybWF0aW9uKHMsIHQsIHIsIHdpZHRoLCBoZWlnaHQsIGRl
cHRoKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjgKKyAgICBsZXQgdSA9
IHMgKiB3aWR0aDsKKyAgICBsZXQgdiA9IHQgKiBoZWlnaHQ7CisgICAgbGV0IHcgPSByICogZGVw
dGg7CisgICAgcmV0dXJuIFt1LCB2LCB3XTsKK30KKworZnVuY3Rpb24gdXZ3YVRvSUpLTE5UcmFu
c2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJTZWxlY3Rpb24obGF5ZXJDb3VudCwgYmFzZUFycmF5TGF5
ZXIsIGZpbHRlciwgdSwgdiwgdywgYSwgZGVsdGFJLCBkZWx0YUosIGRlbHRhSykKK3sKKyAgICAv
LyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNy4xCisgICAgZnVuY3Rpb24gcm5lKGEpCisgICAg
eworICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihhICsgMC41KTsKKyAgICB9CisgICAgbGV0IGwg
PSBNYXRoLm1pbihNYXRoLm1heChybmUoYSksIDApLCBsYXllckNvdW50IC0gMSkgKyBiYXNlQXJy
YXlMYXllcjsKKyAgICBsZXQgaTsKKyAgICBsZXQgajsKKyAgICBsZXQgazsKKyAgICBpZiAoZmls
dGVyID09ICJuZWFyZXN0IikgeworICAgICAgICBpID0gTWF0aC5mbG9vcih1KTsKKyAgICAgICAg
aiA9IE1hdGguZmxvb3Iodik7CisgICAgICAgIGsgPSBNYXRoLmZsb29yKHcpOworICAgICAgICAK
KyAgICAgICAgaSArPSBkZWx0YUk7CisgICAgICAgIGogKz0gZGVsdGFKOworICAgICAgICBrICs9
IGRlbHRhSzsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBbaSwgaiwgaywgbF07CisgICAgfSBl
bHNlIHsKKyAgICAgICAgaWYgKGZpbHRlciAhPSAibGluZWFyIikKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiVW5rbm93biBmaWx0ZXIiKTsKKyAgICAgICAgbGV0IGkwID0gTWF0aC5mbG9v
cih1IC0gMC41KTsKKyAgICAgICAgbGV0IGkxID0gaTAgKyAxOworICAgICAgICBsZXQgajAgPSBN
YXRoLmZsb29yKHYgLSAwLjUpOworICAgICAgICBsZXQgajEgPSBqMCArIDE7CisgICAgICAgIGxl
dCBrMCA9IE1hdGguZmxvb3IodyAtIDAuNSk7CisgICAgICAgIGxldCBrMSA9IGswICsgMTsKKyAg
ICAgICAgbGV0IGFscGhhID0gKHUgLSAwLjUpIC0gaTA7CisgICAgICAgIGxldCBiZXRhID0gKHYg
LSAwLjUpIC0gajA7CisgICAgICAgIGxldCBnYW1tYSA9ICh3IC0gMC41KSAtIGswOworICAgICAg
ICAKKyAgICAgICAgaTAgKz0gZGVsdGFJOworICAgICAgICBpMSArPSBkZWx0YUk7CisgICAgICAg
IGowICs9IGRlbHRhSjsKKyAgICAgICAgajEgKz0gZGVsdGFKOworICAgICAgICBrMCArPSBkZWx0
YUs7CisgICAgICAgIGsxICs9IGRlbHRhSzsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBbaTAs
IGkxLCBqMCwgajEsIGswLCBrMSwgbCwgYWxwaGEsIGJldGEsIGdhbW1hXTsKKyAgICB9Cit9CisK
K2Z1bmN0aW9uIGludGVnZXJUZXhlbENvb3JkaW5hdGVPcGVyYXRpb25zKGJhc2VNaXBMZXZlbCwg
bGV2ZWxDb3VudCwgbGV2ZWxCYXNlLCBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kKQoreworICAgIC8v
IFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS44CisgICAgbGV0IGQgPSBsZXZlbEJhc2UgKyBsb2RG
cm9tRnVuY3Rpb25PcGVyYW5kOworICAgIGlmIChkIDwgYmFzZU1pcExldmVsIHx8IGQgPj0gYmFz
ZU1pcExldmVsICsgbGV2ZWxDb3VudCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTZWxlY3Rl
ZCBsZXZlbCBkb2VzIG5vdCBsaWUgaW5zaWRlIHRoZSBpbWFnZSIpOworICAgIHJldHVybiBkOwor
fQorCitmdW5jdGlvbiB3cmFwcGluZ09wZXJhdGlvbih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgYWRk
cmVzc01vZGVVLCBhZGRyZXNzTW9kZVYsIGFkZHJlc3NNb2RlVywgaSwgaiwgaykKK3sKKyAgICAv
LyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOS4xCisgICAgLy8gRklYTUU6IEltcGxlbWVudCBj
dWJlIG1hcCBoYW5kbGluZworICAgIGZ1bmN0aW9uIHRyYW5zZm9ybShhZGRyZXNzTW9kZSwgc2l6
ZSwgaSkKKyAgICB7CisgICAgICAgIGZ1bmN0aW9uIG1pcnJvcihuKSB7CisgICAgICAgICAgICBp
ZiAobiA+PSAwKQorICAgICAgICAgICAgICAgIHJldHVybiBuOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIHJldHVybiAtKDEgKyBuKTsKKyAgICAgICAgfQorICAgICAgICBzd2l0
Y2ggKGFkZHJlc3NNb2RlKSB7CisgICAgICAgICAgICBjYXNlICJjbGFtcFRvRWRnZSI6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGksIDApLCBzaXplIC0gMSk7Cisg
ICAgICAgICAgICBjYXNlICJyZXBlYXQiOgorICAgICAgICAgICAgICAgIHJldHVybiBpICUgc2l6
ZTsKKyAgICAgICAgICAgIGNhc2UgIm1pcnJvclJlcGVhdCI6CisgICAgICAgICAgICAgICAgcmV0
dXJuIChzaXplIC0gMSkgLSBtaXJyb3IoKGkgJSAoMiAqIHNpemUpKSAtIHNpemUpOworICAgICAg
ICAgICAgY2FzZSAiY2xhbXBUb0JvcmRlckNvbG9yIjoKKyAgICAgICAgICAgICAgICByZXR1cm4g
TWF0aC5taW4oTWF0aC5tYXgoaSwgLTEpLCBzaXplKTsKKyAgICAgICAgICAgIGRlZmF1bHQKKyAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gYWRkcmVzcyBtb2RlIik7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFt0cmFuc2Zvcm0oYWRkcmVzc01vZGVVLCB3aWR0
aCwgaSksIHRyYW5zZm9ybShhZGRyZXNzTW9kZVYsIGhlaWdodCwgaiksIHRyYW5zZm9ybShhZGRy
ZXNzTW9kZVcsIGRlcHRoLCBrKV07Cit9CisKK2Z1bmN0aW9uIHRleGVsR2F0aGVyaW5nKCkKK3sK
KyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOS4yCisgICAgLy8gRklYTUU6IEltcGxl
bWVudCB0aGlzCisgICAgLypsZXQgdGF1UiA9IDsKKyAgICBsZXQgdGF1RyA9IDsKKyAgICBsZXQg
dGF1QiA9IDsKKyAgICBsZXQgdGF1QSA9IDsqLworfQorCitmdW5jdGlvbiB0ZXhlbEZpbHRlcmlu
ZyhiYXNlTWlwTGV2ZWwsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGJhc2VBcnJheUxheWVyLCBt
YWdGaWx0ZXIsIG1pbkZpbHRlciwgbWlwbWFwTW9kZSwgYWRkcmVzc01vZGVVLCBhZGRyZXNzTW9k
ZVYsIGFkZHJlc3NNb2RlVywgYm9yZGVyQ29sb3IsIGxhbWJkYSwgcywgdCwgciwgYSwgZGVsdGFJ
LCBkZWx0YUosIGRlbHRhSywgZGltZW5zaW9uLCBjb21wdXRlV2lkdGhDYWxsYmFjaywgY29tcHV0
ZUhlaWdodENhbGxiYWNrLCBjb21wdXRlRGVwdGhDYWxsYmFjaywgYWNjZXNzRWxlbWVudENhbGxi
YWNrLCBhY2Nlc3NSb3dDYWxsYmFjaywgYWNjZXNzRGVwdGhTbGljZUNhbGxiYWNrLCBhY2Nlc3NM
ZXZlbENhbGxiYWNrLCBhY2Nlc3NMYXllckNhbGxiYWNrLCBib3JkZXJDYWxsYmFjaywgZGF0YSkK
K3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOS4zCisgICAgbGV0IGZpbHRlcjsK
KyAgICBpZiAobGFtYmRhIDw9IDApCisgICAgICAgIGZpbHRlciA9IG1hZ0ZpbHRlcjsKKyAgICBl
bHNlCisgICAgICAgIGZpbHRlciA9IG1pbkZpbHRlcjsKKworICAgIGZ1bmN0aW9uIGNvbXB1dGVU
YXUobGV2ZWwpCisgICAgeworICAgICAgICBmdW5jdGlvbiByZWR1Y2UoLi4uYXJndW1lbnRzKQor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAlIDIgIT0gMCkKKyAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkRvbid0IGhhdmUgYSB3ZWlnaHQgY29ycmVz
cG9uZGluZyB0byBlYWNoIHZhbHVlIik7CisgICAgICAgICAgICBsZXQgc3VtID0gMDsKKyAgICAg
ICAgICAgIC8vIEZJWE1FOiBUaGVzZSBhcmd1bWVudHMgbmVlZCB0byBiZSBhdmVyYWdlZCBjb21w
b25lbnQtd2lzZS4KKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJndW1lbnRzLmxl
bmd0aCAvIDI7ICsraSkKKyAgICAgICAgICAgICAgICBzdW0gKz0gYXJndW1lbnRzWzIgKiBpXSAq
IGFyZ3VtZW50c1syICogaSArIDFdOworICAgICAgICAgICAgcmV0dXJuIHN1bTsKKyAgICAgICAg
fQorCisgICAgICAgIGZ1bmN0aW9uIGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBs
LCBpLCBqLCBrKQorICAgICAgICB7CisgICAgICAgICAgICBmdW5jdGlvbiBzaG91bGRCZUJvcmRl
cih2YWx1ZSwgbWF4KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA8
IC0xIHx8IHZhbHVlID4gbWF4KQorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
Ik91dC1vZi1ib3VuZHMgdGV4dHVyZSByZWFkIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIHZh
bHVlID09IC0xIHx8IHZhbHVlID09IG1heCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGxldCBbd3JhcHBlZEksIHdyYXBwZWRKLCB3cmFwcGVkS10gPSB3cmFwcGluZ09wZXJhdGlvbih3
aWR0aCwgaGVpZ2h0LCBkZXB0aCwgYWRkcmVzc01vZGVVLCBhZGRyZXNzTW9kZVYsIGFkZHJlc3NN
b2RlVywgaSwgaiwgaykKKyAgICAgICAgICAgIGlmIChzaG91bGRCZUJvcmRlcihpLCB3aWR0aCkg
fHwgc2hvdWxkQmVCb3JkZXIoaiwgaGVpZ2h0KSB8fCBzaG91bGRCZUJvcmRlcihrLCBkZXB0aCkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGJvcmRlckNhbGxiYWNrKGJvcmRlckNvbG9yKTsKKyAg
ICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGxldCBsYXllckRhdGEgPSBhY2Nlc3NM
YXllckNhbGxiYWNrKGRhdGEsIGwpOworICAgICAgICAgICAgICAgIGxldCBsZXZlbERhdGEgPSBh
Y2Nlc3NMZXZlbENhbGxiYWNrKGxheWVyRGF0YSwgbGV2ZWwpOworICAgICAgICAgICAgICAgIGxl
dCBkZXB0aFNsaWNlRGF0YSA9IGFjY2Vzc0RlcHRoU2xpY2VDYWxsYmFjayhsZXZlbERhdGEsIGsp
OworICAgICAgICAgICAgICAgIGxldCByb3dEYXRhID0gYWNjZXNzUm93Q2FsbGJhY2soZGVwdGhT
bGljZURhdGEsIGopOworICAgICAgICAgICAgICAgIGxldCBlbGVtZW50ID0gYWNjZXNzRWxlbWVu
dENhbGxiYWNrKHJvd0RhdGEsIGkpOworICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50Owor
ICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gVGhpcyBpcyBraW5kIG9mIGJv
Z3VzLCBiZWNhdXNlIHRoZSB3aWR0aC9oZWlnaHQvZGVwdGggZGVwZW5kcyBvbiBib3RoIHRoZSBt
aXBtYXAgbGV2ZWwgYW5kIHRoZSBhcnJheSBsYXllciwgYnV0IHRoZSBzcGVjIGNhbGN1bGF0ZXMg
dGhlbSBhdCB0aGUgc2FtZSB0aW1lLgorICAgICAgICAvLyBMdWNraWx5LCB0aGVyZSBpcyBubyBj
aXJjdWxhciBkZXBlbmRlbmN5LCBzbyB3ZSBjYW4gY2FsY3VsYXRlIHRoZSAibCIgcGFyYW1ldGVy
LCBpZ25vcmUgdGhlIHJlc3QsIGFuZCBmZWVkIGl0IGJhY2sgdGhyb3VnaCBhZ2Fpbi4KKyAgICAg
ICAgLy8gVGhpcyBzcGVjIGhhcyBzb21lIHByb2JsZW1zLi4uCisgICAgICAgIGlmIChmaWx0ZXIg
PT0gIm5lYXJlc3QiKSB7CisgICAgICAgICAgICBsZXQgW2ksIGosIGssIGxdID0gdXZ3YVRvSUpL
TE5UcmFuc2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJTZWxlY3Rpb24obGF5ZXJDb3VudCwgYmFzZUFy
cmF5TGF5ZXIsIGZpbHRlciwgMCwgMCwgMCwgbGV2ZWwsIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUsp
OworICAgICAgICAgICAgd2lkdGggPSBjb21wdXRlV2lkdGhDYWxsYmFjayhsZXZlbCwgbCk7Cisg
ICAgICAgICAgICBoZWlnaHQgPSBjb21wdXRlSGVpZ2h0Q2FsbGJhY2sobGV2ZWwsIGwpOworICAg
ICAgICAgICAgZGVwdGggPSBjb21wdXRlRGVwdGhDYWxsYmFjayhsZXZlbCwgbCk7CisgICAgICAg
ICAgICBsZXQgW3UsIHYsIHddID0gc3RycWFUb1VWV0FUcmFuc2Zvcm1hdGlvbihzLCB0LCByLCB3
aWR0aCwgaGVpZ2h0LCBkZXB0aCk7CisgICAgICAgICAgICBbaSwgaiwgaywgbF0gPSB1dndhVG9J
SktMTlRyYW5zZm9ybWF0aW9uQW5kQXJyYXlMYXllclNlbGVjdGlvbihsYXllckNvdW50LCBiYXNl
QXJyYXlMYXllciwgZmlsdGVyLCB1LCB2LCB3LCBsZXZlbCwgZGVsdGFJLCBkZWx0YUosIGRlbHRh
Syk7CisgICAgICAgICAgICByZXR1cm4gYWNjZXNzQ29sb3Iod2lkdGgsIGhlaWdodCwgZGVwdGgs
IGwsIGksIGosIGspOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKG1pcG1hcE1v
ZGUgIT0gImxpbmVhciIpCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3du
IGZpbHRlciIpOworICAgICAgICAgICAgbGV0IFtpMCwgaTEsIGowLCBqMSwgazAsIGsxLCBsLCBh
bHBoYSwgYmV0YSwgZ2FtbWFdID0gdXZ3YVRvSUpLTE5UcmFuc2Zvcm1hdGlvbkFuZEFycmF5TGF5
ZXJTZWxlY3Rpb24obGF5ZXJDb3VudCwgYmFzZUFycmF5TGF5ZXIsIGZpbHRlciwgdSwgdiwgdywg
YSwgZGVsdGFJLCBkZWx0YUosIGRlbHRhSyk7CisgICAgICAgICAgICB3aWR0aCA9IGNvbXB1dGVX
aWR0aENhbGxiYWNrKGxldmVsLCBsKTsKKyAgICAgICAgICAgIGhlaWdodCA9IGNvbXB1dGVIZWln
aHRDYWxsYmFjayhsZXZlbCwgbCk7CisgICAgICAgICAgICBkZXB0aCA9IGNvbXB1dGVEZXB0aENh
bGxiYWNrKGxldmVsLCBsKTsKKyAgICAgICAgICAgIFt1LCB2LCB3XSA9IHN0cnFhVG9VVldBVHJh
bnNmb3JtYXRpb24ocywgdCwgciwgd2lkdGgsIGhlaWdodCwgZGVwdGgpOworICAgICAgICAgICAg
W2kwLCBpMSwgajAsIGoxLCBrMCwgazEsIGwsIGFscGhhLCBiZXRhLCBnYW1tYV0gPSB1dndhVG9J
SktMTlRyYW5zZm9ybWF0aW9uQW5kQXJyYXlMYXllclNlbGVjdGlvbihsYXllckNvdW50LCBiYXNl
QXJyYXlMYXllciwgZmlsdGVyLCB1LCB2LCB3LCBsZXZlbCwgZGVsdGFJLCBkZWx0YUosIGRlbHRh
Syk7CisgICAgICAgICAgICBsZXQgY29sb3IwMDAgPSBhY2Nlc3NDb2xvcih3aWR0aCwgaGVpZ2h0
LCBkZXB0aCwgbCwgaTAsIGowLCBrMCk7CisgICAgICAgICAgICBsZXQgY29sb3IxMDAgPSBhY2Nl
c3NDb2xvcih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbCwgaTEsIGowLCBrMCk7CisgICAgICAgICAg
ICBsZXQgY29sb3IwMTAgPSBhY2Nlc3NDb2xvcih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbCwgaTAs
IGoxLCBrMCk7CisgICAgICAgICAgICBsZXQgY29sb3IxMTAgPSBhY2Nlc3NDb2xvcih3aWR0aCwg
aGVpZ2h0LCBkZXB0aCwgbCwgaTEsIGoxLCBrMCk7CisgICAgICAgICAgICBsZXQgY29sb3IwMDEg
PSBhY2Nlc3NDb2xvcih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbCwgaTAsIGowLCBrMSk7CisgICAg
ICAgICAgICBsZXQgY29sb3IxMDEgPSBhY2Nlc3NDb2xvcih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwg
bCwgaTEsIGowLCBrMSk7CisgICAgICAgICAgICBsZXQgY29sb3IwMTEgPSBhY2Nlc3NDb2xvcih3
aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbCwgaTAsIGoxLCBrMSk7CisgICAgICAgICAgICBsZXQgY29s
b3IxMTEgPSBhY2Nlc3NDb2xvcih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbCwgaTEsIGoxLCBrMSk7
CisgICAgICAgICAgICBzd2l0Y2ggKGRpbWVuc2lvbikgeworICAgICAgICAgICAgICAgIGNhc2Ug
MToKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMCA9IGNvbG9yMDExOworICAgICAgICAg
ICAgICAgICAgICBsZXQgY29sb3IxID0gY29sb3IxMTE7CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiByZWR1Y2UoMSAtIGFscGhhLCBjb2xvcjAsIGFscGhhLCBjb2xvcjEpOworICAgICAgICAg
ICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMDAgPSBjb2xvcjAw
MTsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMTAgPSBjb2xvcjEwMTsKKyAgICAgICAg
ICAgICAgICAgICAgbGV0IGNvbG9yMDEgPSBjb2xvcjAxMTsKKyAgICAgICAgICAgICAgICAgICAg
bGV0IGNvbG9yMTEgPSBjb2xvcjExMTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZHVj
ZSgoMSAtIGFscGhhKSAqICgxIC0gYmV0YSksIGNvbG9yMDAsIGFscGhhICogKDEgLSBiZXRhKSwg
Y29sb3IxMCwgKDEgLSBhbHBoYSkgKiBiZXRhLCBjb2xvcjAxLCBhbHBoYSAqIGJldGEsIGNvbG9y
MTEpOworICAgICAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHJlZHVjZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICgxIC0gYWxwaGEpICogKDEgLSBiZXRh
KSAqICgxIC0gZ2FtbWEpLCBjb2xvcjAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFscGhh
ICogKDEgLSBiZXRhKSAqICgxIC0gZ2FtbWEpLCBjb2xvcjEwMCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICgxIC0gYWxwaGEpICogYmV0YSAqICgxIC0gZ2FtbWEpLCBjb2xvcjAxMCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGFscGhhICogYmV0YSAqICgxIC0gZ2FtbWEpLCBjb2xvcjExMCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICgxIC0gYWxwaGEpICogKDEgLSBiZXRhKSAqIGdhbW1h
LCBjb2xvcjAwMSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFscGhhICogKDEgLSBiZXRhKSAq
IGdhbW1hLCBjb2xvcjEwMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICgxIC0gYWxwaGEpICog
YmV0YSAqIGdhbW1hLCBjb2xvcjAxMSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFscGhhICog
YmV0YSAqIGdhbW1hLCBjb2xvcjExMSk7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGRpbWVuc2lvbiIpOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKG1pcG1hcE1vZGUgPT0gIm5l
YXJlc3QiKSB7CisgICAgICAgIGxldCBpbWFnZUxldmVsID0gaW1hZ2VMZXZlbFNlbGVjdGlvbihi
YXNlTWlwTGV2ZWwsIGxldmVsQ291bnQsIG1pcG1hcE1vZGUsIGxhbWJkYSk7CisgICAgICAgIHJl
dHVybiBjb21wdXRlVGF1KGltYWdlTGV2ZWwpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmICht
aXBtYXBNb2RlICE9ICJsaW5lYXIiKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtu
b3duIGZpbHRlciIpOworICAgICAgICBsZXQgW2RIaSwgZExvdywgZGVsdGFdID0gaW1hZ2VMZXZl
bFNlbGVjdGlvbihiYXNlTWlwTGV2ZWwsIGxldmVsQ291bnQsIG1pcG1hcE1vZGUsIGxhbWJkYSk7
CisgICAgICAgIHJldHVybiByZWR1Y2UoMSAtIGRlbHRhLCBjb21wdXRlVGF1KGRIaSksIGRlbHRh
LCBjb21wdXRlVGF1KGRMbykpOworICAgIH0KK30KKworZnVuY3Rpb24gc2FtcGxlMUQodGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24pCit7CisgICAgbGV0IFtzLCB0LCByLCBkcmVmXSA9IHByb2pl
Y3Rpb25PcGVyYXRpb24ocywgdCwgciwgZHJlZiwgcSk7CisgICAgdGV4ZWxGaWx0ZXJpbmcoKTsK
KyAgICBkZXB0aENvbXBhcmVPcGVyYXRpb24oKQorICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdo
YXQgdG8gZG8gd2l0aCBhbmlzb3Ryb3B5CisgICAgLy8gRklYTUU6IFdITFNMIGRkeCBkZHkgYXJn
dW1lbnRzCisgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgaG93IHRvIGRvIG11bHRpc2FtcGxpbmcu
Cit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1s
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbAppbmRleCA2NWE4NjQx
MWIzZTc3MGI1NTdiNDFhY2M3ZTQxNGRlZjQyNDAzMDEzLi44MzY2YmIxOGQxNzBlOTNmODAwZGY1
ODIyZmE1ZWFmZWI0M2JlZDgzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9pbmRleC5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4
Lmh0bWwKQEAgLTEyNyw2ICsxMjcsNyBAQAogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVDb3B5Q29u
c3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZURl
ZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUZXJu
YXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlv
bnMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVE
ZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348582</attachid>
            <date>2018-08-30 19:25:35 -0700</date>
            <delta_ts>2018-08-30 23:04:18 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188940-20180830192534.patch</filename>
            <type>text/plain</type>
            <size>88734</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTI5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTUwNDIyMTY4MTkxNWY1OTZhY2JjYmMzNmJlYTJiOWI4
M2RiOTg0ZC4uOTkzNzk2MDNkMDc1YTY2ZjcxMGIxNzlkMjM1M2M2NWRmMTdlYjlkMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2
IEBACisyMDE4LTA4LTMwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+
CisKKyAgICAgICAgW1dITFNMXSBJbXBsZW1lbnQgdGV4dHVyZSB0eXBlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTQwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2lj
cy5qczoKKyAgICAgICAgKEludHJpbnNpY3MuKToKKyAgICAgICAgKEludHJpbnNpY3MpOgorICAg
ICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWw6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAobGV0LnN0
YW5kYXJkTGlicmFyeSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5o
dG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanM6CisgICAgICAg
IChtYWtlU2FtcGxlcik6CisgICAgICAgIChtYWtlMURUZXh0dXJlKToKKyAgICAgICAgKG1ha2Ux
RFRleHR1cmVBcnJheSk6CisgICAgICAgIChtYWtlMkRUZXh0dXJlKToKKyAgICAgICAgKG1ha2Uy
RFRleHR1cmVBcnJheSk6CisgICAgICAgIChtYWtlM0RUZXh0dXJlKToKKyAgICAgICAgKG1ha2VU
ZXh0dXJlQ3ViZSk6CisgICAgICAgIChtYWtlUlcxRFRleHR1cmUpOgorICAgICAgICAobWFrZVJX
MURUZXh0dXJlQXJyYXkpOgorICAgICAgICAobWFrZVJXMkRUZXh0dXJlKToKKyAgICAgICAgKG1h
a2VSVzJEVGV4dHVyZUFycmF5KToKKyAgICAgICAgKG1ha2VSVzNEVGV4dHVyZSk6CisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanM6IEFkZGVkLgor
ICAgICAgICAodGV4dHVyZUxvYWQpOgorICAgICAgICAodGV4dHVyZVN0b3JlKToKKyAgICAgICAg
KiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sOgorCiAyMDE4LTA4LTMwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEZvbGxvd3VwIHRv
IFtpT1NdIFRlc3RXZWJLaXRBUEkuUGFzdGVJbWFnZSB0ZXN0cyBhcmUgZmxha3kgZmFpbHVyZXMK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwppbmRleCA5YzJhMzcxNTBjMWU5NzZiOTI2
Y2ZiZWUyMzQzNzUyMGE4ZGU0YTQ3Li5jYzA3ZmRiNTE2NjE2ZDMyOGYzODQ0NWU5NWE4MjA1Mzky
ZTVkYTVhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMK
KysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCkBAIC0xNTAsNiArMTUw
LDcgQEAgbG9hZCgiU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyIpOwogbG9hZCgiU3ludGhl
c2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIik7CiBsb2FkKCJTeW50aGVzaXplRGVmYXVs
dENvbnN0cnVjdG9yT3BlcmF0b3IuanMiKTsKIGxvYWQoIlRlcm5hcnlFeHByZXNzaW9uLmpzIik7
Citsb2FkKCJUZXh0dXJlT3BlcmF0aW9ucy5qcyIpOwogbG9hZCgiVHJhcFN0YXRlbWVudC5qcyIp
OwogbG9hZCgiVHlwZURlZi5qcyIpOwogbG9hZCgiVHlwZURlZlJlc29sdmVyLmpzIik7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcwppbmRleCBiMDA0MDY3ZjVl
YmZiM2E4YjRiZDk4ZTQzN2E4YzA3NjhiZTI2ZjFlLi5lYTM5NGU0MmZiYWU0NTJjY2M5NDcwOGEz
NTRjODQxZjZjMzUxY2EyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9JbnRyaW5zaWNzLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJp
bnNpY3MuanMKQEAgLTMzMCw3ICszMzAsOCBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAg
ICAgICJuYXRpdmUgdHlwZWRlZiBzYW1wbGVyIiwKICAgICAgICAgICAgIHR5cGUgPT4gewogICAg
ICAgICAgICAgICAgIHRoaXMuc2FtcGxlciA9IHR5cGU7Ci0gICAgICAgICAgICAgICAgLy8gRklY
TUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBwdXQgaGVyZS4KKyAgICAgICAgICAgICAgICB0eXBlLnNp
emUgPSAxOworICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVm
ZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCB7fSk7CiAgICAgICAgICAgICB9KTsK
IAogICAgICAgICBmb3IgKGxldCB0ZXh0dXJlVHlwZSBvZiBbIlRleHR1cmUxRCIsICJSV1RleHR1
cmUxRCIsICJUZXh0dXJlMURBcnJheSIsICJSV1RleHR1cmUxREFycmF5IiwgIlRleHR1cmUyRCIs
ICJSV1RleHR1cmUyRCIsICJUZXh0dXJlMkRBcnJheSIsICJSV1RleHR1cmUyREFycmF5IiwgIlRl
eHR1cmUzRCIsICJSV1RleHR1cmUzRCIsICJUZXh0dXJlQ3ViZSJdKSB7CkBAIC0zMzksMTIgKzM0
MCwxNiBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0
eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gLAogICAgICAgICAgICAgICAg
ICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5
cGV9PCR7dHlwZUFyZ3VtZW50fT5gXSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICB0
eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1
bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIHt9KTsKICAg
ICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDI7IGkg
PD0gNDsgKytpKSB7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAg
ICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJn
dW1lbnR9JHtpfT5gLAogICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9
JHtpfT5gXSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0g
MTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVl
ID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwge30pOwogICAgICAgICAg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAt
MzU2LDYgKzM2MSw4IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmAsCiAgICAgICAg
ICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0
ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmBdID0gdHlwZTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnBvcHVs
YXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwg
e30pOwogICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpA
QCAtOTE0LDYgKzkyMSw3NDUgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAKICAgICAgICAgZm9yIChs
ZXQgc2V0dGVyIG9mIEJ1aWx0aW5NYXRyaXhTZXR0ZXIuZnVuY3Rpb25zKCkpCiAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KHNldHRlci50b1N0cmluZygpLCBmdW5jID0+IHNldHRlci5pbnN0YW50
aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsKKworICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFsi
Ym9vbCIsICJ1Y2hhciIsICJ1c2hvcnQiLCAidWludCIsICJjaGFyIiwgInNob3J0IiwgImludCIs
ICJoYWxmIiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlMUQ8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdCBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQgbG9jYXRpb24s
aW50IG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9IExvYWQoVGV4dHVyZTFEPCR7dHlwZX0+LGludDIgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwg
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpXSkpOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmUxRDwke3R5cGV9PixpbnQy
IGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwg
bG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRy
LmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBs
b2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQubG9hZFZhbHVlKCldKSk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPCR7dHlw
ZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBOdW1iZXJP
ZkxldmVscylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0
aCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0g
dGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9
IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElE
ID49IHRleC5sZW5ndGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdU
cmFwRXJyb3IoIltsb2FkXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9m
IHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleFttaXBJRF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
bGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KworICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9IFNhbXBsZShUZXh0dXJlMURBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1w
bGUoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50IG9m
ZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9IExvYWQoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfT4saW50MyBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKV0pKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJl
MURBcnJheTwke3R5cGV9PixpbnQzIGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSArIG9m
ZnNldC5sb2FkVmFsdWUoKV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMURBcnJheTwke3R5cGV9Pix1aW50IE1pcExl
dmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgRWxlbWVudHMsdWludCogdGhyZWFk
IE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2
ZWwsIHdpZHRoLCBlbGVtZW50cywgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHRleC5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIk5vIGVsZW1lbnRzIGluIHRoZSB0ZXh0
dXJlIGFycmF5Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4WzBd
Lmxlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJv
cigiW2xvYWRdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVy
ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4WzBdW21pcElEXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZW5ndGgpLCAx
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleFswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmUyRDwke3R5cGV9Pixz
YW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxv
Y2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDIgbG9jYXRpb24sZmxvYXQgQmlhcylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmUyRDwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBCaWFzLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXMsIG9mZnNldF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3Jh
ZChUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQyIEREWCxm
bG9hdDIgRERZKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBs
b2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBERFksaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHksIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxl
TGV2ZWwoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IExP
RClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBs
b2RdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNh
bXBsZUxldmVsKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9h
dCBMT0QsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgbG9kLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9u
LGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00
IEdhdGhlclJlZChUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50
MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxv
Y2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJHcmVlbihUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50
MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9j
YXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdh
dGhlckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyQWxwaGEoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0gTG9hZChUZXh0dXJlMkQ8JHt0eXBlfT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9j
YXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKV0pKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlMkQ8
JHt0eXBlfT4saW50MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSArIG9mZnNldC5nZXQoMCksIGxvY2F0aW9uLmdl
dCgyKSArIG9mZnNldC5nZXQoMSldKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTJEPCR7dHlwZX0+LHVpbnQgTWlwTGV2
ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIE51
bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWws
IHdpZHRoLCBoZWlnaHQsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChtaXBJRCA+PSB0ZXgubGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50
IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4
W21pcElEXS5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBu
ZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIHJvd3MiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhb
bWlwSURdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4W21pcElEXVswXS5sZW5ndGgpLCAxKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworCisgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9IFNhbXBsZShUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlhcylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmUyREFycmF5PCR7dHlw
ZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMsaW50MiBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhcywgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBT
YW1wbGVHcmFkKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
LGZsb2F0MiBERFgsZmxvYXQyIEREWSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeV0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlMkRBcnJheTwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBERFksaW50MiBvZmZz
ZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
ZGR4LCBkZHksIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9ELGludDIgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
KFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJE
QXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
UmVkKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4
dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQp
YCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckdyZWVuKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGlu
dDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9j
YXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlMkRBcnJheTwke3R5cGV9Pixp
bnQ0IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9u
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2Fk
KHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
bG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMyldKSk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4s
aW50NCBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQo
MCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpICsgb2Zmc2V0LmdldCgwKSwgbG9j
YXRpb24uZ2V0KDMpICsgb2Zmc2V0LmdldCgxKV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMkRBcnJheTwke3R5cGV9
Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVp
bnQqIHRocmVhZCBFbGVtZW50cyx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgZWxlbWVu
dHMsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9
IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQg
PSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXgu
bGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFw
RXJyb3IoIltsb2FkXSIsICJObyBlbGVtZW50cyBpbiB0aGUgdGV4dHVyZSBhcnJheSIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleFswXS5sZW5ndGgpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJSZWFk
aW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICh0ZXhbMF1bbWlwSURdLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBo
YXMgbm8gcm93cyIpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgp
LmNvcHlGcm9tKEVQdHIuYm94KHRleFswXVttaXBJRF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF1b
bWlwSURdWzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAg
ICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisKKyAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
IFNhbXBsZShUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MyBv
ZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgewor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRl
eHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9mZnNldClgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRd
KSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJSZWQoVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVy
ZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdy
ZWVuKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVy
ZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJs
dWUoVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUz
RDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBo
YShUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUz
RDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVy
ZTNEPCR7dHlwZX0+LGludDQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5i
b3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9j
YXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgzKV0pKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlM0Q8
JHt0eXBlfT4saW50NCBsb2NhdGlvbixpbnQzIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSArIG9mZnNldC5nZXQoMCksIGxvY2F0aW9uLmdl
dCgyKSArIG9mZnNldC5nZXQoMSksIGxvY2F0aW9uLmdldCgzKSArIG9mZnNldC5nZXQoMildKSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lv
bnMoVGV4dHVyZTNEPCR7dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVp
bnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIERlcHRoLHVpbnQqIHRocmVhZCBOdW1iZXJP
ZkxldmVscylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0
aCwgaGVpZ2h0LCBkZXB0aCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKG1pcElEID49IHRleC5sZW5ndGgpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3Rh
bnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0
ZXhbbWlwSURdLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93
IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgemVybyBkZXB0aCIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHRleFttaXBJRF1bMF0ubGVuZ3RoID09IDApCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJU
ZXh0dXJlIGhhcyBubyByb3dzIik7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aC5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbbWlwSURdLmxlbmd0aCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRl
eFttaXBJRF1bMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbbWlwSURdWzBdWzBdLmxlbmd0aCksIDEp
OworICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZUN1YmU8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZUN1YmU8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24sZmxvYXQzIEREWCxmbG9hdDMgRERZKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0
dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkgewor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRl
eHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZUN1YmU8
JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmVDdWJlPCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBs
b2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXRE
aW1lbnNpb25zKFRleHR1cmVDdWJlPCR7dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFk
IFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQs
IG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRl
eHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBt
aXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXgubGVu
Z3RoICE9IDYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJy
b3IoIltsb2FkXSIsICJDdWJlIHRleHR1cmUgZG9lc24ndCBoYXZlIDYgZmFjZXMiKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXhbMF0ubGVuZ3RoKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiUmVhZGlu
ZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAodGV4WzBdW21pcElEXS5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFz
IG5vIHJvd3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5j
b3B5RnJvbShFUHRyLmJveCh0ZXhbMF1bbWlwSURdLmxlbmd0aCksIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdW21p
cElEXVswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2
ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXS5sZW5ndGgpLCAxKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9u
cyhSV1RleHR1cmUxRDwke3R5cGV9Pix1aW50KiB0aHJlYWQgV2lkdGgpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdp
ZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleHR1cmUubG9hZFZhbHVlKCkubGVu
Z3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdl
dERpbWVuc2lvbnMoUldUZXh0dXJlMUQ8JHt0eXBlfT4sZmxvYXQqIHRocmVhZCBXaWR0aClgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4dHVyZS5sb2Fk
VmFsdWUoKS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0gTG9hZChSV1RleHR1cmUxRDwke3R5cGV9PixpbnQgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUo
KSwgW2xvY2F0aW9uLmxvYWRWYWx1ZSgpXSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUxRDwke3R5cGV9Piwke3R5cGV9LHVpbnQg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0
aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGV4dHVyZVN0b3JlKHRleHR1cmUubG9h
ZFZhbHVlKCksIHZhbHVlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24ubG9hZFZhbHVlKCldKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9u
cyhSV1RleHR1cmUxREFycmF5PCR7dHlwZX0+LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJl
YWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgZWxl
bWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2Fk
VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXgubGVuZ3RoID09IDApCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIs
ICJUZXh0dXJlIGhhcyBubyBlbGVtZW50cyIpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxl
bWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAg
ICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfT4sZmxvYXQqIHRo
cmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCB3aWR0aCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICh0ZXgubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3
IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyBlbGVtZW50cyIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFJXVGV4dHVyZTFEQXJyYXk8JHt0
eXBlfT4saW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0
dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSldKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0
b3JlKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfT4sJHt0eXBlfSx1aW50MiBsb2NhdGlvbilgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICB0ZXh0dXJlU3RvcmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgdmFs
dWUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKV0pOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25z
KFJXVGV4dHVyZTJEPCR7dHlwZX0+LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVp
Z2h0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sZW5ndGggPT0gMCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUg
aGFzIG5vIHJvd3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUo
KS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF0ubGVuZ3RoKSwg
MSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVu
c2lvbnMoUldUZXh0dXJlMkQ8JHt0eXBlfT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhy
ZWFkIEhlaWdodClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWln
aHRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFs
dWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXgubGVuZ3RoID09IDApCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJU
ZXh0dXJlIGhhcyBubyByb3dzIik7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdLmxl
bmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSBMb2FkKFJXVGV4dHVyZTJEPCR7dHlwZX0+LGludDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0
aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpXSkpOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUyRDwke3R5cGV9Piwke3R5cGV9LHVp
bnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHR1cmVTdG9yZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCB2YWx1ZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRp
b24uZ2V0KDEpXSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KworICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2
b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9Pix1aW50KiB0aHJlYWQg
V2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50c10pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFz
IG5vIGVsZW1lbnRzIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4WzBdLmxlbmd0
aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9y
KCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gcm93cyIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEp
OworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleFswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRo
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXVswXS5sZW5ndGgpLCAxKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhS
V1RleHR1cmUyREFycmF5PCR7dHlwZX0+LGZsb2F0KiB0aHJlYWQgV2lkdGgsZmxvYXQqIHRocmVh
ZCBIZWlnaHQsZmxvYXQqIHRocmVhZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAodGV4Lmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gZWxlbWVudHMiKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXhbMF0ubGVuZ3RoID09IDApCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0
dXJlIGhhcyBubyByb3dzIik7CisgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdLmxl
bmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4WzBdWzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBl
fT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJl
TG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQo
MSksIGxvY2F0aW9uLmdldCgyKV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9Piwke3R5cGV9LHVpbnQz
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHR1cmVTdG9yZSh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCB2YWx1ZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24u
Z2V0KDEpLCBsb2NhdGlvbi5nZXQoMildKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUzRDwke3R5cGV9Pix1aW50
KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRGVwdGgpYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sZW5ndGggPT0gMCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUg
aGFzIG5vIGRlcHRoIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4WzBdLmxlbmd0
aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9y
KCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gcm93cyIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgZGVwdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIu
Ym94KHRleFswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXVswXS5sZW5ndGgpLCAxKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1Rl
eHR1cmUzRDwke3R5cGV9PixmbG9hdCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0
LGZsb2F0KiB0aHJlYWQgRGVwdGgpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3
aWR0aCwgaGVpZ2h0LCBkZXB0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXgg
PSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5s
ZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBF
cnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIGRlcHRoIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAodGV4WzBdLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gcm93cyIp
OworICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0Lmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFsw
XVswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0gTG9hZChSV1RleHR1cmUzRDwke3R5cGV9PixpbnQzIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCks
IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpXSkpOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1
cmUzRDwke3R5cGV9Piwke3R5cGV9LHVpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRleHR1cmVTdG9yZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCB2YWx1ZS5sb2FkVmFsdWUoKSwg
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMildKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBm
dW5jdGlvbiBib3hWZWN0b3IoYSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBsZXQg
cmVzdWx0ID0gbmV3IEVQdHIobmV3IEVCdWZmZXIoYS5sZW5ndGgpLCAwKTsKKyAgICAgICAgICAg
ICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAg
ICAgIHJlc3VsdC5zZXQoaSwgYVtpXSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZm9yIChsZXQgbGVuZ3RoIG9mIFsyLCAzLCA0
XSkgeworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQogCiAgICAgYWRkKHRoaW5nKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbCBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKaW5kZXggNzhkMDA4ZjgzNWY5
ZTljMjM0ZWYyZGY2ZDZkZWVhM2Y3NDI2Y2U2NS4uZGRjNjVlMzY3ZGQ5OTlkZGIxN2QyOWNmNmM1
YzZlNjI1NDFkMmE3MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U1BJUlYuaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1s
CkBAIC0xMzMsNiArMTMzLDcgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplQ29w
eUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJTeW50
aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
IlRleHR1cmVPcGVyYXRpb25zLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVHJhcFN0
YXRlbWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5Lmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCmluZGV4
IDNkZDRmZWUxODYwMGQ1Y2QyYTg5NWFkNWE0Nzk3MjFkYTc3ODhjYzEuLjIxYThkMjkyYjhmYmI1
OGVhYzk4MDNkYjgwYTRlMzMwMWFlZDVjZGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKQEAgLTE4OTcsOSArMTg5NywxMCBAQCBsZXQg
c3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSB2b2lkIEludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlKHRocmVhZCBhdG9taWNfJHt0eXBlfSos
ICR7dHlwZX0sICR7dHlwZX0sIHRocmVhZCAke3R5cGV9Kik7YCk7CiAgICAgICAgIH0KICAgICAg
ICAgcHJpbnQoKTsKLSAgICAgICAgCisgICAgICAgICovCisKICAgICAgICAgZm9yICh2YXIgdHlw
ZSBvZiBbYHVjaGFyYCwgYHVzaG9ydGAsIGB1aW50YCwgYGNoYXJgLCBgc2hvcnRgLCBgaW50YCwg
YGhhbGZgLCBgZmxvYXRgXSkgewotICAgICAgICAgICAgZm9yICh2YXIgbGVuZ3RoIG9mIFtgYCwg
YDJgLCBgM2AsIGA0YF0pIHsKKyAgICAgICAgICAgIGZvciAodmFyIGxlbmd0aCBvZiBbYGAvKiwg
YDJgLCBgM2AsIGA0YCovXSkgewogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBm
bG9hdCBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZs
b2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sIGlu
dDIgbG9jYXRpb24pO2ApOwpAQCAtMjAxMCw3ICsyMDExLDggQEAgbGV0IHN0YW5kYXJkTGlicmFy
eSA9IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICBwcmludCgpOwogICAgICAgICAgICAg
fQogICAgICAgICB9Ci0gICAgICAgIAorCisgICAgICAgIC8qCiAgICAgICAgIGZvciAodmFyIHR5
cGUgb2YgW2BoYWxmYCwgYGZsb2F0YF0pIHsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2Nh
dGlvbik7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGludDIgb2Zmc2V0
KTtgKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRt
bCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbAppbmRleCA2MDdhNjk1
MzI1M2RhNzI3YjFkZTM3Njc4ZWMzODhiNGZhMjQwNDA1Li42OWM5MTA0OTJlZDExYWIyYjMwZTI3
ODNlYWY3ZWJiZmZkZmUxNjBhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9UZXN0Lmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5o
dG1sCkBAIC0xMjcsNiArMTI3LDcgQEAKIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplQ29weUNvbnN0
cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVEZWZh
dWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVGVybmFy
eUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlRleHR1cmVPcGVyYXRpb25z
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUcmFwU3RhdGVtZW50LmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVm
UmVzb2x2ZXIuanMiPjwvc2NyaXB0PgpAQCAtMTUyLDcgKzE1Myw3IEBACiA8c2NyaXB0PgogZnVu
Y3Rpb24gZG9UZXN0SW5Ccm93c2VyKCkKIHsKLSAgICB2YXIgdGVzdGVyID0gZG9UZXN0KC8uKi8p
OworICAgIHZhciB0ZXN0ZXIgPSBkb1Rlc3QoL3RleHR1cmUvKTsKICAgICB2YXIgbGFzdFRpbWU7
CiAgICAgZnVuY3Rpb24gbmV4dCgpCiAgICAgewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVGVzdC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rl
c3QuanMKaW5kZXggMDAwZDA1NDA3MTE1ODUwZmYzMGVjMjM2NmFlYjE4NWFjNTczZGNkMy4uNDk1
ZmVmZTlkMzk1YWQ2YzA4ZGQ5ZjBiZjg3NGViMjI4ZmIwMjgzMiAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UZXN0LmpzCkBAIC05NCw2ICs5NCwxNTcgQEAgZnVuY3Rpb24gbWFrZUVudW0o
cHJvZ3JhbSwgZW51bU5hbWUsIHZhbHVlKQogICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChlbnVt
VHlwZSwgZW51bU1lbWJlci52YWx1ZS51bmlmeU5vZGUudmFsdWVGb3JTZWxlY3RlZFR5cGUpOwog
fQogCitmdW5jdGlvbiBtYWtlU2FtcGxlcihwcm9ncmFtLCBkaWN0KQoreworICAgIC8vIGVudW0g
V2ViR1BVQWRkcmVzc01vZGUgeworICAgIC8vICAgICAiY2xhbXBUb0VkZ2UiLAorICAgIC8vICAg
ICAicmVwZWF0IiwKKyAgICAvLyAgICAgIm1pcnJvclJlcGVhdCIsCisgICAgLy8gICAgICJjbGFt
cFRvQm9yZGVyQ29sb3IiCisgICAgLy8gfQorICAgIC8vIAorICAgIC8vIGVudW0gV2ViR1BVRmls
dGVyTW9kZSB7CisgICAgLy8gICAgICJuZWFyZXN0IiwKKyAgICAvLyAgICAgImxpbmVhciIKKyAg
ICAvLyB9CisgICAgLy8gCisgICAgLy8gZW51bSBXZWJHUFVDb21wYXJlRnVuY3Rpb24geworICAg
IC8vICAgICAibmV2ZXIiLAorICAgIC8vICAgICAibGVzcyIsCisgICAgLy8gICAgICJlcXVhbCIs
CisgICAgLy8gICAgICJsZXNzRXF1YWwiLAorICAgIC8vICAgICAiZ3JlYXRlciIsCisgICAgLy8g
ICAgICJub3RFcXVhbCIsCisgICAgLy8gICAgICJncmVhdGVyRXF1YWwiLAorICAgIC8vICAgICAi
YWx3YXlzIgorICAgIC8vIH0KKyAgICAvLyAKKyAgICAvLyBlbnVtIFdlYkdQVUJvcmRlckNvbG9y
IHsKKyAgICAvLyAgICAgInRyYW5zcGFyZW50QmxhY2siLAorICAgIC8vICAgICAib3BhcXVlQmxh
Y2siLAorICAgIC8vICAgICAib3BhcXVlV2hpdGUiCisgICAgLy8gfQorICAgIC8vIAorICAgIC8v
IGRpY3Rpb25hcnkgV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IgeworICAgIC8vICAgICBXZWJHUFVk
ZHJlc3NNb2RlIHJBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAgLy8gICAgIFdlYkdQ
VWRkcmVzc01vZGUgc0FkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICAvLyAgICAgV2Vi
R1BVZGRyZXNzTW9kZSB0QWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgIC8vICAgICBX
ZWJHUFVGaWx0ZXJNb2RlRW51bSBtYWdGaWx0ZXIgPSAibmVhcmVzdCI7CisgICAgLy8gICAgIFdl
YkdQVUZpbHRlck1vZGVFbnVtIG1pbkZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICAvLyAgICAgV2Vi
R1BVRmlsdGVyTW9kZUVudW0gbWlwbWFwRmlsdGVyID0gIm5lYXJlc3QiOworICAgIC8vICAgICBm
bG9hdCBsb2RNaW5DbGFtcCA9IDA7CisgICAgLy8gICAgIGZsb2F0IGxvZE1heENsYW1wID0gTnVt
YmVyLk1BWF9WQUxVRTsKKyAgICAvLyAgICAgdW5zaWduZWQgbG9uZyBtYXhBbmlzb3Ryb3B5ID0g
MTsKKyAgICAvLyAgICAgV2ViR1BVQ29tcGFyZUZ1bmN0aW9uIGNvbXBhcmVGdW5jdGlvbiA9ICJu
ZXZlciI7CisgICAgLy8gICAgIFdlYkdQVUJvcmRlckNvbG9yIGJvcmRlckNvbG9yID0gInRyYW5z
cGFyZW50QmxhY2siOworICAgIC8vIH07CisKKyAgICBsZXQgc2FtcGxlckRhdGEgPSB7fTsKKyAg
ICBzYW1wbGVyRGF0YS5yQWRkcmVzc01vZGUgPSBkaWN0LnJBZGRyZXNzTW9kZSwKKyAgICBzYW1w
bGVyRGF0YS5zQWRkcmVzc01vZGUgPSBkaWN0LnNBZGRyZXNzTW9kZSwKKyAgICBzYW1wbGVyRGF0
YS50QWRkcmVzc01vZGUgPSBkaWN0LnRBZGRyZXNzTW9kZSwKKyAgICBzYW1wbGVyRGF0YS5tYWdG
aWx0ZXIgPSBkaWN0Lm1hZ0ZpbHRlcjsKKyAgICBzYW1wbGVyRGF0YS5taW5GaWx0ZXIgPSBkaWN0
Lm1pbkZpbHRlcgorICAgIHNhbXBsZXJEYXRhLm1pcG1hcEZpbHRlciA9IGRpY3QubWlwbWFwRmls
dGVyOworICAgIHNhbXBsZXJEYXRhLmxvZE1pbkNsYW1wID0gZGljdC5sb2RNaW5DbGFtcCwKKyAg
ICBzYW1wbGVyRGF0YS5sb2RNYXhDbGFtcCA9IGRpY3QubG9kTWF4Q2xhbXAsCisgICAgc2FtcGxl
ckRhdGEubWF4QW5pc290cm9weSA9IGRpY3QubWF4QW5pc290cm9weSwKKyAgICBzYW1wbGVyRGF0
YS5jb21wYXJlRnVuY3Rpb24gPSBkaWN0LmNvbXBhcmVGdW5jdGlvbjsKKyAgICBzYW1wbGVyRGF0
YS5ib3JkZXJDb2xvciA9IGRpY3QuYm9yZGVyQ29sb3I7CisKKyAgICBpZiAoc2FtcGxlckRhdGEu
ckFkZHJlc3NNb2RlID09IHVuZGVmaW5lZCkKKyAgICAgICAgc2FtcGxlckRhdGEuckFkZHJlc3NN
b2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICBpZiAoc2FtcGxlckRhdGEuc0FkZHJlc3NNb2RlID09
IHVuZGVmaW5lZCkKKyAgICAgICAgc2FtcGxlckRhdGEuc0FkZHJlc3NNb2RlID0gImNsYW1wVG9F
ZGdlIjsKKyAgICBpZiAoc2FtcGxlckRhdGEudEFkZHJlc3NNb2RlID09IHVuZGVmaW5lZCkKKyAg
ICAgICAgc2FtcGxlckRhdGEudEFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICBpZiAo
c2FtcGxlckRhdGEubWluRmlsdGVyID09IHVuZGVmaW5lZCkKKyAgICAgICAgc2FtcGxlckRhdGEu
bWluRmlsdGVyID0gIm5lYXJlc3QiOworICAgIGlmIChzYW1wbGVyRGF0YS5tYWdGaWx0ZXIgPT0g
dW5kZWZpbmVkKQorICAgICAgICBzYW1wbGVyRGF0YS5tYWdGaWx0ZXIgPSAibmVhcmVzdCI7Cisg
ICAgaWYgKHNhbXBsZXJEYXRhLm1pcEZpbHRlciA9PSB1bmRlZmluZWQpCisgICAgICAgIHNhbXBs
ZXJEYXRhLm1pcEZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICBpZiAoc2FtcGxlckRhdGEubG9kTWlu
Q2xhbXAgPT0gdW5kZWZpbmVkKQorICAgICAgICBzYW1wbGVyRGF0YS5sb2RNaW5DbGFtcCA9IDA7
CisgICAgaWYgKHNhbXBsZXJEYXRhLmxvZE1heENsYW1wID09IHVuZGVmaW5lZCkKKyAgICAgICAg
c2FtcGxlckRhdGEubG9kTWF4Q2xhbXAgPSBOdW1iZXIuTUFYX1ZBTFVFOworICAgIGlmIChzYW1w
bGVyRGF0YS5tYXhBbmlzb3Ryb3B5ID09IHVuZGVmaW5lZCkKKyAgICAgICAgc2FtcGxlckRhdGEu
bWF4QW5pc290cm9weSA9IDE7CisgICAgaWYgKHNhbXBsZXJEYXRhLmNvbXBhcmVGdW5jdGlvbiA9
PSB1bmRlZmluZWQpCisgICAgICAgIHNhbXBsZXJEYXRhLmNvbXBhcmVGdW5jdGlvbiA9ICJuZXZl
ciI7CisgICAgaWYgKHNhbXBsZXJEYXRhLmJvcmRlckNvbG9yID09IHVuZGVmaW5lZCkKKyAgICAg
ICAgc2FtcGxlckRhdGEuYm9yZGVyQ29sb3IgPSAidHJhbnNwYXJlbnRCbGFjayI7CisgICAgcmV0
dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljcy5zYW1wbGVyLCBzYW1wbGVyRGF0
YSk7Cit9CisKKy8vIEVsZW1lbnRzIG1heSBlaXRoZXIgYmUgYSBudW1iZXIgb3IgYSB2ZWN0b3Ig
b2YgMi00IG51bWJlcnMuCisvLyAxRCBUZXh0dXJlOiBBbiBhcnJheSBvZiBtaXBtYXBzLiBUaGUg
Zmlyc3QgbWlwbWFwIGlzIHRoZSBmdWxsIHNpemUsIGFuZCBpcyBhIHBvd2VyLW9mLXR3by4gRWFj
aCBtaXBtYXAgaXMgaGFsZi1zaXplIG9mIHRoZSBwcmV2aW91cyBzaXplLgorLy8gMUQgVGV4dHVy
ZSBBcnJheTogQW4gYXJyYXkgb2YgMUQgdGV4dHVyZXMKKy8vIDJEIFRleHR1cmU6IEFuIGFycmF5
IG9mIG1pcG1hcHMuIFRoZSBmaXJzdCBtaXBtYXAgaXMgYSByZWN0YW5ndWxhciBhcnJheSBvZiBy
b3dzLCBhbmQgZWFjaCByb3cgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuIEJvdGggdGhlIHJvdyBh
bmQgY29sdW1uIGNvdW50cyBtdXN0IGJlIHBvd2VycyBvZiB0d28uIEVhY2ggbWlwbWFwIGlzIGhh
bGYtd2lkdGggYW5kIGhhbGYtaGVpZ2h0IG9mIHRoZSBwcmV2aW91cyBzaXplLgorLy8gMkQgVGV4
dHVyZSBBcnJheTogQW4gYXJyYXkgb2YgMkQgdGV4dHVyZXMKKy8vIDNEIFRleHR1cmU6IEFuIGFy
cmF5IG9mIG1pcG1hcHMuIFRoZSBmaXJzdCBtaXBtYXAgaXMgYSByZWN0YW5ndWxhciBhcnJheSBv
ZiBjb2x1bW5zLCBlYWNoIGNvbHVtbiBpcyBhbiBhcnJheSBvZiByb3dzLCBhbmQgZWFjaCByb3cg
aXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuIEJvdGggZGVwdGgsIHJvdywgYW5kIGNvbHVtbiBjb3Vu
dHMgbXVzdCBiZSBwb3dlcnMgb2YgdHdvLiBFYWNoIG1pcG1hcCBpcyBoYWxmLWRlcHRoLCBoYWxm
LWhlaWdodCwgYW5kIGhhbGYtd2lkdGggb2YgdGhlIHByZXZpb3VzIHNpemUuCisvLyBUZXh0dXJl
IEN1YmU6IEFuIGFycmF5IG9mIDYgMkQgdGV4dHVyZXMuCisvLyBSVyAxRCBUZXh0dXJlOiBBbiBh
cnJheSBvZiBlbGVtZW50cy4gVGhlIHdpZHRoIG11c3QgYmUgYSBwb3dlci1vZi10d28uCisvLyBS
VyAxRCBUZXh0dXJlIEFycmF5OiBBbiBhcnJheSBvZiBSVyAxRCB0ZXh0dXJlcworLy8gUlcgMkQg
VGV4dHVyZTogQSByZWN0YW5ndWxhciBhcnJheSBvZiByb3dzLCBhbmQgZWFjaCByb3cgaXMgYW4g
YXJyYXkgb2YgZWxlbWVudHMuIEJvdGggdGhlIHJvdyBhbmQgY29sdW1uIGNvdW50cyBtdXN0IGJl
IHBvd2VycyBvZiB0d28uCisvLyBSVyAyRCBUZXh0dXJlIEFycmF5OiBBbiBhcnJheSBvZiBSVyAy
RCB0ZXh0dXJlcworLy8gUlcgM0QgVGV4dHVyZTogQSByZWN0YW5ndWxhciBhcnJheSBvZiBjb2x1
bW5zLCBlYWNoIGNvbHVtbiBpcyBhbiBhcnJheSBvZiByb3dzLCBhbmQgZWFjaCByb3cgaXMgYW4g
YXJyYXkgb2YgZWxlbWVudHMuIEJvdGggZGVwdGgsIHJvdywgYW5kIGNvbHVtbiBjb3VudHMgbXVz
dCBiZSBwb3dlcnMgb2YgdHdvLgorCitmdW5jdGlvbiBtYWtlMURUZXh0dXJlKHByb2dyYW0sIG1p
cG1hcHMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFt
LmludHJpbnNpY3NbYFRleHR1cmUxRDwke2VsZW1lbnRUeXBlfT5gXSwgbWlwbWFwcyk7Cit9CisK
K2Z1bmN0aW9uIG1ha2UxRFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUp
Cit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVy
ZTFEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIGFycmF5KTsKK30KKworZnVuY3Rpb24gbWFrZTJE
VGV4dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlw
ZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlMkQ8JHtlbGVtZW50VHlwZX0+
YF0sIG1pcG1hcHMpOworfQorCitmdW5jdGlvbiBtYWtlMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwg
YXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFt
LmludHJpbnNpY3NbYFRleHR1cmUyREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBhcnJheSk7Cit9
CisKK2Z1bmN0aW9uIG1ha2UzRFRleHR1cmUocHJvZ3JhbSwgbWlwbWFwcywgZWxlbWVudFR5cGUp
Cit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVy
ZTNEPCR7ZWxlbWVudFR5cGV9PmBdLCBtaXBtYXBzKTsKK30KKworZnVuY3Rpb24gbWFrZVRleHR1
cmVDdWJlKHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRW
YWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlQ3ViZTwke2VsZW1lbnRUeXBlfT5g
XSwgYXJyYXkpOworfQorCitmdW5jdGlvbiBtYWtlUlcxRFRleHR1cmUocHJvZ3JhbSwgZWxlbWVu
dHMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmlu
dHJpbnNpY3NbYFJXVGV4dHVyZTFEPCR7ZWxlbWVudFR5cGV9PmBdLCBlbGVtZW50cyk7Cit9CisK
K2Z1bmN0aW9uIG1ha2VSVzFEVGV4dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlw
ZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1Rl
eHR1cmUxREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBhcnJheSk7Cit9CisKK2Z1bmN0aW9uIG1h
a2VSVzJEVGV4dHVyZShwcm9ncmFtLCByb3dzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4g
VHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUyRDwke2VsZW1lbnRU
eXBlfT5gXSwgcm93cyk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzJEVGV4dHVyZUFycmF5KHByb2dy
YW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJv
Z3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUyREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBhcnJh
eSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzNEVGV4dHVyZShwcm9ncmFtLCBkZXB0aCwgZWxlbWVu
dFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tg
UldUZXh0dXJlM0Q8JHtlbGVtZW50VHlwZX0+YF0sIGRlcHRoKTsKK30KKwogZnVuY3Rpb24gY2hl
Y2tOdW1iZXIocHJvZ3JhbSwgcmVzdWx0LCBleHBlY3RlZCkKIHsKICAgICBpZiAoIXJlc3VsdC50
eXBlLnVuaWZ5Tm9kZS5pc051bWJlcikKQEAgLTU1ODIsNyArNTczMywzNzAgQEAgdGVzdHMuRElT
QUJMRURfYXJyYXlJbmRleCA9IGZ1bmN0aW9uKCkgewogICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VVaW50KHByb2dyYW0sIDIpIF0pLCAzKTsKICAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0s
IDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSBdKSwgNCk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSkgXSksIDUpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDIpIF0pLCA2KTsgICAgCisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMikgXSksIDYpOworfQorCit0ZXN0cy50ZXh0
dXJlRGltZW5zaW9ucyA9IGZ1bmN0aW9uKCkgeworICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAK
KyAgICAgICAgdWludCBmb28xKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAg
ICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAg
ICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJm51bWJlck9mTGV2ZWxzKTsK
KyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIo
VGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAg
ICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnMo
dGV4dHVyZSwgMCwgJndpZHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJu
IG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMyhUZXh0dXJlMURB
cnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAg
ICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAg
ICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZlbGVtZW50cywgJm51
bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAg
ICAgICB1aW50IGZvbzQoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAg
ICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAg
dWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwg
MCwgJndpZHRoLCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1
cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb281KFRleHR1cmUxREFycmF5
PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAg
dWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAg
ICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmVsZW1lbnRzLCAmbnVtYmVy
T2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9
CisgICAgICAgIHVpbnQgZm9vNihUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAg
ICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVp
bnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAs
ICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3
aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzcoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0
dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7
CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5z
aW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAg
ICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vOChUZXh0
dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAg
ICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAg
ICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJl
ck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAg
fQorICAgICAgICB1aW50IGZvbzkoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAg
ICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAg
ICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAg
ICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVt
ZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAg
ICAgfQorICAgICAgICB1aW50IGZvbzEwKFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7
CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAg
ICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsK
KyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAm
ZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0Owor
ICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTEoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1
cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsK
KyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2
ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWln
aHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVt
ZW50czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzEyKFRleHR1cmUyREFycmF5PGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1i
ZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRo
LCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1
cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xMyhUZXh0dXJl
M0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAg
ICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICB1aW50
IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAm
d2lkdGgsICZoZWlnaHQsICZkZXB0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJl
dHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE0KFRleHR1cmUzRDxmbG9h
dD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQg
aGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVy
T2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwg
JmhlaWdodCwgJmRlcHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGhl
aWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE1KFRleHR1cmUzRDxmbG9hdD4gdGV4
dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0
OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZl
bHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdo
dCwgJmRlcHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGRlcHRoOwor
ICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTYoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7
CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAg
ICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAg
ICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZGVw
dGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7
CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xNyhUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVy
ZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0Owor
ICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAg
ICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTgoVGV4dHVy
ZUN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAg
ICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAg
ICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJl
ck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAg
ICAgdWludCBmb28xOShUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAg
dWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBu
dW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndp
ZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJl
ck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjAoUldUZXh0dXJlMUQ8Zmxv
YXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICBHZXRE
aW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7Cisg
ICAgICAgIH0KKyAgICAgICAgdWludCBmb28yMShSV1RleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0
dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBlbGVtZW50
czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmZWxlbWVudHMp
OworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9v
MjIoUldUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3
aWR0aDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNp
b25zKHRleHR1cmUsICZ3aWR0aCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVt
ZW50czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIzKFJXVGV4dHVyZTJEPGZsb2F0PiB0
ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWln
aHQ7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCk7
CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28y
NChSV1RleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsK
KyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0
dXJlLCAmd2lkdGgsICZoZWlnaHQpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAg
ICAgfQorICAgICAgICB1aW50IGZvbzI1KFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUp
IHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAg
ICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1
cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0
aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI2KFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+
IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhl
aWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNp
b25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJl
dHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yNyhSV1RleHR1cmUyREFy
cmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAg
ICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAg
R2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cyk7CisgICAg
ICAgICAgICByZXR1cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yOChS
V1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAg
ICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAg
ICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgpOworICAg
ICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjkoUldU
ZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAg
ICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAg
ICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoKTsKKyAgICAg
ICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28zMChSV1Rl
eHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAg
ICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAg
IEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgpOworICAgICAg
ICAgICAgcmV0dXJuIGRlcHRoOworICAgICAgICB9CisgICAgYCk7CisgICAgbGV0IHRleHR1cmUx
RCA9IG1ha2UxRFRleHR1cmUocHJvZ3JhbSwgW1sxLCA3LCAxNCwgNzldLCBbMTMsIDE2XSwgWzE1
XV0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlMURBcnJheSA9IG1ha2UxRFRleHR1cmVBcnJh
eShwcm9ncmFtLCBbW1sxLCA3LCAxNCwgNzldLCBbMTMsIDE2XSwgWzE1XV0sIFtbMTYsIDE3LCAx
OCwgMTldLCBbMjAsIDIxXSwgWzIyXV1dLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZTJEID0g
bWFrZTJEVGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywg
OF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsx
NywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgs
IDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzZdLAorICAgICAgICBb
MzcsIDM4LCAzOSwgNDBdXSwKKyAgICAgICAgW1s0MSwgNDJdXQorICAgIF0sICJmbG9hdCIpOwor
ICAgIGxldCB0ZXh0dXJlMkRBcnJheSA9IG1ha2UyRFRleHR1cmVBcnJheShwcm9ncmFtLCBbWwor
ICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAx
MiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMs
IDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAg
ICBbWzMzLCAzNCwgMzUsIDM2XSwKKyAgICAgICAgWzM3LCAzOCwgMzksIDQwXV0sCisgICAgICAg
IFtbNDEsIDQyXV0KKyAgICBdLCBbCisgICAgICAgIFtbNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwg
NDksIDUwXSwKKyAgICAgICAgWzUxLCA1MiwgNTMsIDU0LCA1NSwgNTYsIDU3LCA1OF0sCisgICAg
ICAgIFs1OSwgNjAsIDYxLCA2MiwgNjMsIDY0LCA2NSwgNjZdLAorICAgICAgICBbNjcsIDY4LCA2
OSwgNzAsIDcxLCA3MiwgNzMsIDc0XV0sCisgICAgICAgIFtbNzUsIDc2LCA3NywgNzhdLAorICAg
ICAgICBbNzksIDgwLCA4MSwgODJdXSwKKyAgICAgICAgW1s4MywgODRdXQorICAgIF1dLCAiZmxv
YXQiKTsKKyAgICBsZXQgdGV4dHVyZTNEID0gbWFrZTNEVGV4dHVyZShwcm9ncmFtLCBbCisgICAg
ICAgIFtbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwg
MTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0
XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBb
WzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0
LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAg
ICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dXSwKKyAgICAgICAgW1tbMzMs
IDM0LCAzNSwgMzZdLAorICAgICAgICBbMzcsIDM4LCAzOSwgNDBdXV0KKyAgICBdLCAiZmxvYXQi
KTsKKyAgICBsZXQgdGV4dHVyZUN1YmUgPSBtYWtlVGV4dHVyZUN1YmUocHJvZ3JhbSwgW1sKKyAg
ICAgICAgW1sxLCAyXSwKKyAgICAgICAgWzMsIDRdLAorICAgICAgICBbNSwgNl0sCisgICAgICAg
IFs3LCA4XV0sCisgICAgICAgIFtbOV0sCisgICAgICAgIFsxMF1dLAorICAgIF0sIFsKKyAgICAg
ICAgW1sxMSwgMTJdLAorICAgICAgICBbMTMsIDE0XSwKKyAgICAgICAgWzE1LCAxNl0sCisgICAg
ICAgIFsxNywgMThdXSwKKyAgICAgICAgW1sxOV0sCisgICAgICAgIFsyMF1dLAorICAgIF0sIFsK
KyAgICAgICAgW1syMSwgMjJdLAorICAgICAgICBbMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNl0s
CisgICAgICAgIFsyNywgMjhdXSwKKyAgICAgICAgW1syOV0sCisgICAgICAgIFszMF1dLAorICAg
IF0sIFsKKyAgICAgICAgW1szMSwgMzJdLAorICAgICAgICBbMzMsIDM0XSwKKyAgICAgICAgWzM1
LCAzNl0sCisgICAgICAgIFszNywgMzhdXSwKKyAgICAgICAgW1szOV0sCisgICAgICAgIFs0MF1d
LAorICAgIF0sIFsKKyAgICAgICAgW1s0MSwgNDJdLAorICAgICAgICBbNDMsIDQ0XSwKKyAgICAg
ICAgWzQ1LCA0Nl0sCisgICAgICAgIFs0NywgNDhdXSwKKyAgICAgICAgW1s0OV0sCisgICAgICAg
IFs1MF1dLAorICAgIF0sIFsKKyAgICAgICAgW1s1MSwgNTJdLAorICAgICAgICBbNTMsIDU0XSwK
KyAgICAgICAgWzU1LCA1Nl0sCisgICAgICAgIFs1NywgNThdXSwKKyAgICAgICAgW1s1OV0sCisg
ICAgICAgIFs2MF1dLAorICAgIF1dLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlMUQgPSBt
YWtlUlcxRFRleHR1cmUocHJvZ3JhbSwgWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLCAiZmxvYXQi
KTsKKyAgICBsZXQgcndUZXh0dXJlMURBcnJheSA9IG1ha2VSVzFEVGV4dHVyZUFycmF5KHByb2dy
YW0sIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1
LCAxNl0sIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdXSwgImZsb2F0Iik7CisgICAg
bGV0IHJ3VGV4dHVyZTJEID0gbWFrZVJXMkRUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAgICAgWzEs
IDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAx
NSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAg
ICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLCAiZmxvYXQiKTsKKyAgICBsZXQg
cndUZXh0dXJlMkRBcnJheSA9IG1ha2VSVzJEVGV4dHVyZUFycmF5KHByb2dyYW0sIFsKKyAgICAg
ICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEz
LCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0s
CisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1sz
MywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDBdLAorICAgICAgICBbNDEsIDQyLCA0MywgNDQs
IDQ1LCA0NiwgNDcsIDQ4XSwKKyAgICAgICAgWzQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1
Nl0sCisgICAgICAgIFs1NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2MywgNjRdXV0sICJmbG9hdCIp
OworICAgIGxldCByd1RleHR1cmUzRCA9IG1ha2VSVzNEVGV4dHVyZShwcm9ncmFtLCBbCisgICAg
ICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAx
MywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRd
LAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtb
MzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwXSwKKyAgICAgICAgWzQxLCA0MiwgNDMsIDQ0
LCA0NSwgNDYsIDQ3LCA0OF0sCisgICAgICAgIFs0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwg
NTZdLAorICAgICAgICBbNTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjMsIDY0XV1dLCAiZmxvYXQi
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3RleHR1cmUxRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yIiwgW3RleHR1cmUxRF0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5XSksIDQpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVy
ZTFEQXJyYXldKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNSIsIFt0ZXh0dXJlMURBcnJheV0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRF0pLCA4KTsKKyAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUy
RF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b284IiwgW3RleHR1cmUyRF0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUyREFycmF5XSksIDgpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUyREFycmF5
XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzExIiwgW3RleHR1cmUyREFycmF5XSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1cmUyREFycmF5XSksIDMpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3RleHR1cmUz
RF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNCIsIFt0ZXh0dXJlM0RdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTNEXSksIDIpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUzRF0pLCAyKTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0
ZXh0dXJlQ3ViZV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlQ3ViZV0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlQ3ViZV0pLCAyKTsKKyAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1Rl
eHR1cmUxRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yMSIsIFtyd1RleHR1cmUxREFycmF5XSksIDgpOworICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3J3VGV4dHVyZTFEQXJyYXldKSwg
Myk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMi
LCBbcndUZXh0dXJlMkRdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjQiLCBbcndUZXh0dXJlMkRdKSwgNCk7CisgICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjUiLCBbcndUZXh0dXJlMkRBcnJheV0p
LCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
NiIsIFtyd1RleHR1cmUyREFycmF5XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI3IiwgW3J3VGV4dHVyZTJEQXJyYXldKSwgMik7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjgiLCBbcndUZXh0
dXJlM0RdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjkiLCBbcndUZXh0dXJlM0RdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzAiLCBbcndUZXh0dXJlM0RdKSwgMik7Cit9CisKK3Rl
c3RzLnRleHR1cmVMb2FkID0gZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAo
YAorICAgICAgICBmbG9hdCBmb28oVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgbWlwbWFw
LCBpbnQgbG9jYXRpb24pIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIo
bWlwbWFwLCBsb2NhdGlvbikpOworICAgICAgICB9CisgICAgYCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlMURUZXh0dXJlKHByb2dy
YW0sIFtbMSwgNywgMTQsIDc5XSwgWzEzLCAxNl0sIFsxNV1dLCAiZmxvYXQiKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2UxRFRleHR1cmUocHJvZ3Jh
bSwgW1sxLCA3LCAxNCwgNzldLCBbMTMsIDE2XSwgWzE1XV0sICJmbG9hdCIpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKIH0KIAogb2tUb1Rlc3QgPSB0
cnVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9w
ZXJhdGlvbnMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlT3BlcmF0
aW9ucy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mNGI4OTkzYTlkZTE1YzJhMjY3YTEzMzY4NzVhMjA5OWQxNGUz
YTg1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4
dHVyZU9wZXJhdGlvbnMuanMKQEAgLTAsMCArMSw0ODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworInVzZSBzdHJpY3QiOworCitmdW5jdGlvbiB0ZXh0dXJl
TG9hZCh0ZXh0dXJlLCBwYXRoKQoreworICAgIGZvciAodmFyIGluZGV4IG9mIHBhdGgpIHsKKyAg
ICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSB0ZXh0dXJlLmxlbmd0aCkKKyAgICAgICAg
ICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBi
b3VuZHMiKTsKKyAgICAgICAgdGV4dHVyZSA9IHRleHR1cmVbaW5kZXhdOworICAgIH0KKyAgICBy
ZXR1cm4gdGV4dHVyZTsKK30KKworZnVuY3Rpb24gdGV4dHVyZVN0b3JlKHRleHR1cmUsIHZhbHVl
LCBwYXRoKQoreworICAgIGRvIHsKKyAgICAgICAgaWYgKHBhdGgubGVuZ3RoID09IDApCisgICAg
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlplcm8tbGVuZ3RoIHN0b3JlIHBhdGgiKTsKKyAgICAg
ICAgaWYgKHBhdGgubGVuZ3RoID09IDEpIHsKKyAgICAgICAgICAgIHRleHR1cmVbcGF0aFswXV0g
PSB2YWx1ZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIHRleHR1cmUgPSB0ZXh0dXJlW3BhdGhbMF1dOworICAgICAgICAgICAgcGF0aC5zaGlmdCgp
OworICAgICAgICB9CisgICAgfSB3aGlsZSAodHJ1ZSk7Cit9CisKK2Z1bmN0aW9uIGRlcHRoQ29t
cGFyZU9wZXJhdGlvbihkcmVmLCBkLCBjb21wYXJlRnVuY3Rpb24pCit7CisgICAgLy8gVnVsa2Fu
IDEuMS44MyBzZWN0aW9uIDE1LjMuNAorICAgIHN3aXRjaCAoY29tcGFyZUZ1bmN0aW9uKSB7Cisg
ICAgICAgIGNhc2UgIm5ldmVyIjoKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBjYXNl
ICJsZXNzIjoKKyAgICAgICAgICAgIHJldHVybiBkcmVmIDwgZCA/IDEgOiAwOworICAgICAgICBj
YXNlICJlcXVhbCI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiA9PSBkID8gMSA6IDA7CisgICAg
ICAgIGNhc2UgImxlc3NFcXVhbCI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiA8PSBkID8gMSA6
IDA7CisgICAgICAgIGNhc2UgImdyZWF0ZXIiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYgPiBk
ID8gMSA6IDA7CisgICAgICAgIGNhc2UgIm5vdEVxdWFsIjoKKyAgICAgICAgICAgIHJldHVybiBk
cmVmICE9IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAiZ3JlYXRlckVxdWFsIjoKKyAgICAgICAg
ICAgIHJldHVybiBkcmVmID49IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAiYWx3YXlzIjoKKyAg
ICAgICAgICAgIHJldHVybiAxOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJVbmtub3duIGRlcHRoIGNvbXBhcmlzb24gZnVuY3Rpb24iKTsKKyAgICB9Cit9
CisKK2Z1bmN0aW9uIGNvbnZlcnNpb25Ub1JHQkEodmFsdWUpCit7CisgICAgLy8gVnVsa2FuIDEu
MS44MyBzZWN0aW9uIDE1LjMuNQorICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7Cisg
ICAgICAgIHZhciByZXN1bHQgPSBbXTsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1
ZS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlW2ldKTsKKyAgICAg
ICAgd2hpbGUgKHJlc3VsdC5sZW5ndGggIT0gNCkKKyAgICAgICAgICAgIHJlc3VsdC5wdXNoKHJl
c3VsdC5sZW5ndGggPT0gMyA/IDEgOiAwKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9
IGVsc2UKKyAgICAgICAgcmV0dXJuIFt2YWx1ZSwgMCwgMCwgMV07Cit9CisKKy8vRm9yIGV4cGxp
Y2l0IExPRCBpbWFnZSBpbnN0cnVjdGlvbnMsIGlmIHRoZSBvcHRpb25hbCBTUElSLVYgb3BlcmFu
ZCBHcmFkIGlzIHByb3ZpZGVkLCB0aGVuIHRoZSBvcGVyYW5kIHZhbHVlcyBhcmUgdXNlZCBmb3Ig
dGhlIGRlcml2YXRpdmVzLiBUaGUgbnVtYmVyIG9mIGNvbXBvbmVudHMgcHJlc2VudCBpbiBlYWNo
IGRlcml2YXRpdmUgZm9yIGEgZ2l2ZW4gaW1hZ2UgZGltZW5zaW9uYWxpdHkgbWF0Y2hlcyB0aGUg
bnVtYmVyIG9mIHBhcnRpYWwgZGVyaXZhdGl2ZXMgY29tcHV0ZWQgYWJvdmUuCisvL0lmIHRoZSBv
cHRpb25hbCBTUElSLVYgb3BlcmFuZCBMb2QgaXMgcHJvdmlkZWQsIHRoZW4gZGVyaXZhdGl2ZXMg
YXJlIHNldCB0byB6ZXJvLCB0aGUgY3ViZSBtYXAgZGVyaXZhdGl2ZSB0cmFuc2Zvcm1hdGlvbiBp
cyBza2lwcGVkLCBhbmQgdGhlIHNjYWxlIGZhY3RvciBvcGVyYXRpb24gaXMgc2tpcHBlZC4gSW5z
dGVhZCwgdGhlIGZsb2F0aW5nIHBvaW50IHNjYWxhciBjb29yZGluYXRlIGlzIGRpcmVjdGx5IGFz
c2lnbmVkIHRvIM67YmFzZSBhcyBkZXNjcmliZWQgaW4gTGV2ZWwtb2YtRGV0YWlsIE9wZXJhdGlv
bi4KK2Z1bmN0aW9uIGltcGxpY2l0RGVyaXZhdGl2ZSgpCit7CisgICAgLy8gVnVsa2FuIDEuMS44
MyBzZWN0aW9uIDE1LjUKKyAgICByZXR1cm4gMDsKK30KKworZnVuY3Rpb24gcHJvamVjdGlvbk9w
ZXJhdGlvbihzLCB0LCByLCBkcmVmLCBxKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlv
biAxNS42LjEKKyAgICByZXR1cm4gW3MgLyBxLCB0IC8gcSwgciAvIHEsIGRyZWYgLyBxXTsKK30K
KworZnVuY3Rpb24gY3ViZU1hcEZhY2VTZWxlY3Rpb24ocywgdCwgciwgcGFydGlhbFJ4V2l0aFJl
c3BlY3RUb1gsIHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUnlXaXRoUmVzcGVjdFRv
WCwgcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSeldpdGhSZXNwZWN0VG9YLCBwYXJ0
aWFsUnpXaXRoUmVzcGVjdFRvWSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUu
Ni40CisgICAgbGV0IHJ4ID0gczsKKyAgICBsZXQgcnkgPSB0OworICAgIGxldCByeiA9IHI7Cisg
ICAgbGV0IHdpbm5lciA9IDA7CisgICAgaWYgKE1hdGguYWJzKHJ6KSA+PSBNYXRoLmFicyhyeSkg
JiYgTWF0aC5hYnMocnopID49IE1hdGguYWJzKHJ4KSkKKyAgICAgICAgd2lubmVyID0gMjsKKyAg
ICBlbHNlIGlmIChNYXRoLmFicyhyeSkgPj0gTWF0aC5hYnMocngpICYmIE1hdGguYWJzKHJ5KSA+
PSBNYXRoLmFicyhyeikpCisgICAgICAgIHdpbm5lciA9IDE7CisKKyAgICBsZXQgbGF5ZXJOdW1i
ZXI7CisgICAgbGV0IHNjOworICAgIGxldCB0YzsKKyAgICBsZXQgcmM7CisgICAgbGV0IHBhcnRp
YWxTY1dpdGhSZXNwZWN0VG9YOworICAgIGxldCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWTsKKyAg
ICBsZXQgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1g7CisgICAgbGV0IHBhcnRpYWxUY1dpdGhSZXNw
ZWN0VG9ZOworICAgIGxldCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWDsKKyAgICBsZXQgcGFydGlh
bFJjV2l0aFJlc3BlY3RUb1k7CisgICAgaWYgKHdpbm5lciA9PSAwICYmIHJ4ID49IDApIHsKKyAg
ICAgICAgbGF5ZXJOdW1iZXIgPSAwOworICAgICAgICBzYyA9IC1yejsKKyAgICAgICAgdGMgPSAt
cnk7CisgICAgICAgIHJjID0gcng7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0g
LXBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRv
WSA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3Bl
Y3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhS
ZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNX
aXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFs
UmNXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxzZSBp
ZiAod2lubmVyID09IDApIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSAxOworICAgICAgICBzYyA9
IHJ6OworICAgICAgICB0YyA9IC1yeTsKKyAgICAgICAgcmMgPSByeDsKKyAgICAgICAgcGFydGlh
bFNjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFy
dGlhbFNjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAg
cGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAg
ICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOwor
ICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnhXaXRoUmVzcGVjdFRv
WDsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ4V2l0aFJlc3Bl
Y3RUb1k7CisgICAgfSBlbHNlIGlmICh3aW5uZXIgPT0gMSAmJiByeSA+PSAwKSB7CisgICAgICAg
IGxheWVyTnVtYmVyID0gMjsKKyAgICAgICAgc2MgPSByeDsKKyAgICAgICAgdGMgPSAtcno7Cisg
ICAgICAgIHJjID0gcnk7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gcGFydGlh
bFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0gcGFy
dGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0g
cGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9Z
ID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0
VG9YID0gcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNw
ZWN0VG9ZID0gcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgfSBlbHNlIGlmICh3aW5uZXIg
PT0gMSkgeworICAgICAgICBsYXllck51bWJlciA9IDM7CisgICAgICAgIHNjID0gcng7CisgICAg
ICAgIHRjID0gLXJ6OworICAgICAgICByYyA9IHJ5OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVz
cGVjdFRvWCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRo
UmVzcGVjdFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNX
aXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlh
bFRjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBh
cnRpYWxSY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAg
ICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAg
ICB9IGVsc2UgaWYgKHdpbm5lciA9PSAyICYmIHJ6ID49IDApIHsKKyAgICAgICAgbGF5ZXJOdW1i
ZXIgPSA0OworICAgICAgICBzYyA9IHJ4OworICAgICAgICB0YyA9IC1yeTsKKyAgICAgICAgcmMg
PSByejsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnhXaXRoUmVz
cGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnhXaXRo
UmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5
V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRp
YWxSeVdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IHBh
cnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9
IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxzZSB7CisgICAgICAgIGxheWVyTnVt
YmVyID0gNTsKKyAgICAgICAgc2MgPSAtcng7CisgICAgICAgIHRjID0gLXJ5OworICAgICAgICBy
YyA9IHJ6OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnhXaXRo
UmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ4
V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRp
YWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1w
YXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gg
PSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0
VG9ZID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgIH0KKyAgICByZXR1cm4gW2xheWVy
TnVtYmVyLCBzYywgdGMsIHJjLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNjV2l0
aFJlc3BlY3RUb1ksIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVGNXaXRoUmVzcGVj
dFRvWSwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZXQor
fQorCitmdW5jdGlvbiBjdWJlTWFwQ29vcmRpbmF0ZVRyYW5zZm9ybWF0aW9uKHNjLCByYykKK3sK
KyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi41CisgICAgbGV0IHNGYWNlID0gKDEg
LyAyKSAqIHNjIC8gTWF0aC5hYnMocmMpICsgKDEgLyAyKTsKKyAgICBsZXQgdEZhY2UgPSAoMSAv
IDIpICogdGMgLyBNYXRoLmFicyhyYykgKyAoMSAvIDIpOworICAgIHJldHVybiBbc0ZhY2UsIHRG
YWNlXTsKK30KKworZnVuY3Rpb24gY3ViZU1hcERlcml2YXRpdmVUcmFuc2Zvcm1hdGlvbihzYywg
dGMsIHJjLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ks
IHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSwgcGFydGlh
bFJjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZKQoreworICAgIC8vIFZ1
bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjYKKyAgICBsZXQgcGFydGlhbFNGYWNlV2l0aFJlc3Bl
Y3RUb1ggPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRv
WCAtIHNjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAg
ICBsZXQgcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1kgPSAoMSAvIDIpICogKChNYXRoLmFicyhy
YykgKiBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSAtIHNjICogcGFydGlhbFJjV2l0aFJlc3BlY3RU
b1kpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICBsZXQgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RU
b1ggPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCAt
IHRjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICBs
ZXQgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1kgPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykg
KiBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSAtIHRjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kp
IC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICByZXR1cm4gW3BhcnRpYWxTRmFjZVdpdGhSZXNwZWN0
VG9YLCBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RU
b1gsIHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0VG9ZXTsKK30KKworZnVuY3Rpb24gc2NhbGVGYWN0
b3JPcGVyYXRpb24oKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjcKKyAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCit9CisKK2Z1bmN0aW9uIGxldmVsT2ZEZXRhaWxP
cGVyYXRpb24obWF4U2FtcGxlckxvZEJpYXMsIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsIGxvZE1p
bkZyb21GdW5jdGlvbk9wZXJhbmQsIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLCBzYW1wbGVyQmlh
cywgc2FtcGxlckxvZE1pbiwgc2FtcGxlckxvYWRNYXgsIHJob01heCwgZXRhKQoreworICAgIC8v
IFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjcKKyAgICBsZXQgbGFtYmRhQmFzZSA9IGxvZEZy
b21GdW5jdGlvbk9wZXJhbmQgIT0gdW5kZWZpbmVkID8gbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCA6
IE1hdGgubG9nMihyaG9NYXggLyBldGEpOworICAgIGxldCBsYW1iZGFQcmltZSA9IGxhbWJkYUJh
c2UgKyBNYXRoLm1pbihNYXRoLm1heChzYW1wbGVyQmlhcyArIGJpYXNGcm9tRnVuY3Rpb25PcGVy
YW5kLCAtbWF4U2FtcGxlckxvZEJpYXMpLCBtYXhTYW1wbGVyTG9kQmlhcyk7CisgICAgbGV0IGxv
ZE1pbiA9IE1hdGgubWF4KHNhbXBsZXJMb2RNaW4sIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQp
OworICAgIGxldCBsb2RNYXggPSBzYW1wbGVyTG9hZE1heDsKKyAgICBsZXQgbGFtYmRhOworICAg
IGlmIChsYW1iZGFQcmltZSA+IGxvZE1heCkKKyAgICAgICAgbGFtYmRhID0gbG9kTWF4OworICAg
IGVsc2UgaWYgKGxvZE1pbiA8PSBsYW1iZGFQcmltZSAmJiBsYW1iZGFQcmltZSA8PSBsb2RNYXgp
CisgICAgICAgIGxhbWJkYSA9IGxhbWJkYVByaW1lOworICAgIGVsc2UgaWYgKGxhbWJkYVByaW1l
IDwgbG9kTWluKQorICAgICAgICBsYW1iZGEgPSBsb2RNaW47CisgICAgZWxzZQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoImxvZE1pbiA+PSBsb2RNYXgiKTsKKyAgICByZXR1cm4gbGFtYmRhOwor
fQorCitmdW5jdGlvbiBpbWFnZUxldmVsU2VsZWN0aW9uKGJhc2VNaXBMZXZlbCwgbGV2ZWxDb3Vu
dCwgbWlwbWFwTW9kZSwgbGFtYmRhKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAx
NS42LjcKKyAgICBmdW5jdGlvbiBuZWFyZXN0KGRQcmltZSkKKyAgICB7CisgICAgICAgIHJldHVy
biBNYXRoLmNlaWwoZFByaW1lICsgMC41KSAtIDE7CisgICAgfQorCisgICAgbGV0IHEgPSBsZXZl
bENvdW50IC0gMTsKKyAgICBsZXQgZFByaW1lID0gYmFzZU1pcExldmVsICsgTWF0aC5taW4oTWF0
aC5tYXgobGFtYmRhLCAwKSwgcSk7CisgICAgbGV0IGRsOworICAgIGlmIChtaXBtYXBNb2RlID09
ICJuZWFyZXN0IikKKyAgICAgICAgZGwgPSBuZWFyZXN0KGRQcmltZSk7CisgICAgZWxzZQorICAg
ICAgICBkbCA9IGRQcmltZTsKKyAgICBpZiAobWlwbWFwTW9kZSA9PSAibmVhcmVzdCIpCisgICAg
ICAgIHJldHVybiBkbDsKKyAgICBlbHNlIHsKKyAgICAgICAgbGV0IGRIaSA9IE1hdGguZmxvb3Io
ZGwpOworICAgICAgICBsZXQgZExvdyA9IE1hdGgubWluKGRIaSArIDEsIHEpOworICAgICAgICBs
ZXQgZGVsdGEgPSBkbCAtIGRIaTsKKyAgICAgICAgcmV0dXJuIFtkSGksIGRMb3csIGRlbHRhXTsK
KyAgICB9Cit9CisKK2Z1bmN0aW9uIHN0cnFhVG9VVldBVHJhbnNmb3JtYXRpb24ocywgdCwgciwg
d2lkdGgsIGhlaWdodCwgZGVwdGgpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1
LjYuOAorICAgIGxldCB1ID0gcyAqIHdpZHRoOworICAgIGxldCB2ID0gdCAqIGhlaWdodDsKKyAg
ICBsZXQgdyA9IHIgKiBkZXB0aDsKKyAgICByZXR1cm4gW3UsIHYsIHddOworfQorCitmdW5jdGlv
biB1dndhVG9JSktMTlRyYW5zZm9ybWF0aW9uQW5kQXJyYXlMYXllclNlbGVjdGlvbihsYXllckNv
dW50LCBiYXNlQXJyYXlMYXllciwgZmlsdGVyLCB1LCB2LCB3LCBhLCBkZWx0YUksIGRlbHRhSiwg
ZGVsdGFLKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS43LjEKKyAgICBmdW5j
dGlvbiBybmUoYSkKKyAgICB7CisgICAgICAgIHJldHVybiBNYXRoLmZsb29yKGEgKyAwLjUpOwor
ICAgIH0KKyAgICBsZXQgbCA9IE1hdGgubWluKE1hdGgubWF4KHJuZShhKSwgMCksIGxheWVyQ291
bnQgLSAxKSArIGJhc2VBcnJheUxheWVyOworICAgIGxldCBpOworICAgIGxldCBqOworICAgIGxl
dCBrOworICAgIGlmIChmaWx0ZXIgPT0gIm5lYXJlc3QiKSB7CisgICAgICAgIGkgPSBNYXRoLmZs
b29yKHUpOworICAgICAgICBqID0gTWF0aC5mbG9vcih2KTsKKyAgICAgICAgayA9IE1hdGguZmxv
b3Iodyk7CisgICAgICAgIAorICAgICAgICBpICs9IGRlbHRhSTsKKyAgICAgICAgaiArPSBkZWx0
YUo7CisgICAgICAgIGsgKz0gZGVsdGFLOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIFtpLCBq
LCBrLCBsXTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoZmlsdGVyICE9ICJsaW5lYXIiKQor
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGZpbHRlciIpOworICAgICAgICBs
ZXQgaTAgPSBNYXRoLmZsb29yKHUgLSAwLjUpOworICAgICAgICBsZXQgaTEgPSBpMCArIDE7Cisg
ICAgICAgIGxldCBqMCA9IE1hdGguZmxvb3IodiAtIDAuNSk7CisgICAgICAgIGxldCBqMSA9IGow
ICsgMTsKKyAgICAgICAgbGV0IGswID0gTWF0aC5mbG9vcih3IC0gMC41KTsKKyAgICAgICAgbGV0
IGsxID0gazAgKyAxOworICAgICAgICBsZXQgYWxwaGEgPSAodSAtIDAuNSkgLSBpMDsKKyAgICAg
ICAgbGV0IGJldGEgPSAodiAtIDAuNSkgLSBqMDsKKyAgICAgICAgbGV0IGdhbW1hID0gKHcgLSAw
LjUpIC0gazA7CisgICAgICAgIAorICAgICAgICBpMCArPSBkZWx0YUk7CisgICAgICAgIGkxICs9
IGRlbHRhSTsKKyAgICAgICAgajAgKz0gZGVsdGFKOworICAgICAgICBqMSArPSBkZWx0YUo7Cisg
ICAgICAgIGswICs9IGRlbHRhSzsKKyAgICAgICAgazEgKz0gZGVsdGFLOworICAgICAgICAKKyAg
ICAgICAgcmV0dXJuIFtpMCwgaTEsIGowLCBqMSwgazAsIGsxLCBsLCBhbHBoYSwgYmV0YSwgZ2Ft
bWFdOworICAgIH0KK30KKworZnVuY3Rpb24gaW50ZWdlclRleGVsQ29vcmRpbmF0ZU9wZXJhdGlv
bnMoYmFzZU1pcExldmVsLCBsZXZlbENvdW50LCBsZXZlbEJhc2UsIGxvZEZyb21GdW5jdGlvbk9w
ZXJhbmQpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjgKKyAgICBsZXQgZCA9
IGxldmVsQmFzZSArIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQ7CisgICAgaWYgKGQgPCBiYXNlTWlw
TGV2ZWwgfHwgZCA+PSBiYXNlTWlwTGV2ZWwgKyBsZXZlbENvdW50KQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIlNlbGVjdGVkIGxldmVsIGRvZXMgbm90IGxpZSBpbnNpZGUgdGhlIGltYWdlIik7
CisgICAgcmV0dXJuIGQ7Cit9CisKK2Z1bmN0aW9uIHdyYXBwaW5nT3BlcmF0aW9uKHdpZHRoLCBo
ZWlnaHQsIGRlcHRoLCBhZGRyZXNzTW9kZVUsIGFkZHJlc3NNb2RlViwgYWRkcmVzc01vZGVXLCBp
LCBqLCBrKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS45LjEKKyAgICAvLyBG
SVhNRTogSW1wbGVtZW50IGN1YmUgbWFwIGhhbmRsaW5nCisgICAgZnVuY3Rpb24gdHJhbnNmb3Jt
KGFkZHJlc3NNb2RlLCBzaXplLCBpKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gbWlycm9yKG4p
IHsKKyAgICAgICAgICAgIGlmIChuID49IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIG47Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIC0oMSArIG4pOworICAgICAg
ICB9CisgICAgICAgIHN3aXRjaCAoYWRkcmVzc01vZGUpIHsKKyAgICAgICAgICAgIGNhc2UgImNs
YW1wVG9FZGdlIjoKKyAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoaSwg
MCksIHNpemUgLSAxKTsKKyAgICAgICAgICAgIGNhc2UgInJlcGVhdCI6CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGkgJSBzaXplOworICAgICAgICAgICAgY2FzZSAibWlycm9yUmVwZWF0IjoKKyAg
ICAgICAgICAgICAgICByZXR1cm4gKHNpemUgLSAxKSAtIG1pcnJvcigoaSAlICgyICogc2l6ZSkp
IC0gc2l6ZSk7CisgICAgICAgICAgICBjYXNlICJjbGFtcFRvQm9yZGVyQ29sb3IiOgorICAgICAg
ICAgICAgICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1heChpLCAtMSksIHNpemUpOworICAgICAg
ICAgICAgZGVmYXVsdAorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBh
ZGRyZXNzIG1vZGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gW3RyYW5zZm9ybShh
ZGRyZXNzTW9kZVUsIHdpZHRoLCBpKSwgdHJhbnNmb3JtKGFkZHJlc3NNb2RlViwgaGVpZ2h0LCBq
KSwgdHJhbnNmb3JtKGFkZHJlc3NNb2RlVywgZGVwdGgsIGspXTsKK30KKworZnVuY3Rpb24gdGV4
ZWxHYXRoZXJpbmcoKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS45LjIKKyAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMKKyAgICAvKmxldCB0YXVSID0gOworICAgIGxldCB0
YXVHID0gOworICAgIGxldCB0YXVCID0gOworICAgIGxldCB0YXVBID0gOyovCit9CisKK2Z1bmN0
aW9uIHRleGVsRmlsdGVyaW5nKGJhc2VNaXBMZXZlbCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwg
YmFzZUFycmF5TGF5ZXIsIG1hZ0ZpbHRlciwgbWluRmlsdGVyLCBtaXBtYXBNb2RlLCBhZGRyZXNz
TW9kZVUsIGFkZHJlc3NNb2RlViwgYWRkcmVzc01vZGVXLCBib3JkZXJDb2xvciwgbGFtYmRhLCBz
LCB0LCByLCBhLCBkZWx0YUksIGRlbHRhSiwgZGVsdGFLLCBkaW1lbnNpb24sIGNvbXB1dGVXaWR0
aENhbGxiYWNrLCBjb21wdXRlSGVpZ2h0Q2FsbGJhY2ssIGNvbXB1dGVEZXB0aENhbGxiYWNrLCBh
Y2Nlc3NFbGVtZW50Q2FsbGJhY2ssIGFjY2Vzc1Jvd0NhbGxiYWNrLCBhY2Nlc3NEZXB0aFNsaWNl
Q2FsbGJhY2ssIGFjY2Vzc0xldmVsQ2FsbGJhY2ssIGFjY2Vzc0xheWVyQ2FsbGJhY2ssIGJvcmRl
ckNhbGxiYWNrLCBkYXRhKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS45LjMK
KyAgICBsZXQgZmlsdGVyOworICAgIGlmIChsYW1iZGEgPD0gMCkKKyAgICAgICAgZmlsdGVyID0g
bWFnRmlsdGVyOworICAgIGVsc2UKKyAgICAgICAgZmlsdGVyID0gbWluRmlsdGVyOworCisgICAg
ZnVuY3Rpb24gY29tcHV0ZVRhdShsZXZlbCkKKyAgICB7CisgICAgICAgIGZ1bmN0aW9uIHJlZHVj
ZSguLi5hcmd1bWVudHMpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVu
Z3RoICUgMiAhPSAwKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRG9uJ3QgaGF2
ZSBhIHdlaWdodCBjb3JyZXNwb25kaW5nIHRvIGVhY2ggdmFsdWUiKTsKKyAgICAgICAgICAgIGxl
dCBzdW0gPSAwOworICAgICAgICAgICAgLy8gRklYTUU6IFRoZXNlIGFyZ3VtZW50cyBuZWVkIHRv
IGJlIGF2ZXJhZ2VkIGNvbXBvbmVudC13aXNlLgorICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7
IGkgPCBhcmd1bWVudHMubGVuZ3RoIC8gMjsgKytpKQorICAgICAgICAgICAgICAgIHN1bSArPSBh
cmd1bWVudHNbMiAqIGldICogYXJndW1lbnRzWzIgKiBpICsgMV07CisgICAgICAgICAgICByZXR1
cm4gc3VtOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gYWNjZXNzQ29sb3Iod2lkdGgs
IGhlaWdodCwgZGVwdGgsIGwsIGksIGosIGspCisgICAgICAgIHsKKyAgICAgICAgICAgIGZ1bmN0
aW9uIHNob3VsZEJlQm9yZGVyKHZhbHVlLCBtYXgpCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgaWYgKHZhbHVlIDwgLTEgfHwgdmFsdWUgPiBtYXgpCisgICAgICAgICAgICAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiT3V0LW9mLWJvdW5kcyB0ZXh0dXJlIHJlYWQiKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdmFsdWUgPT0gLTEgfHwgdmFsdWUgPT0gbWF4KTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgbGV0IFt3cmFwcGVkSSwgd3JhcHBlZEosIHdyYXBwZWRLXSA9IHdy
YXBwaW5nT3BlcmF0aW9uKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBhZGRyZXNzTW9kZVUsIGFkZHJl
c3NNb2RlViwgYWRkcmVzc01vZGVXLCBpLCBqLCBrKQorICAgICAgICAgICAgaWYgKHNob3VsZEJl
Qm9yZGVyKGksIHdpZHRoKSB8fCBzaG91bGRCZUJvcmRlcihqLCBoZWlnaHQpIHx8IHNob3VsZEJl
Qm9yZGVyKGssIGRlcHRoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gYm9yZGVyQ2FsbGJhY2so
Ym9yZGVyQ29sb3IpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbGV0IGxh
eWVyRGF0YSA9IGFjY2Vzc0xheWVyQ2FsbGJhY2soZGF0YSwgbCk7CisgICAgICAgICAgICAgICAg
bGV0IGxldmVsRGF0YSA9IGFjY2Vzc0xldmVsQ2FsbGJhY2sobGF5ZXJEYXRhLCBsZXZlbCk7Cisg
ICAgICAgICAgICAgICAgbGV0IGRlcHRoU2xpY2VEYXRhID0gYWNjZXNzRGVwdGhTbGljZUNhbGxi
YWNrKGxldmVsRGF0YSwgayk7CisgICAgICAgICAgICAgICAgbGV0IHJvd0RhdGEgPSBhY2Nlc3NS
b3dDYWxsYmFjayhkZXB0aFNsaWNlRGF0YSwgaik7CisgICAgICAgICAgICAgICAgbGV0IGVsZW1l
bnQgPSBhY2Nlc3NFbGVtZW50Q2FsbGJhY2socm93RGF0YSwgaSk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIGVsZW1lbnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBU
aGlzIGlzIGtpbmQgb2YgYm9ndXMsIGJlY2F1c2UgdGhlIHdpZHRoL2hlaWdodC9kZXB0aCBkZXBl
bmRzIG9uIGJvdGggdGhlIG1pcG1hcCBsZXZlbCBhbmQgdGhlIGFycmF5IGxheWVyLCBidXQgdGhl
IHNwZWMgY2FsY3VsYXRlcyB0aGVtIGF0IHRoZSBzYW1lIHRpbWUuCisgICAgICAgIC8vIEx1Y2tp
bHksIHRoZXJlIGlzIG5vIGNpcmN1bGFyIGRlcGVuZGVuY3ksIHNvIHdlIGNhbiBjYWxjdWxhdGUg
dGhlICJsIiBwYXJhbWV0ZXIsIGlnbm9yZSB0aGUgcmVzdCwgYW5kIGZlZWQgaXQgYmFjayB0aHJv
dWdoIGFnYWluLgorICAgICAgICAvLyBUaGlzIHNwZWMgaGFzIHNvbWUgcHJvYmxlbXMuLi4KKyAg
ICAgICAgaWYgKGZpbHRlciA9PSAibmVhcmVzdCIpIHsKKyAgICAgICAgICAgIGxldCBbaSwgaiwg
aywgbF0gPSB1dndhVG9JSktMTlRyYW5zZm9ybWF0aW9uQW5kQXJyYXlMYXllclNlbGVjdGlvbihs
YXllckNvdW50LCBiYXNlQXJyYXlMYXllciwgZmlsdGVyLCAwLCAwLCAwLCBsZXZlbCwgZGVsdGFJ
LCBkZWx0YUosIGRlbHRhSyk7CisgICAgICAgICAgICB3aWR0aCA9IGNvbXB1dGVXaWR0aENhbGxi
YWNrKGxldmVsLCBsKTsKKyAgICAgICAgICAgIGhlaWdodCA9IGNvbXB1dGVIZWlnaHRDYWxsYmFj
ayhsZXZlbCwgbCk7CisgICAgICAgICAgICBkZXB0aCA9IGNvbXB1dGVEZXB0aENhbGxiYWNrKGxl
dmVsLCBsKTsKKyAgICAgICAgICAgIGxldCBbdSwgdiwgd10gPSBzdHJxYVRvVVZXQVRyYW5zZm9y
bWF0aW9uKHMsIHQsIHIsIHdpZHRoLCBoZWlnaHQsIGRlcHRoKTsKKyAgICAgICAgICAgIFtpLCBq
LCBrLCBsXSA9IHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25BbmRBcnJheUxheWVyU2VsZWN0aW9u
KGxheWVyQ291bnQsIGJhc2VBcnJheUxheWVyLCBmaWx0ZXIsIHUsIHYsIHcsIGxldmVsLCBkZWx0
YUksIGRlbHRhSiwgZGVsdGFLKTsKKyAgICAgICAgICAgIHJldHVybiBhY2Nlc3NDb2xvcih3aWR0
aCwgaGVpZ2h0LCBkZXB0aCwgbCwgaSwgaiwgayk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICBpZiAobWlwbWFwTW9kZSAhPSAibGluZWFyIikKKyAgICAgICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIlVua25vd24gZmlsdGVyIik7CisgICAgICAgICAgICBsZXQgW2kwLCBpMSwgajAs
IGoxLCBrMCwgazEsIGwsIGFscGhhLCBiZXRhLCBnYW1tYV0gPSB1dndhVG9JSktMTlRyYW5zZm9y
bWF0aW9uQW5kQXJyYXlMYXllclNlbGVjdGlvbihsYXllckNvdW50LCBiYXNlQXJyYXlMYXllciwg
ZmlsdGVyLCB1LCB2LCB3LCBhLCBkZWx0YUksIGRlbHRhSiwgZGVsdGFLKTsKKyAgICAgICAgICAg
IHdpZHRoID0gY29tcHV0ZVdpZHRoQ2FsbGJhY2sobGV2ZWwsIGwpOworICAgICAgICAgICAgaGVp
Z2h0ID0gY29tcHV0ZUhlaWdodENhbGxiYWNrKGxldmVsLCBsKTsKKyAgICAgICAgICAgIGRlcHRo
ID0gY29tcHV0ZURlcHRoQ2FsbGJhY2sobGV2ZWwsIGwpOworICAgICAgICAgICAgW3UsIHYsIHdd
ID0gc3RycWFUb1VWV0FUcmFuc2Zvcm1hdGlvbihzLCB0LCByLCB3aWR0aCwgaGVpZ2h0LCBkZXB0
aCk7CisgICAgICAgICAgICBbaTAsIGkxLCBqMCwgajEsIGswLCBrMSwgbCwgYWxwaGEsIGJldGEs
IGdhbW1hXSA9IHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25BbmRBcnJheUxheWVyU2VsZWN0aW9u
KGxheWVyQ291bnQsIGJhc2VBcnJheUxheWVyLCBmaWx0ZXIsIHUsIHYsIHcsIGxldmVsLCBkZWx0
YUksIGRlbHRhSiwgZGVsdGFLKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjAwMCA9IGFjY2Vzc0Nv
bG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsLCBpMCwgajAsIGswKTsKKyAgICAgICAgICAgIGxl
dCBjb2xvcjEwMCA9IGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsLCBpMSwgajAs
IGswKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjAxMCA9IGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWln
aHQsIGRlcHRoLCBsLCBpMCwgajEsIGswKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjExMCA9IGFj
Y2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsLCBpMSwgajEsIGswKTsKKyAgICAgICAg
ICAgIGxldCBjb2xvcjAwMSA9IGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsLCBp
MCwgajAsIGsxKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjEwMSA9IGFjY2Vzc0NvbG9yKHdpZHRo
LCBoZWlnaHQsIGRlcHRoLCBsLCBpMSwgajAsIGsxKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjAx
MSA9IGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsLCBpMCwgajEsIGsxKTsKKyAg
ICAgICAgICAgIGxldCBjb2xvcjExMSA9IGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRo
LCBsLCBpMSwgajEsIGsxKTsKKyAgICAgICAgICAgIHN3aXRjaCAoZGltZW5zaW9uKSB7CisgICAg
ICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IwID0gY29s
b3IwMTE7CisgICAgICAgICAgICAgICAgICAgIGxldCBjb2xvcjEgPSBjb2xvcjExMTsKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlZHVjZSgxIC0gYWxwaGEsIGNvbG9yMCwgYWxwaGEsIGNv
bG9yMSk7CisgICAgICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICBsZXQg
Y29sb3IwMCA9IGNvbG9yMDAxOworICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IxMCA9IGNv
bG9yMTAxOworICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IwMSA9IGNvbG9yMDExOworICAg
ICAgICAgICAgICAgICAgICBsZXQgY29sb3IxMSA9IGNvbG9yMTExOworICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gcmVkdWNlKCgxIC0gYWxwaGEpICogKDEgLSBiZXRhKSwgY29sb3IwMCwgYWxw
aGEgKiAoMSAtIGJldGEpLCBjb2xvcjEwLCAoMSAtIGFscGhhKSAqIGJldGEsIGNvbG9yMDEsIGFs
cGhhICogYmV0YSwgY29sb3IxMSk7CisgICAgICAgICAgICAgICAgY2FzZSAzOgorICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gcmVkdWNlKAorICAgICAgICAgICAgICAgICAgICAgICAgKDEgLSBh
bHBoYSkgKiAoMSAtIGJldGEpICogKDEgLSBnYW1tYSksIGNvbG9yMDAwLAorICAgICAgICAgICAg
ICAgICAgICAgICAgYWxwaGEgKiAoMSAtIGJldGEpICogKDEgLSBnYW1tYSksIGNvbG9yMTAwLAor
ICAgICAgICAgICAgICAgICAgICAgICAgKDEgLSBhbHBoYSkgKiBiZXRhICogKDEgLSBnYW1tYSks
IGNvbG9yMDEwLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxwaGEgKiBiZXRhICogKDEgLSBn
YW1tYSksIGNvbG9yMTEwLAorICAgICAgICAgICAgICAgICAgICAgICAgKDEgLSBhbHBoYSkgKiAo
MSAtIGJldGEpICogZ2FtbWEsIGNvbG9yMDAxLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxw
aGEgKiAoMSAtIGJldGEpICogZ2FtbWEsIGNvbG9yMTAxLAorICAgICAgICAgICAgICAgICAgICAg
ICAgKDEgLSBhbHBoYSkgKiBiZXRhICogZ2FtbWEsIGNvbG9yMDExLAorICAgICAgICAgICAgICAg
ICAgICAgICAgYWxwaGEgKiBiZXRhICogZ2FtbWEsIGNvbG9yMTExKTsKKyAgICAgICAgICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24g
ZGltZW5zaW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAo
bWlwbWFwTW9kZSA9PSAibmVhcmVzdCIpIHsKKyAgICAgICAgbGV0IGltYWdlTGV2ZWwgPSBpbWFn
ZUxldmVsU2VsZWN0aW9uKGJhc2VNaXBMZXZlbCwgbGV2ZWxDb3VudCwgbWlwbWFwTW9kZSwgbGFt
YmRhKTsKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVUYXUoaW1hZ2VMZXZlbCk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgaWYgKG1pcG1hcE1vZGUgIT0gImxpbmVhciIpCisgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIlVua25vd24gZmlsdGVyIik7CisgICAgICAgIGxldCBbZEhpLCBkTG93LCBk
ZWx0YV0gPSBpbWFnZUxldmVsU2VsZWN0aW9uKGJhc2VNaXBMZXZlbCwgbGV2ZWxDb3VudCwgbWlw
bWFwTW9kZSwgbGFtYmRhKTsKKyAgICAgICAgcmV0dXJuIHJlZHVjZSgxIC0gZGVsdGEsIGNvbXB1
dGVUYXUoZEhpKSwgZGVsdGEsIGNvbXB1dGVUYXUoZExvKSk7CisgICAgfQorfQorCitmdW5jdGlv
biBzYW1wbGUxRCh0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbikKK3sKKyAgICBsZXQgW3MsIHQs
IHIsIGRyZWZdID0gcHJvamVjdGlvbk9wZXJhdGlvbihzLCB0LCByLCBkcmVmLCBxKTsKKyAgICB0
ZXhlbEZpbHRlcmluZygpOworICAgIGRlcHRoQ29tcGFyZU9wZXJhdGlvbigpCisgICAgLy8gRklY
TUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBkbyB3aXRoIGFuaXNvdHJvcHkKKyAgICAvLyBGSVhNRTog
V0hMU0wgZGR4IGRkeSBhcmd1bWVudHMKKyAgICAvLyBGSVhNRTogRmlndXJlIG91dCBob3cgdG8g
ZG8gbXVsdGlzYW1wbGluZy4KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL2luZGV4Lmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5o
dG1sCmluZGV4IDY1YTg2NDExYjNlNzcwYjU1N2I0MWFjYzdlNDE0ZGVmNDI0MDMwMTMuLjgzNjZi
YjE4ZDE3MGU5M2Y4MDBkZjU4MjJmYTVlYWZlYjQzYmVkODMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvaW5kZXguaHRtbApAQCAtMTI3LDYgKzEyNyw3IEBACiA8c2NyaXB0IHNyYz0i
U3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJTeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IlRlcm5hcnlFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJUZXh0dXJlT3BlcmF0aW9ucy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHJhcFN0YXRl
bWVudC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348607</attachid>
            <date>2018-08-30 23:04:20 -0700</date>
            <delta_ts>2018-08-31 12:08:26 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188940-20180830230419.patch</filename>
            <type>text/plain</type>
            <size>91303</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTM3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTJiMzc3YmI4YTUwNjE2Mzc1M2E0MWFiNjIyN2JmZDVl
MTdmNTk5Yy4uYzJiZDgyOTFmNWExMzYwODQ0OGY1MGNjZTBlNWUzNjQzMmE1YzU1YiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2
IEBACisyMDE4LTA4LTMwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+
CisKKyAgICAgICAgW1dITFNMXSBJbXBsZW1lbnQgdGV4dHVyZSB0eXBlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTQwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2lj
cy5qczoKKyAgICAgICAgKEludHJpbnNpY3MuKToKKyAgICAgICAgKEludHJpbnNpY3MpOgorICAg
ICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWw6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAobGV0LnN0
YW5kYXJkTGlicmFyeSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5o
dG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanM6CisgICAgICAg
IChtYWtlU2FtcGxlcik6CisgICAgICAgIChtYWtlMURUZXh0dXJlKToKKyAgICAgICAgKG1ha2Ux
RFRleHR1cmVBcnJheSk6CisgICAgICAgIChtYWtlMkRUZXh0dXJlKToKKyAgICAgICAgKG1ha2Uy
RFRleHR1cmVBcnJheSk6CisgICAgICAgIChtYWtlM0RUZXh0dXJlKToKKyAgICAgICAgKG1ha2VU
ZXh0dXJlQ3ViZSk6CisgICAgICAgIChtYWtlUlcxRFRleHR1cmUpOgorICAgICAgICAobWFrZVJX
MURUZXh0dXJlQXJyYXkpOgorICAgICAgICAobWFrZVJXMkRUZXh0dXJlKToKKyAgICAgICAgKG1h
a2VSVzJEVGV4dHVyZUFycmF5KToKKyAgICAgICAgKG1ha2VSVzNEVGV4dHVyZSk6CisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanM6IEFkZGVkLgor
ICAgICAgICAodGV4dHVyZUxvYWQpOgorICAgICAgICAodGV4dHVyZVN0b3JlKToKKyAgICAgICAg
KiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sOgorCiAyMDE4LTA4LTMwICBUaG9t
YXMgRGVubmV5ICA8dGRlbm5leUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dITFNMXSBGaXggYXJy
YXkgaW5kZXhpbmcgYmVoYXZpb3IKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0FsbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwppbmRl
eCA5YzJhMzcxNTBjMWU5NzZiOTI2Y2ZiZWUyMzQzNzUyMGE4ZGU0YTQ3Li5jYzA3ZmRiNTE2NjE2
ZDMyOGYzODQ0NWU5NWE4MjA1MzkyZTVkYTVhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9BbGwuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
QWxsLmpzCkBAIC0xNTAsNiArMTUwLDcgQEAgbG9hZCgiU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29y
cy5qcyIpOwogbG9hZCgiU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIik7CiBs
b2FkKCJTeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiKTsKIGxvYWQoIlRl
cm5hcnlFeHByZXNzaW9uLmpzIik7Citsb2FkKCJUZXh0dXJlT3BlcmF0aW9ucy5qcyIpOwogbG9h
ZCgiVHJhcFN0YXRlbWVudC5qcyIpOwogbG9hZCgiVHlwZURlZi5qcyIpOwogbG9hZCgiVHlwZURl
ZlJlc29sdmVyLmpzIik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9JbnRyaW5zaWNzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2lj
cy5qcwppbmRleCBiMDA0MDY3ZjVlYmZiM2E4YjRiZDk4ZTQzN2E4YzA3NjhiZTI2ZjFlLi5lYTM5
NGU0MmZiYWU0NTJjY2M5NDcwOGEzNTRjODQxZjZjMzUxY2EyIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMKQEAgLTMzMCw3ICszMzAsOCBAQCBjbGFzcyBJ
bnRyaW5zaWNzIHsKICAgICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiBzYW1wbGVyIiwKICAgICAg
ICAgICAgIHR5cGUgPT4gewogICAgICAgICAgICAgICAgIHRoaXMuc2FtcGxlciA9IHR5cGU7Ci0g
ICAgICAgICAgICAgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBwdXQgaGVyZS4KKyAg
ICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgIHR5cGUucG9wdWxh
dGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCB7
fSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICBmb3IgKGxldCB0ZXh0dXJlVHlwZSBvZiBb
IlRleHR1cmUxRCIsICJSV1RleHR1cmUxRCIsICJUZXh0dXJlMURBcnJheSIsICJSV1RleHR1cmUx
REFycmF5IiwgIlRleHR1cmUyRCIsICJSV1RleHR1cmUyRCIsICJUZXh0dXJlMkRBcnJheSIsICJS
V1RleHR1cmUyREFycmF5IiwgIlRleHR1cmUzRCIsICJSV1RleHR1cmUzRCIsICJUZXh0dXJlQ3Vi
ZSJdKSB7CkBAIC0zMzksMTIgKzM0MCwxNiBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50
fT5gLAogICAgICAgICAgICAgICAgICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAgICAgICAg
ICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gXSA9IHR5cGU7CisgICAg
ICAgICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgICAgICAg
ICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVy
LnNldChvZmZzZXQsIHt9KTsKICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAg
ICAgZm9yIChsZXQgaSA9IDI7IGkgPD0gNDsgKytpKSB7CiAgICAgICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCiAgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0
ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9JHtpfT5gLAogICAgICAgICAgICAgICAgICAgICAg
ICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJl
VHlwZX08JHt0eXBlQXJndW1lbnR9JHtpfT5gXSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBl
LnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9m
ZnNldCwge30pOwogICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfQpAQCAtMzU2LDYgKzM2MSw4IEBAIGNsYXNzIEludHJpbnNpY3Mgewog
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBl
QXJndW1lbnR9PmAsCiAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmBdID0gdHlw
ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAg
ICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9
PiBidWZmZXIuc2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQpAQCAtOTE0LDYgKzkyMSw3NDUgQEAgY2xhc3MgSW50cmluc2lj
cyB7CiAKICAgICAgICAgZm9yIChsZXQgc2V0dGVyIG9mIEJ1aWx0aW5NYXRyaXhTZXR0ZXIuZnVu
Y3Rpb25zKCkpCiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KHNldHRlci50b1N0cmluZygpLCBm
dW5jID0+IHNldHRlci5pbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsKKworICAgICAg
ICBmb3IgKGxldCB0eXBlIG9mIFsiYm9vbCIsICJ1Y2hhciIsICJ1c2hvcnQiLCAidWludCIsICJj
aGFyIiwgInNob3J0IiwgImludCIsICJoYWxmIiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0
dXJlMUQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdCBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0+LHNh
bXBsZXIsZmxvYXQgbG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZTFEPCR7dHlwZX0+LGlu
dDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQo
dGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpXSkp
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRl
eHR1cmUxRDwke3R5cGV9PixpbnQyIGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQubG9hZFZhbHVlKCld
KSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVu
c2lvbnMoVGV4dHVyZTFEPCR7dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRo
LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZW5ndGgpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJSZWFkaW5nIGZyb20gbm9u
ZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFttaXBJRF0ubGVuZ3RoKSwg
MSk7CisgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5j
b3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlMURBcnJheTwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDIgbG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfT4saW50
MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0
ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxv
Y2F0aW9uLmdldCgyKV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0gTG9hZChUZXh0dXJlMURBcnJheTwke3R5cGV9PixpbnQzIGxvY2F0aW9uLGludCBv
ZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNl
dF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9h
ZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSks
IGxvY2F0aW9uLmdldCgyKSArIG9mZnNldC5sb2FkVmFsdWUoKV0pKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMURBcnJh
eTwke3R5cGV9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQg
RWxlbWVudHMsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBlbGVtZW50cywgbnVtYmVyT2ZMZXZlbHNd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1
ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sZW5ndGggPT0gMCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIk5v
IGVsZW1lbnRzIGluIHRoZSB0ZXh0dXJlIGFycmF5Iik7CisgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAobWlwSUQgPj0gdGV4WzBdLmxlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFu
dCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdW21pcElEXS5sZW5ndGgpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9m
TGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXS5sZW5ndGgpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxl
KFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTJEPCR7dHlw
ZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJl
MkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgQmlhcylgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRl
eHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBCaWFzLGludDIg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIGJpYXMsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIg
bG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmUyRDwke3R5
cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBERFksaW50MiBv
ZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uLGZsb2F0IExPRClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBsb2RdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVy
LGZsb2F0MiBsb2NhdGlvbixmbG9hdCBMT0QsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kLCBvZmZzZXRdKSB7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVy
ZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7dHlwZX0+LHNh
bXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
bihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkQ8JHt0
eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEPCR7dHlw
ZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkQ8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlMkQ8JHt0eXBlfT4saW50MyBs
b2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0
dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0
aW9uLmdldCgyKV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0gTG9hZChUZXh0dXJlMkQ8JHt0eXBlfT4saW50MyBsb2NhdGlvbixpbnQyIG9mZnNldClg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1
cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSArIG9mZnNl
dC5nZXQoMCksIGxvY2F0aW9uLmdldCgyKSArIG9mZnNldC5nZXQoMSldKSk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTJE
PCR7dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBI
ZWlnaHQsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
bihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIG51bWJlck9mTGV2ZWxzXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGVuZ3RoKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiUmVh
ZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAodGV4W21pcElEXS5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFz
IG5vIHJvd3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5j
b3B5RnJvbShFUHRyLmJveCh0ZXhbbWlwSURdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAg
ICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4W21pcElEXVsw
XS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmUyREFy
cmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlMkRBcnJheTwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZTJE
QXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlhcylgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgewor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFz
KFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IEJp
YXMsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgYmlhcywgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNh
bXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSlgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeV0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChU
ZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdDIgRERY
LGZsb2F0MiBERFksaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEQXJy
YXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4
dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9ELGlu
dDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIGxvZCwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxv
YXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXIoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBs
ZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8
JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVy
ZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyREFy
cmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0
dXJlMkRBcnJheTwke3R5cGV9PixpbnQ0IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQo
MCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMyldKSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4
dHVyZTJEQXJyYXk8JHt0eXBlfT4saW50NCBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1cmUubG9hZFZh
bHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIp
ICsgb2Zmc2V0LmdldCgwKSwgbG9jYXRpb24uZ2V0KDMpICsgb2Zmc2V0LmdldCgxKV0pKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhU
ZXh0dXJlMkRBcnJheTwke3R5cGV9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1
aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBFbGVtZW50cyx1aW50KiB0aHJlYWQgTnVt
YmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwg
d2lkdGgsIGhlaWdodCwgZWxlbWVudHMsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICh0ZXgubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJObyBlbGVtZW50cyBpbiB0aGUg
dGV4dHVyZSBhcnJheSIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRl
eFswXS5sZW5ndGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFw
RXJyb3IoIltsb2FkXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRl
eHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXhbMF1bbWlwSURdLmxlbmd0
aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9y
KCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gcm93cyIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXVttaXBJRF0ubGVu
Z3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5
RnJvbShFUHRyLmJveCh0ZXhbMF1bbWlwSURdWzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxl
bmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTNEPCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24saW50MyBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUzRDwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbixpbnQzIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxv
YXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
LGludDMgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyR3JlZW4oVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
LGludDMgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJCbHVlKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixp
bnQzIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00
IEdhdGhlckFscGhhKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixp
bnQzIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9IExvYWQoVGV4dHVyZTNEPCR7dHlwZX0+LGludDQgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQodGV4dHVyZS5sb2FkVmFsdWUoKSwg
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIGxvY2F0
aW9uLmdldCgzKV0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0gTG9hZChUZXh0dXJlM0Q8JHt0eXBlfT4saW50NCBsb2NhdGlvbixpbnQzIG9mZnNldClg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2FkKHRleHR1
cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSArIG9mZnNl
dC5nZXQoMCksIGxvY2F0aW9uLmdldCgyKSArIG9mZnNldC5nZXQoMSksIGxvY2F0aW9uLmdldCgz
KSArIG9mZnNldC5nZXQoMildKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTNEPCR7dHlwZX0+LHVpbnQgTWlwTGV2ZWws
dWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIERlcHRo
LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbnVtYmVyT2ZMZXZlbHNdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgp
OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZW5ndGgpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJS
ZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICh0ZXhbbWlwSURdLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBo
YXMgemVybyBkZXB0aCIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleFttaXBJRF1b
MF0ubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdU
cmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyByb3dzIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICBkZXB0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbbWlwSURd
Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgp
LmNvcHlGcm9tKEVQdHIuYm94KHRleFttaXBJRF1bMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbbWlw
SURdWzBdWzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZM
ZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4
dHVyZUN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlQ3ViZTwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVy
ZUN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQzIEREWCxmbG9hdDMg
RERZKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24s
IGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgbG9kXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJSZWQoVGV4dHVyZUN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVu
KFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmVD
dWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlQ3ViZTwke3R5
cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmVDdWJlPCR7dHlwZX0+LHVpbnQg
TWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhy
ZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlw
bGV2ZWwsIHdpZHRoLCBoZWlnaHQsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICh0ZXgubGVuZ3RoICE9IDYpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJDdWJlIHRleHR1cmUgZG9lc24ndCBo
YXZlIDYgZmFjZXMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXhb
MF0ubGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVy
cm9yKCJbbG9hZF0iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0
dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4WzBdW21pcElEXS5sZW5ndGgg
PT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigi
W2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIHJvd3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXhbMF1bbWlwSURdLmxlbmd0
aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4WzBdW21pcElEXVswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRl
eFswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworCisgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUxRDwke3R5cGV9Pix1aW50KiB0aHJlYWQg
V2lkdGgpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aF0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRl
eHR1cmUubG9hZFZhbHVlKCkubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMUQ8JHt0eXBlfT4sZmxv
YXQqIHRocmVhZCBXaWR0aClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRo
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4dHVyZS5sb2FkVmFsdWUoKS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChSV1RleHR1cmUxRDwke3R5cGV9
PixpbnQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRp
b25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxv
YWQodGV4dHVyZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmxvYWRWYWx1ZSgpXSkpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUxRDwk
e3R5cGV9Piwke3R5cGV9LHVpbnQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGV4
dHVyZVN0b3JlKHRleHR1cmUubG9hZFZhbHVlKCksIHZhbHVlLmxvYWRWYWx1ZSgpLCBbbG9jYXRp
b24ubG9hZFZhbHVlKCldKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworCisgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUxREFycmF5PCR7dHlwZX0+LHVpbnQqIHRo
cmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCB3aWR0aCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICh0ZXgubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3
IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyBlbGVtZW50cyIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTFEQXJy
YXk8JHt0eXBlfT4sZmxvYXQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgRWxlbWVudHMpYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgZWxlbWVudHNdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICh0ZXgubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBu
byBlbGVtZW50cyIpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAg
ICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdLmxlbmd0aCks
IDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2Fk
KFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfT4saW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSldKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfT4sJHt0eXBl
fSx1aW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1
ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0dXJlU3RvcmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgdmFsdWUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKV0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisKKyAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTJEPCR7dHlwZX0+LHVpbnQqIHRocmVhZCBX
aWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgd2lkdGgsIGhlaWdodF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0
ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sZW5n
dGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJv
cigiW2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIHJvd3MiKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3RoKSwgMSk7
CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXhbMF0ubGVuZ3RoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkQ8JHt0eXBlfT4sZmxvYXQqIHRo
cmVhZCBXaWR0aCxmbG9hdCogdGhyZWFkIEhlaWdodClgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHdpZHRoLCBoZWlnaHRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
dGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0
ZXgubGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdU
cmFwRXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyByb3dzIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0
aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFJXVGV4dHVyZTJEPCR7dHlwZX0+LGludDIgbG9j
YXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3godGV4dHVyZUxvYWQodGV4dHVy
ZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpXSkpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUy
RDwke3R5cGV9Piwke3R5cGV9LHVpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRleHR1cmVTdG9yZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCB2YWx1ZS5sb2FkVmFsdWUoKSwgW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpXSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkRBcnJheTwk
e3R5cGV9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJl
YWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVp
Z2h0LCBlbGVtZW50c10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0
dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sZW5ndGgg
PT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigi
W2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIGVsZW1lbnRzIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAodGV4WzBdLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gcm93cyIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0Lmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFsw
XVswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
IHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUyREFycmF5PCR7dHlwZX0+LGZsb2F0KiB0aHJl
YWQgV2lkdGgsZmxvYXQqIHRocmVhZCBIZWlnaHQsZmxvYXQqIHRocmVhZCBFbGVtZW50cylgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRzXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7
CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4Lmxlbmd0aCA9PSAwKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVy
ZSBoYXMgbm8gZWxlbWVudHMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXhbMF0u
bGVuZ3RoID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFw
RXJyb3IoIltsb2FkXSIsICJUZXh0dXJlIGhhcyBubyByb3dzIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGVuZ3Ro
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4WzBdLmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAg
d2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4WzBdWzBdLmxlbmd0aCksIDEp
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFJX
VGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBFUHRyLmJveCh0ZXh0dXJlTG9hZCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBbbG9jYXRpb24u
Z2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKV0pKTsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMkRBcnJheTwk
e3R5cGV9Piwke3R5cGV9LHVpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRl
eHR1cmVTdG9yZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCB2YWx1ZS5sb2FkVmFsdWUoKSwgW2xvY2F0
aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMildKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1Rl
eHR1cmUzRDwke3R5cGV9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1
aW50KiB0aHJlYWQgRGVwdGgpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0
aCwgaGVpZ2h0LCBkZXB0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0
ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sZW5n
dGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJv
cigiW2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIGRlcHRoIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAodGV4WzBdLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiVGV4dHVyZSBoYXMgbm8gcm93cyIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXVsw
XS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZv
aWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUzRDwke3R5cGV9PixmbG9hdCogdGhyZWFkIFdpZHRo
LGZsb2F0KiB0aHJlYWQgSGVpZ2h0LGZsb2F0KiB0aHJlYWQgRGVwdGgpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aF0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKHRleC5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlRleHR1cmUgaGFzIG5vIGRlcHRo
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4WzBdLmxlbmd0aCA9PSAwKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAi
VGV4dHVyZSBoYXMgbm8gcm93cyIpOworICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGgubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxlbmd0aCksIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleFswXS5s
ZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleFswXVswXS5sZW5ndGgpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChSV1RleHR1cmUzRDwke3R5cGV9Pixp
bnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9u
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHRleHR1cmVMb2Fk
KHRleHR1cmUubG9hZFZhbHVlKCksIFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
bG9jYXRpb24uZ2V0KDIpXSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgdm9pZCBTdG9yZShSV1RleHR1cmUzRDwke3R5cGV9Piwke3R5cGV9LHVpbnQzIGxvY2F0aW9u
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRleHR1cmVTdG9yZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCB2YWx1ZS5sb2FkVmFsdWUoKSwgW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBs
b2NhdGlvbi5nZXQoMildKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworCisgICAgICAgICAgICBmdW5jdGlvbiBib3hWZWN0b3IoYSkKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEVQdHIobmV3IEVCdWZmZXIoYS5sZW5n
dGgpLCAwKTsKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyAr
K2kpCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5zZXQoaSwgYVtpXSk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZm9yIChs
ZXQgbGVuZ3RoIG9mIFsyLCAzLCA0XSkgeworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAg
fQogCiAgICAgYWRkKHRoaW5nKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU1BJUlYuaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0
bWwKaW5kZXggNzhkMDA4ZjgzNWY5ZTljMjM0ZWYyZGY2ZDZkZWVhM2Y3NDI2Y2U2NS4uZGRjNjVl
MzY3ZGQ5OTlkZGIxN2QyOWNmNmM1YzZlNjI1NDFkMmE3MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TUElSVi5odG1sCkBAIC0xMzMsNiArMTMzLDcgQEAgdGQgewogICAgIDxzY3Jp
cHQgc3JjPSJTeW50aGVzaXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9IlRleHR1cmVPcGVyYXRpb25zLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iVHJhcFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2
ZXIuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvU3RhbmRhcmRMaWJyYXJ5LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3Rh
bmRhcmRMaWJyYXJ5LmpzCmluZGV4IDNkZDRmZWUxODYwMGQ1Y2QyYTg5NWFkNWE0Nzk3MjFkYTc3
ODhjYzEuLjIxYThkMjkyYjhmYmI1OGVhYzk4MDNkYjgwYTRlMzMwMWFlZDVjZGEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcworKysg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKQEAgLTE4
OTcsOSArMTg5NywxMCBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewogICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlKHRo
cmVhZCBhdG9taWNfJHt0eXBlfSosICR7dHlwZX0sICR7dHlwZX0sIHRocmVhZCAke3R5cGV9Kik7
YCk7CiAgICAgICAgIH0KICAgICAgICAgcHJpbnQoKTsKLSAgICAgICAgCisgICAgICAgICovCisK
ICAgICAgICAgZm9yICh2YXIgdHlwZSBvZiBbYHVjaGFyYCwgYHVzaG9ydGAsIGB1aW50YCwgYGNo
YXJgLCBgc2hvcnRgLCBgaW50YCwgYGhhbGZgLCBgZmxvYXRgXSkgewotICAgICAgICAgICAgZm9y
ICh2YXIgbGVuZ3RoIG9mIFtgYCwgYDJgLCBgM2AsIGA0YF0pIHsKKyAgICAgICAgICAgIGZvciAo
dmFyIGxlbmd0aCBvZiBbYGAvKiwgYDJgLCBgM2AsIGA0YCovXSkgewogICAgICAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0k
e2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMUQ8JHt0eXBlfSR7
bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KTtgKTsKICAgICAg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMUQ8
JHt0eXBlfSR7bGVuZ3RofT4sIGludDIgbG9jYXRpb24pO2ApOwpAQCAtMjAxMCw3ICsyMDExLDgg
QEAgbGV0IHN0YW5kYXJkTGlicmFyeSA9IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICBw
cmludCgpOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIAorCisgICAgICAgIC8q
CiAgICAgICAgIGZvciAodmFyIHR5cGUgb2YgW2BoYWxmYCwgYGZsb2F0YF0pIHsKICAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4s
IHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIg
bG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1Rlc3QuaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rl
c3QuaHRtbAppbmRleCA2MDdhNjk1MzI1M2RhNzI3YjFkZTM3Njc4ZWMzODhiNGZhMjQwNDA1Li42
OWM5MTA0OTJlZDExYWIyYjMwZTI3ODNlYWY3ZWJiZmZkZmUxNjBhIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sCkBAIC0xMjcsNiArMTI3LDcgQEAKIDxzY3JpcHQgc3Jj
PSJTeW50aGVzaXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IlN5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iVGVybmFyeUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9IlRleHR1cmVPcGVyYXRpb25zLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUcmFwU3Rh
dGVtZW50LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgpAQCAtMTUyLDcgKzE1
Myw3IEBACiA8c2NyaXB0PgogZnVuY3Rpb24gZG9UZXN0SW5Ccm93c2VyKCkKIHsKLSAgICB2YXIg
dGVzdGVyID0gZG9UZXN0KC8uKi8pOworICAgIHZhciB0ZXN0ZXIgPSBkb1Rlc3QoL3RleHR1cmUv
KTsKICAgICB2YXIgbGFzdFRpbWU7CiAgICAgZnVuY3Rpb24gbmV4dCgpCiAgICAgewpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKaW5kZXggNGExMWMxODU4NTk5Nzc4ZmYzOTFiMDRm
MjYzNWM1YjcxMDA1ZGY3Zi4uMjdiNWY1ZDNhYzRlZjY0OGI3ZmVjNGQxMDg3MzE1NDhlOTA3MWZj
ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcworKysg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCkBAIC05NCw2ICs5NCwxNTcg
QEAgZnVuY3Rpb24gbWFrZUVudW0ocHJvZ3JhbSwgZW51bU5hbWUsIHZhbHVlKQogICAgIHJldHVy
biBUeXBlZFZhbHVlLmJveChlbnVtVHlwZSwgZW51bU1lbWJlci52YWx1ZS51bmlmeU5vZGUudmFs
dWVGb3JTZWxlY3RlZFR5cGUpOwogfQogCitmdW5jdGlvbiBtYWtlU2FtcGxlcihwcm9ncmFtLCBk
aWN0KQoreworICAgIC8vIGVudW0gV2ViR1BVQWRkcmVzc01vZGUgeworICAgIC8vICAgICAiY2xh
bXBUb0VkZ2UiLAorICAgIC8vICAgICAicmVwZWF0IiwKKyAgICAvLyAgICAgIm1pcnJvclJlcGVh
dCIsCisgICAgLy8gICAgICJjbGFtcFRvQm9yZGVyQ29sb3IiCisgICAgLy8gfQorICAgIC8vIAor
ICAgIC8vIGVudW0gV2ViR1BVRmlsdGVyTW9kZSB7CisgICAgLy8gICAgICJuZWFyZXN0IiwKKyAg
ICAvLyAgICAgImxpbmVhciIKKyAgICAvLyB9CisgICAgLy8gCisgICAgLy8gZW51bSBXZWJHUFVD
b21wYXJlRnVuY3Rpb24geworICAgIC8vICAgICAibmV2ZXIiLAorICAgIC8vICAgICAibGVzcyIs
CisgICAgLy8gICAgICJlcXVhbCIsCisgICAgLy8gICAgICJsZXNzRXF1YWwiLAorICAgIC8vICAg
ICAiZ3JlYXRlciIsCisgICAgLy8gICAgICJub3RFcXVhbCIsCisgICAgLy8gICAgICJncmVhdGVy
RXF1YWwiLAorICAgIC8vICAgICAiYWx3YXlzIgorICAgIC8vIH0KKyAgICAvLyAKKyAgICAvLyBl
bnVtIFdlYkdQVUJvcmRlckNvbG9yIHsKKyAgICAvLyAgICAgInRyYW5zcGFyZW50QmxhY2siLAor
ICAgIC8vICAgICAib3BhcXVlQmxhY2siLAorICAgIC8vICAgICAib3BhcXVlV2hpdGUiCisgICAg
Ly8gfQorICAgIC8vIAorICAgIC8vIGRpY3Rpb25hcnkgV2ViR1BVU2FtcGxlckRlc2NyaXB0b3Ig
eworICAgIC8vICAgICBXZWJHUFVkZHJlc3NNb2RlIHJBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRn
ZSI7CisgICAgLy8gICAgIFdlYkdQVWRkcmVzc01vZGUgc0FkZHJlc3NNb2RlID0gImNsYW1wVG9F
ZGdlIjsKKyAgICAvLyAgICAgV2ViR1BVZGRyZXNzTW9kZSB0QWRkcmVzc01vZGUgPSAiY2xhbXBU
b0VkZ2UiOworICAgIC8vICAgICBXZWJHUFVGaWx0ZXJNb2RlRW51bSBtYWdGaWx0ZXIgPSAibmVh
cmVzdCI7CisgICAgLy8gICAgIFdlYkdQVUZpbHRlck1vZGVFbnVtIG1pbkZpbHRlciA9ICJuZWFy
ZXN0IjsKKyAgICAvLyAgICAgV2ViR1BVRmlsdGVyTW9kZUVudW0gbWlwbWFwRmlsdGVyID0gIm5l
YXJlc3QiOworICAgIC8vICAgICBmbG9hdCBsb2RNaW5DbGFtcCA9IDA7CisgICAgLy8gICAgIGZs
b2F0IGxvZE1heENsYW1wID0gTnVtYmVyLk1BWF9WQUxVRTsKKyAgICAvLyAgICAgdW5zaWduZWQg
bG9uZyBtYXhBbmlzb3Ryb3B5ID0gMTsKKyAgICAvLyAgICAgV2ViR1BVQ29tcGFyZUZ1bmN0aW9u
IGNvbXBhcmVGdW5jdGlvbiA9ICJuZXZlciI7CisgICAgLy8gICAgIFdlYkdQVUJvcmRlckNvbG9y
IGJvcmRlckNvbG9yID0gInRyYW5zcGFyZW50QmxhY2siOworICAgIC8vIH07CisKKyAgICBsZXQg
c2FtcGxlckRhdGEgPSB7fTsKKyAgICBzYW1wbGVyRGF0YS5yQWRkcmVzc01vZGUgPSBkaWN0LnJB
ZGRyZXNzTW9kZSwKKyAgICBzYW1wbGVyRGF0YS5zQWRkcmVzc01vZGUgPSBkaWN0LnNBZGRyZXNz
TW9kZSwKKyAgICBzYW1wbGVyRGF0YS50QWRkcmVzc01vZGUgPSBkaWN0LnRBZGRyZXNzTW9kZSwK
KyAgICBzYW1wbGVyRGF0YS5tYWdGaWx0ZXIgPSBkaWN0Lm1hZ0ZpbHRlcjsKKyAgICBzYW1wbGVy
RGF0YS5taW5GaWx0ZXIgPSBkaWN0Lm1pbkZpbHRlcgorICAgIHNhbXBsZXJEYXRhLm1pcG1hcEZp
bHRlciA9IGRpY3QubWlwbWFwRmlsdGVyOworICAgIHNhbXBsZXJEYXRhLmxvZE1pbkNsYW1wID0g
ZGljdC5sb2RNaW5DbGFtcCwKKyAgICBzYW1wbGVyRGF0YS5sb2RNYXhDbGFtcCA9IGRpY3QubG9k
TWF4Q2xhbXAsCisgICAgc2FtcGxlckRhdGEubWF4QW5pc290cm9weSA9IGRpY3QubWF4QW5pc290
cm9weSwKKyAgICBzYW1wbGVyRGF0YS5jb21wYXJlRnVuY3Rpb24gPSBkaWN0LmNvbXBhcmVGdW5j
dGlvbjsKKyAgICBzYW1wbGVyRGF0YS5ib3JkZXJDb2xvciA9IGRpY3QuYm9yZGVyQ29sb3I7CisK
KyAgICBpZiAoc2FtcGxlckRhdGEuckFkZHJlc3NNb2RlID09IHVuZGVmaW5lZCkKKyAgICAgICAg
c2FtcGxlckRhdGEuckFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICBpZiAoc2FtcGxl
ckRhdGEuc0FkZHJlc3NNb2RlID09IHVuZGVmaW5lZCkKKyAgICAgICAgc2FtcGxlckRhdGEuc0Fk
ZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICBpZiAoc2FtcGxlckRhdGEudEFkZHJlc3NN
b2RlID09IHVuZGVmaW5lZCkKKyAgICAgICAgc2FtcGxlckRhdGEudEFkZHJlc3NNb2RlID0gImNs
YW1wVG9FZGdlIjsKKyAgICBpZiAoc2FtcGxlckRhdGEubWluRmlsdGVyID09IHVuZGVmaW5lZCkK
KyAgICAgICAgc2FtcGxlckRhdGEubWluRmlsdGVyID0gIm5lYXJlc3QiOworICAgIGlmIChzYW1w
bGVyRGF0YS5tYWdGaWx0ZXIgPT0gdW5kZWZpbmVkKQorICAgICAgICBzYW1wbGVyRGF0YS5tYWdG
aWx0ZXIgPSAibmVhcmVzdCI7CisgICAgaWYgKHNhbXBsZXJEYXRhLm1pcEZpbHRlciA9PSB1bmRl
ZmluZWQpCisgICAgICAgIHNhbXBsZXJEYXRhLm1pcEZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICBp
ZiAoc2FtcGxlckRhdGEubG9kTWluQ2xhbXAgPT0gdW5kZWZpbmVkKQorICAgICAgICBzYW1wbGVy
RGF0YS5sb2RNaW5DbGFtcCA9IDA7CisgICAgaWYgKHNhbXBsZXJEYXRhLmxvZE1heENsYW1wID09
IHVuZGVmaW5lZCkKKyAgICAgICAgc2FtcGxlckRhdGEubG9kTWF4Q2xhbXAgPSBOdW1iZXIuTUFY
X1ZBTFVFOworICAgIGlmIChzYW1wbGVyRGF0YS5tYXhBbmlzb3Ryb3B5ID09IHVuZGVmaW5lZCkK
KyAgICAgICAgc2FtcGxlckRhdGEubWF4QW5pc290cm9weSA9IDE7CisgICAgaWYgKHNhbXBsZXJE
YXRhLmNvbXBhcmVGdW5jdGlvbiA9PSB1bmRlZmluZWQpCisgICAgICAgIHNhbXBsZXJEYXRhLmNv
bXBhcmVGdW5jdGlvbiA9ICJuZXZlciI7CisgICAgaWYgKHNhbXBsZXJEYXRhLmJvcmRlckNvbG9y
ID09IHVuZGVmaW5lZCkKKyAgICAgICAgc2FtcGxlckRhdGEuYm9yZGVyQ29sb3IgPSAidHJhbnNw
YXJlbnRCbGFjayI7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2lj
cy5zYW1wbGVyLCBzYW1wbGVyRGF0YSk7Cit9CisKKy8vIEVsZW1lbnRzIG1heSBlaXRoZXIgYmUg
YSBudW1iZXIgb3IgYSB2ZWN0b3Igb2YgMi00IG51bWJlcnMuCisvLyAxRCBUZXh0dXJlOiBBbiBh
cnJheSBvZiBtaXBtYXBzLiBUaGUgZmlyc3QgbWlwbWFwIGlzIHRoZSBmdWxsIHNpemUsIGFuZCBp
cyBhIHBvd2VyLW9mLXR3by4gRWFjaCBtaXBtYXAgaXMgaGFsZi1zaXplIG9mIHRoZSBwcmV2aW91
cyBzaXplLgorLy8gMUQgVGV4dHVyZSBBcnJheTogQW4gYXJyYXkgb2YgMUQgdGV4dHVyZXMuIEFs
bCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNhbWUgZGltZW5zaW9ucyBhbmQgbnVtYmVyIG9mIG1p
cG1hcHMuCisvLyAyRCBUZXh0dXJlOiBBbiBhcnJheSBvZiBtaXBtYXBzLiBUaGUgZmlyc3QgbWlw
bWFwIGlzIGEgcmVjdGFuZ3VsYXIgYXJyYXkgb2Ygcm93cywgYW5kIGVhY2ggcm93IGlzIGFuIGFy
cmF5IG9mIGVsZW1lbnRzLiBCb3RoIHRoZSByb3cgYW5kIGNvbHVtbiBjb3VudHMgbXVzdCBiZSBw
b3dlcnMgb2YgdHdvLiBFYWNoIG1pcG1hcCBpcyBoYWxmLXdpZHRoIGFuZCBoYWxmLWhlaWdodCBv
ZiB0aGUgcHJldmlvdXMgc2l6ZS4KKy8vIDJEIFRleHR1cmUgQXJyYXk6IEFuIGFycmF5IG9mIDJE
IHRleHR1cmVzLiBBbGwgdGV4dHVyZXMgbXVzdCBoYXZlIHRoZSBzYW1lIGRpbWVuc2lvbnMgYW5k
IG51bWJlciBvZiBtaXBtYXBzLgorLy8gM0QgVGV4dHVyZTogQW4gYXJyYXkgb2YgbWlwbWFwcy4g
VGhlIGZpcnN0IG1pcG1hcCBpcyBhIHJlY3Rhbmd1bGFyIGFycmF5IG9mIGNvbHVtbnMsIGVhY2gg
Y29sdW1uIGlzIGFuIGFycmF5IG9mIHJvd3MsIGFuZCBlYWNoIHJvdyBpcyBhbiBhcnJheSBvZiBl
bGVtZW50cy4gQm90aCBkZXB0aCwgcm93LCBhbmQgY29sdW1uIGNvdW50cyBtdXN0IGJlIHBvd2Vy
cyBvZiB0d28uIEVhY2ggbWlwbWFwIGlzIGhhbGYtZGVwdGgsIGhhbGYtaGVpZ2h0LCBhbmQgaGFs
Zi13aWR0aCBvZiB0aGUgcHJldmlvdXMgc2l6ZS4KKy8vIFRleHR1cmUgQ3ViZTogQW4gYXJyYXkg
b2YgNiAyRCB0ZXh0dXJlcy4gQWxsIHRleHR1cmVzIG11c3QgaGF2ZSB0aGUgc2FtZSBkaW1lbnNp
b25zIGFuZCBudW1iZXIgb2YgbWlwbWFwcy4KKy8vIFJXIDFEIFRleHR1cmU6IEFuIGFycmF5IG9m
IGVsZW1lbnRzLiBUaGUgd2lkdGggbXVzdCBiZSBhIHBvd2VyLW9mLXR3by4KKy8vIFJXIDFEIFRl
eHR1cmUgQXJyYXk6IEFuIGFycmF5IG9mIFJXIDFEIHRleHR1cmVzCisvLyBSVyAyRCBUZXh0dXJl
OiBBIHJlY3Rhbmd1bGFyIGFycmF5IG9mIHJvd3MsIGFuZCBlYWNoIHJvdyBpcyBhbiBhcnJheSBv
ZiBlbGVtZW50cy4gQm90aCB0aGUgcm93IGFuZCBjb2x1bW4gY291bnRzIG11c3QgYmUgcG93ZXJz
IG9mIHR3by4KKy8vIFJXIDJEIFRleHR1cmUgQXJyYXk6IEFuIGFycmF5IG9mIFJXIDJEIHRleHR1
cmVzCisvLyBSVyAzRCBUZXh0dXJlOiBBIHJlY3Rhbmd1bGFyIGFycmF5IG9mIGNvbHVtbnMsIGVh
Y2ggY29sdW1uIGlzIGFuIGFycmF5IG9mIHJvd3MsIGFuZCBlYWNoIHJvdyBpcyBhbiBhcnJheSBv
ZiBlbGVtZW50cy4gQm90aCBkZXB0aCwgcm93LCBhbmQgY29sdW1uIGNvdW50cyBtdXN0IGJlIHBv
d2VycyBvZiB0d28uCisKK2Z1bmN0aW9uIG1ha2UxRFRleHR1cmUocHJvZ3JhbSwgbWlwbWFwcywg
ZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmlu
c2ljc1tgVGV4dHVyZTFEPCR7ZWxlbWVudFR5cGV9PmBdLCBtaXBtYXBzKTsKK30KKworZnVuY3Rp
b24gbWFrZTFEVGV4dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAg
ICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlMURBcnJh
eTwke2VsZW1lbnRUeXBlfT5gXSwgYXJyYXkpOworfQorCitmdW5jdGlvbiBtYWtlMkRUZXh0dXJl
KHByb2dyYW0sIG1pcG1hcHMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVl
LmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmUyRDwke2VsZW1lbnRUeXBlfT5gXSwgbWlw
bWFwcyk7Cit9CisKK2Z1bmN0aW9uIG1ha2UyRFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwg
ZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmlu
c2ljc1tgVGV4dHVyZTJEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIGFycmF5KTsKK30KKworZnVu
Y3Rpb24gbWFrZTNEVGV4dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50VHlwZSkKK3sKKyAg
ICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlM0Q8JHtl
bGVtZW50VHlwZX0+YF0sIG1pcG1hcHMpOworfQorCitmdW5jdGlvbiBtYWtlVGV4dHVyZUN1YmUo
cHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJv
eChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmVDdWJlPCR7ZWxlbWVudFR5cGV9PmBdLCBhcnJh
eSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzFEVGV4dHVyZShwcm9ncmFtLCBlbGVtZW50cywgZWxl
bWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2lj
c1tgUldUZXh0dXJlMUQ8JHtlbGVtZW50VHlwZX0+YF0sIGVsZW1lbnRzKTsKK30KKworZnVuY3Rp
b24gbWFrZVJXMURUZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQorewor
ICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTFE
QXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIGFycmF5KTsKK30KKworZnVuY3Rpb24gbWFrZVJXMkRU
ZXh0dXJlKHByb2dyYW0sIHJvd3MsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZh
bHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTJEPCR7ZWxlbWVudFR5cGV9PmBd
LCByb3dzKTsKK30KKworZnVuY3Rpb24gbWFrZVJXMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJy
YXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmlu
dHJpbnNpY3NbYFJXVGV4dHVyZTJEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIGFycmF5KTsKK30K
KworZnVuY3Rpb24gbWFrZVJXM0RUZXh0dXJlKHByb2dyYW0sIGRlcHRoLCBlbGVtZW50VHlwZSkK
K3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1
cmUzRDwke2VsZW1lbnRUeXBlfT5gXSwgZGVwdGgpOworfQorCiBmdW5jdGlvbiBjaGVja051bWJl
cihwcm9ncmFtLCByZXN1bHQsIGV4cGVjdGVkKQogewogICAgIGlmICghcmVzdWx0LnR5cGUudW5p
ZnlOb2RlLmlzTnVtYmVyKQpAQCAtNTU4Miw3ICs1NzMzLDM3MCBAQCB0ZXN0cy5hcnJheUluZGV4
ID0gZnVuY3Rpb24oKSB7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMikgXSksIDMpOwogICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiYXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHBy
b2dyYW0sIDApIF0pLCA0KTsKICAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImFycmF5SW5kZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChw
cm9ncmFtLCAxKSBdKSwgNSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMikgXSksIDYpOyAgICAKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
VWludChwcm9ncmFtLCAyKSBdKSwgNik7Cit9CisKK3Rlc3RzLnRleHR1cmVEaW1lbnNpb25zID0g
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICB1aW50IGZv
bzEoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOwor
ICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgMCwgJndpZHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0
dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMihUZXh0dXJlMUQ8ZmxvYXQ+
IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IG51
bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lk
dGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7
CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28zKFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0
dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBlbGVtZW50
czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1l
bnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOwor
ICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNChU
ZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsK
KyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2
ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZlbGVt
ZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50czsKKyAg
ICAgICAgfQorICAgICAgICB1aW50IGZvbzUoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUp
IHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOwor
ICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgMCwgJndpZHRoLCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAg
ICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBm
b282KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsK
KyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVs
czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0
LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9
CisgICAgICAgIHVpbnQgZm9vNyhUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAg
ICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVp
bnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAs
ICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBo
ZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb284KFRleHR1cmUyRDxmbG9hdD4gdGV4
dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0
OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVu
c2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAg
ICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQg
Zm9vOShUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3
aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50
czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1l
bnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZM
ZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVp
bnQgZm9vMTAoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVp
bnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxl
bWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0
RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJl
ck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAg
ICAgdWludCBmb28xMShUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAg
ICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWlu
dCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAg
ICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAm
bnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAgICB9
CisgICAgICAgIHVpbnQgZm9vMTIoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAg
ICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAg
ICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAg
ICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVt
ZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVs
czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzEzKFRleHR1cmUzRDxmbG9hdD4gdGV4dHVy
ZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0Owor
ICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7
CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwg
JmRlcHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAg
ICAgICB9CisgICAgICAgIHVpbnQgZm9vMTQoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7Cisg
ICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAg
ICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAg
ICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgs
ICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9
CisgICAgICAgIHVpbnQgZm9vMTUoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAg
ICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1
aW50IGRlcHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAg
IEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgsICZudW1i
ZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gZGVwdGg7CisgICAgICAgIH0KKyAgICAg
ICAgdWludCBmb28xNihUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVp
bnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVw
dGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGlt
ZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCwgJm51bWJlck9mTGV2
ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAg
ICAgICB1aW50IGZvbzE3KFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAg
ICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50
IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAm
d2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lk
dGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xOChUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4
dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0
OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVu
c2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAg
ICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE5KFRl
eHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAg
ICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZu
dW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb28yMChSV1RleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSkgewor
ICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgJndpZHRoKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAg
ICB1aW50IGZvbzIxKFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAg
ICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAg
R2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZlbGVtZW50cyk7CisgICAgICAgICAgICBy
ZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yMihSV1RleHR1cmUxREFy
cmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAg
ICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndp
ZHRoLCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAgICB9
CisgICAgICAgIHVpbnQgZm9vMjMoUldUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAg
ICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAg
IEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICAgICAgICAgIHJl
dHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI0KFJXVGV4dHVyZTJEPGZs
b2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWlu
dCBoZWlnaHQ7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhl
aWdodCk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVp
bnQgZm9vMjUoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAg
dWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBl
bGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVp
Z2h0LCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9Cisg
ICAgICAgIHVpbnQgZm9vMjYoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAg
ICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndp
ZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAg
ICAgICAgfQorICAgICAgICB1aW50IGZvbzI3KFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1
cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsK
KyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRl
eHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBl
bGVtZW50czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI4KFJXVGV4dHVyZTNEPGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgR2V0RGltZW5zaW9u
cyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCk7CisgICAgICAgICAgICByZXR1cm4g
d2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yOShSV1RleHR1cmUzRDxmbG9hdD4g
dGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVp
Z2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnMo
dGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgpOworICAgICAgICAgICAgcmV0dXJuIGhl
aWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzMwKFJXVGV4dHVyZTNEPGZsb2F0PiB0
ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWln
aHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0
ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCk7CisgICAgICAgICAgICByZXR1cm4gZGVw
dGg7CisgICAgICAgIH0KKyAgICBgKTsKKyAgICBsZXQgdGV4dHVyZTFEID0gbWFrZTFEVGV4dHVy
ZShwcm9ncmFtLCBbWzEsIDcsIDE0LCA3OV0sIFsxMywgMTZdLCBbMTVdXSwgImZsb2F0Iik7Cisg
ICAgbGV0IHRleHR1cmUxREFycmF5ID0gbWFrZTFEVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbWzEs
IDcsIDE0LCA3OV0sIFsxMywgMTZdLCBbMTVdXSwgW1sxNiwgMTcsIDE4LCAxOV0sIFsyMCwgMjFd
LCBbMjJdXV0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlMkQgPSBtYWtlMkRUZXh0dXJlKHBy
b2dyYW0sIFsKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzks
IDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAy
MSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJd
XSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNl0sCisgICAgICAgIFszNywgMzgsIDM5LCA0MF1d
LAorICAgICAgICBbWzQxLCA0Ml1dCisgICAgXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmUy
REFycmF5ID0gbWFrZTJEVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbCisgICAgICAgIFtbMSwgMiwg
MywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAx
Nl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBb
MjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwg
MzZdLAorICAgICAgICBbMzcsIDM4LCAzOSwgNDBdXSwKKyAgICAgICAgW1s0MSwgNDJdXQorICAg
IF0sIFsKKyAgICAgICAgW1s0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4LCA0OSwgNTBdLAorICAgICAg
ICBbNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTcsIDU4XSwKKyAgICAgICAgWzU5LCA2MCwgNjEs
IDYyLCA2MywgNjQsIDY1LCA2Nl0sCisgICAgICAgIFs2NywgNjgsIDY5LCA3MCwgNzEsIDcyLCA3
MywgNzRdXSwKKyAgICAgICAgW1s3NSwgNzYsIDc3LCA3OF0sCisgICAgICAgIFs3OSwgODAsIDgx
LCA4Ml1dLAorICAgICAgICBbWzgzLCA4NF1dCisgICAgXV0sICJmbG9hdCIpOworICAgIGxldCB0
ZXh0dXJlM0QgPSBtYWtlM0RUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAgICAgW1tbMSwgMiwgMywg
NCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0s
CisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUs
IDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwg
NiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAg
ICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAy
NywgMjgsIDI5LCAzMCwgMzEsIDMyXV1dLAorICAgICAgICBbW1szMywgMzQsIDM1LCAzNl0sCisg
ICAgICAgIFszNywgMzgsIDM5LCA0MF1dXQorICAgIF0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0
dXJlQ3ViZSA9IG1ha2VUZXh0dXJlQ3ViZShwcm9ncmFtLCBbWworICAgICAgICBbWzEsIDJdLAor
ICAgICAgICBbMywgNF0sCisgICAgICAgIFs1LCA2XSwKKyAgICAgICAgWzcsIDhdXSwKKyAgICAg
ICAgW1s5XSwKKyAgICAgICAgWzEwXV0sCisgICAgXSwgWworICAgICAgICBbWzExLCAxMl0sCisg
ICAgICAgIFsxMywgMTRdLAorICAgICAgICBbMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOF1dLAor
ICAgICAgICBbWzE5XSwKKyAgICAgICAgWzIwXV0sCisgICAgXSwgWworICAgICAgICBbWzIxLCAy
Ml0sCisgICAgICAgIFsyMywgMjRdLAorICAgICAgICBbMjUsIDI2XSwKKyAgICAgICAgWzI3LCAy
OF1dLAorICAgICAgICBbWzI5XSwKKyAgICAgICAgWzMwXV0sCisgICAgXSwgWworICAgICAgICBb
WzMxLCAzMl0sCisgICAgICAgIFszMywgMzRdLAorICAgICAgICBbMzUsIDM2XSwKKyAgICAgICAg
WzM3LCAzOF1dLAorICAgICAgICBbWzM5XSwKKyAgICAgICAgWzQwXV0sCisgICAgXSwgWworICAg
ICAgICBbWzQxLCA0Ml0sCisgICAgICAgIFs0MywgNDRdLAorICAgICAgICBbNDUsIDQ2XSwKKyAg
ICAgICAgWzQ3LCA0OF1dLAorICAgICAgICBbWzQ5XSwKKyAgICAgICAgWzUwXV0sCisgICAgXSwg
WworICAgICAgICBbWzUxLCA1Ml0sCisgICAgICAgIFs1MywgNTRdLAorICAgICAgICBbNTUsIDU2
XSwKKyAgICAgICAgWzU3LCA1OF1dLAorICAgICAgICBbWzU5XSwKKyAgICAgICAgWzYwXV0sCisg
ICAgXV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmUxRCA9IG1ha2VSVzFEVGV4dHVyZShw
cm9ncmFtLCBbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sICJmbG9hdCIpOworICAgIGxldCByd1Rl
eHR1cmUxREFycmF5ID0gbWFrZVJXMURUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1sxLCAyLCAzLCA0
LCA1LCA2LCA3LCA4XSwgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwgWzE3LCAxOCwg
MTksIDIwLCAyMSwgMjIsIDIzLCAyNF1dLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlMkQg
PSBtYWtlUlcyRFRleHR1cmUocHJvZ3JhbSwgWworICAgICAgICBbMSwgMiwgMywgNCwgNSwgNiwg
NywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAg
IFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywg
MjgsIDI5LCAzMCwgMzEsIDMyXV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmUyREFycmF5
ID0gbWFrZVJXMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwgWworICAgICAgICBbWzEsIDIsIDMsIDQs
IDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAor
ICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAy
NiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2LCAz
NywgMzgsIDM5LCA0MF0sCisgICAgICAgIFs0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDhd
LAorICAgICAgICBbNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2XSwKKyAgICAgICAgWzU3
LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLCA2NF1dXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4
dHVyZTNEID0gbWFrZVJXM0RUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAgICAgW1sxLCAyLCAzLCA0
LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwK
KyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwg
MjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNiwg
MzcsIDM4LCAzOSwgNDBdLAorICAgICAgICBbNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4
XSwKKyAgICAgICAgWzQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1Nl0sCisgICAgICAgIFs1
NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2MywgNjRdXV0sICJmbG9hdCIpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFEXSksIDQp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBb
dGV4dHVyZTFEXSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXldKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheV0pLCAyKTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3Rl
eHR1cmUxREFycmF5XSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJEXSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEXSksIDQpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJE
XSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzkiLCBbdGV4dHVyZTJEQXJyYXldKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTJEQXJyYXldKSwgNCk7CisgICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZTJE
QXJyYXldKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTIiLCBbdGV4dHVyZTJEQXJyYXldKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZTNEXSksIDgpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmUz
RF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNSIsIFt0ZXh0dXJlM0RdKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZTNEXSksIDIpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVDdWJlXSksIDIp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4Iiwg
W3RleHR1cmVDdWJlXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVDdWJlXSksIDIpOworICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZTFEXSksIDgpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3
VGV4dHVyZTFEQXJyYXldKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjIiLCBbcndUZXh0dXJlMURBcnJheV0pLCAzKTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFtyd1RleHR1cmUyRF0p
LCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
NCIsIFtyd1RleHR1cmUyRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yNSIsIFtyd1RleHR1cmUyREFycmF5XSksIDgpOworICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI2IiwgW3J3VGV4dHVyZTJE
QXJyYXldKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjciLCBbcndUZXh0dXJlMkRBcnJheV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOCIsIFtyd1RleHR1cmUzRF0pLCA4KTsKKyAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOSIsIFtyd1Rl
eHR1cmUzRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zMCIsIFtyd1RleHR1cmUzRF0pLCAyKTsKK30KKwordGVzdHMudGV4dHVyZUxvYWQg
PSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCisgICAgICAgIGZsb2F0
IGZvbyhUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIGludCBtaXBtYXAsIGludCBsb2NhdGlvbikg
eworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MihtaXBtYXAsIGxvY2F0aW9u
KSk7CisgICAgICAgIH0KKyAgICBgKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2UxRFRleHR1cmUocHJvZ3JhbSwgW1sxLCA3LCAxNCwg
NzldLCBbMTMsIDE2XSwgWzE1XV0sICJmbG9hdCIpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZTFEVGV4dHVyZShwcm9ncmFtLCBbWzEsIDcsIDE0LCA3
OV0sIFsxMywgMTZdLCBbMTVdXSwgImZsb2F0IiksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMTYpOwogfQogCiBva1RvVGVzdCA9IHRydWU7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlT3BlcmF0aW9ucy5qcyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1cmVPcGVyYXRpb25zLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFhNzU4OTI3Y2E0YTMwYTUzYmM5MjdmZGNiNWU4ZDVlNmM4NmJlMTIKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlT3BlcmF0aW9ucy5q
cwpAQCAtMCwwICsxLDU4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisidXNlIHN0cmljdCI7CisKK2Z1bmN0aW9uIHRleHR1cmVMb2FkKHRleHR1cmUsIHBh
dGgpCit7CisgICAgZm9yICh2YXIgaW5kZXggb2YgcGF0aCkgeworICAgICAgICBpZiAoaW5kZXgg
PCAwIHx8IGluZGV4ID49IHRleHR1cmUubGVuZ3RoKQorICAgICAgICAgICAgdGhyb3cgbmV3IFdU
cmFwRXJyb3IoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIpOworICAgICAg
ICB0ZXh0dXJlID0gdGV4dHVyZVtpbmRleF07CisgICAgfQorICAgIHJldHVybiB0ZXh0dXJlOwor
fQorCitmdW5jdGlvbiB0ZXh0dXJlU3RvcmUodGV4dHVyZSwgdmFsdWUsIHBhdGgpCit7CisgICAg
ZG8geworICAgICAgICBpZiAocGF0aC5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigiWmVyby1sZW5ndGggc3RvcmUgcGF0aCIpOworICAgICAgICBpZiAocGF0aC5sZW5n
dGggPT0gMSkgeworICAgICAgICAgICAgdGV4dHVyZVtwYXRoWzBdXSA9IHZhbHVlOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGV4dHVyZSA9IHRl
eHR1cmVbcGF0aFswXV07CisgICAgICAgICAgICBwYXRoLnNoaWZ0KCk7CisgICAgICAgIH0KKyAg
ICB9IHdoaWxlICh0cnVlKTsKK30KKworZnVuY3Rpb24gZGVwdGhDb21wYXJlT3BlcmF0aW9uKGRy
ZWYsIGQsIGNvbXBhcmVGdW5jdGlvbikKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24g
MTUuMy40CisgICAgc3dpdGNoIChjb21wYXJlRnVuY3Rpb24pIHsKKyAgICAgICAgY2FzZSAibmV2
ZXIiOgorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGNhc2UgImxlc3MiOgorICAgICAg
ICAgICAgcmV0dXJuIGRyZWYgPCBkID8gMSA6IDA7CisgICAgICAgIGNhc2UgImVxdWFsIjoKKyAg
ICAgICAgICAgIHJldHVybiBkcmVmID09IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAibGVzc0Vx
dWFsIjoKKyAgICAgICAgICAgIHJldHVybiBkcmVmIDw9IGQgPyAxIDogMDsKKyAgICAgICAgY2Fz
ZSAiZ3JlYXRlciI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiA+IGQgPyAxIDogMDsKKyAgICAg
ICAgY2FzZSAibm90RXF1YWwiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYgIT0gZCA/IDEgOiAw
OworICAgICAgICBjYXNlICJncmVhdGVyRXF1YWwiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYg
Pj0gZCA/IDEgOiAwOworICAgICAgICBjYXNlICJhbHdheXMiOgorICAgICAgICAgICAgcmV0dXJu
IDE7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25v
d24gZGVwdGggY29tcGFyaXNvbiBmdW5jdGlvbiIpOworICAgIH0KK30KKworZnVuY3Rpb24gY29u
dmVyc2lvblRvUkdCQSh2YWx1ZSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUu
My41CisgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAgdmFyIHJlc3Vs
dCA9IFtdOworICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgKytpKQor
ICAgICAgICAgICAgcmVzdWx0LnB1c2godmFsdWVbaV0pOworICAgICAgICB3aGlsZSAocmVzdWx0
Lmxlbmd0aCAhPSA0KQorICAgICAgICAgICAgcmVzdWx0LnB1c2gocmVzdWx0Lmxlbmd0aCA9PSAz
ID8gMSA6IDApOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0gZWxzZQorICAgICAgICBy
ZXR1cm4gW3ZhbHVlLCAwLCAwLCAxXTsKK30KKworLy9Gb3IgZXhwbGljaXQgTE9EIGltYWdlIGlu
c3RydWN0aW9ucywgaWYgdGhlIG9wdGlvbmFsIFNQSVItViBvcGVyYW5kIEdyYWQgaXMgcHJvdmlk
ZWQsIHRoZW4gdGhlIG9wZXJhbmQgdmFsdWVzIGFyZSB1c2VkIGZvciB0aGUgZGVyaXZhdGl2ZXMu
IFRoZSBudW1iZXIgb2YgY29tcG9uZW50cyBwcmVzZW50IGluIGVhY2ggZGVyaXZhdGl2ZSBmb3Ig
YSBnaXZlbiBpbWFnZSBkaW1lbnNpb25hbGl0eSBtYXRjaGVzIHRoZSBudW1iZXIgb2YgcGFydGlh
bCBkZXJpdmF0aXZlcyBjb21wdXRlZCBhYm92ZS4KKy8vSWYgdGhlIG9wdGlvbmFsIFNQSVItViBv
cGVyYW5kIExvZCBpcyBwcm92aWRlZCwgdGhlbiBkZXJpdmF0aXZlcyBhcmUgc2V0IHRvIHplcm8s
IHRoZSBjdWJlIG1hcCBkZXJpdmF0aXZlIHRyYW5zZm9ybWF0aW9uIGlzIHNraXBwZWQsIGFuZCB0
aGUgc2NhbGUgZmFjdG9yIG9wZXJhdGlvbiBpcyBza2lwcGVkLiBJbnN0ZWFkLCB0aGUgZmxvYXRp
bmcgcG9pbnQgc2NhbGFyIGNvb3JkaW5hdGUgaXMgZGlyZWN0bHkgYXNzaWduZWQgdG8gzrtiYXNl
IGFzIGRlc2NyaWJlZCBpbiBMZXZlbC1vZi1EZXRhaWwgT3BlcmF0aW9uLgorZnVuY3Rpb24gaW1w
bGljaXREZXJpdmF0aXZlKCkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNQor
ICAgIHJldHVybiAwOworfQorCitmdW5jdGlvbiBwcm9qZWN0aW9uT3BlcmF0aW9uKHMsIHQsIHIs
IGRyZWYsIHEpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuMQorICAgIHJl
dHVybiBbcyAvIHEsIHQgLyBxLCByIC8gcSwgZHJlZiAvIHFdOworfQorCitmdW5jdGlvbiBjdWJl
TWFwRmFjZVNlbGVjdGlvbihzLCB0LCByLCBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWCwgcGFydGlh
bFJ4V2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUnlXaXRo
UmVzcGVjdFRvWSwgcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSeldpdGhSZXNwZWN0
VG9ZKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjQKKyAgICBsZXQgcngg
PSBzOworICAgIGxldCByeSA9IHQ7CisgICAgbGV0IHJ6ID0gcjsKKyAgICBsZXQgd2lubmVyID0g
MDsKKyAgICBpZiAoTWF0aC5hYnMocnopID49IE1hdGguYWJzKHJ5KSAmJiBNYXRoLmFicyhyeikg
Pj0gTWF0aC5hYnMocngpKQorICAgICAgICB3aW5uZXIgPSAyOworICAgIGVsc2UgaWYgKE1hdGgu
YWJzKHJ5KSA+PSBNYXRoLmFicyhyeCkgJiYgTWF0aC5hYnMocnkpID49IE1hdGguYWJzKHJ6KSkK
KyAgICAgICAgd2lubmVyID0gMTsKKworICAgIGxldCBsYXllck51bWJlcjsKKyAgICBsZXQgc2M7
CisgICAgbGV0IHRjOworICAgIGxldCByYzsKKyAgICBsZXQgcGFydGlhbFNjV2l0aFJlc3BlY3RU
b1g7CisgICAgbGV0IHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZOworICAgIGxldCBwYXJ0aWFsVGNX
aXRoUmVzcGVjdFRvWDsKKyAgICBsZXQgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1k7CisgICAgbGV0
IHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YOworICAgIGxldCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRv
WTsKKyAgICBpZiAod2lubmVyID09IDAgJiYgcnggPj0gMCkgeworICAgICAgICBsYXllck51bWJl
ciA9IDA7CisgICAgICAgIHNjID0gLXJ6OworICAgICAgICB0YyA9IC1yeTsKKyAgICAgICAgcmMg
PSByeDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ6V2l0aFJl
c3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeldp
dGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFs
UnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgPSAtcGFy
dGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YID0g
cGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9Z
ID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgfSBlbHNlIGlmICh3aW5uZXIgPT0gMCkg
eworICAgICAgICBsYXllck51bWJlciA9IDE7CisgICAgICAgIHNjID0gcno7CisgICAgICAgIHRj
ID0gLXJ5OworICAgICAgICByYyA9IHJ4OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRv
WCA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVj
dFRvWSA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVz
cGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0
aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxS
Y1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0
aWFsUmNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAgICB9IGVs
c2UgaWYgKHdpbm5lciA9PSAxICYmIHJ5ID49IDApIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSAy
OworICAgICAgICBzYyA9IHJ4OworICAgICAgICB0YyA9IC1yejsKKyAgICAgICAgcmMgPSByeTsK
KyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRv
WDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnhXaXRoUmVzcGVj
dFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnpXaXRoUmVz
cGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnpXaXRo
UmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnlX
aXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFs
UnlXaXRoUmVzcGVjdFRvWTsKKyAgICB9IGVsc2UgaWYgKHdpbm5lciA9PSAxKSB7CisgICAgICAg
IGxheWVyTnVtYmVyID0gMzsKKyAgICAgICAgc2MgPSByeDsKKyAgICAgICAgdGMgPSAtcno7Cisg
ICAgICAgIHJjID0gcnk7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gcGFydGlh
bFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0gcGFy
dGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0g
LXBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRv
WSA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3Bl
Y3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhS
ZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxzZSBpZiAod2lu
bmVyID09IDIgJiYgcnogPj0gMCkgeworICAgICAgICBsYXllck51bWJlciA9IDQ7CisgICAgICAg
IHNjID0gcng7CisgICAgICAgIHRjID0gLXJ5OworICAgICAgICByYyA9IHJ6OworICAgICAgICBw
YXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAg
ICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAg
ICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsK
KyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RU
b1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ6V2l0aFJlc3Bl
Y3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ6V2l0aFJl
c3BlY3RUb1k7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSA1OworICAgICAg
ICBzYyA9IC1yeDsKKyAgICAgICAgdGMgPSAtcnk7CisgICAgICAgIHJjID0gcno7CisgICAgICAg
IHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAg
ICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWTsK
KyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RU
b1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNw
ZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnpXaXRo
UmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ6
V2l0aFJlc3BlY3RUb1k7CisgICAgfQorICAgIHJldHVybiBbbGF5ZXJOdW1iZXIsIHNjLCB0Yywg
cmMsIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSwgcGFy
dGlhbFRjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUmNX
aXRoUmVzcGVjdFRvWCwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ldCit9CisKK2Z1bmN0aW9uIGN1
YmVNYXBDb29yZGluYXRlVHJhbnNmb3JtYXRpb24oc2MsIHJjKQoreworICAgIC8vIFZ1bGthbiAx
LjEuODMgc2VjdGlvbiAxNS42LjUKKyAgICBsZXQgc0ZhY2UgPSAoMSAvIDIpICogc2MgLyBNYXRo
LmFicyhyYykgKyAoMSAvIDIpOworICAgIGxldCB0RmFjZSA9ICgxIC8gMikgKiB0YyAvIE1hdGgu
YWJzKHJjKSArICgxIC8gMik7CisgICAgcmV0dXJuIFtzRmFjZSwgdEZhY2VdOworfQorCitmdW5j
dGlvbiBjdWJlTWFwRGVyaXZhdGl2ZVRyYW5zZm9ybWF0aW9uKHNjLCB0YywgcmMsIHBhcnRpYWxT
Y1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRjV2l0aFJl
c3BlY3RUb1gsIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRv
WCwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0
aW9uIDE1LjYuNgorICAgIGxldCBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWCA9ICgxIC8gMikg
KiAoKE1hdGguYWJzKHJjKSAqIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YIC0gc2MgKiBwYXJ0aWFs
UmNXaXRoUmVzcGVjdFRvWCkgLyBNYXRoLnBvdyhyYywgMikpOworICAgIGxldCBwYXJ0aWFsU0Zh
Y2VXaXRoUmVzcGVjdFRvWSA9ICgxIC8gMikgKiAoKE1hdGguYWJzKHJjKSAqIHBhcnRpYWxTY1dp
dGhSZXNwZWN0VG9ZIC0gc2MgKiBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSkgLyBNYXRoLnBvdyhy
YywgMikpOworICAgIGxldCBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRvWCA9ICgxIC8gMikgKiAo
KE1hdGguYWJzKHJjKSAqIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YIC0gdGMgKiBwYXJ0aWFsUmNX
aXRoUmVzcGVjdFRvWCkgLyBNYXRoLnBvdyhyYywgMikpOworICAgIGxldCBwYXJ0aWFsVEZhY2VX
aXRoUmVzcGVjdFRvWSA9ICgxIC8gMikgKiAoKE1hdGguYWJzKHJjKSAqIHBhcnRpYWxUY1dpdGhS
ZXNwZWN0VG9ZIC0gdGMgKiBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSkgLyBNYXRoLnBvdyhyYywg
MikpOworICAgIHJldHVybiBbcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTRmFj
ZVdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRGYWNl
V2l0aFJlc3BlY3RUb1ldOworfQorCitmdW5jdGlvbiBzY2FsZUZhY3Rvck9wZXJhdGlvbihkZXZp
Y2VNYXhBbmlzb3Ryb3B5LCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgc2FtcGxlck1heEFuaXNvdHJv
cHksIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1gsIHBhcnRp
YWxSV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxUV2l0aFJl
c3BlY3RUb1ksIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kpCit7CisgICAgLy8gVnVsa2FuIDEuMS44
MyBzZWN0aW9uIDE1LjYuNworICAgIGxldCBtdXggPSBNYXRoLmFicyhwYXJ0aWFsU1dpdGhSZXNw
ZWN0VG9YKSAqIHdpZHRoOworICAgIGxldCBtdnggPSBNYXRoLmFicyhwYXJ0aWFsVFdpdGhSZXNw
ZWN0VG9YKSAqIGhlaWdodDsKKyAgICBsZXQgbXd4ID0gTWF0aC5hYnMocGFydGlhbFJXaXRoUmVz
cGVjdFRvWCkgKiBkZXB0aDsKKyAgICBsZXQgbXV5ID0gTWF0aC5hYnMocGFydGlhbFNXaXRoUmVz
cGVjdFRvWSkgKiB3aWR0aDsKKyAgICBsZXQgbXZ5ID0gTWF0aC5hYnMocGFydGlhbFRXaXRoUmVz
cGVjdFRvWSkgKiBoZWlnaHQ7CisgICAgbGV0IG13eSA9IE1hdGguYWJzKHBhcnRpYWxSV2l0aFJl
c3BlY3RUb1kpICogZGVwdGg7CisKKyAgICBsZXQgZnggPSBNYXRoLnNxcnQoMikgKiAobXV4ICsg
bXZ4ICsgbXd4KTsKKyAgICBsZXQgZnkgPSBNYXRoLnNxcnQoMikgKiAobXV5ICsgbXZ5ICsgbXd5
KTsKKworICAgIGxldCByaG9YID0gZng7CisgICAgbGV0IHJob1kgPSBmeTsKKyAgICBsZXQgcmhv
TWF4ID0gTWF0aC5tYXgocmhvWCwgcmhvWSk7CisgICAgbGV0IHJob01pbiA9IE1hdGgubWluKHJo
b1gsIHJob1kpOworCisgICAgbGV0IG1heEFuaXNvID0gTWF0aC5taW4oc2FtcGxlck1heEFuaXNv
dHJvcHksIGRldmljZU1heEFuaXNvdHJvcHkpOworCisgICAgbGV0IGV0YTsKKyAgICBpZiAocmhv
TWF4ID09IDAgJiYgcmhvTWluID09IDApCisgICAgICAgIGV0YSA9IDE7CisgICAgZWxzZSBpZiAo
cmhvTWluID09IDApCisgICAgICAgIGV0YSA9IG1heEFuaXNvOworICAgIGVsc2UKKyAgICAgICAg
ZXRhID0gTWF0aC5taW4ocmhvTWF4IC8gcmhvTWluLCBtYXhBbmlzbyk7CisKKyAgICBsZXQgTiA9
IE1hdGguY2VpbChldGEpOworICAgIHJldHVybiBbcmhvTWF4LCByaG9NaW4sIGV0YSwgTl07Cit9
CisKK2Z1bmN0aW9uIGxldmVsT2ZEZXRhaWxPcGVyYXRpb24oZGV2aWNlTWF4U2FtcGxlckxvZEJp
YXMsIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQsIGJp
YXNGcm9tRnVuY3Rpb25PcGVyYW5kLCBzYW1wbGVyQmlhcywgc2FtcGxlckxvZE1pbiwgc2FtcGxl
ckxvYWRNYXgsIHJob01heCwgZXRhKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAx
NS42LjcKKyAgICBsZXQgbGFtYmRhQmFzZSA9IGxvZEZyb21GdW5jdGlvbk9wZXJhbmQgIT0gdW5k
ZWZpbmVkID8gbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCA6IE1hdGgubG9nMihyaG9NYXggLyBldGEp
OworICAgIGxldCBsYW1iZGFQcmltZSA9IGxhbWJkYUJhc2UgKyBNYXRoLm1pbihNYXRoLm1heChz
YW1wbGVyQmlhcyArIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLCAtZGV2aWNlTWF4U2FtcGxlckxv
ZEJpYXMpLCBkZXZpY2VNYXhTYW1wbGVyTG9kQmlhcyk7CisgICAgbGV0IGxvZE1pbiA9IE1hdGgu
bWF4KHNhbXBsZXJMb2RNaW4sIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQpOworICAgIGxldCBs
b2RNYXggPSBzYW1wbGVyTG9hZE1heDsKKyAgICBsZXQgbGFtYmRhOworICAgIGlmIChsYW1iZGFQ
cmltZSA+IGxvZE1heCkKKyAgICAgICAgbGFtYmRhID0gbG9kTWF4OworICAgIGVsc2UgaWYgKGxv
ZE1pbiA8PSBsYW1iZGFQcmltZSAmJiBsYW1iZGFQcmltZSA8PSBsb2RNYXgpCisgICAgICAgIGxh
bWJkYSA9IGxhbWJkYVByaW1lOworICAgIGVsc2UgaWYgKGxhbWJkYVByaW1lIDwgbG9kTWluKQor
ICAgICAgICBsYW1iZGEgPSBsb2RNaW47CisgICAgZWxzZQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoImxvZE1pbiA+PSBsb2RNYXgiKTsKKyAgICByZXR1cm4gbGFtYmRhOworfQorCitmdW5jdGlv
biBpbWFnZUxldmVsU2VsZWN0aW9uKGJhc2VNaXBMZXZlbCwgbGV2ZWxDb3VudCwgbWlwbWFwTW9k
ZSwgbGFtYmRhKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjcKKyAgICBm
dW5jdGlvbiBuZWFyZXN0KGRQcmltZSkKKyAgICB7CisgICAgICAgIHJldHVybiBNYXRoLmNlaWwo
ZFByaW1lICsgMC41KSAtIDE7CisgICAgfQorCisgICAgbGV0IHEgPSBsZXZlbENvdW50IC0gMTsK
KyAgICBsZXQgZFByaW1lID0gYmFzZU1pcExldmVsICsgTWF0aC5taW4oTWF0aC5tYXgobGFtYmRh
LCAwKSwgcSk7CisgICAgbGV0IGRsOworICAgIGlmIChtaXBtYXBNb2RlID09ICJuZWFyZXN0IikK
KyAgICAgICAgZGwgPSBuZWFyZXN0KGRQcmltZSk7CisgICAgZWxzZQorICAgICAgICBkbCA9IGRQ
cmltZTsKKyAgICBpZiAobWlwbWFwTW9kZSA9PSAibmVhcmVzdCIpCisgICAgICAgIHJldHVybiBk
bDsKKyAgICBlbHNlIHsKKyAgICAgICAgbGV0IGRIaSA9IE1hdGguZmxvb3IoZGwpOworICAgICAg
ICBsZXQgZExvdyA9IE1hdGgubWluKGRIaSArIDEsIHEpOworICAgICAgICBsZXQgZGVsdGEgPSBk
bCAtIGRIaTsKKyAgICAgICAgcmV0dXJuIFtkSGksIGRMb3csIGRlbHRhXTsKKyAgICB9Cit9CisK
K2Z1bmN0aW9uIHN0cnFhVG9VVldBVHJhbnNmb3JtYXRpb24ocywgdCwgciwgd2lkdGgsIGhlaWdo
dCwgZGVwdGgpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuOAorICAgIGxl
dCB1ID0gcyAqIHdpZHRoOworICAgIGxldCB2ID0gdCAqIGhlaWdodDsKKyAgICBsZXQgdyA9IHIg
KiBkZXB0aDsKKyAgICByZXR1cm4gW3UsIHYsIHddOworfQorCitmdW5jdGlvbiB1dndhVG9JSktM
TlRyYW5zZm9ybWF0aW9uQW5kQXJyYXlMYXllclNlbGVjdGlvbihsYXllckNvdW50LCBiYXNlQXJy
YXlMYXllciwgZmlsdGVyLCB1LCB2LCB3LCBhLCBkZWx0YUksIGRlbHRhSiwgZGVsdGFLKQorewor
ICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS43LjEKKyAgICBmdW5jdGlvbiBybmUoYSkK
KyAgICB7CisgICAgICAgIHJldHVybiBNYXRoLmZsb29yKGEgKyAwLjUpOworICAgIH0KKyAgICBs
ZXQgbCA9IE1hdGgubWluKE1hdGgubWF4KHJuZShhKSwgMCksIGxheWVyQ291bnQgLSAxKSArIGJh
c2VBcnJheUxheWVyOworICAgIGxldCBpOworICAgIGxldCBqOworICAgIGxldCBrOworICAgIGlm
IChmaWx0ZXIgPT0gIm5lYXJlc3QiKSB7CisgICAgICAgIGkgPSBNYXRoLmZsb29yKHUpOworICAg
ICAgICBqID0gTWF0aC5mbG9vcih2KTsKKyAgICAgICAgayA9IE1hdGguZmxvb3Iodyk7CisgICAg
ICAgIAorICAgICAgICBpICs9IGRlbHRhSTsKKyAgICAgICAgaiArPSBkZWx0YUo7CisgICAgICAg
IGsgKz0gZGVsdGFLOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIFtpLCBqLCBrLCBsXTsKKyAg
ICB9IGVsc2UgeworICAgICAgICBpZiAoZmlsdGVyICE9ICJsaW5lYXIiKQorICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGZpbHRlciIpOworICAgICAgICBsZXQgaTAgPSBNYXRo
LmZsb29yKHUgLSAwLjUpOworICAgICAgICBsZXQgaTEgPSBpMCArIDE7CisgICAgICAgIGxldCBq
MCA9IE1hdGguZmxvb3IodiAtIDAuNSk7CisgICAgICAgIGxldCBqMSA9IGowICsgMTsKKyAgICAg
ICAgbGV0IGswID0gTWF0aC5mbG9vcih3IC0gMC41KTsKKyAgICAgICAgbGV0IGsxID0gazAgKyAx
OworICAgICAgICBsZXQgYWxwaGEgPSAodSAtIDAuNSkgLSBpMDsKKyAgICAgICAgbGV0IGJldGEg
PSAodiAtIDAuNSkgLSBqMDsKKyAgICAgICAgbGV0IGdhbW1hID0gKHcgLSAwLjUpIC0gazA7Cisg
ICAgICAgIAorICAgICAgICBpMCArPSBkZWx0YUk7CisgICAgICAgIGkxICs9IGRlbHRhSTsKKyAg
ICAgICAgajAgKz0gZGVsdGFKOworICAgICAgICBqMSArPSBkZWx0YUo7CisgICAgICAgIGswICs9
IGRlbHRhSzsKKyAgICAgICAgazEgKz0gZGVsdGFLOworICAgICAgICAKKyAgICAgICAgcmV0dXJu
IFtpMCwgaTEsIGowLCBqMSwgazAsIGsxLCBsLCBhbHBoYSwgYmV0YSwgZ2FtbWFdOworICAgIH0K
K30KKworZnVuY3Rpb24gaW50ZWdlclRleGVsQ29vcmRpbmF0ZU9wZXJhdGlvbnMoYmFzZU1pcExl
dmVsLCBsZXZlbENvdW50LCBsZXZlbEJhc2UsIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQpCit7Cisg
ICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjgKKyAgICBsZXQgZCA9IGxldmVsQmFzZSAr
IGxvZEZyb21GdW5jdGlvbk9wZXJhbmQ7CisgICAgaWYgKGQgPCBiYXNlTWlwTGV2ZWwgfHwgZCA+
PSBiYXNlTWlwTGV2ZWwgKyBsZXZlbENvdW50KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNl
bGVjdGVkIGxldmVsIGRvZXMgbm90IGxpZSBpbnNpZGUgdGhlIGltYWdlIik7CisgICAgcmV0dXJu
IGQ7Cit9CisKK2Z1bmN0aW9uIHdyYXBwaW5nT3BlcmF0aW9uKHdpZHRoLCBoZWlnaHQsIGRlcHRo
LCBhZGRyZXNzTW9kZVUsIGFkZHJlc3NNb2RlViwgYWRkcmVzc01vZGVXLCBpLCBqLCBrKQorewor
ICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS45LjEKKyAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IGN1YmUgbWFwIGhhbmRsaW5nCisgICAgZnVuY3Rpb24gdHJhbnNmb3JtKGFkZHJlc3NNb2Rl
LCBzaXplLCBpKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gbWlycm9yKG4pIHsKKyAgICAgICAg
ICAgIGlmIChuID49IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIG47CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIC0oMSArIG4pOworICAgICAgICB9CisgICAgICAg
IHN3aXRjaCAoYWRkcmVzc01vZGUpIHsKKyAgICAgICAgICAgIGNhc2UgImNsYW1wVG9FZGdlIjoK
KyAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoaSwgMCksIHNpemUgLSAx
KTsKKyAgICAgICAgICAgIGNhc2UgInJlcGVhdCI6CisgICAgICAgICAgICAgICAgcmV0dXJuIGkg
JSBzaXplOworICAgICAgICAgICAgY2FzZSAibWlycm9yUmVwZWF0IjoKKyAgICAgICAgICAgICAg
ICByZXR1cm4gKHNpemUgLSAxKSAtIG1pcnJvcigoaSAlICgyICogc2l6ZSkpIC0gc2l6ZSk7Cisg
ICAgICAgICAgICBjYXNlICJjbGFtcFRvQm9yZGVyQ29sb3IiOgorICAgICAgICAgICAgICAgIHJl
dHVybiBNYXRoLm1pbihNYXRoLm1heChpLCAtMSksIHNpemUpOworICAgICAgICAgICAgZGVmYXVs
dAorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBhZGRyZXNzIG1vZGUi
KTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gW3RyYW5zZm9ybShhZGRyZXNzTW9kZVUs
IHdpZHRoLCBpKSwgdHJhbnNmb3JtKGFkZHJlc3NNb2RlViwgaGVpZ2h0LCBqKSwgdHJhbnNmb3Jt
KGFkZHJlc3NNb2RlVywgZGVwdGgsIGspXTsKK30KKworZnVuY3Rpb24gdGV4ZWxHYXRoZXJpbmco
KQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS45LjIKKyAgICAvLyBGSVhNRTog
SW1wbGVtZW50IHRoaXMKKyAgICAvKmxldCB0YXVSID0gOworICAgIGxldCB0YXVHID0gOworICAg
IGxldCB0YXVCID0gOworICAgIGxldCB0YXVBID0gOyovCit9CisKK2Z1bmN0aW9uIHRleGVsRmls
dGVyaW5nKAorICAgIGRldmljZU1heEFuaXNvdHJvcHksCisgICAgZGV2aWNlTWF4U2FtcGxlckxv
ZEJpYXMsCisgICAgYmFzZU1pcExldmVsLAorICAgIGxldmVsQ291bnQsCisgICAgbGF5ZXJDb3Vu
dCwKKyAgICBiYXNlQXJyYXlMYXllciwKKyAgICBhZGRyZXNzTW9kZVUsCisgICAgYWRkcmVzc01v
ZGVWLAorICAgIGFkZHJlc3NNb2RlVywKKyAgICBtYWdGaWx0ZXIsCisgICAgbWluRmlsdGVyLAor
ICAgIG1pcG1hcE1vZGUsCisgICAgc2FtcGxlckxvZE1pbiwKKyAgICBzYW1wbGVyTG9hZE1heCwK
KyAgICBzYW1wbGVyTWF4QW5pc290cm9weSwKKyAgICBib3JkZXJDb2xvciwKKyAgICBzYW1wbGVy
QmlhcywKKyAgICBzLCB0LCByLCBhLAorICAgIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUssCisgICAg
bG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwKKyAgICBsb2RNaW5Gcm9tRnVuY3Rpb25PcGVyYW5kLAor
ICAgIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgIGRkeCwgZGR5LAorICAgIGRpbWVuc2lv
biwKKyAgICBiYXNlV2lkdGgsCisgICAgYmFzZUhlaWdodCwKKyAgICBiYXNlRGVwdGgsCisgICAg
YWNjZXNzRWxlbWVudENhbGxiYWNrLAorICAgIGFjY2Vzc1Jvd0NhbGxiYWNrLAorICAgIGFjY2Vz
c0RlcHRoU2xpY2VDYWxsYmFjaywKKyAgICBhY2Nlc3NMZXZlbENhbGxiYWNrLAorICAgIGFjY2Vz
c0xheWVyQ2FsbGJhY2ssCisgICAgYm9yZGVyQ2FsbGJhY2ssCisgICAgZGF0YSkKK3sKKyAgICAv
LyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOS4zCisgICAgbGV0IGZpbHRlcjsKKyAgICBpZiAo
bGFtYmRhIDw9IDApCisgICAgICAgIGZpbHRlciA9IG1hZ0ZpbHRlcjsKKyAgICBlbHNlCisgICAg
ICAgIGZpbHRlciA9IG1pbkZpbHRlcjsKKworICAgIGZ1bmN0aW9uIGNvbXB1dGVUYXUobGV2ZWwp
CisgICAgeworICAgICAgICBmdW5jdGlvbiByZWR1Y2UoLi4uYXJndW1lbnRzKQorICAgICAgICB7
CisgICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAlIDIgIT0gMCkKKyAgICAgICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIkRvbid0IGhhdmUgYSB3ZWlnaHQgY29ycmVzcG9uZGluZyB0
byBlYWNoIHZhbHVlIik7CisgICAgICAgICAgICBsZXQgc3VtID0gMDsKKyAgICAgICAgICAgIC8v
IEZJWE1FOiBUaGVzZSBhcmd1bWVudHMgbmVlZCB0byBiZSBhdmVyYWdlZCBjb21wb25lbnQtd2lz
ZS4KKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aCAvIDI7
ICsraSkKKyAgICAgICAgICAgICAgICBzdW0gKz0gYXJndW1lbnRzWzIgKiBpXSAqIGFyZ3VtZW50
c1syICogaSArIDFdOworICAgICAgICAgICAgcmV0dXJuIHN1bTsKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsLCBpLCBqLCBr
KQorICAgICAgICB7CisgICAgICAgICAgICBmdW5jdGlvbiBzaG91bGRCZUJvcmRlcih2YWx1ZSwg
bWF4KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA8IC0xIHx8IHZh
bHVlID4gbWF4KQorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk91dC1vZi1i
b3VuZHMgdGV4dHVyZSByZWFkIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09IC0x
IHx8IHZhbHVlID09IG1heCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxldCBbd3Jh
cHBlZEksIHdyYXBwZWRKLCB3cmFwcGVkS10gPSB3cmFwcGluZ09wZXJhdGlvbih3aWR0aCwgaGVp
Z2h0LCBkZXB0aCwgYWRkcmVzc01vZGVVLCBhZGRyZXNzTW9kZVYsIGFkZHJlc3NNb2RlVywgaSwg
aiwgaykKKyAgICAgICAgICAgIGlmIChzaG91bGRCZUJvcmRlcihpLCB3aWR0aCkgfHwgc2hvdWxk
QmVCb3JkZXIoaiwgaGVpZ2h0KSB8fCBzaG91bGRCZUJvcmRlcihrLCBkZXB0aCkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIGJvcmRlckNhbGxiYWNrKGJvcmRlckNvbG9yKTsKKyAgICAgICAgICAg
IGVsc2UgeworICAgICAgICAgICAgICAgIGxldCBsYXllckRhdGEgPSBhY2Nlc3NMYXllckNhbGxi
YWNrKGRhdGEsIGwpOworICAgICAgICAgICAgICAgIGxldCBsZXZlbERhdGEgPSBhY2Nlc3NMZXZl
bENhbGxiYWNrKGxheWVyRGF0YSwgbGV2ZWwpOworICAgICAgICAgICAgICAgIGxldCBkZXB0aFNs
aWNlRGF0YSA9IGFjY2Vzc0RlcHRoU2xpY2VDYWxsYmFjayhsZXZlbERhdGEsIGspOworICAgICAg
ICAgICAgICAgIGxldCByb3dEYXRhID0gYWNjZXNzUm93Q2FsbGJhY2soZGVwdGhTbGljZURhdGEs
IGopOworICAgICAgICAgICAgICAgIGxldCBlbGVtZW50ID0gYWNjZXNzRWxlbWVudENhbGxiYWNr
KHJvd0RhdGEsIGkpOworICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50OworICAgICAgICAg
ICAgfQorICAgICAgICB9CisKKyAgICAgICAgbGV0IFt1LCB2LCB3XSA9IHN0cnFhVG9VVldBVHJh
bnNmb3JtYXRpb24ocywgdCwgciwgYmFzZVdpZHRoLCBiYXNlSGVpZ2h0LCBiYXNlRGVwdGgpOwor
ICAgICAgICBpZiAoZmlsdGVyID09ICJuZWFyZXN0IikgeworICAgICAgICAgICAgbGV0IFtpLCBq
LCBrLCBsXSA9IHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25BbmRBcnJheUxheWVyU2VsZWN0aW9u
KGxheWVyQ291bnQsIGJhc2VBcnJheUxheWVyLCBmaWx0ZXIsIHUsIHYsIHcsIGEsIGRlbHRhSSwg
ZGVsdGFKLCBkZWx0YUspOworICAgICAgICAgICAgcmV0dXJuIGFjY2Vzc0NvbG9yKHdpZHRoLCBo
ZWlnaHQsIGRlcHRoLCBsLCBpLCBqLCBrKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IGlmIChtaXBtYXBNb2RlICE9ICJsaW5lYXIiKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBF
cnJvcigiVW5rbm93biBmaWx0ZXIiKTsKKyAgICAgICAgICAgIFtpMCwgaTEsIGowLCBqMSwgazAs
IGsxLCBsLCBhbHBoYSwgYmV0YSwgZ2FtbWFdID0gdXZ3YVRvSUpLTE5UcmFuc2Zvcm1hdGlvbkFu
ZEFycmF5TGF5ZXJTZWxlY3Rpb24obGF5ZXJDb3VudCwgYmFzZUFycmF5TGF5ZXIsIGZpbHRlciwg
dSwgdiwgdywgYSwgZGVsdGFJLCBkZWx0YUosIGRlbHRhSyk7CisgICAgICAgICAgICBsZXQgY29s
b3IwMDAgPSBhY2Nlc3NDb2xvcih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbCwgaTAsIGowLCBrMCk7
CisgICAgICAgICAgICBsZXQgY29sb3IxMDAgPSBhY2Nlc3NDb2xvcih3aWR0aCwgaGVpZ2h0LCBk
ZXB0aCwgbCwgaTEsIGowLCBrMCk7CisgICAgICAgICAgICBsZXQgY29sb3IwMTAgPSBhY2Nlc3ND
b2xvcih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbCwgaTAsIGoxLCBrMCk7CisgICAgICAgICAgICBs
ZXQgY29sb3IxMTAgPSBhY2Nlc3NDb2xvcih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbCwgaTEsIGox
LCBrMCk7CisgICAgICAgICAgICBsZXQgY29sb3IwMDEgPSBhY2Nlc3NDb2xvcih3aWR0aCwgaGVp
Z2h0LCBkZXB0aCwgbCwgaTAsIGowLCBrMSk7CisgICAgICAgICAgICBsZXQgY29sb3IxMDEgPSBh
Y2Nlc3NDb2xvcih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbCwgaTEsIGowLCBrMSk7CisgICAgICAg
ICAgICBsZXQgY29sb3IwMTEgPSBhY2Nlc3NDb2xvcih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbCwg
aTAsIGoxLCBrMSk7CisgICAgICAgICAgICBsZXQgY29sb3IxMTEgPSBhY2Nlc3NDb2xvcih3aWR0
aCwgaGVpZ2h0LCBkZXB0aCwgbCwgaTEsIGoxLCBrMSk7CisgICAgICAgICAgICBzd2l0Y2ggKGRp
bWVuc2lvbikgeworICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAg
bGV0IGNvbG9yMCA9IGNvbG9yMDExOworICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IxID0g
Y29sb3IxMTE7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWR1Y2UoMSAtIGFscGhhLCBj
b2xvcjAsIGFscGhhLCBjb2xvcjEpOworICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAg
ICAgICAgICAgICAgbGV0IGNvbG9yMDAgPSBjb2xvcjAwMTsKKyAgICAgICAgICAgICAgICAgICAg
bGV0IGNvbG9yMTAgPSBjb2xvcjEwMTsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMDEg
PSBjb2xvcjAxMTsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMTEgPSBjb2xvcjExMTsK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZHVjZSgoMSAtIGFscGhhKSAqICgxIC0gYmV0
YSksIGNvbG9yMDAsIGFscGhhICogKDEgLSBiZXRhKSwgY29sb3IxMCwgKDEgLSBhbHBoYSkgKiBi
ZXRhLCBjb2xvcjAxLCBhbHBoYSAqIGJldGEsIGNvbG9yMTEpOworICAgICAgICAgICAgICAgIGNh
c2UgMzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZHVjZSgKKyAgICAgICAgICAgICAg
ICAgICAgICAgICgxIC0gYWxwaGEpICogKDEgLSBiZXRhKSAqICgxIC0gZ2FtbWEpLCBjb2xvcjAw
MCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFscGhhICogKDEgLSBiZXRhKSAqICgxIC0gZ2Ft
bWEpLCBjb2xvcjEwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICgxIC0gYWxwaGEpICogYmV0
YSAqICgxIC0gZ2FtbWEpLCBjb2xvcjAxMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFscGhh
ICogYmV0YSAqICgxIC0gZ2FtbWEpLCBjb2xvcjExMCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICgxIC0gYWxwaGEpICogKDEgLSBiZXRhKSAqIGdhbW1hLCBjb2xvcjAwMSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGFscGhhICogKDEgLSBiZXRhKSAqIGdhbW1hLCBjb2xvcjEwMSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICgxIC0gYWxwaGEpICogYmV0YSAqIGdhbW1hLCBjb2xvcjAxMSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGFscGhhICogYmV0YSAqIGdhbW1hLCBjb2xvcjExMSk7
CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJVbmtub3duIGRpbWVuc2lvbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgfQorCisgICAgbGV0IGJhc2VXaWR0aCA9IGNvbXB1dGVXaWR0aENhbGxiYWNrKDApOworICAg
IGxldCBiYXNlSGVpZ2h0ID0gY29tcHV0ZUhlaWdodENhbGxiYWNrKDApOworICAgIGxldCBiYXNl
RGVwdGggPSBjb21wdXRlRGVwdGhDYWxsYmFjaygwKTsKKyAgICAvLyBGSVhNRTogTWFrZSB0aGlz
IHdvcmsgd2l0aCBjdWJlbWFwcworICAgIGxldCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9YID0gMDsK
KyAgICBsZXQgcGFydGlhbFRXaXRoUmVzcGVjdFRvWCA9IDA7CisgICAgbGV0IHBhcnRpYWxSV2l0
aFJlc3BlY3RUb1ggPSAwOworICAgIGlmIChkZHggIT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHBh
cnRpYWxTV2l0aFJlc3BlY3RUb1ggPSBkZHhbMF07CisgICAgICAgIHBhcnRpYWxUV2l0aFJlc3Bl
Y3RUb1ggPSBkZHhbMV07CisgICAgICAgIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1ggPSBkZHhbMl07
CisgICAgfQorICAgIGxldCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9ZID0gMDsKKyAgICBsZXQgcGFy
dGlhbFRXaXRoUmVzcGVjdFRvWSA9IDA7CisgICAgbGV0IHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kg
PSAwOworICAgIGlmIChkZHkgIT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHBhcnRpYWxTV2l0aFJl
c3BlY3RUb1kgPSBkZHlbMF07CisgICAgICAgIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1kgPSBkZHlb
MV07CisgICAgICAgIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kgPSBkZHlbMl07CisgICAgfQorICAg
IGxldCBbcmhvTWF4LCByaG9NaW4sIGV0YSwgTl0gPSBzY2FsZUZhY3Rvck9wZXJhdGlvbihkZXZp
Y2VNYXhBbmlzb3Ryb3B5LCBiYXNlV2lkdGgsIGJhc2VIZWlnaHQsIGJhc2VEZXB0aCwgc2FtcGxl
ck1heEFuaXNvdHJvcHksIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxUV2l0aFJlc3Bl
Y3RUb1gsIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1ksIHBh
cnRpYWxUV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kpOworICAgIGxldCBs
YW1iZGEgPSBsZXZlbE9mRGV0YWlsT3BlcmF0aW9uKGRldmljZU1heFNhbXBsZXJMb2RCaWFzLCBs
b2RGcm9tRnVuY3Rpb25PcGVyYW5kLCBsb2RNaW5Gcm9tRnVuY3Rpb25PcGVyYW5kLCBiaWFzRnJv
bUZ1bmN0aW9uT3BlcmFuZCwgc2FtcGxlckJpYXMsIHNhbXBsZXJMb2RNaW4sIHNhbXBsZXJMb2Fk
TWF4LCByaG9NYXgsIGV0YSk7CisKKyAgICBpZiAobWlwbWFwTW9kZSA9PSAibmVhcmVzdCIpIHsK
KyAgICAgICAgbGV0IGltYWdlTGV2ZWwgPSBpbWFnZUxldmVsU2VsZWN0aW9uKGJhc2VNaXBMZXZl
bCwgbGV2ZWxDb3VudCwgbWlwbWFwTW9kZSwgbGFtYmRhKTsKKyAgICAgICAgcmV0dXJuIGNvbXB1
dGVUYXUoaW1hZ2VMZXZlbCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG1pcG1hcE1vZGUg
IT0gImxpbmVhciIpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZmlsdGVy
Iik7CisgICAgICAgIGxldCBbZEhpLCBkTG93LCBkZWx0YV0gPSBpbWFnZUxldmVsU2VsZWN0aW9u
KGJhc2VNaXBMZXZlbCwgbGV2ZWxDb3VudCwgbWlwbWFwTW9kZSwgbGFtYmRhKTsKKyAgICAgICAg
cmV0dXJuIHJlZHVjZSgxIC0gZGVsdGEsIGNvbXB1dGVUYXUoZEhpKSwgZGVsdGEsIGNvbXB1dGVU
YXUoZExvKSk7CisgICAgfQorfQorCitmdW5jdGlvbiBzYW1wbGUxRCh0ZXh0dXJlLCBzYW1wbGVy
LCBsZXZlbENvdW50LCBsYXllckNvdW50LCBkaW1lbnNpb24sIGxvY2F0aW9uLCBkZWx0YSwgYmlh
c0Zyb21GdW5jdGlvbk9wZXJhbmQsIGRkeCwgZGR5LCBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLCB0
ZXh0dXJlKQoreworICAgIGxldCBbcywgdCwgciwgZHJlZl0gPSBwcm9qZWN0aW9uT3BlcmF0aW9u
KHMsIHQsIHIsIGRyZWYsIHEpOworICAgIGxldCByZXN1bHQgPSB0ZXhlbEZpbHRlcmluZygKKyAg
ICAgICAgTnVtYmVyLk1BWF9WQUxVRSwKKyAgICAgICAgTnVtYmVyLk1BWF9WQUxVRSwKKyAgICAg
ICAgMCwKKyAgICAgICAgbGV2ZWxDb3VudCwKKyAgICAgICAgbGF5ZXJDb3VudCwKKyAgICAgICAg
MCwKKyAgICAgICAgc2FtcGxlci5yQWRkcmVzc01vZGUsCisgICAgICAgIHNhbXBsZXIuc0FkZHJl
c3NNb2RlLAorICAgICAgICBzYW1wbGVyLnRBZGRyZXNzTW9kZSwKKyAgICAgICAgc2FtcGxlci5t
YWdGaWx0ZXIsCisgICAgICAgIHNhbXBsZXIubWluRmlsdGVyLAorICAgICAgICBzYW1wbGVyLm1p
cEZpbHRlciwKKyAgICAgICAgc2FtcGxlci5sb2RNaW5DbGFtcCwKKyAgICAgICAgc2FtcGxlci5s
b2RNYXhDbGFtcCwKKyAgICAgICAgc2FtcGxlci5tYXhBbmlzb3Ryb3B5LAorICAgICAgICBzYW1w
bGVyLmJvcmRlckNvbG9yLAorICAgICAgICAwLAorICAgICAgICBsb2NhdGlvblswXSwgbG9jYXRp
b25bMV0sIGxvY2F0aW9uWzJdLCBsb2NhdGlvblszXSwKKyAgICAgICAgZGVsdGFbMF0sIGRlbHRh
WzFdLCBkZWx0YVsyXSwKKyAgICAgICAgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwKKyAgICAgICAg
MCwKKyAgICAgICAgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgICAgIGRkeCwgZGR5LAor
ICAgICAgICB0ZXh0dXJlLmhlYWRlci5kaW1lbnNpb24sCisgICAgICAgIHRleHR1cmUuaGVhZGVy
LndpZHRoLAorICAgICAgICB0ZXh0dXJlLmhlYWRlci5oZWlnaHQsCisgICAgICAgIHRleHR1cmUu
aGVhZGVyLmRlcHRoLAorICAgICAgICBib3JkZXJDYWxsYmFjaywKKyAgICAgICAgdGV4dHVyZSk7
CisgICAgLy9kZXB0aENvbXBhcmVPcGVyYXRpb24oKQorICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0
IHdoYXQgdG8gZG8gd2l0aCBhbmlzb3Ryb3B5CisgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgaG93
IHRvIGRvIG11bHRpc2FtcGxpbmcuCit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9pbmRleC5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5k
ZXguaHRtbAppbmRleCA2NWE4NjQxMWIzZTc3MGI1NTdiNDFhY2M3ZTQxNGRlZjQyNDAzMDEzLi44
MzY2YmIxOGQxNzBlOTNmODAwZGY1ODIyZmE1ZWFmZWI0M2JlZDgzIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKQEAgLTEyNyw2ICsxMjcsNyBAQAogPHNjcmlwdCBz
cmM9IlN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRyYXBT
dGF0ZW1lbnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348661</attachid>
            <date>2018-08-31 12:08:27 -0700</date>
            <delta_ts>2018-08-31 17:22:10 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188940-20180831120826.patch</filename>
            <type>text/plain</type>
            <size>110776</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTM3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTJiMzc3YmI4YTUwNjE2Mzc1M2E0MWFiNjIyN2JmZDVl
MTdmNTk5Yy4uYzJiZDgyOTFmNWExMzYwODQ0OGY1MGNjZTBlNWUzNjQzMmE1YzU1YiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2
IEBACisyMDE4LTA4LTMwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+
CisKKyAgICAgICAgW1dITFNMXSBJbXBsZW1lbnQgdGV4dHVyZSB0eXBlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTQwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2lj
cy5qczoKKyAgICAgICAgKEludHJpbnNpY3MuKToKKyAgICAgICAgKEludHJpbnNpY3MpOgorICAg
ICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWw6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAobGV0LnN0
YW5kYXJkTGlicmFyeSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5o
dG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanM6CisgICAgICAg
IChtYWtlU2FtcGxlcik6CisgICAgICAgIChtYWtlMURUZXh0dXJlKToKKyAgICAgICAgKG1ha2Ux
RFRleHR1cmVBcnJheSk6CisgICAgICAgIChtYWtlMkRUZXh0dXJlKToKKyAgICAgICAgKG1ha2Uy
RFRleHR1cmVBcnJheSk6CisgICAgICAgIChtYWtlM0RUZXh0dXJlKToKKyAgICAgICAgKG1ha2VU
ZXh0dXJlQ3ViZSk6CisgICAgICAgIChtYWtlUlcxRFRleHR1cmUpOgorICAgICAgICAobWFrZVJX
MURUZXh0dXJlQXJyYXkpOgorICAgICAgICAobWFrZVJXMkRUZXh0dXJlKToKKyAgICAgICAgKG1h
a2VSVzJEVGV4dHVyZUFycmF5KToKKyAgICAgICAgKG1ha2VSVzNEVGV4dHVyZSk6CisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanM6IEFkZGVkLgor
ICAgICAgICAodGV4dHVyZUxvYWQpOgorICAgICAgICAodGV4dHVyZVN0b3JlKToKKyAgICAgICAg
KiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sOgorCiAyMDE4LTA4LTMwICBUaG9t
YXMgRGVubmV5ICA8dGRlbm5leUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dITFNMXSBGaXggYXJy
YXkgaW5kZXhpbmcgYmVoYXZpb3IKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0FsbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwppbmRl
eCA5YzJhMzcxNTBjMWU5NzZiOTI2Y2ZiZWUyMzQzNzUyMGE4ZGU0YTQ3Li4wMGZlNWQwMTFiYjBj
NGI1ZDM1NDZjNWQyMGE4YmNkMGEzMmQzNjNjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9BbGwuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
QWxsLmpzCkBAIC0xNTAsNiArMTUwLDggQEAgbG9hZCgiU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29y
cy5qcyIpOwogbG9hZCgiU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIik7CiBs
b2FkKCJTeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiKTsKIGxvYWQoIlRl
cm5hcnlFeHByZXNzaW9uLmpzIik7Citsb2FkKCJUZXh0dXJlLmpzIik7Citsb2FkKCJUZXh0dXJl
T3BlcmF0aW9ucy5qcyIpOwogbG9hZCgiVHJhcFN0YXRlbWVudC5qcyIpOwogbG9hZCgiVHlwZURl
Zi5qcyIpOwogbG9hZCgiVHlwZURlZlJlc29sdmVyLmpzIik7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcwppbmRleCBiMDA0MDY3ZjVlYmZiM2E4YjRiZDk4ZTQz
N2E4YzA3NjhiZTI2ZjFlLi4yYjVhMjVmMzkwYjA4MGM2MWQwNjFjMTRmNjE3OGI4N2MzNjY5NTEw
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpz
CisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMKQEAgLTMz
MCw3ICszMzAsOCBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICJuYXRpdmUgdHlw
ZWRlZiBzYW1wbGVyIiwKICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAgICAgICAgICAgIHRo
aXMuc2FtcGxlciA9IHR5cGU7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQg
d2hhdCB0byBwdXQgaGVyZS4KKyAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAg
ICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+
IGJ1ZmZlci5zZXQob2Zmc2V0LCB7fSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICBmb3Ig
KGxldCB0ZXh0dXJlVHlwZSBvZiBbIlRleHR1cmUxRCIsICJSV1RleHR1cmUxRCIsICJUZXh0dXJl
MURBcnJheSIsICJSV1RleHR1cmUxREFycmF5IiwgIlRleHR1cmUyRCIsICJSV1RleHR1cmUyRCIs
ICJUZXh0dXJlMkRBcnJheSIsICJSV1RleHR1cmUyREFycmF5IiwgIlRleHR1cmUzRCIsICJSV1Rl
eHR1cmUzRCIsICJUZXh0dXJlQ3ViZSJdKSB7CkBAIC0zMzksMTIgKzM0MCwxNiBAQCBjbGFzcyBJ
bnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVy
ZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gLAogICAgICAgICAgICAgICAgICAgICB0eXBlID0+IHsK
ICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3Vt
ZW50fT5gXSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOwor
ICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZm
ZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIHt9KTsKICAgICAgICAgICAgICAgICAg
ICAgfSk7CiAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDI7IGkgPD0gNDsgKytpKSB7CiAg
ICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9JHtpfT5gLAog
ICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9JHtpfT5gXSA9IHR5cGU7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zm
c2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAgICAgICAgICAgICAg
fSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtMzU2LDYgKzM2MSw4IEBA
IGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYg
JHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmAsCiAgICAgICAgICAgICAgICAgICAgIHR5
cGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0
eXBlQXJndW1lbnR9PmBdID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUuc2l6
ZSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVl
ID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwge30pOwogICAgICAgICAg
ICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtOTE0LDYgKzkyMSw3
ODcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAKICAgICAgICAgZm9yIChsZXQgc2V0dGVyIG9mIEJ1
aWx0aW5NYXRyaXhTZXR0ZXIuZnVuY3Rpb25zKCkpCiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KHNldHRlci50b1N0cmluZygpLCBmdW5jID0+IHNldHRlci5pbnN0YW50aWF0ZUltcGxlbWVudGF0
aW9uKGZ1bmMpKTsKKworICAgICAgICBmdW5jdGlvbiBjaGVja1VuZGVmaW5lZChvcmlnaW4sIGV4
cGxhbmF0aW9uLCB2YWx1ZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHZhbHVlID09IHVu
ZGVmaW5lZCkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0xvYWRdIiwg
IlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIik7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7
CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja0ZhbHNlKG9yaWdpbiwgZXhwbGFu
YXRpb24sIHZhbHVlKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAodmFsdWUgPT0gZmFsc2Up
CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltTdG9yZV0iLCAiVGV4dHVy
ZSBzdG9yZSBvdXQgb2YgYm91bmRzIik7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCB0
eXBlIG9mIFsidWNoYXIiLCAidXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9ydCIsICJpbnQi
LCAiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0+LHNhbXBs
ZXIsZmxvYXQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFy
cmF5ID0gW2xvY2F0aW9uLmxvYWRWYWx1ZSgpLCAwLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBFUHRyLmJveChzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmUx
RDwke3R5cGV9PixzYW1wbGVyLGZsb2F0IGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24ubG9hZFZh
bHVlKCksIDAsIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJy
YXkgPSBbb2Zmc2V0LmxvYWRWYWx1ZSgpLCAwLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBFUHRyLmJveChzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBs
ZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZTFEPCR7dHlwZX0+
LGludDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRp
b25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3goY2hlY2tVbmRl
ZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9h
ZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDApLCAwLCAwLCBsb2NhdGlv
bi5nZXQoMSkpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9IExvYWQoVGV4dHVyZTFEPCR7dHlwZX0+LGludDIgbG9jYXRpb24saW50IG9mZnNldClgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KGNoZWNrVW5kZWZpbmVkKCJbTG9h
ZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVs
ZW1lbnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgwKSwgMCwgMCwgbG9jYXRpb24uZ2V0KDEpICsg
b2Zmc2V0LmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDwke3R5cGV9Pix1aW50IE1pcExldmVs
LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIG51bWJlck9mTGV2ZWxz
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVl
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFs
dWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3Vu
dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xv
YWRdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENv
dW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKwor
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZShUZXh0dXJlMURBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlv
bilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24u
Z2V0KDApLCAwLCAwLCAxLCBsb2NhdGlvbi5nZXQoMSldOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEVQdHIuYm94KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTFEQXJyYXk8
JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCks
IDAsIDAsIDEsIGxvY2F0aW9uLmdldCgxKV07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
ZGVsdGFBcnJheSA9IFtvZmZzZXQubG9hZFZhbHVlKCksIDAsIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUo
KSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlMURB
cnJheTwke3R5cGV9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIu
Ym94KGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMi
LCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgwKSwgbG9j
YXRpb24uZ2V0KDEpLCAwLCAwLCBsb2NhdGlvbi5nZXQoMikpKSk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZTFEQXJyYXk8JHt0eXBl
fT4saW50MyBsb2NhdGlvbixpbnQgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gRVB0ci5ib3goY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9m
IGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0
KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgyKSArIG9mZnNldC5sb2Fk
VmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQg
R2V0RGltZW5zaW9ucyhUZXh0dXJlMURBcnJheTwke3R5cGV9Pix1aW50IE1pcExldmVsLHVpbnQq
IHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgRWxlbWVudHMsdWludCogdGhyZWFkIE51bWJlck9m
TGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRo
LCBlbGVtZW50cywgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50
IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEp
OworICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51
bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKworICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
IFNhbXBsZShUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwg
bG9jYXRpb24uZ2V0KDEpLCAwIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IEVQdHIuYm94KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBs
ZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0
KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0g
W29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEVQdHIuYm94KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlMkQ8
JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgQmlhcylgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBs
b2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IEVQdHIuYm94KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlMkQ8JHt0
eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgQmlhcyxpbnQyIG9mZnNldClgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBv
ZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFts
b2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEp
LCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChzYW1wbGVUZXh0
dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJy
YXksIGRlbHRhQXJyYXksIGJpYXMubG9hZFZhbHVlKCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MiBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBERFkpYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9u
LmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkg
PSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgZGR5QXJyYXkgPSBbZGR5LmdldCgwKSwgZGR5LmdldCgxKSwgMF07CisgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gRVB0ci5ib3goc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1
ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1
cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBE
RFksaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAw
LCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0
KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJh
eSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHNhbXBsZVRleHR1cmUodGV4dHVy
ZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFB
cnJheSwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
KSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZUxldmVsKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBM
T0QpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
bG9kXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9j
YXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUo
KSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZl
bChUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgTE9ELGlu
dDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIGxvZCwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0
aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOwor
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwg
b2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5i
b3goc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyRDwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9u
LGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9u
LGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQy
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJCbHVlKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixp
bnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00
IEdhdGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixp
bnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9IExvYWQoVGV4dHVyZTJEPCR7dHlwZX0+LGludDMgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gRVB0ci5ib3goY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJl
IHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQo
MCwgbG9jYXRpb24uZ2V0KDApLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSkp
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChU
ZXh0dXJlMkQ8JHt0eXBlfT4saW50MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4
dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVj
a2VkKDAsIGxvY2F0aW9uLmdldCgwKSwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQo
MikgKyBvZmZzZXQuZ2V0KDEpKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUyRDwke3R5cGV9Pix1aW50IE1pcExldmVs
LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBOdW1i
ZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1pcGxldmVsLCB3
aWR0aCwgaGVpZ2h0LCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3Rh
bnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdo
dC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZlbChtaXBJRCkp
LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9t
KEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
bGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisKKyAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOwor
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHNhbXBsZVRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBT
YW1wbGUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50
MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJy
YXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdl
dCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQu
Z2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBFUHRyLmJveChzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9h
ZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZTJEQXJyYXk8JHt0
eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlhcylgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2Nh
dGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gRVB0ci5ib3goc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBz
YW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIGJpYXMubG9hZFZh
bHVlKCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRl
eHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMs
aW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgYmlhcywgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxv
Y2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxv
Y2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9
IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBFUHRyLmJveChzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIGJpYXMubG9hZFZh
bHVlKCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRl
eHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0MiBERFgs
ZmxvYXQyIEREWSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uLCBkZHgsIGRkeV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlv
bkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlv
bi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5n
ZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeUFy
cmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEVQdHIuYm94KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGRk
eEFycmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlMkRBcnJh
eTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBERFks
aW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAx
LCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5
ID0gW2RkeC5nZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgx
KSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3goc2FtcGxlVGV4
dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFy
cmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIGRkeEFycmF5LCBkZHlBcnJheSwgdW5kZWZpbmVk
LCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb24sIGxvZF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2Nh
dGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHNh
bXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9j
YXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBs
b2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlMkRBcnJheTwke3R5cGV9Pixz
YW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QsaW50MiBvZmZzZXQpYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5n
ZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5n
ZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHNhbXBs
ZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRp
b25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9k
LmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxv
YXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyREFycmF5PCR7dHlw
ZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkRBcnJheTwke3R5cGV9Pixz
YW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyREFy
cmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyREFycmF5PCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRl
eHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJl
MkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRd
KSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQo
VGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4saW50NCBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBFUHRyLmJveChjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQg
b2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5n
ZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgbG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQo
MykpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExv
YWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4saW50NCBsb2NhdGlvbixpbnQyIG9mZnNldClgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KGNoZWNrVW5kZWZpbmVkKCJbTG9h
ZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVs
ZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCBsb2NhdGlv
bi5nZXQoMikgKyBvZmZzZXQuZ2V0KDApLCBsb2NhdGlvbi5nZXQoMykgKyBvZmZzZXQuZ2V0KDEp
KSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1l
bnNpb25zKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFk
IFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIEVsZW1lbnRzLHVpbnQqIHRo
cmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1p
cGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50cywgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiUmVh
ZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmhl
aWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEp
OworICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51
bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKworICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
IFNhbXBsZShUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwg
bG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUo
KSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTNE
PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOworICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgx
KSwgb2Zmc2V0LmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5i
b3goc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixp
bnQzIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJSZWQoVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDMg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyR3JlZW4oVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDMg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJCbHVlKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9m
ZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckFscGhhKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9m
ZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9IExvYWQoVGV4dHVyZTNEPCR7dHlwZX0+LGludDQgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gRVB0ci5ib3goY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQg
b3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9j
YXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgbG9jYXRpb24u
Z2V0KDMpKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSBMb2FkKFRleHR1cmUzRDwke3R5cGV9PixpbnQ0IGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3goY2hlY2tVbmRlZmluZWQoIltMb2Fk
XSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxl
bWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQu
Z2V0KDApLCBsb2NhdGlvbi5nZXQoMikgKyBvZmZzZXQuZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMykg
KyBvZmZzZXQuZ2V0KDIpKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUzRDwke3R5cGV9Pix1aW50IE1pcExldmVsLHVp
bnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBEZXB0aCx1
aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIG51bWJlck9mTGV2ZWxzXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3VudCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwg
IlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgZGVwdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LmRlcHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdo
dC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZlbChtaXBJRCkp
LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9t
KEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
bGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisKKyAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZUN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9j
YXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgY3ViZW1h
cCBzYW1wbGluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSBTYW1wbGVCaWFzKFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
LGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQgY3ViZW1hcCBzYW1wbGluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxv
YXQzIGxvY2F0aW9uLGZsb2F0MyBERFgsZmxvYXQzIEREWSlgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeV0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgY3ViZW1hcCBzYW1wbGluZworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0
dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBjdWJlbWFwIHNhbXBs
aW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXIoVGV4dHVyZUN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJl
Q3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZUN1YmU8JHt0
eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZUN1YmU8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxv
YXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lk
IEdldERpbWVuc2lvbnMoVGV4dHVyZUN1YmU8JHt0eXBlfT4sdWludCBNaXBMZXZlbCx1aW50KiB0
aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZl
bHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhl
aWdodCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4
ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJ
RCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRl
eC5sYXllckNvdW50ICE9IDYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJDdWJlIHRleHR1cmUgZG9lc24ndCBoYXZlIDYgZmFjZXMiKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3VudCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlJlYWRpbmcgZnJv
bSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHRBdExl
dmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMUQ8JHt0eXBlfT4sdWlu
dCogdGhyZWFkIFdpZHRoKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGhd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMUQ8JHt0
eXBlfT4sZmxvYXQqIHRocmVhZCBXaWR0aClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHdpZHRoXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4dHVyZS5sb2FkVmFsdWUoKS53aWR0aCksIDEpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFJXVGV4dHVyZTFE
PCR7dHlwZX0+LGludCBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChj
aGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4
dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCAwLCAwLCAwLCBsb2NhdGlvbi5sb2Fk
VmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQg
U3RvcmUoUldUZXh0dXJlMUQ8JHt0eXBlfT4sJHt0eXBlfSx1aW50IGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9m
IGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQoMCwgMCwgMCwg
MCwgbG9jYXRpb24ubG9hZFZhbHVlKCksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0
dXJlMURBcnJheTwke3R5cGV9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEVsZW1l
bnRzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGVsZW1lbnRzXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7
CisgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lk
dGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0
dXJlMURBcnJheTwke3R5cGV9PixmbG9hdCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBFbGVt
ZW50cylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBlbGVtZW50c10p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgp
OworICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdp
ZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFJXVGV4dHVyZTFE
QXJyYXk8JHt0eXBlfT4saW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0
ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRy
LmJveChjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRz
IiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMCksIDAs
IDAsIDAsIGxvY2F0aW9uLmdldCgxKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMURBcnJheTwke3R5cGV9Piwke3R5cGV9LHVp
bnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltMb2FkXSIs
ICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxl
bWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDApLCAwLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIHZh
bHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKworICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkQ8JHt0eXBlfT4sdWludCogdGhyZWFk
IFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCB3aWR0aCwgaGVpZ2h0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9
IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRo
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERp
bWVuc2lvbnMoUldUZXh0dXJlMkQ8JHt0eXBlfT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9hdCog
dGhyZWFkIEhlaWdodClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBo
ZWlnaHRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2Fk
VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5
RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3
aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChSV1RleHR1cmUy
RDwke3R5cGV9PixpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1
cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94
KGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0
ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIDAsIDAsIGxvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUyRDwke3R5cGV9Piwke3R5cGV9LHVpbnQyIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltMb2FkXSIsICJUZXh0dXJl
IHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNr
ZWQoMCwgMCwgMCwgbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIHZhbHVlLmxvYWRW
YWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKwor
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lk
IEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9Pix1aW50KiB0aHJlYWQgV2lk
dGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50c10pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAg
ICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguEGhlaWdodCksIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRo
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERp
bWVuc2lvbnMoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9PixmbG9hdCogdGhyZWFkIFdpZHRoLGZs
b2F0KiB0aHJlYWQgSGVpZ2h0LGZsb2F0KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50c10pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAg
ICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguEGhlaWdodCksIDEpOworICAgICAgICAgICAgICAg
ICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwg
MSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQo
UldUZXh0dXJlMkRBcnJheTwke3R5cGV9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIEVQdHIuYm94KGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91
dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9u
LmdldCgwKSwgMCwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMikpKSk7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTJE
QXJyYXk8JHt0eXBlfT4sJHt0eXBlfSx1aW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBjaGVja0ZhbHNlKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0
ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgwKSwgMCwg
MCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVu
c2lvbnMoUldUZXh0dXJlM0Q8JHt0eXBlfT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVh
ZCBIZWlnaHQsdWludCogdGhyZWFkIERlcHRoKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgd2lkdGgsIGhlaWdodCwgZGVwdGhdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRl
cHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5kZXB0aCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRl
eC4QaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUo
KS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUzRDwke3R5cGV9
PixmbG9hdCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0LGZsb2F0KiB0aHJlYWQg
RGVwdGgpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBk
ZXB0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRW
YWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGgubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4LmRlcHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWln
aHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LhBoZWlnaHQpLCAxKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRl
eC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSBMb2FkKFJXVGV4dHVyZTNEPCR7dHlwZX0+LGludDMgbG9jYXRpb24pYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gRVB0ci5ib3goY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJl
YWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwg
MCwgbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSkpKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0
dXJlM0Q8JHt0eXBlfT4sJHt0eXBlfSx1aW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBjaGVja0ZhbHNlKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0
ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKDAsIDAsIGxvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAg
ICAgZnVuY3Rpb24gYm94VmVjdG9yKGEpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
bGV0IHJlc3VsdCA9IG5ldyBFUHRyKG5ldyBFQnVmZmVyKGEubGVuZ3RoKSwgMCk7CisgICAgICAg
ICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgKytpKQorICAgICAgICAgICAg
ICAgICAgICByZXN1bHQuc2V0KGksIGFbaV0pOworICAgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAobGV0IGxlbmd0aCBvZiBbMiwg
MywgNF0pIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KIAogICAgIGFkZCh0aGlu
ZykKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCmluZGV4IDc4ZDAwOGY4
MzVmOWU5YzIzNGVmMmRmNmQ2ZGVlYTNmNzQyNmNlNjUuLjA2MWE0NzY0MTRmZTJiMjkyODdlZTBj
M2Q5NGJmMDI3ZWFlNGYwMGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1NQSVJWLmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYu
aHRtbApAQCAtMTMzLDYgKzEzMyw4IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iU3ludGhlc2l6
ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
U3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iVGVybmFyeUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJUZXh0dXJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJh
dGlvbnMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUcmFwU3RhdGVtZW50LmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKaW5kZXggM2RkNGZlZTE4NjAw
ZDVjZDJhODk1YWQ1YTQ3OTcyMWRhNzc4OGNjMS4uZDhlMTY3NjU3OTRjZDAxMzA5ZGU0NDc5ZDI3
ZDc1ZTEyNzMwMzUzZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3RhbmRhcmRMaWJyYXJ5LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0
YW5kYXJkTGlicmFyeS5qcwpAQCAtNTcsNyArNTcsNyBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0g
KGZ1bmN0aW9uKCkgewogICAgICAgICB9CiAgICAgICAgIHByaW50KGBuYXRpdmUgdHlwZWRlZiBz
YW1wbGVyO2ApOwogICAgICAgICBmb3IgKHZhciB0eXBlIG9mIFtgVGV4dHVyZTFEYCwgYFJXVGV4
dHVyZTFEYCwgYFRleHR1cmUxREFycmF5YCwgYFJXVGV4dHVyZTFEQXJyYXlgLCBgVGV4dHVyZTJE
YCwgYFJXVGV4dHVyZTJEYCwgYFRleHR1cmUyREFycmF5YCwgYFJXVGV4dHVyZTJEQXJyYXlgLCBg
VGV4dHVyZTNEYCwgYFJXVGV4dHVyZTNEYCwgYFRleHR1cmVDdWJlYF0pIHsKLSAgICAgICAgICAg
IGZvciAodmFyIHR5cGVBcmd1bWVudEJhc2Ugb2YgW2Bib29sYCwgYHVjaGFyYCwgYHVzaG9ydGAs
IGB1aW50YCwgYGNoYXJgLCBgc2hvcnRgLCBgaW50YCwgYGhhbGZgLCBgZmxvYXRgXSkgeworICAg
ICAgICAgICAgZm9yICh2YXIgdHlwZUFyZ3VtZW50QmFzZSBvZiBbYHVjaGFyYCwgYHVzaG9ydGAs
IGB1aW50YCwgYGNoYXJgLCBgc2hvcnRgLCBgaW50YCwgYGhhbGZgLCBgZmxvYXRgXSkgewogICAg
ICAgICAgICAgICAgIGZvciAodmFyIHNpemUgb2YgW2BgLCBgMmAsIGAzYCwgYDRgXSkgewogICAg
ICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlIHR5cGVkZWYgJHt0eXBlfTwke3R5cGVBcmd1
bWVudEJhc2V9JHtzaXplfT47YCk7CiAgICAgICAgICAgICAgICAgfQpAQCAtMTg5Nyw5ICsxODk3
LDEwIEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBw
cmludChgbmF0aXZlIHZvaWQgSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UodGhyZWFkIGF0b21p
Y18ke3R5cGV9KiwgJHt0eXBlfSwgJHt0eXBlfSwgdGhyZWFkICR7dHlwZX0qKTtgKTsKICAgICAg
ICAgfQogICAgICAgICBwcmludCgpOwotICAgICAgICAKKyAgICAgICAgKi8KKwogICAgICAgICBm
b3IgKHZhciB0eXBlIG9mIFtgdWNoYXJgLCBgdXNob3J0YCwgYHVpbnRgLCBgY2hhcmAsIGBzaG9y
dGAsIGBpbnRgLCBgaGFsZmAsIGBmbG9hdGBdKSB7Ci0gICAgICAgICAgICBmb3IgKHZhciBsZW5n
dGggb2YgW2BgLCBgMmAsIGAzYCwgYDRgXSkgeworICAgICAgICAgICAgZm9yICh2YXIgbGVuZ3Ro
IG9mIFtgYC8qLCBgMmAsIGAzYCwgYDRgKi9dKSB7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4s
IHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9Piwg
c2FtcGxlciwgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpO2ApOwogICAgICAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUxRDwke3R5cGV9JHts
ZW5ndGh9PiwgaW50MiBsb2NhdGlvbik7YCk7CkBAIC0yMDEwLDcgKzIwMTEsOCBAQCBsZXQgc3Rh
bmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIHByaW50KCk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgCisKKyAgICAgICAgLyoKICAgICAgICAg
Zm9yICh2YXIgdHlwZSBvZiBbYGhhbGZgLCBgZmxvYXRgXSkgewogICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwg
ZmxvYXQyIGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBT
YW1wbGUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwg
aW50MiBvZmZzZXQpO2ApOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVGVzdC5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sCmlu
ZGV4IDYwN2E2OTUzMjUzZGE3MjdiMWRlMzc2NzhlYzM4OGI0ZmEyNDA0MDUuLjE0YTEwZWU0NDY1
YTZkNzUzZDIxMGViYzJlYTc1ODYxMTliOGMyNjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9UZXN0Lmh0bWwKQEAgLTEyNyw2ICsxMjcsOCBAQAogPHNjcmlwdCBzcmM9IlN5bnRoZXNp
emVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3lu
dGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZlci5q
cyI+PC9zY3JpcHQ+CkBAIC0xNTIsNyArMTU0LDcgQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiBkb1Rl
c3RJbkJyb3dzZXIoKQogewotICAgIHZhciB0ZXN0ZXIgPSBkb1Rlc3QoLy4qLyk7CisgICAgdmFy
IHRlc3RlciA9IGRvVGVzdCgvdGV4dHVyZS8pOwogICAgIHZhciBsYXN0VGltZTsKICAgICBmdW5j
dGlvbiBuZXh0KCkKICAgICB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9UZXN0LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwppbmRl
eCA0YTExYzE4NTg1OTk3NzhmZjM5MWIwNGYyNjM1YzViNzEwMDVkZjdmLi41NzQ1MzlkYWIzODY2
MDM0NTdhODUyNDE0NDBlYWRhMzdjMzhmZTkxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1Rlc3QuanMKQEAgLTk0LDYgKzk0LDE0NCBAQCBmdW5jdGlvbiBtYWtlRW51bShwcm9ncmFtLCBl
bnVtTmFtZSwgdmFsdWUpCiAgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KGVudW1UeXBlLCBlbnVt
TWVtYmVyLnZhbHVlLnVuaWZ5Tm9kZS52YWx1ZUZvclNlbGVjdGVkVHlwZSk7CiB9CiAKK2Z1bmN0
aW9uIG1ha2VTYW1wbGVyKHByb2dyYW0sIGRpY3QpCit7CisgICAgLy8gZW51bSBXZWJHUFVBZGRy
ZXNzTW9kZSB7CisgICAgLy8gICAgICJjbGFtcFRvRWRnZSIsCisgICAgLy8gICAgICJyZXBlYXQi
LAorICAgIC8vICAgICAibWlycm9yUmVwZWF0IiwKKyAgICAvLyAgICAgImNsYW1wVG9Cb3JkZXJD
b2xvciIKKyAgICAvLyB9CisgICAgLy8gCisgICAgLy8gZW51bSBXZWJHUFVGaWx0ZXJNb2RlIHsK
KyAgICAvLyAgICAgIm5lYXJlc3QiLAorICAgIC8vICAgICAibGluZWFyIgorICAgIC8vIH0KKyAg
ICAvLyAKKyAgICAvLyBlbnVtIFdlYkdQVUNvbXBhcmVGdW5jdGlvbiB7CisgICAgLy8gICAgICJu
ZXZlciIsCisgICAgLy8gICAgICJsZXNzIiwKKyAgICAvLyAgICAgImVxdWFsIiwKKyAgICAvLyAg
ICAgImxlc3NFcXVhbCIsCisgICAgLy8gICAgICJncmVhdGVyIiwKKyAgICAvLyAgICAgIm5vdEVx
dWFsIiwKKyAgICAvLyAgICAgImdyZWF0ZXJFcXVhbCIsCisgICAgLy8gICAgICJhbHdheXMiCisg
ICAgLy8gfQorICAgIC8vIAorICAgIC8vIGVudW0gV2ViR1BVQm9yZGVyQ29sb3IgeworICAgIC8v
ICAgICAidHJhbnNwYXJlbnRCbGFjayIsCisgICAgLy8gICAgICJvcGFxdWVCbGFjayIsCisgICAg
Ly8gICAgICJvcGFxdWVXaGl0ZSIKKyAgICAvLyB9CisgICAgLy8gCisgICAgLy8gZGljdGlvbmFy
eSBXZWJHUFVTYW1wbGVyRGVzY3JpcHRvciB7CisgICAgLy8gICAgIFdlYkdQVWRkcmVzc01vZGUg
ckFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICAvLyAgICAgV2ViR1BVZGRyZXNzTW9k
ZSBzQWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgIC8vICAgICBXZWJHUFVkZHJlc3NN
b2RlIHRBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAgLy8gICAgIFdlYkdQVUZpbHRl
ck1vZGVFbnVtIG1hZ0ZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICAvLyAgICAgV2ViR1BVRmlsdGVy
TW9kZUVudW0gbWluRmlsdGVyID0gIm5lYXJlc3QiOworICAgIC8vICAgICBXZWJHUFVGaWx0ZXJN
b2RlRW51bSBtaXBtYXBGaWx0ZXIgPSAibmVhcmVzdCI7CisgICAgLy8gICAgIGZsb2F0IGxvZE1p
bkNsYW1wID0gMDsKKyAgICAvLyAgICAgZmxvYXQgbG9kTWF4Q2xhbXAgPSBOdW1iZXIuTUFYX1ZB
TFVFOworICAgIC8vICAgICB1bnNpZ25lZCBsb25nIG1heEFuaXNvdHJvcHkgPSAxOworICAgIC8v
ICAgICBXZWJHUFVDb21wYXJlRnVuY3Rpb24gY29tcGFyZUZ1bmN0aW9uID0gIm5ldmVyIjsKKyAg
ICAvLyAgICAgV2ViR1BVQm9yZGVyQ29sb3IgYm9yZGVyQ29sb3IgPSAidHJhbnNwYXJlbnRCbGFj
ayI7CisgICAgLy8gfTsKKworICAgIGxldCBzYW1wbGVyRGF0YSA9IHt9OworICAgIHNhbXBsZXJE
YXRhLnJBZGRyZXNzTW9kZSA9IGRpY3QuckFkZHJlc3NNb2RlLAorICAgIHNhbXBsZXJEYXRhLnNB
ZGRyZXNzTW9kZSA9IGRpY3Quc0FkZHJlc3NNb2RlLAorICAgIHNhbXBsZXJEYXRhLnRBZGRyZXNz
TW9kZSA9IGRpY3QudEFkZHJlc3NNb2RlLAorICAgIHNhbXBsZXJEYXRhLm1hZ0ZpbHRlciA9IGRp
Y3QubWFnRmlsdGVyOworICAgIHNhbXBsZXJEYXRhLm1pbkZpbHRlciA9IGRpY3QubWluRmlsdGVy
CisgICAgc2FtcGxlckRhdGEubWlwbWFwRmlsdGVyID0gZGljdC5taXBtYXBGaWx0ZXI7CisgICAg
c2FtcGxlckRhdGEubG9kTWluQ2xhbXAgPSBkaWN0LmxvZE1pbkNsYW1wLAorICAgIHNhbXBsZXJE
YXRhLmxvZE1heENsYW1wID0gZGljdC5sb2RNYXhDbGFtcCwKKyAgICBzYW1wbGVyRGF0YS5tYXhB
bmlzb3Ryb3B5ID0gZGljdC5tYXhBbmlzb3Ryb3B5LAorICAgIHNhbXBsZXJEYXRhLmNvbXBhcmVG
dW5jdGlvbiA9IGRpY3QuY29tcGFyZUZ1bmN0aW9uOworICAgIHNhbXBsZXJEYXRhLmJvcmRlckNv
bG9yID0gZGljdC5ib3JkZXJDb2xvcjsKKworICAgIGlmIChzYW1wbGVyRGF0YS5yQWRkcmVzc01v
ZGUgPT0gdW5kZWZpbmVkKQorICAgICAgICBzYW1wbGVyRGF0YS5yQWRkcmVzc01vZGUgPSAiY2xh
bXBUb0VkZ2UiOworICAgIGlmIChzYW1wbGVyRGF0YS5zQWRkcmVzc01vZGUgPT0gdW5kZWZpbmVk
KQorICAgICAgICBzYW1wbGVyRGF0YS5zQWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAg
IGlmIChzYW1wbGVyRGF0YS50QWRkcmVzc01vZGUgPT0gdW5kZWZpbmVkKQorICAgICAgICBzYW1w
bGVyRGF0YS50QWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgIGlmIChzYW1wbGVyRGF0
YS5taW5GaWx0ZXIgPT0gdW5kZWZpbmVkKQorICAgICAgICBzYW1wbGVyRGF0YS5taW5GaWx0ZXIg
PSAibmVhcmVzdCI7CisgICAgaWYgKHNhbXBsZXJEYXRhLm1hZ0ZpbHRlciA9PSB1bmRlZmluZWQp
CisgICAgICAgIHNhbXBsZXJEYXRhLm1hZ0ZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICBpZiAoc2Ft
cGxlckRhdGEubWlwRmlsdGVyID09IHVuZGVmaW5lZCkKKyAgICAgICAgc2FtcGxlckRhdGEubWlw
RmlsdGVyID0gIm5lYXJlc3QiOworICAgIGlmIChzYW1wbGVyRGF0YS5sb2RNaW5DbGFtcCA9PSB1
bmRlZmluZWQpCisgICAgICAgIHNhbXBsZXJEYXRhLmxvZE1pbkNsYW1wID0gMDsKKyAgICBpZiAo
c2FtcGxlckRhdGEubG9kTWF4Q2xhbXAgPT0gdW5kZWZpbmVkKQorICAgICAgICBzYW1wbGVyRGF0
YS5sb2RNYXhDbGFtcCA9IE51bWJlci5NQVhfVkFMVUU7CisgICAgaWYgKHNhbXBsZXJEYXRhLm1h
eEFuaXNvdHJvcHkgPT0gdW5kZWZpbmVkKQorICAgICAgICBzYW1wbGVyRGF0YS5tYXhBbmlzb3Ry
b3B5ID0gMTsKKyAgICBpZiAoc2FtcGxlckRhdGEuY29tcGFyZUZ1bmN0aW9uID09IHVuZGVmaW5l
ZCkKKyAgICAgICAgc2FtcGxlckRhdGEuY29tcGFyZUZ1bmN0aW9uID0gIm5ldmVyIjsKKyAgICBp
ZiAoc2FtcGxlckRhdGEuYm9yZGVyQ29sb3IgPT0gdW5kZWZpbmVkKQorICAgICAgICBzYW1wbGVy
RGF0YS5ib3JkZXJDb2xvciA9ICJ0cmFuc3BhcmVudEJsYWNrIjsKKyAgICByZXR1cm4gVHlwZWRW
YWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzLnNhbXBsZXIsIHNhbXBsZXJEYXRhKTsKK30KKwor
ZnVuY3Rpb24gbWFrZTFEVGV4dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50VHlwZSkKK3sK
KyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlMUQ8
JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlMUQoZWxlbWVudFR5cGUsIG1pcG1hcHMpKTsK
K30KKworZnVuY3Rpb24gbWFrZTFEVGV4dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50
VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BU
ZXh0dXJlMURBcnJheTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUxREFycmF5KGVsZW1l
bnRUeXBlLCBhcnJheSkpOworfQorCitmdW5jdGlvbiBtYWtlMkRUZXh0dXJlKHByb2dyYW0sIG1p
cG1hcHMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFt
LmludHJpbnNpY3NbYFRleHR1cmUyRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUyRChl
bGVtZW50VHlwZSwgbWlwbWFwcykpOworfQorCitmdW5jdGlvbiBtYWtlMkRUZXh0dXJlQXJyYXko
cHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJv
eChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmUyREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBu
ZXcgVGV4dHVyZTJEQXJyYXkoZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1h
a2UzRFRleHR1cmUocHJvZ3JhbSwgbWlwbWFwcywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJu
IFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZTNEPCR7ZWxlbWVudFR5
cGV9PmBdLCBuZXcgVGV4dHVyZTNEKGVsZW1lbnRUeXBlLCBtaXBtYXBzKSk7Cit9CisKK2Z1bmN0
aW9uIG1ha2VUZXh0dXJlQ3ViZShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAg
cmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZUN1YmU8JHtl
bGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlQ3ViZShlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30K
KworZnVuY3Rpb24gbWFrZVJXMURUZXh0dXJlKHByb2dyYW0sIGVsZW1lbnRzLCBlbGVtZW50VHlw
ZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1Rl
eHR1cmUxRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUxRFJXKGVsZW1lbnRUeXBlLCBl
bGVtZW50cykpOworfQorCitmdW5jdGlvbiBtYWtlUlcxRFRleHR1cmVBcnJheShwcm9ncmFtLCBh
cnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0u
aW50cmluc2ljc1tgUldUZXh0dXJlMURBcnJheTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1
cmUxREFycmF5UlcoZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzJE
VGV4dHVyZShwcm9ncmFtLCByb3dzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRW
YWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUyRDwke2VsZW1lbnRUeXBlfT5g
XSwgbmV3IFRleHR1cmUyRChlbGVtZW50VHlwZSwgcm93cykpOworfQorCitmdW5jdGlvbiBtYWtl
UlcyRFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0
dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldUZXh0dXJlMkRBcnJheTwk
e2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUyREFycmF5KGVsZW1lbnRUeXBlLCBhcnJheSkp
OworfQorCitmdW5jdGlvbiBtYWtlUlczRFRleHR1cmUocHJvZ3JhbSwgZGVwdGhTbGljZXMsIGVs
ZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNp
Y3NbYFJXVGV4dHVyZTNEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTNEKGVsZW1lbnRU
eXBlLCBkZXB0aFNsaWNlcykpOworfQorCiBmdW5jdGlvbiBjaGVja051bWJlcihwcm9ncmFtLCBy
ZXN1bHQsIGV4cGVjdGVkKQogewogICAgIGlmICghcmVzdWx0LnR5cGUudW5pZnlOb2RlLmlzTnVt
YmVyKQpAQCAtNTU4Miw3ICs1NzIwLDM3MCBAQCB0ZXN0cy5hcnJheUluZGV4ID0gZnVuY3Rpb24o
KSB7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUlu
ZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMikgXSks
IDMpOwogICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJ
bmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApIF0p
LCA0KTsKICAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5
SW5kZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSBd
KSwgNSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJh
eUluZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMikg
XSksIDYpOyAgICAKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImFycmF5SW5kZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFt
LCAyKSBdKSwgNik7Cit9CisKK3Rlc3RzLnRleHR1cmVEaW1lbnNpb25zID0gZnVuY3Rpb24oKSB7
CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICB1aW50IGZvbzEoVGV4dHVyZTFE
PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAg
dWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwg
MCwgJndpZHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOwor
ICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMihUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUpIHsK
KyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxz
OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZudW1iZXJP
ZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0K
KyAgICAgICAgdWludCBmb28zKFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAg
ICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAg
ICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1
cmUsIDAsICZ3aWR0aCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAg
cmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNChUZXh0dXJlMURBcnJh
eTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAg
IHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAg
ICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZlbGVtZW50cywgJm51bWJl
ck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50czsKKyAgICAgICAgfQorICAg
ICAgICB1aW50IGZvbzUoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAg
ICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAg
dWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwg
MCwgJndpZHRoLCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1
cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb282KFRleHR1cmUy
RDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAg
IHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAg
ICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZM
ZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVp
bnQgZm9vNyhUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lk
dGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZM
ZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhl
aWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb284KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAg
ICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0
dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vOShUZXh0dXJl
MkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAg
ICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAg
ICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1
cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAg
ICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTAoVGV4
dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7Cisg
ICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAg
ICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0
ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsK
KyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28x
MShUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0
aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsK
KyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNp
b25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZl
bHMpOworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAgICB9CisgICAgICAgIHVp
bnQgZm9vMTIoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVp
bnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxl
bWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0
RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJl
ck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAg
fQorICAgICAgICB1aW50IGZvbzEzKFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAg
ICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAg
dWludCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAg
ICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoLCAmbnVt
YmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAg
ICAgIHVpbnQgZm9vMTQoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1
aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRl
cHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERp
bWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgsICZudW1iZXJPZkxl
dmVscyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVp
bnQgZm9vMTUoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdp
ZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOwor
ICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgsICZudW1iZXJPZkxldmVscyk7
CisgICAgICAgICAgICByZXR1cm4gZGVwdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28x
NihUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7Cisg
ICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAg
ICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0
dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAg
ICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZv
bzE3KFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRo
OworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2
ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWln
aHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAg
IH0KKyAgICAgICAgdWludCBmb28xOChUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAg
ICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0
dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE5KFRleHR1cmVDdWJlPGZs
b2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWlu
dCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAg
R2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVs
cyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAg
ICAgdWludCBmb28yMChSV1RleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAg
dWludCB3aWR0aDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoKTsK
KyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIx
KFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lk
dGg7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9u
cyh0ZXh0dXJlLCAmd2lkdGgsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7
CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yMihSV1RleHR1cmUxREFycmF5PGZsb2F0PiB0
ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBlbGVt
ZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmZWxlbWVu
dHMpOworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAgICB9CisgICAgICAgIHVp
bnQgZm9vMjMoUldUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQg
d2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI0KFJXVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJl
KSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7Cisg
ICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCk7CisgICAg
ICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjUoUldU
ZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsK
KyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAg
ICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVu
dHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQg
Zm9vMjYoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWlu
dCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVt
ZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0
LCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAg
ICAgICB1aW50IGZvbzI3KFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAg
ICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAg
IHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0
aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50czsKKyAg
ICAgICAgfQorICAgICAgICB1aW50IGZvbzI4KFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7
CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAg
ICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAm
d2lkdGgsICZoZWlnaHQsICZkZXB0aCk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb28yOShSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgewor
ICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAg
ICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndp
ZHRoLCAmaGVpZ2h0LCAmZGVwdGgpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAg
ICAgfQorICAgICAgICB1aW50IGZvbzMwKFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7Cisg
ICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAg
ICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lk
dGgsICZoZWlnaHQsICZkZXB0aCk7CisgICAgICAgICAgICByZXR1cm4gZGVwdGg7CisgICAgICAg
IH0KKyAgICBgKTsKKyAgICBsZXQgdGV4dHVyZTFEID0gbWFrZTFEVGV4dHVyZShwcm9ncmFtLCBb
WzEsIDcsIDE0LCA3OV0sIFsxMywgMTZdLCBbMTVdXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1
cmUxREFycmF5ID0gbWFrZTFEVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbWzEsIDcsIDE0LCA3OV0s
IFsxMywgMTZdLCBbMTVdXSwgW1sxNiwgMTcsIDE4LCAxOV0sIFsyMCwgMjFdLCBbMjJdXV0sICJm
bG9hdCIpOworICAgIGxldCB0ZXh0dXJlMkQgPSBtYWtlMkRUZXh0dXJlKHByb2dyYW0sIFsKKyAg
ICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIs
IDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAy
NF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAg
W1szMywgMzQsIDM1LCAzNl0sCisgICAgICAgIFszNywgMzgsIDM5LCA0MF1dLAorICAgICAgICBb
WzQxLCA0Ml1dCisgICAgXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmUyREFycmF5ID0gbWFr
ZTJEVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwg
NywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAg
IFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywg
MjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzZdLAorICAgICAg
ICBbMzcsIDM4LCAzOSwgNDBdXSwKKyAgICAgICAgW1s0MSwgNDJdXQorICAgIF0sIFsKKyAgICAg
ICAgW1s0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4LCA0OSwgNTBdLAorICAgICAgICBbNTEsIDUyLCA1
MywgNTQsIDU1LCA1NiwgNTcsIDU4XSwKKyAgICAgICAgWzU5LCA2MCwgNjEsIDYyLCA2MywgNjQs
IDY1LCA2Nl0sCisgICAgICAgIFs2NywgNjgsIDY5LCA3MCwgNzEsIDcyLCA3MywgNzRdXSwKKyAg
ICAgICAgW1s3NSwgNzYsIDc3LCA3OF0sCisgICAgICAgIFs3OSwgODAsIDgxLCA4Ml1dLAorICAg
ICAgICBbWzgzLCA4NF1dCisgICAgXV0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlM0QgPSBt
YWtlM0RUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAgICAgW1tbMSwgMiwgMywgNCwgNSwgNiwgNywg
OF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsx
NywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgs
IDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisg
ICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgs
IDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAz
MCwgMzEsIDMyXV1dLAorICAgICAgICBbW1szMywgMzQsIDM1LCAzNl0sCisgICAgICAgIFszNywg
MzgsIDM5LCA0MF1dXQorICAgIF0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlQ3ViZSA9IG1h
a2VUZXh0dXJlQ3ViZShwcm9ncmFtLCBbWworICAgICAgICBbWzEsIDJdLAorICAgICAgICBbMywg
NF0sCisgICAgICAgIFs1LCA2XSwKKyAgICAgICAgWzcsIDhdXSwKKyAgICAgICAgW1s5XSwKKyAg
ICAgICAgWzEwXV0sCisgICAgXSwgWworICAgICAgICBbWzExLCAxMl0sCisgICAgICAgIFsxMywg
MTRdLAorICAgICAgICBbMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOF1dLAorICAgICAgICBbWzE5
XSwKKyAgICAgICAgWzIwXV0sCisgICAgXSwgWworICAgICAgICBbWzIxLCAyMl0sCisgICAgICAg
IFsyMywgMjRdLAorICAgICAgICBbMjUsIDI2XSwKKyAgICAgICAgWzI3LCAyOF1dLAorICAgICAg
ICBbWzI5XSwKKyAgICAgICAgWzMwXV0sCisgICAgXSwgWworICAgICAgICBbWzMxLCAzMl0sCisg
ICAgICAgIFszMywgMzRdLAorICAgICAgICBbMzUsIDM2XSwKKyAgICAgICAgWzM3LCAzOF1dLAor
ICAgICAgICBbWzM5XSwKKyAgICAgICAgWzQwXV0sCisgICAgXSwgWworICAgICAgICBbWzQxLCA0
Ml0sCisgICAgICAgIFs0MywgNDRdLAorICAgICAgICBbNDUsIDQ2XSwKKyAgICAgICAgWzQ3LCA0
OF1dLAorICAgICAgICBbWzQ5XSwKKyAgICAgICAgWzUwXV0sCisgICAgXSwgWworICAgICAgICBb
WzUxLCA1Ml0sCisgICAgICAgIFs1MywgNTRdLAorICAgICAgICBbNTUsIDU2XSwKKyAgICAgICAg
WzU3LCA1OF1dLAorICAgICAgICBbWzU5XSwKKyAgICAgICAgWzYwXV0sCisgICAgXV0sICJmbG9h
dCIpOworICAgIGxldCByd1RleHR1cmUxRCA9IG1ha2VSVzFEVGV4dHVyZShwcm9ncmFtLCBbMSwg
MiwgMywgNCwgNSwgNiwgNywgOF0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmUxREFycmF5
ID0gbWFrZVJXMURUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4
XSwgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwgWzE3LCAxOCwgMTksIDIwLCAyMSwg
MjIsIDIzLCAyNF1dLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlMkQgPSBtYWtlUlcyRFRl
eHR1cmUocHJvZ3JhbSwgWworICAgICAgICBbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAg
ICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5
LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwg
MzEsIDMyXV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmUyREFycmF5ID0gbWFrZVJXMkRU
ZXh0dXJlQXJyYXkocHJvZ3JhbSwgWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhd
LAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcs
IDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAy
OSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0
MF0sCisgICAgICAgIFs0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDhdLAorICAgICAgICBb
NDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2XSwKKyAgICAgICAgWzU3LCA1OCwgNTksIDYw
LCA2MSwgNjIsIDYzLCA2NF1dXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4dHVyZTNEID0gbWFr
ZVJXM0RUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4
XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3
LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwg
MjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwg
NDBdLAorICAgICAgICBbNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4XSwKKyAgICAgICAg
WzQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1Nl0sCisgICAgICAgIFs1NywgNTgsIDU5LCA2
MCwgNjEsIDYyLCA2MywgNjRdXV0sICJmbG9hdCIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFEXSksIDQpOworICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTFEXSks
IDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMi
LCBbdGV4dHVyZTFEQXJyYXldKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheV0pLCAyKTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUxREFycmF5
XSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzYiLCBbdGV4dHVyZTJEXSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEXSksIDQpOworICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEXSksIDMpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVy
ZTJEQXJyYXldKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTAiLCBbdGV4dHVyZTJEQXJyYXldKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZTJEQXJyYXldKSwgMik7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBb
dGV4dHVyZTJEQXJyYXldKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZTNEXSksIDgpOworICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmUzRF0pLCA0KTsKKyAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFt0ZXh0
dXJlM0RdKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTYiLCBbdGV4dHVyZTNEXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVDdWJlXSksIDIpOworICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVDdWJl
XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE5IiwgW3RleHR1cmVDdWJlXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZTFEXSksIDgpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZTFEQXJy
YXldKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjIiLCBbcndUZXh0dXJlMURBcnJheV0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFtyd1RleHR1cmUyRF0pLCA4KTsKKyAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNCIsIFtyd1RleHR1
cmUyRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yNSIsIFtyd1RleHR1cmUyREFycmF5XSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI2IiwgW3J3VGV4dHVyZTJEQXJyYXldKSwgNCk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjciLCBb
cndUZXh0dXJlMkRBcnJheV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yOCIsIFtyd1RleHR1cmUzRF0pLCA4KTsKKyAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOSIsIFtyd1RleHR1cmUzRF0pLCA0
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMCIs
IFtyd1RleHR1cmUzRF0pLCAyKTsKK30KKwordGVzdHMudGV4dHVyZUxvYWQgPSBmdW5jdGlvbigp
IHsKKyAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCisgICAgICAgIGZsb2F0IGZvbyhUZXh0dXJl
MUQ8ZmxvYXQ+IHRleHR1cmUsIGludCBtaXBtYXAsIGludCBsb2NhdGlvbikgeworICAgICAgICAg
ICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MihtaXBtYXAsIGxvY2F0aW9uKSk7CisgICAgICAg
IH0KKyAgICBgKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2UxRFRleHR1cmUocHJvZ3JhbSwgW1sxLCA3LCAxNCwgNzldLCBbMTMsIDE2
XSwgWzE1XV0sICJmbG9hdCIpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZTFEVGV4dHVyZShwcm9ncmFtLCBbWzEsIDcsIDE0LCA3OV0sIFsxMywgMTZd
LCBbMTVdXSwgImZsb2F0IiksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgMTYpOwogfQogCiBva1RvVGVzdCA9IHRydWU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvVGV4dHVyZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDZlMDVhYzgxNzg3ODlhNjVmMzAwYjEwMDA4
NjE2MDgyNDVkZjhiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvVGV4dHVyZS5qcwpAQCAtMCwwICsxLDUzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisidXNlIHN0cmljdCI7CisKK2NsYXNzIFRleHR1cmUgewor
ICAgIGNvbnN0cnVjdG9yKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291
bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIHRoaXMuX2Rp
bWVuc2lvbiA9IGRpbWVuc2lvbjsKKyAgICAgICAgdGhpcy5fd2lkdGggPSB3aWR0aDsKKyAgICAg
ICAgdGhpcy5faGVpZ2h0ID0gaGVpZ2h0OworICAgICAgICB0aGlzLl9kZXB0aCA9IGRlcHRoOwor
ICAgICAgICB0aGlzLl9sZXZlbENvdW50ID0gbGV2ZWxDb3VudDsKKyAgICAgICAgdGhpcy5fbGF5
ZXJDb3VudCA9IGxheWVyQ291bnQ7CisgICAgICAgIHRoaXMuX2lubmVyVHlwZSA9IGlubmVyVHlw
ZTsKKyAgICAgICAgdGhpcy5fZGF0YSA9IGRhdGE7CisgICAgfQorCisgICAgZ2V0IGRpbWVuc2lv
bigpIHsgcmV0dXJuIHRoaXMuX2RpbWVuc2lvbjsgfQorICAgIGdldCB3aWR0aCgpIHsgcmV0dXJu
IHRoaXMuX3dpZHRoOyB9CisgICAgZ2V0IGhlaWdodCgpIHsgcmV0dXJuIHRoaXMuX2hlaWdodDsg
fQorICAgIGdldCBkZXB0aCgpIHsgcmV0dXJuIHRoaXMuX2RlcHRoOyB9CisgICAgZ2V0IGxldmVs
Q291bnQoKSB7IHJldHVybiB0aGlzLl9sZXZlbENvdW50OyB9CisgICAgZ2V0IGxheWVyQ291bnQo
KSB7IHJldHVybiB0aGlzLl9sYXllckNvdW50OyB9CisgICAgZ2V0IGlubmVyVHlwZSgpIHsgcmV0
dXJuIHRoaXMuX2lubmVyVHlwZTsgfQorICAgIGdldCBkYXRhKCkgeyByZXR1cm4gdGhpcy5fZGF0
YTsgfQorCisgICAgZWxlbWVudENoZWNrZWQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsK
KyAgICAgICAgaWYgKGxheWVyIDwgMCB8fCBsYXllciA+PSB0aGlzLmxheWVyQ291bnQKKyAgICAg
ICAgICAgIHx8IGxldmVsIDwgMCB8fCBsZXZlbCA+PSB0aGlzLmxldmVsQ291bnQKKyAgICAgICAg
ICAgIHx8IGsgPCAwIHx8IGsgPj0gdGhpcy5kZXB0aAorICAgICAgICAgICAgfHwgaiA8IDAgfHwg
aiA+PSB0aGlzLmhlaWdodAorICAgICAgICAgICAgfHwgaSA8IDAgfHwgaSA+PSB0aGlzLndpZHRo
KQorICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgICAgcmV0dXJuIHRoaXMuZWxl
bWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpOworICAgIH0KKworICAgIHNldEVsZW1lbnRDaGVj
a2VkKGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICBpZiAobGF5
ZXIgPCAwIHx8IGxheWVyID49IHRoaXMubGF5ZXJDb3VudAorICAgICAgICAgICAgfHwgbGV2ZWwg
PCAwIHx8IGxldmVsID49IHRoaXMubGV2ZWxDb3VudAorICAgICAgICAgICAgfHwgayA8IDAgfHwg
ayA+PSB0aGlzLmRlcHRoCisgICAgICAgICAgICB8fCBqIDwgMCB8fCBqID49IHRoaXMuaGVpZ2h0
CisgICAgICAgICAgICB8fCBpIDwgMCB8fCBpID49IHRoaXMud2lkdGgpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIHRoaXMuc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGos
IGksIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0
dXJlMUQgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEp
CisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgbWlwbWFwcy4KKyAgICAg
ICAgLy8gVGhlIGZpcnN0IG1pcG1hcCBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAg
Ly8gRWFjaCBlbGVtZW50IG1heSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFy
cy4KKyAgICAgICAgLy8gVGhlIHdpZHRoIG11c3QgYmUgYSBwb3dlci1vZi10d28uCisgICAgICAg
IC8vIEVhY2ggbWlwbWFwIGlzIGhhbGYtc2l6ZSBvZiB0aGUgcHJldmlvdXMgc2l6ZS4KKworICAg
ICAgICBsZXQgZGltZW5zaW9uID0gMTsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXS5sZW5n
dGg7CisgICAgICAgIGxldCBoZWlnaHQgPSAxOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAg
ICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgbGF5ZXJDb3Vu
dCA9IDE7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxl
dmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lk
dGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF0u
bGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAg
ICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAg
ICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwg
aSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdW2ldOworICAgIH0KKwor
ICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAg
ICAgIHRoaXMuZGF0YVtsZXZlbF1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1
cmUxREFycmF5IGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBk
YXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIDFEIHRleHR1cmVz
LgorICAgICAgICAvLyBBbGwgdGV4dHVyZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHdpZHRoIGFuZCBu
dW1iZXIgb2YgbWlwbWFwcy4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMTsKKyAgICAgICAg
bGV0IHdpZHRoID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSAxOwor
ICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGFbMF0u
bGVuZ3RoOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBz
dXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNv
dW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bbGV2ZWxdLmxlbmd0aDsKKyAgICB9
CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7Cisg
ICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7
CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1baV07CisgICAgfQorCisgICAgc2V0
RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhp
cy5kYXRhW2xheWVyXVtsZXZlbF1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1
cmUyRCBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkK
KyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiBtaXBtYXBzLgorICAgICAg
ICAvLyBUaGUgZmlyc3QgbWlwbWFwIGlzIGEgcmVjdGFuZ3VsYXIgYXJyYXkgb2Ygcm93cywgd2hl
cmUgZWFjaCByb3cgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxl
bWVudCBtYXkgYmUgYSBzY2FsYXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAg
IC8vIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IG11c3QgYmUgcG93ZXJzLW9mLXR3by4KKyAgICAgICAg
Ly8gRWFjaCBtaXBtYXAgaXMgaGFsZi13aWR0aCBhbmQgaGFsZi1oZWlnaHQgb2YgdGhlIHByZXZp
b3VzIHNpemUuCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0
aCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXS5sZW5n
dGg7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0
YS5sZW5ndGg7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGlt
ZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5u
ZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgewor
ICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXVswXS5sZW5ndGg7CisgICAgfQorCisgICAg
aGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2
ZWxdLmxlbmd0aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAg
ICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwg
aSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdW2pdW2ldOworICAgIH0K
KworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7Cisg
ICAgICAgIHRoaXMuZGF0YVtsZXZlbF1bal1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNz
IFRleHR1cmUyREFycmF5IGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJU
eXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIDJEIHRl
eHR1cmVzLgorICAgICAgICAvLyBBbGwgdGV4dHVyZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHdpZHRo
LCBoZWlnaHQgYW5kIG51bWJlciBvZiBtaXBtYXBzLgorCisgICAgICAgIGxldCBkaW1lbnNpb24g
PSAyOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdWzBdLmxlbmd0aDsKKyAgICAgICAg
bGV0IGhlaWdodCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSAxOwor
ICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgbGF5
ZXJDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBo
ZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOwor
ICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLmRhdGFbMF1bbGV2ZWxdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVs
KGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF0ubGVuZ3Ro
OworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVy
biAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2pdW2ldOworICAgIH0KKwor
ICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAg
ICAgIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2pdW2ldID0gdmFsdWU7CisgICAgfQorfQorCitj
bGFzcyBUZXh0dXJlM0QgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5
cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgbWlwbWFw
cy4KKyAgICAgICAgLy8gVGhlIGZpcnN0IG1pcG1hcCBpcyBhbiBhcnJheSBvZiBkZXB0aCBzbGlj
ZXMsIGVhY2ggZGVwdGggc2xpY2UgaXMgYW4gYXJyYXkgb2Ygcm93cywgYW5kIGVhY2ggcm93IGlz
IGFuIGFycmF5IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBFYWNoIGVsZW1lbnQgbWF5IGJlIGEg
c2NhbGFyIG9yIGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgorICAgICAgICAvLyBUaGUgd2lkdGgs
IGhlaWdodCwgYW5kIGRlcHRoIG11c3QgYmUgcG93ZXJzLW9mLXR3by4KKyAgICAgICAgLy8gRWFj
aCBtaXBtYXAgaXMgaGFsZi13aWR0aCwgaGFsZi1oZWlnaHQsIGFuZCBoYWxmLWRlcHRoIG9mIHRo
ZSBwcmV2aW91cyBzaXplLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAzOworICAgICAgICBs
ZXQgd2lkdGggPSBkYXRhWzBdWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRh
dGFbMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSBkYXRhWzBdLmxlbmd0aDsKKyAg
ICAgICAgbGV0IGxldmVsQ291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgbGV0IGxheWVyQ291
bnQgPSAxOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBs
ZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdp
ZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxd
WzBdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1bMF0ubGVuZ3RoOworICAgIH0KKworICAg
IGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2
ZWxdLmxlbmd0aDsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdW2tdW2pdW2ldOworICAgIH0K
KworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7Cisg
ICAgICAgIHRoaXMuZGF0YVtsZXZlbF1ba11bal1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2Ns
YXNzIFRleHR1cmVDdWJlIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJU
eXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIDYgMkQg
dGV4dHVyZXMuCisgICAgICAgIC8vIEFsbCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNhbWUgd2lk
dGgsIGhlaWdodCwgZGVwdGgsIGFuZCBudW1iZXIgb2YgbWlwbWFwcy4KKworICAgICAgICBsZXQg
ZGltZW5zaW9uID0gMjsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXVswXS5sZW5ndGg7
CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGRl
cHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAg
ICAgbGV0IGxheWVyQ291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9u
LCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBl
LCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5kYXRhWzBdW2xldmVsXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVp
Z2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bbGV2
ZWxdLmxlbmd0aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAg
ICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwg
aSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtqXVtpXTsK
KyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisg
ICAgeworICAgICAgICB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtqXVtpXSA9IHZhbHVlOworICAg
IH0KK30KKworY2xhc3MgVGV4dHVyZTFEUlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1
Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJy
YXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2FsYXIg
b3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCBtdXN0IGJl
IGEgcG93ZXItb2YtdHdvLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAxOworICAgICAgICBs
ZXQgd2lkdGggPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IDE7CisgICAgICAg
IGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gMTsKKyAgICAgICAgbGV0
IGxheWVyQ291bnQgPSAxOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQs
IGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0K
KworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRh
dGEubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAg
ICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgewor
ICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywg
aiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbaV07CisgICAgfQorCisgICAg
c2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAg
dGhpcy5kYXRhW2ldID0gdmFsdWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlMURBcnJheVJX
IGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAg
IHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIDFEIFJXIHRleHR1cmVzLgorICAg
ICAgICAvLyBBbGwgdGV4dHVyZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHNpemUuCisKKyAgICAgICAg
bGV0IGRpbWVuc2lvbiA9IDE7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF0ubGVuZ3RoOwor
ICAgICAgICBsZXQgaGVpZ2h0ID0gMTsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAg
bGV0IGxldmVsQ291bnQgPSAxOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3Ro
OworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENv
dW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRM
ZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF0ubGVuZ3RoOwor
ICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4g
MTsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1
cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGF5ZXJdW2ldOworICAgIH0KKworICAgIHNldEVs
ZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMu
ZGF0YVtsYXllcl1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUyRFJXIGV4
dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsK
KyAgICAgICAgLy8gImRhdGEiIGlzIGEgcmVjdGFuZ3VsYXIgYXJyYXkgb2Ygcm93cywgd2hlcmUg
ZWFjaCByb3cgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVu
dCBtYXkgYmUgYSBzY2FsYXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8v
IFRoZSB3aWR0aCBhbmQgaGVpZ2h0IG11c3QgYmUgcG93ZXJzLW9mLXR3by4KKworICAgICAgICBs
ZXQgZGltZW5zaW9uID0gMjsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXS5sZW5ndGg7Cisg
ICAgICAgIGxldCBoZWlnaHQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsK
KyAgICAgICAgbGV0IGxldmVsQ291bnQgPSAxOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IDE7
CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291
bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExl
dmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXS5sZW5ndGg7Cisg
ICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLmRhdGEubGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7
CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBr
LCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtqXVtpXTsKKyAgICB9CisK
KyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAg
ICAgICB0aGlzLmRhdGFbal1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUy
REFycmF5UlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRh
dGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgMkQgUlcgdGV4dHVy
ZXMuCisgICAgICAgIC8vIEFsbCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNhbWUgd2lkdGggYW5k
IGhlaWdodC4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMjsKKyAgICAgICAgbGV0IHdpZHRo
ID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRhWzBdLmxlbmd0
aDsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSAxOwor
ICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBzdXBlcihkaW1l
bnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5l
clR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bMF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdo
dEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdLmxlbmd0
aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1
cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGF5ZXJdW2pdW2ldOworICAgIH0KKworICAgIHNl
dEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRo
aXMuZGF0YVtsYXllcl1bal1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUz
RFJXIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQor
ICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIGRlcHRoIHNsaWNlcywgZWFj
aCBkZXB0aCBzbGljZSBpcyBhbiBhcnJheSBvZiByb3dzLCBhbmQgZWFjaCByb3cgaXMgYW4gYXJy
YXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2FsYXIg
b3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCwgaGVpZ2h0
LCBhbmQgZGVwdGggbXVzdCBiZSBwb3dlcnMtb2YtdHdvLgorCisgICAgICAgIGxldCBkaW1lbnNp
b24gPSAzOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAg
bGV0IGhlaWdodCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSBkYXRhLmxl
bmd0aDsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSAxOworICAgICAgICBsZXQgbGF5ZXJDb3Vu
dCA9IDE7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxl
dmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lk
dGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVswXS5s
ZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLmRhdGFbMF0ubGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChs
ZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGEubGVuZ3RoOworICAgIH0KKwor
ICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMuZGF0YVtrXVtqXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZl
bCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFba11bal1baV0gPSB2
YWx1ZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UZXh0dXJlT3BlcmF0aW9ucy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rl
eHR1cmVPcGVyYXRpb25zLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzYjc3NTJlMjFlMzBmNTIyZDFlMGE2MWMy
MDU4OGQ4OGQzZmUzMzYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9UZXh0dXJlT3BlcmF0aW9ucy5qcwpAQCAtMCwwICsxLDUzOCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisidXNlIHN0cmljdCI7CisKK2Z1bmN0
aW9uIGRlcHRoQ29tcGFyZU9wZXJhdGlvbihkcmVmLCBkLCBjb21wYXJlRnVuY3Rpb24pCit7Cisg
ICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjMuNAorICAgIHN3aXRjaCAoY29tcGFyZUZ1
bmN0aW9uKSB7CisgICAgICAgIGNhc2UgIm5ldmVyIjoKKyAgICAgICAgICAgIHJldHVybiAwOwor
ICAgICAgICBjYXNlICJsZXNzIjoKKyAgICAgICAgICAgIHJldHVybiBkcmVmIDwgZCA/IDEgOiAw
OworICAgICAgICBjYXNlICJlcXVhbCI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiA9PSBkID8g
MSA6IDA7CisgICAgICAgIGNhc2UgImxlc3NFcXVhbCI6CisgICAgICAgICAgICByZXR1cm4gZHJl
ZiA8PSBkID8gMSA6IDA7CisgICAgICAgIGNhc2UgImdyZWF0ZXIiOgorICAgICAgICAgICAgcmV0
dXJuIGRyZWYgPiBkID8gMSA6IDA7CisgICAgICAgIGNhc2UgIm5vdEVxdWFsIjoKKyAgICAgICAg
ICAgIHJldHVybiBkcmVmICE9IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAiZ3JlYXRlckVxdWFs
IjoKKyAgICAgICAgICAgIHJldHVybiBkcmVmID49IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAi
YWx3YXlzIjoKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGRlcHRoIGNvbXBhcmlzb24gZnVuY3Rpb24i
KTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGNvbnZlcnNpb25Ub1JHQkEodmFsdWUpCit7CisgICAg
Ly8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjMuNQorICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9m
IEFycmF5KSB7CisgICAgICAgIHZhciByZXN1bHQgPSBbXTsKKyAgICAgICAgZm9yIChsZXQgaSA9
IDA7IGkgPCB2YWx1ZS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVl
W2ldKTsKKyAgICAgICAgd2hpbGUgKHJlc3VsdC5sZW5ndGggIT0gNCkKKyAgICAgICAgICAgIHJl
c3VsdC5wdXNoKHJlc3VsdC5sZW5ndGggPT0gMyA/IDEgOiAwKTsKKyAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICB9IGVsc2UKKyAgICAgICAgcmV0dXJuIFt2YWx1ZSwgMCwgMCwgMV07Cit9CisK
Ky8vRm9yIGV4cGxpY2l0IExPRCBpbWFnZSBpbnN0cnVjdGlvbnMsIGlmIHRoZSBvcHRpb25hbCBT
UElSLVYgb3BlcmFuZCBHcmFkIGlzIHByb3ZpZGVkLCB0aGVuIHRoZSBvcGVyYW5kIHZhbHVlcyBh
cmUgdXNlZCBmb3IgdGhlIGRlcml2YXRpdmVzLiBUaGUgbnVtYmVyIG9mIGNvbXBvbmVudHMgcHJl
c2VudCBpbiBlYWNoIGRlcml2YXRpdmUgZm9yIGEgZ2l2ZW4gaW1hZ2UgZGltZW5zaW9uYWxpdHkg
bWF0Y2hlcyB0aGUgbnVtYmVyIG9mIHBhcnRpYWwgZGVyaXZhdGl2ZXMgY29tcHV0ZWQgYWJvdmUu
CisvL0lmIHRoZSBvcHRpb25hbCBTUElSLVYgb3BlcmFuZCBMb2QgaXMgcHJvdmlkZWQsIHRoZW4g
ZGVyaXZhdGl2ZXMgYXJlIHNldCB0byB6ZXJvLCB0aGUgY3ViZSBtYXAgZGVyaXZhdGl2ZSB0cmFu
c2Zvcm1hdGlvbiBpcyBza2lwcGVkLCBhbmQgdGhlIHNjYWxlIGZhY3RvciBvcGVyYXRpb24gaXMg
c2tpcHBlZC4gSW5zdGVhZCwgdGhlIGZsb2F0aW5nIHBvaW50IHNjYWxhciBjb29yZGluYXRlIGlz
IGRpcmVjdGx5IGFzc2lnbmVkIHRvIM67YmFzZSBhcyBkZXNjcmliZWQgaW4gTGV2ZWwtb2YtRGV0
YWlsIE9wZXJhdGlvbi4KK2Z1bmN0aW9uIGltcGxpY2l0RGVyaXZhdGl2ZSgpCit7CisgICAgLy8g
VnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjUKKyAgICByZXR1cm4gMDsKK30KKworZnVuY3Rpb24g
cHJvamVjdGlvbk9wZXJhdGlvbihzLCB0LCByLCBkcmVmLCBxKQoreworICAgIC8vIFZ1bGthbiAx
LjEuODMgc2VjdGlvbiAxNS42LjEKKyAgICByZXR1cm4gW3MgLyBxLCB0IC8gcSwgciAvIHEsIGRy
ZWYgLyBxXTsKK30KKworZnVuY3Rpb24gY3ViZU1hcEZhY2VTZWxlY3Rpb24ocywgdCwgciwgcGFy
dGlhbFJ4V2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUnlX
aXRoUmVzcGVjdFRvWCwgcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSeldpdGhSZXNw
ZWN0VG9YLCBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgz
IHNlY3Rpb24gMTUuNi40CisgICAgbGV0IHJ4ID0gczsKKyAgICBsZXQgcnkgPSB0OworICAgIGxl
dCByeiA9IHI7CisgICAgbGV0IHdpbm5lciA9IDA7CisgICAgaWYgKE1hdGguYWJzKHJ6KSA+PSBN
YXRoLmFicyhyeSkgJiYgTWF0aC5hYnMocnopID49IE1hdGguYWJzKHJ4KSkKKyAgICAgICAgd2lu
bmVyID0gMjsKKyAgICBlbHNlIGlmIChNYXRoLmFicyhyeSkgPj0gTWF0aC5hYnMocngpICYmIE1h
dGguYWJzKHJ5KSA+PSBNYXRoLmFicyhyeikpCisgICAgICAgIHdpbm5lciA9IDE7CisKKyAgICBs
ZXQgbGF5ZXJOdW1iZXI7CisgICAgbGV0IHNjOworICAgIGxldCB0YzsKKyAgICBsZXQgcmM7Cisg
ICAgbGV0IHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YOworICAgIGxldCBwYXJ0aWFsU2NXaXRoUmVz
cGVjdFRvWTsKKyAgICBsZXQgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1g7CisgICAgbGV0IHBhcnRp
YWxUY1dpdGhSZXNwZWN0VG9ZOworICAgIGxldCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWDsKKyAg
ICBsZXQgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1k7CisgICAgaWYgKHdpbm5lciA9PSAwICYmIHJ4
ID49IDApIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSAwOworICAgICAgICBzYyA9IC1yejsKKyAg
ICAgICAgdGMgPSAtcnk7CisgICAgICAgIHJjID0gcng7CisgICAgICAgIHBhcnRpYWxTY1dpdGhS
ZXNwZWN0VG9YID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NX
aXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlh
bFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBh
cnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgICAg
ICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAg
ICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOwor
ICAgIH0gZWxzZSBpZiAod2lubmVyID09IDApIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSAxOwor
ICAgICAgICBzYyA9IHJ6OworICAgICAgICB0YyA9IC1yeTsKKyAgICAgICAgcmMgPSByeDsKKyAg
ICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsK
KyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRv
WTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3Bl
Y3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhS
ZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnhX
aXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlh
bFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgfSBlbHNlIGlmICh3aW5uZXIgPT0gMSAmJiByeSA+PSAw
KSB7CisgICAgICAgIGxheWVyTnVtYmVyID0gMjsKKyAgICAgICAgc2MgPSByeDsKKyAgICAgICAg
dGMgPSAtcno7CisgICAgICAgIHJjID0gcnk7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0
VG9YID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNw
ZWN0VG9ZID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhS
ZXNwZWN0VG9YID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dp
dGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxS
Y1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRp
YWxSY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgfSBlbHNl
IGlmICh3aW5uZXIgPT0gMSkgeworICAgICAgICBsYXllck51bWJlciA9IDM7CisgICAgICAgIHNj
ID0gcng7CisgICAgICAgIHRjID0gLXJ6OworICAgICAgICByYyA9IHJ5OworICAgICAgICBwYXJ0
aWFsU2NXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBw
YXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgICAg
ICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAg
ICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7
CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0
VG9YOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVz
cGVjdFRvWTsKKyAgICB9IGVsc2UgaWYgKHdpbm5lciA9PSAyICYmIHJ6ID49IDApIHsKKyAgICAg
ICAgbGF5ZXJOdW1iZXIgPSA0OworICAgICAgICBzYyA9IHJ4OworICAgICAgICB0YyA9IC1yeTsK
KyAgICAgICAgcmMgPSByejsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0
aWFsUnhXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSBw
YXJ0aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1gg
PSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0
VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVz
cGVjdFRvWCA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsUmNXaXRo
UmVzcGVjdFRvWSA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxzZSB7CisgICAg
ICAgIGxheWVyTnVtYmVyID0gNTsKKyAgICAgICAgc2MgPSAtcng7CisgICAgICAgIHRjID0gLXJ5
OworICAgICAgICByYyA9IHJ6OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IC1w
YXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kg
PSAtcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0
VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVz
cGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0
aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxS
Y1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgIH0KKyAgICBy
ZXR1cm4gW2xheWVyTnVtYmVyLCBzYywgdGMsIHJjLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCwg
cGFydGlhbFNjV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFs
VGNXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSY1dpdGhS
ZXNwZWN0VG9ZXQorfQorCitmdW5jdGlvbiBjdWJlTWFwQ29vcmRpbmF0ZVRyYW5zZm9ybWF0aW9u
KHNjLCByYykKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi41CisgICAgbGV0
IHNGYWNlID0gKDEgLyAyKSAqIHNjIC8gTWF0aC5hYnMocmMpICsgKDEgLyAyKTsKKyAgICBsZXQg
dEZhY2UgPSAoMSAvIDIpICogdGMgLyBNYXRoLmFicyhyYykgKyAoMSAvIDIpOworICAgIHJldHVy
biBbc0ZhY2UsIHRGYWNlXTsKK30KKworZnVuY3Rpb24gY3ViZU1hcERlcml2YXRpdmVUcmFuc2Zv
cm1hdGlvbihzYywgdGMsIHJjLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNjV2l0
aFJlc3BlY3RUb1ksIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVGNXaXRoUmVzcGVj
dFRvWSwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZKQor
eworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjYKKyAgICBsZXQgcGFydGlhbFNG
YWNlV2l0aFJlc3BlY3RUb1ggPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFsU2NX
aXRoUmVzcGVjdFRvWCAtIHNjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gpIC8gTWF0aC5wb3co
cmMsIDIpKTsKKyAgICBsZXQgcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1kgPSAoMSAvIDIpICog
KChNYXRoLmFicyhyYykgKiBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSAtIHNjICogcGFydGlhbFJj
V2l0aFJlc3BlY3RUb1kpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICBsZXQgcGFydGlhbFRGYWNl
V2l0aFJlc3BlY3RUb1ggPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFsVGNXaXRo
UmVzcGVjdFRvWCAtIHRjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gpIC8gTWF0aC5wb3cocmMs
IDIpKTsKKyAgICBsZXQgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1kgPSAoMSAvIDIpICogKChN
YXRoLmFicyhyYykgKiBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSAtIHRjICogcGFydGlhbFJjV2l0
aFJlc3BlY3RUb1kpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICByZXR1cm4gW3BhcnRpYWxTRmFj
ZVdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRGYWNl
V2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0VG9ZXTsKK30KKworZnVuY3Rp
b24gc2NhbGVGYWN0b3JPcGVyYXRpb24oZGV2aWNlTWF4QW5pc290cm9weSwgd2lkdGgsIGhlaWdo
dCwgZGVwdGgsIHNhbXBsZXJNYXhBbmlzb3Ryb3B5LCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9YLCBw
YXJ0aWFsVFdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU1dp
dGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUldpdGhSZXNwZWN0
VG9ZKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjcKKyAgICBsZXQgbXV4
ID0gTWF0aC5hYnMocGFydGlhbFNXaXRoUmVzcGVjdFRvWCkgKiB3aWR0aDsKKyAgICBsZXQgbXZ4
ID0gTWF0aC5hYnMocGFydGlhbFRXaXRoUmVzcGVjdFRvWCkgKiBoZWlnaHQ7CisgICAgbGV0IG13
eCA9IE1hdGguYWJzKHBhcnRpYWxSV2l0aFJlc3BlY3RUb1gpICogZGVwdGg7CisgICAgbGV0IG11
eSA9IE1hdGguYWJzKHBhcnRpYWxTV2l0aFJlc3BlY3RUb1kpICogd2lkdGg7CisgICAgbGV0IG12
eSA9IE1hdGguYWJzKHBhcnRpYWxUV2l0aFJlc3BlY3RUb1kpICogaGVpZ2h0OworICAgIGxldCBt
d3kgPSBNYXRoLmFicyhwYXJ0aWFsUldpdGhSZXNwZWN0VG9ZKSAqIGRlcHRoOworCisgICAgbGV0
IGZ4ID0gTWF0aC5zcXJ0KDIpICogKG11eCArIG12eCArIG13eCk7CisgICAgbGV0IGZ5ID0gTWF0
aC5zcXJ0KDIpICogKG11eSArIG12eSArIG13eSk7CisKKyAgICBsZXQgcmhvWCA9IGZ4OworICAg
IGxldCByaG9ZID0gZnk7CisgICAgbGV0IHJob01heCA9IE1hdGgubWF4KHJob1gsIHJob1kpOwor
ICAgIGxldCByaG9NaW4gPSBNYXRoLm1pbihyaG9YLCByaG9ZKTsKKworICAgIGxldCBtYXhBbmlz
byA9IE1hdGgubWluKHNhbXBsZXJNYXhBbmlzb3Ryb3B5LCBkZXZpY2VNYXhBbmlzb3Ryb3B5KTsK
KworICAgIGxldCBldGE7CisgICAgaWYgKHJob01heCA9PSAwICYmIHJob01pbiA9PSAwKQorICAg
ICAgICBldGEgPSAxOworICAgIGVsc2UgaWYgKHJob01pbiA9PSAwKQorICAgICAgICBldGEgPSBt
YXhBbmlzbzsKKyAgICBlbHNlCisgICAgICAgIGV0YSA9IE1hdGgubWluKHJob01heCAvIHJob01p
biwgbWF4QW5pc28pOworCisgICAgbGV0IE4gPSBNYXRoLmNlaWwoZXRhKTsKKyAgICByZXR1cm4g
W3Job01heCwgcmhvTWluLCBldGEsIE5dOworfQorCitmdW5jdGlvbiBsZXZlbE9mRGV0YWlsT3Bl
cmF0aW9uKGRldmljZU1heFNhbXBsZXJMb2RCaWFzLCBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLCBs
b2RNaW5Gcm9tRnVuY3Rpb25PcGVyYW5kLCBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwgc2FtcGxl
ckJpYXMsIHNhbXBsZXJMb2RNaW4sIHNhbXBsZXJMb2FkTWF4LCByaG9NYXgsIGV0YSkKK3sKKyAg
ICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi43CisgICAgbGV0IGxhbWJkYUJhc2UgPSBs
b2RGcm9tRnVuY3Rpb25PcGVyYW5kICE9IHVuZGVmaW5lZCA/IGxvZEZyb21GdW5jdGlvbk9wZXJh
bmQgOiBNYXRoLmxvZzIocmhvTWF4IC8gZXRhKTsKKyAgICBsZXQgbGFtYmRhUHJpbWUgPSBsYW1i
ZGFCYXNlICsgTWF0aC5taW4oTWF0aC5tYXgoc2FtcGxlckJpYXMgKyBiaWFzRnJvbUZ1bmN0aW9u
T3BlcmFuZCwgLWRldmljZU1heFNhbXBsZXJMb2RCaWFzKSwgZGV2aWNlTWF4U2FtcGxlckxvZEJp
YXMpOworICAgIGxldCBsb2RNaW4gPSBNYXRoLm1heChzYW1wbGVyTG9kTWluLCBsb2RNaW5Gcm9t
RnVuY3Rpb25PcGVyYW5kKTsKKyAgICBsZXQgbG9kTWF4ID0gc2FtcGxlckxvYWRNYXg7CisgICAg
bGV0IGxhbWJkYTsKKyAgICBpZiAobGFtYmRhUHJpbWUgPiBsb2RNYXgpCisgICAgICAgIGxhbWJk
YSA9IGxvZE1heDsKKyAgICBlbHNlIGlmIChsb2RNaW4gPD0gbGFtYmRhUHJpbWUgJiYgbGFtYmRh
UHJpbWUgPD0gbG9kTWF4KQorICAgICAgICBsYW1iZGEgPSBsYW1iZGFQcmltZTsKKyAgICBlbHNl
IGlmIChsYW1iZGFQcmltZSA8IGxvZE1pbikKKyAgICAgICAgbGFtYmRhID0gbG9kTWluOworICAg
IGVsc2UKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJsb2RNaW4gPj0gbG9kTWF4Iik7CisgICAg
cmV0dXJuIGxhbWJkYTsKK30KKworZnVuY3Rpb24gaW1hZ2VMZXZlbFNlbGVjdGlvbihiYXNlTWlw
TGV2ZWwsIGxldmVsQ291bnQsIG1pcG1hcE1vZGUsIGxhbWJkYSkKK3sKKyAgICAvLyBWdWxrYW4g
MS4xLjgzIHNlY3Rpb24gMTUuNi43CisgICAgZnVuY3Rpb24gbmVhcmVzdChkUHJpbWUpCisgICAg
eworICAgICAgICByZXR1cm4gTWF0aC5jZWlsKGRQcmltZSArIDAuNSkgLSAxOworICAgIH0KKwor
ICAgIGxldCBxID0gbGV2ZWxDb3VudCAtIDE7CisgICAgbGV0IGRQcmltZSA9IGJhc2VNaXBMZXZl
bCArIE1hdGgubWluKE1hdGgubWF4KGxhbWJkYSwgMCksIHEpOworICAgIGxldCBkbDsKKyAgICBp
ZiAobWlwbWFwTW9kZSA9PSAibmVhcmVzdCIpCisgICAgICAgIGRsID0gbmVhcmVzdChkUHJpbWUp
OworICAgIGVsc2UKKyAgICAgICAgZGwgPSBkUHJpbWU7CisgICAgaWYgKG1pcG1hcE1vZGUgPT0g
Im5lYXJlc3QiKQorICAgICAgICByZXR1cm4gZGw7CisgICAgZWxzZSB7CisgICAgICAgIGxldCBk
SGkgPSBNYXRoLmZsb29yKGRsKTsKKyAgICAgICAgbGV0IGRMb3cgPSBNYXRoLm1pbihkSGkgKyAx
LCBxKTsKKyAgICAgICAgbGV0IGRlbHRhID0gZGwgLSBkSGk7CisgICAgICAgIHJldHVybiBbZEhp
LCBkTG93LCBkZWx0YV07CisgICAgfQorfQorCitmdW5jdGlvbiBzdHJxYVRvVVZXQVRyYW5zZm9y
bWF0aW9uKHMsIHQsIHIsIHdpZHRoLCBoZWlnaHQsIGRlcHRoKQoreworICAgIC8vIFZ1bGthbiAx
LjEuODMgc2VjdGlvbiAxNS42LjgKKyAgICBsZXQgdSA9IHMgKiB3aWR0aDsKKyAgICBsZXQgdiA9
IHQgKiBoZWlnaHQ7CisgICAgbGV0IHcgPSByICogZGVwdGg7CisgICAgcmV0dXJuIFt1LCB2LCB3
XTsKK30KKworZnVuY3Rpb24gdXZ3YVRvSUpLTE5UcmFuc2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJT
ZWxlY3Rpb24obGF5ZXJDb3VudCwgYmFzZUFycmF5TGF5ZXIsIGZpbHRlciwgdSwgdiwgdywgYSwg
ZGVsdGFJLCBkZWx0YUosIGRlbHRhSykKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24g
MTUuNy4xCisgICAgZnVuY3Rpb24gcm5lKGEpCisgICAgeworICAgICAgICByZXR1cm4gTWF0aC5m
bG9vcihhICsgMC41KTsKKyAgICB9CisgICAgbGV0IGwgPSBNYXRoLm1pbihNYXRoLm1heChybmUo
YSksIDApLCBsYXllckNvdW50IC0gMSkgKyBiYXNlQXJyYXlMYXllcjsKKyAgICBsZXQgaTsKKyAg
ICBsZXQgajsKKyAgICBsZXQgazsKKyAgICBpZiAoZmlsdGVyID09ICJuZWFyZXN0IikgeworICAg
ICAgICBpID0gTWF0aC5mbG9vcih1KTsKKyAgICAgICAgaiA9IE1hdGguZmxvb3Iodik7CisgICAg
ICAgIGsgPSBNYXRoLmZsb29yKHcpOworICAgICAgICAKKyAgICAgICAgaSArPSBkZWx0YUk7Cisg
ICAgICAgIGogKz0gZGVsdGFKOworICAgICAgICBrICs9IGRlbHRhSzsKKyAgICAgICAgCisgICAg
ICAgIHJldHVybiBbaSwgaiwgaywgbF07CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGZpbHRl
ciAhPSAibGluZWFyIikKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBmaWx0
ZXIiKTsKKyAgICAgICAgbGV0IGkwID0gTWF0aC5mbG9vcih1IC0gMC41KTsKKyAgICAgICAgbGV0
IGkxID0gaTAgKyAxOworICAgICAgICBsZXQgajAgPSBNYXRoLmZsb29yKHYgLSAwLjUpOworICAg
ICAgICBsZXQgajEgPSBqMCArIDE7CisgICAgICAgIGxldCBrMCA9IE1hdGguZmxvb3IodyAtIDAu
NSk7CisgICAgICAgIGxldCBrMSA9IGswICsgMTsKKyAgICAgICAgbGV0IGFscGhhID0gKHUgLSAw
LjUpIC0gaTA7CisgICAgICAgIGxldCBiZXRhID0gKHYgLSAwLjUpIC0gajA7CisgICAgICAgIGxl
dCBnYW1tYSA9ICh3IC0gMC41KSAtIGswOworICAgICAgICAKKyAgICAgICAgaTAgKz0gZGVsdGFJ
OworICAgICAgICBpMSArPSBkZWx0YUk7CisgICAgICAgIGowICs9IGRlbHRhSjsKKyAgICAgICAg
ajEgKz0gZGVsdGFKOworICAgICAgICBrMCArPSBkZWx0YUs7CisgICAgICAgIGsxICs9IGRlbHRh
SzsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBbaTAsIGkxLCBqMCwgajEsIGswLCBrMSwgbCwg
YWxwaGEsIGJldGEsIGdhbW1hXTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGludGVnZXJUZXhlbENv
b3JkaW5hdGVPcGVyYXRpb25zKGJhc2VNaXBMZXZlbCwgbGV2ZWxDb3VudCwgbGV2ZWxCYXNlLCBs
b2RGcm9tRnVuY3Rpb25PcGVyYW5kKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAx
NS44CisgICAgbGV0IGQgPSBsZXZlbEJhc2UgKyBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kOworICAg
IGlmIChkIDwgYmFzZU1pcExldmVsIHx8IGQgPj0gYmFzZU1pcExldmVsICsgbGV2ZWxDb3VudCkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTZWxlY3RlZCBsZXZlbCBkb2VzIG5vdCBsaWUgaW5z
aWRlIHRoZSBpbWFnZSIpOworICAgIHJldHVybiBkOworfQorCitmdW5jdGlvbiB3cmFwcGluZ09w
ZXJhdGlvbih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgYWRkcmVzc01vZGVVLCBhZGRyZXNzTW9kZVYs
IGFkZHJlc3NNb2RlVywgaSwgaiwgaykKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24g
MTUuOS4xCisgICAgLy8gRklYTUU6IEltcGxlbWVudCBjdWJlIG1hcCBoYW5kbGluZworICAgIGZ1
bmN0aW9uIHRyYW5zZm9ybShhZGRyZXNzTW9kZSwgc2l6ZSwgaSkKKyAgICB7CisgICAgICAgIGZ1
bmN0aW9uIG1pcnJvcihuKSB7CisgICAgICAgICAgICBpZiAobiA+PSAwKQorICAgICAgICAgICAg
ICAgIHJldHVybiBuOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiAt
KDEgKyBuKTsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKGFkZHJlc3NNb2RlKSB7CisgICAg
ICAgICAgICBjYXNlICJjbGFtcFRvRWRnZSI6CisgICAgICAgICAgICAgICAgcmV0dXJuIE1hdGgu
bWluKE1hdGgubWF4KGksIDApLCBzaXplIC0gMSk7CisgICAgICAgICAgICBjYXNlICJyZXBlYXQi
OgorICAgICAgICAgICAgICAgIHJldHVybiBpICUgc2l6ZTsKKyAgICAgICAgICAgIGNhc2UgIm1p
cnJvclJlcGVhdCI6CisgICAgICAgICAgICAgICAgcmV0dXJuIChzaXplIC0gMSkgLSBtaXJyb3Io
KGkgJSAoMiAqIHNpemUpKSAtIHNpemUpOworICAgICAgICAgICAgY2FzZSAiY2xhbXBUb0JvcmRl
ckNvbG9yIjoKKyAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoaSwgLTEp
LCBzaXplKTsKKyAgICAgICAgICAgIGRlZmF1bHQKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIlVua25vd24gYWRkcmVzcyBtb2RlIik7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0
dXJuIFt0cmFuc2Zvcm0oYWRkcmVzc01vZGVVLCB3aWR0aCwgaSksIHRyYW5zZm9ybShhZGRyZXNz
TW9kZVYsIGhlaWdodCwgaiksIHRyYW5zZm9ybShhZGRyZXNzTW9kZVcsIGRlcHRoLCBrKV07Cit9
CisKK2Z1bmN0aW9uIHRleGVsR2F0aGVyaW5nKCkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNl
Y3Rpb24gMTUuOS4yCisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzCisgICAgLypsZXQgdGF1
UiA9IDsKKyAgICBsZXQgdGF1RyA9IDsKKyAgICBsZXQgdGF1QiA9IDsKKyAgICBsZXQgdGF1QSA9
IDsqLworfQorCitmdW5jdGlvbiB0ZXhlbEZpbHRlcmluZygKKyAgICBkZXZpY2VNYXhBbmlzb3Ry
b3B5LAorICAgIGRldmljZU1heFNhbXBsZXJMb2RCaWFzLAorICAgIGJhc2VNaXBMZXZlbCwKKyAg
ICBiYXNlQXJyYXlMYXllciwKKyAgICB0ZXh0dXJlLAorICAgIHNhbXBsZXIsCisgICAgc2FtcGxl
ckJpYXMsCisgICAgcywgdCwgciwgYSwKKyAgICBkZWx0YUksIGRlbHRhSiwgZGVsdGFLLAorICAg
IGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgbG9kTWluRnJvbUZ1bmN0aW9uT3BlcmFuZCwK
KyAgICBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwKKyAgICBkZHgsIGRkeSkKK3sKKyAgICAvLyBW
dWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOS4zCisKKyAgICAvLyBUaGUgc3BlYyB1c2VzIGRpZmZl
cmVudCBuYW1lcyB0aGFuIFdlYkdQVSBkb2VzLgorICAgIGxldCBhZGRyZXNzTW9kZVUgPSBzYW1w
bGVyLnJBZGRyZXNzTW9kZTsKKyAgICBsZXQgYWRkcmVzc01vZGVWID0gc2FtcGxlci5zQWRkcmVz
c01vZGU7CisgICAgbGV0IGFkZHJlc3NNb2RlVyA9IHNhbXBsZXIudEFkZHJlc3NNb2RlOworCisg
ICAgbGV0IGZpbHRlcjsKKyAgICBpZiAobGFtYmRhIDw9IDApCisgICAgICAgIGZpbHRlciA9IHNh
bXBsZXIubWFnRmlsdGVyOworICAgIGVsc2UKKyAgICAgICAgZmlsdGVyID0gc2FtcGxlci5taW5G
aWx0ZXI7CisKKyAgICBmdW5jdGlvbiBjb21wdXRlVGF1KGxldmVsKQorICAgIHsKKyAgICAgICAg
ZnVuY3Rpb24gcmVkdWNlKC4uLmFyZ3VtZW50cykKKyAgICAgICAgeworICAgICAgICAgICAgaWYg
KGFyZ3VtZW50cy5sZW5ndGggJSAyICE9IDApCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJEb24ndCBoYXZlIGEgd2VpZ2h0IGNvcnJlc3BvbmRpbmcgdG8gZWFjaCB2YWx1ZSIpOwor
ICAgICAgICAgICAgbGV0IHN1bSA9IDA7CisgICAgICAgICAgICAvLyBGSVhNRTogVGhlc2UgYXJn
dW1lbnRzIG5lZWQgdG8gYmUgYXZlcmFnZWQgY29tcG9uZW50LXdpc2UuCisgICAgICAgICAgICBm
b3IgKGxldCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGggLyAyOyArK2kpCisgICAgICAgICAg
ICAgICAgc3VtICs9IGFyZ3VtZW50c1syICogaV0gKiBhcmd1bWVudHNbMiAqIGkgKyAxXTsKKyAg
ICAgICAgICAgIHJldHVybiBzdW07CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhY2Nl
c3NDb2xvcih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbCwgaSwgaiwgaykKKyAgICAgICAgeworICAg
ICAgICAgICAgZnVuY3Rpb24gc2hvdWxkQmVCb3JkZXIodmFsdWUsIG1heCkKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgPCAtMSB8fCB2YWx1ZSA+IG1heCkKKyAgICAg
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJPdXQtb2YtYm91bmRzIHRleHR1cmUgcmVh
ZCIpOworICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PSAtMSB8fCB2YWx1ZSA9PSBtYXgp
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsZXQgW3dyYXBwZWRJLCB3cmFwcGVkSiwg
d3JhcHBlZEtdID0gd3JhcHBpbmdPcGVyYXRpb24od2lkdGgsIGhlaWdodCwgZGVwdGgsIGFkZHJl
c3NNb2RlVSwgYWRkcmVzc01vZGVWLCBhZGRyZXNzTW9kZVcsIGksIGosIGspCisgICAgICAgICAg
ICBpZiAoc2hvdWxkQmVCb3JkZXIod3JhcHBlZEksIHdpZHRoKSB8fCBzaG91bGRCZUJvcmRlcih3
cmFwcGVkSiwgaGVpZ2h0KSB8fCBzaG91bGRCZUJvcmRlcih3cmFwcGVkSywgZGVwdGgpKQorICAg
ICAgICAgICAgICAgIHJldHVybiBzYW1wbGVyLmJvcmRlckNvbG9yKHRleHR1cmUuaW5uZXJUeXBl
KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gdGV4dHVyZS5lbGVt
ZW50KGwsIGxldmVsLCBrLCBqLCBpKTsKKyAgICAgICAgfQorCisgICAgICAgIGxldCBbdSwgdiwg
d10gPSBzdHJxYVRvVVZXQVRyYW5zZm9ybWF0aW9uKHMsIHQsIHIsIHRleHR1cmUud2lkdGhBdExl
dmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0
TGV2ZWwobGV2ZWwpKTsKKyAgICAgICAgaWYgKGZpbHRlciA9PSAibmVhcmVzdCIpIHsKKyAgICAg
ICAgICAgIGxldCBbaSwgaiwgaywgbF0gPSB1dndhVG9JSktMTlRyYW5zZm9ybWF0aW9uQW5kQXJy
YXlMYXllclNlbGVjdGlvbih0ZXh0dXJlLmxheWVyQ291bnQsIGJhc2VBcnJheUxheWVyLCBmaWx0
ZXIsIHUsIHYsIHcsIGEsIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUspOworICAgICAgICAgICAgcmV0
dXJuIGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsLCBpLCBqLCBrKTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChtaXBtYXBNb2RlICE9ICJsaW5lYXIiKQorICAg
ICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBmaWx0ZXIiKTsKKyAgICAgICAg
ICAgIFtpMCwgaTEsIGowLCBqMSwgazAsIGsxLCBsLCBhbHBoYSwgYmV0YSwgZ2FtbWFdID0gdXZ3
YVRvSUpLTE5UcmFuc2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJTZWxlY3Rpb24odGV4dHVyZS5sYXll
ckNvdW50LCBiYXNlQXJyYXlMYXllciwgZmlsdGVyLCB1LCB2LCB3LCBhLCBkZWx0YUksIGRlbHRh
SiwgZGVsdGFLKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjAwMCA9IGFjY2Vzc0NvbG9yKHdpZHRo
LCBoZWlnaHQsIGRlcHRoLCBsLCBpMCwgajAsIGswKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjEw
MCA9IGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsLCBpMSwgajAsIGswKTsKKyAg
ICAgICAgICAgIGxldCBjb2xvcjAxMCA9IGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRo
LCBsLCBpMCwgajEsIGswKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjExMCA9IGFjY2Vzc0NvbG9y
KHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsLCBpMSwgajEsIGswKTsKKyAgICAgICAgICAgIGxldCBj
b2xvcjAwMSA9IGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsLCBpMCwgajAsIGsx
KTsKKyAgICAgICAgICAgIGxldCBjb2xvcjEwMSA9IGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQs
IGRlcHRoLCBsLCBpMSwgajAsIGsxKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjAxMSA9IGFjY2Vz
c0NvbG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsLCBpMCwgajEsIGsxKTsKKyAgICAgICAgICAg
IGxldCBjb2xvcjExMSA9IGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsLCBpMSwg
ajEsIGsxKTsKKyAgICAgICAgICAgIHN3aXRjaCAodGV4dHVyZS5kaW1lbnNpb24pIHsKKyAgICAg
ICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgIGxldCBjb2xvcjAgPSBjb2xv
cjAxMTsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMSA9IGNvbG9yMTExOworICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gcmVkdWNlKDEgLSBhbHBoYSwgY29sb3IwLCBhbHBoYSwgY29s
b3IxKTsKKyAgICAgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgICAgIGxldCBj
b2xvcjAwID0gY29sb3IwMDE7CisgICAgICAgICAgICAgICAgICAgIGxldCBjb2xvcjEwID0gY29s
b3IxMDE7CisgICAgICAgICAgICAgICAgICAgIGxldCBjb2xvcjAxID0gY29sb3IwMTE7CisgICAg
ICAgICAgICAgICAgICAgIGxldCBjb2xvcjExID0gY29sb3IxMTE7CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiByZWR1Y2UoKDEgLSBhbHBoYSkgKiAoMSAtIGJldGEpLCBjb2xvcjAwLCBhbHBo
YSAqICgxIC0gYmV0YSksIGNvbG9yMTAsICgxIC0gYWxwaGEpICogYmV0YSwgY29sb3IwMSwgYWxw
aGEgKiBiZXRhLCBjb2xvcjExKTsKKyAgICAgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiByZWR1Y2UoCisgICAgICAgICAgICAgICAgICAgICAgICAoMSAtIGFs
cGhhKSAqICgxIC0gYmV0YSkgKiAoMSAtIGdhbW1hKSwgY29sb3IwMDAsCisgICAgICAgICAgICAg
ICAgICAgICAgICBhbHBoYSAqICgxIC0gYmV0YSkgKiAoMSAtIGdhbW1hKSwgY29sb3IxMDAsCisg
ICAgICAgICAgICAgICAgICAgICAgICAoMSAtIGFscGhhKSAqIGJldGEgKiAoMSAtIGdhbW1hKSwg
Y29sb3IwMTAsCisgICAgICAgICAgICAgICAgICAgICAgICBhbHBoYSAqIGJldGEgKiAoMSAtIGdh
bW1hKSwgY29sb3IxMTAsCisgICAgICAgICAgICAgICAgICAgICAgICAoMSAtIGFscGhhKSAqICgx
IC0gYmV0YSkgKiBnYW1tYSwgY29sb3IwMDEsCisgICAgICAgICAgICAgICAgICAgICAgICBhbHBo
YSAqICgxIC0gYmV0YSkgKiBnYW1tYSwgY29sb3IxMDEsCisgICAgICAgICAgICAgICAgICAgICAg
ICAoMSAtIGFscGhhKSAqIGJldGEgKiBnYW1tYSwgY29sb3IwMTEsCisgICAgICAgICAgICAgICAg
ICAgICAgICBhbHBoYSAqIGJldGEgKiBnYW1tYSwgY29sb3IxMTEpOworICAgICAgICAgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBk
aW1lbnNpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIEZJ
WE1FOiBNYWtlIHRoaXMgd29yayB3aXRoIGN1YmVtYXBzCisgICAgbGV0IHBhcnRpYWxTV2l0aFJl
c3BlY3RUb1ggPSAwOworICAgIGxldCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YID0gMDsKKyAgICBs
ZXQgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCA9IDA7CisgICAgaWYgKGRkeCAhPSB1bmRlZmluZWQp
IHsKKyAgICAgICAgcGFydGlhbFNXaXRoUmVzcGVjdFRvWCA9IGRkeFswXTsKKyAgICAgICAgcGFy
dGlhbFRXaXRoUmVzcGVjdFRvWCA9IGRkeFsxXTsKKyAgICAgICAgcGFydGlhbFJXaXRoUmVzcGVj
dFRvWCA9IGRkeFsyXTsKKyAgICB9CisgICAgbGV0IHBhcnRpYWxTV2l0aFJlc3BlY3RUb1kgPSAw
OworICAgIGxldCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZID0gMDsKKyAgICBsZXQgcGFydGlhbFJX
aXRoUmVzcGVjdFRvWSA9IDA7CisgICAgaWYgKGRkeSAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAg
cGFydGlhbFNXaXRoUmVzcGVjdFRvWSA9IGRkeVswXTsKKyAgICAgICAgcGFydGlhbFRXaXRoUmVz
cGVjdFRvWSA9IGRkeVsxXTsKKyAgICAgICAgcGFydGlhbFJXaXRoUmVzcGVjdFRvWSA9IGRkeVsy
XTsKKyAgICB9CisgICAgbGV0IFtyaG9NYXgsIHJob01pbiwgZXRhLCBOXSA9IHNjYWxlRmFjdG9y
T3BlcmF0aW9uKGRldmljZU1heEFuaXNvdHJvcHksIHRleHR1cmUud2lkdGgsIHRleHR1cmUuaGVp
Z2h0LCB0ZXh0dXJlLmRlcHRoLCBzYW1wbGVyTWF4QW5pc290cm9weSwgcGFydGlhbFNXaXRoUmVz
cGVjdFRvWCwgcGFydGlhbFRXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCwg
cGFydGlhbFNXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJX
aXRoUmVzcGVjdFRvWSk7CisgICAgbGV0IGxhbWJkYSA9IGxldmVsT2ZEZXRhaWxPcGVyYXRpb24o
ZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMsIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsIGxvZE1pbkZy
b21GdW5jdGlvbk9wZXJhbmQsIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLCBzYW1wbGVyQmlhcywg
c2FtcGxlckxvZE1pbiwgc2FtcGxlckxvYWRNYXgsIHJob01heCwgZXRhKTsKKworICAgIGlmICht
aXBtYXBNb2RlID09ICJuZWFyZXN0IikgeworICAgICAgICBsZXQgaW1hZ2VMZXZlbCA9IGltYWdl
TGV2ZWxTZWxlY3Rpb24oYmFzZU1pcExldmVsLCB0ZXh0dXJlLmxldmVsQ291bnQsIG1pcG1hcE1v
ZGUsIGxhbWJkYSk7CisgICAgICAgIHJldHVybiBjb21wdXRlVGF1KGltYWdlTGV2ZWwpOworICAg
IH0gZWxzZSB7CisgICAgICAgIGlmIChtaXBtYXBNb2RlICE9ICJsaW5lYXIiKQorICAgICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGZpbHRlciIpOworICAgICAgICBsZXQgW2RIaSwg
ZExvdywgZGVsdGFdID0gaW1hZ2VMZXZlbFNlbGVjdGlvbihiYXNlTWlwTGV2ZWwsIHRleHR1cmUu
bGV2ZWxDb3VudCwgbWlwbWFwTW9kZSwgbGFtYmRhKTsKKyAgICAgICAgcmV0dXJuIHJlZHVjZSgx
IC0gZGVsdGEsIGNvbXB1dGVUYXUoZEhpKSwgZGVsdGEsIGNvbXB1dGVUYXUoZExvKSk7CisgICAg
fQorfQorCitmdW5jdGlvbiBzYW1wbGVUZXh0dXJlKHRleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBkZWx0YSwgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIGRkeCwgZGR5LCBsb2RGcm9tRnVuY3Rp
b25PcGVyYW5kLCBkcmVmKQoreworICAgIGxldCBzID0gbG9jYXRpb25bMF07CisgICAgbGV0IHQg
PSBsb2NhdGlvblsxXTsKKyAgICBsZXQgciA9IGxvY2F0aW9uWzJdOworICAgIGxldCBxID0gbG9j
YXRpb25bM107CisgICAgbGV0IGEgPSBsb2NhdGlvbls0XTsKKworICAgIGxldCBkZWx0YUkgPSB1
bmRlZmluZWQ7CisgICAgbGV0IGRlbHRhSiA9IHVuZGVmaW5lZDsKKyAgICBsZXQgZGVsdGFLID0g
dW5kZWZpbmVkOworICAgIGlmIChkZWx0YSAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgZGVsdGFJ
ID0gZGVsdGFbMF07CisgICAgICAgIGRlbHRhSiA9IGRlbHRhWzFdOworICAgICAgICBkZWx0YUsg
PSBkZWx0YVsyXTsKKyAgICB9CisKKyAgICBbcywgdCwgciwgZHJlZl0gPSBwcm9qZWN0aW9uT3Bl
cmF0aW9uKHMsIHQsIHIsIGRyZWYsIHEpOworICAgIGxldCByZXN1bHQgPSB0ZXhlbEZpbHRlcmlu
ZygKKyAgICAgICAgTnVtYmVyLk1BWF9WQUxVRSwKKyAgICAgICAgTnVtYmVyLk1BWF9WQUxVRSwK
KyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgdGV4dHVyZSwKKyAgICAgICAgc2FtcGxl
ciwKKyAgICAgICAgMCwKKyAgICAgICAgcywgdCwgciwgYSwKKyAgICAgICAgZGVsdGFJLCBkZWx0
YUosIGRlbHRhSywKKyAgICAgICAgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwKKyAgICAgICAgMCwK
KyAgICAgICAgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgICAgIGRkeCwgZGR5KTsKKyAg
ICBpZiAoZHJlZiAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9m
IEFycmF5KQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJEZXB0aCBjb21wYXJpc29uIG5v
dCBzdXBwb3J0ZWQgb24gbXVsdGljaGFubmVsIHRleHR1cmVzIjsKKyAgICAgICAgcmVzdWx0ID0g
ZGVwdGhDb21wYXJlT3BlcmF0aW9uKGRyZWYsIHJlc3VsdCwgc2FtcGxlci5jb21wYXJlRnVuY3Rp
b24pOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0
IHdoYXQgdG8gZG8gd2l0aCBhbmlzb3Ryb3B5CisgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgaG93
IHRvIGRvIG11bHRpc2FtcGxpbmcuCit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9pbmRleC5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5k
ZXguaHRtbAppbmRleCA2NWE4NjQxMWIzZTc3MGI1NTdiNDFhY2M3ZTQxNGRlZjQyNDAzMDEzLi4z
MzhlZTljOWI5MzhiNTQ4MmI4ODhlNGU5MjRkY2NkZGJlN2ZiMmNkIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKQEAgLTEyNyw2ICsxMjcsOCBAQAogPHNjcmlwdCBz
cmM9IlN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iVGV4dHVyZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlv
bnMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVE
ZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348687</attachid>
            <date>2018-08-31 17:22:11 -0700</date>
            <delta_ts>2018-08-31 18:25:37 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188940-20180831172210.patch</filename>
            <type>text/plain</type>
            <size>167918</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTY5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2E0OTlmZDVmNDJlZGIxOGQ0NzZiYmIzYjQyOTA5MDc1
MDIwOWMxMS4uOTlmMjkzM2EwMjlmNWNkN2ZhMGNlOGEyYjBlNWY1YjFjYzdhMGZhMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
MiBAQAorMjAxOC0wOC0zMSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRleHR1cmUgdHlwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNp
Y3MuanM6CisgICAgICAgIChJbnRyaW5zaWNzLik6CisgICAgICAgIChJbnRyaW5zaWNzLmNoZWNr
RmFsc2UpOgorICAgICAgICAoSW50cmluc2ljcyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmFtZVJlc29sdmVyLmpzOgorICAgICAgICAoTmFtZVJlc29sdmVyLnByb3RvdHlw
ZS5faGFuZGxlUHJvcGVydHlBY2Nlc3MpOgorICAgICAgICAoTmFtZVJlc29sdmVyLnByb3RvdHlw
ZS52aXNpdERvdEV4cHJlc3Npb24pOgorICAgICAgICAoTmFtZVJlc29sdmVyLnByb3RvdHlwZS52
aXNpdEluZGV4RXhwcmVzc2lvbik6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U1BJUlYuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExp
YnJhcnkuanM6CisgICAgICAgIChsZXQuc3RhbmRhcmRMaWJyYXJ5KToKKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWw6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVGVzdC5qczoKKyAgICAgICAgKG1ha2VTYW1wbGVyKToKKyAgICAgICAgKG1ha2Ux
RFRleHR1cmUpOgorICAgICAgICAobWFrZTFEVGV4dHVyZUFycmF5KToKKyAgICAgICAgKG1ha2Uy
RFRleHR1cmUpOgorICAgICAgICAobWFrZTJEVGV4dHVyZUFycmF5KToKKyAgICAgICAgKG1ha2Uz
RFRleHR1cmUpOgorICAgICAgICAobWFrZVRleHR1cmVDdWJlKToKKyAgICAgICAgKG1ha2VSVzFE
VGV4dHVyZSk6CisgICAgICAgIChtYWtlUlcxRFRleHR1cmVBcnJheSk6CisgICAgICAgIChtYWtl
UlcyRFRleHR1cmUpOgorICAgICAgICAobWFrZVJXMkRUZXh0dXJlQXJyYXkpOgorICAgICAgICAo
bWFrZVJXM0RUZXh0dXJlKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0
dXJlLmpzOiBBZGRlZC4KKyAgICAgICAgKFRleHR1cmUpOgorICAgICAgICAoVGV4dHVyZS5wcm90
b3R5cGUuZ2V0IGRpbWVuc2lvbik6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQgd2lk
dGgpOgorICAgICAgICAoVGV4dHVyZS5wcm90b3R5cGUuZ2V0IGhlaWdodCk6CisgICAgICAgIChU
ZXh0dXJlLnByb3RvdHlwZS5nZXQgZGVwdGgpOgorICAgICAgICAoVGV4dHVyZS5wcm90b3R5cGUu
Z2V0IGxldmVsQ291bnQpOgorICAgICAgICAoVGV4dHVyZS5wcm90b3R5cGUuZ2V0IGxheWVyQ291
bnQpOgorICAgICAgICAoVGV4dHVyZS5wcm90b3R5cGUuZ2V0IGlubmVyVHlwZSk6CisgICAgICAg
IChUZXh0dXJlLnByb3RvdHlwZS5nZXQgZGF0YSk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlw
ZS5lbGVtZW50Q2hlY2tlZCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5zZXRFbGVtZW50
Q2hlY2tlZCk6CisgICAgICAgIChUZXh0dXJlMUQpOgorICAgICAgICAoVGV4dHVyZTFELnByb3Rv
dHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlwZS5oZWlnaHRB
dExldmVsKToKKyAgICAgICAgKFRleHR1cmUxRC5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAg
ICAgICAgKFRleHR1cmUxRC5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMUQu
cHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTFEQXJyYXkpOgorICAgICAg
ICAoVGV4dHVyZTFEQXJyYXkucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0
dXJlMURBcnJheS5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMURB
cnJheS5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5LnBy
b3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5zZXRF
bGVtZW50KToKKyAgICAgICAgKFRleHR1cmUyRCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90
eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBlLmhlaWdodEF0
TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJELnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAg
ICAgICAoVGV4dHVyZTJELnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUyRC5w
cm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMkRBcnJheSk6CisgICAgICAg
IChUZXh0dXJlMkRBcnJheS5wcm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1
cmUyREFycmF5LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFy
cmF5LnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJv
dG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLnNldEVs
ZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTNEKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5
cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUuaGVpZ2h0QXRM
ZXZlbCk6CisgICAgICAgIChUZXh0dXJlM0QucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAg
ICAgIChUZXh0dXJlM0QucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTNELnBy
b3RvdHlwZS5zZXRFbGVtZW50KToKKyAgICAgICAgKFRleHR1cmVDdWJlKToKKyAgICAgICAgKFRl
eHR1cmVDdWJlLnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZUN1YmUu
cHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZUN1YmUucHJvdG90eXBl
LmRlcHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlQ3ViZS5wcm90b3R5cGUuZWxlbWVudCk6
CisgICAgICAgIChUZXh0dXJlQ3ViZS5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChU
ZXh0dXJlMURSVyk6CisgICAgICAgIChUZXh0dXJlMURSVy5wcm90b3R5cGUud2lkdGhBdExldmVs
KToKKyAgICAgICAgKFRleHR1cmUxRFJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAgICAg
ICAgKFRleHR1cmUxRFJXLnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVy
ZTFEUlcucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBl
LnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTFEQXJyYXlSVyk6CisgICAgICAgIChUZXh0
dXJlMURBcnJheVJXLnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFE
QXJyYXlSVy5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMURBcnJh
eVJXLnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEQXJyYXlSVy5w
cm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5z
ZXRFbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUyRFJXKToKKyAgICAgICAgKFRleHR1cmUyRFJX
LnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJEUlcucHJvdG90eXBl
LmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJEUlcucHJvdG90eXBlLmRlcHRoQXRM
ZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkRSVy5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAg
IChUZXh0dXJlMkRSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMkRB
cnJheVJXKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90eXBlLndpZHRoQXRMZXZl
bCk6CisgICAgICAgIChUZXh0dXJlMkRBcnJheVJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToK
KyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAg
ICAgIChUZXh0dXJlMkRBcnJheVJXLnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1
cmUyREFycmF5UlcucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTNEUlcp
OgorICAgICAgICAoVGV4dHVyZTNEUlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlM0RSVy5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJl
M0RSVy5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3Rv
dHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5zZXRFbGVtZW50
KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlT3BlcmF0aW9ucy5q
czogQWRkZWQuCisgICAgICAgIChkZXB0aENvbXBhcmVPcGVyYXRpb24pOgorICAgICAgICAoY29u
dmVyc2lvblRvUkdCQSk6CisgICAgICAgIChpbXBsaWNpdERlcml2YXRpdmUpOgorICAgICAgICAo
cHJvamVjdGlvbk9wZXJhdGlvbik6CisgICAgICAgIChjdWJlTWFwRmFjZVNlbGVjdGlvbik6Cisg
ICAgICAgIChjdWJlTWFwQ29vcmRpbmF0ZVRyYW5zZm9ybWF0aW9uKToKKyAgICAgICAgKGN1YmVN
YXBEZXJpdmF0aXZlVHJhbnNmb3JtYXRpb24pOgorICAgICAgICAoc2NhbGVGYWN0b3JPcGVyYXRp
b24pOgorICAgICAgICAobGV2ZWxPZkRldGFpbE9wZXJhdGlvbik6CisgICAgICAgIChuZWFyZXN0
KToKKyAgICAgICAgKGltYWdlTGV2ZWxTZWxlY3Rpb24pOgorICAgICAgICAoc3RycWFUb1VWV0FU
cmFuc2Zvcm1hdGlvbik6CisgICAgICAgIChybmUpOgorICAgICAgICAodXZ3YVRvSUpLTE5UcmFu
c2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJTZWxlY3Rpb24pOgorICAgICAgICAoaW50ZWdlclRleGVs
Q29vcmRpbmF0ZU9wZXJhdGlvbnMpOgorICAgICAgICAobWlycm9yKToKKyAgICAgICAgKHRyYW5z
Zm9ybSk6CisgICAgICAgICh3cmFwcGluZ09wZXJhdGlvbik6CisgICAgICAgICh0ZXhlbEdhdGhl
cmluZyk6CisgICAgICAgIChjb21wdXRlVGF1LnJlZHVjZSk6CisgICAgICAgIChjb21wdXRlVGF1
LnNob3VsZEJlQm9yZGVyKToKKyAgICAgICAgKGNvbXB1dGVUYXUuYWNjZXNzQ29sb3IpOgorICAg
ICAgICAoY29tcHV0ZVRhdSk6CisgICAgICAgICh0ZXhlbEZpbHRlcmluZyk6CisgICAgICAgIChz
YW1wbGVUZXh0dXJlKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5o
dG1sOgorCiAyMDE4LTA4LTMxICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5j
b20+CiAKICAgICAgICAgW1dITFNMXSBSZW1vdmUgdXNlbGVzcyBjb2RlIGluIE5hbWVSZXNvbHZl
cgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCmluZGV4IDljMmEzNzE1MGMxZTk3NmI5
MjZjZmJlZTIzNDM3NTIwYThkZTRhNDcuLjAwZmU1ZDAxMWJiMGM0YjVkMzU0NmM1ZDIwYThiY2Qw
YTMyZDM2M2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5q
cworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKQEAgLTE1MCw2ICsx
NTAsOCBAQCBsb2FkKCJTeW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzIik7CiBsb2FkKCJTeW50
aGVzaXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiKTsKIGxvYWQoIlN5bnRoZXNpemVEZWZh
dWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyIpOwogbG9hZCgiVGVybmFyeUV4cHJlc3Npb24uanMi
KTsKK2xvYWQoIlRleHR1cmUuanMiKTsKK2xvYWQoIlRleHR1cmVPcGVyYXRpb25zLmpzIik7CiBs
b2FkKCJUcmFwU3RhdGVtZW50LmpzIik7CiBsb2FkKCJUeXBlRGVmLmpzIik7CiBsb2FkKCJUeXBl
RGVmUmVzb2x2ZXIuanMiKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0ludHJpbnNpY3MuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5z
aWNzLmpzCmluZGV4IGIwMDQwNjdmNWViZmIzYThiNGJkOThlNDM3YThjMDc2OGJlMjZmMWUuLmI1
NzFhNGVhZjZiMTE0YjVlNTg3NWYwYmY1ZjdhOWVhYjQzNzQ5N2YgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMKKysrIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcwpAQCAtMzMwLDcgKzMzMCw4IEBAIGNsYXNz
IEludHJpbnNpY3MgewogICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIHNhbXBsZXIiLAogICAg
ICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAgICAgdGhpcy5zYW1wbGVyID0gdHlwZTsK
LSAgICAgICAgICAgICAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRvIHB1dCBoZXJlLgor
ICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgdHlwZS5wb3B1
bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQs
IHt9KTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIGZvciAobGV0IHRleHR1cmVUeXBlIG9m
IFsiVGV4dHVyZTFEIiwgIlJXVGV4dHVyZTFEIiwgIlRleHR1cmUxREFycmF5IiwgIlJXVGV4dHVy
ZTFEQXJyYXkiLCAiVGV4dHVyZTJEIiwgIlJXVGV4dHVyZTJEIiwgIlRleHR1cmUyREFycmF5Iiwg
IlJXVGV4dHVyZTJEQXJyYXkiLCAiVGV4dHVyZTNEIiwgIlJXVGV4dHVyZTNEIiwgIlRleHR1cmVD
dWJlIl0pIHsKQEAgLTMzOSwxMiArMzQwLDE2IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAg
ICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1l
bnR9PmAsCiAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAgICAgICAgICAgICAg
ICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmBdID0gdHlwZTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgICAg
ICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZm
ZXIuc2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAg
ICAgICBmb3IgKGxldCBpID0gMjsgaSA8PSA0OyArK2kpIHsKICAgICAgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdHlwZWRlZiAk
e3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0ke2l9PmAsCiAgICAgICAgICAgICAgICAgICAg
ICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1
cmVUeXBlfTwke3R5cGVBcmd1bWVudH0ke2l9PmBdID0gdHlwZTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5
cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQo
b2Zmc2V0LCB7fSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9CkBAIC0zNTYsNiArMzYxLDggQEAgY2xhc3MgSW50cmluc2ljcyB7
CiAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdHlwZWRlZiAke3RleHR1cmVUeXBlfTwke3R5
cGVBcmd1bWVudH0+YCwKICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YF0gPSB0
eXBlOworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQp
ID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCB7fSk7CiAgICAgICAgICAgICAgICAgICAgIH0pOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CkBAIC05MTQsNiArOTIxLDc4NyBAQCBjbGFzcyBJbnRyaW5z
aWNzIHsKIAogICAgICAgICBmb3IgKGxldCBzZXR0ZXIgb2YgQnVpbHRpbk1hdHJpeFNldHRlci5m
dW5jdGlvbnMoKSkKICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoc2V0dGVyLnRvU3RyaW5nKCks
IGZ1bmMgPT4gc2V0dGVyLmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYykpOworCisgICAg
ICAgIGZ1bmN0aW9uIGNoZWNrVW5kZWZpbmVkKG9yaWdpbiwgZXhwbGFuYXRpb24sIHZhbHVlKQor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAodmFsdWUgPT0gdW5kZWZpbmVkKQorICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBv
ZiBib3VuZHMiKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIGNoZWNrRmFsc2Uob3JpZ2luLCBleHBsYW5hdGlvbiwgdmFsdWUpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBmYWxzZSkKKyAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1RyYXBFcnJvcigiW1N0b3JlXSIsICJUZXh0dXJlIHN0b3JlIG91dCBvZiBib3Vu
ZHMiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHR5cGUgb2YgWyJ1Y2hhciIsICJ1
c2hvcnQiLCAidWludCIsICJjaGFyIiwgInNob3J0IiwgImludCIsICJoYWxmIiwgImZsb2F0Il0p
IHsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9IFNhbXBsZShUZXh0dXJlMUQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdCBsb2NhdGlvbilg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24ubG9h
ZFZhbHVlKCksIDAsIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQ
dHIuYm94KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFs
dWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQgbG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5sb2FkVmFsdWUoKSwgMCwgMCwgMSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQubG9hZFZh
bHVlKCksIDAsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHNh
bXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9j
YXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlMUQ8JHt0eXBlfT4saW50MiBsb2NhdGlvbilgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRl
eHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hl
Y2tlZCgwLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlMUQ8
JHt0eXBlfT4saW50MiBsb2NhdGlvbixpbnQgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gRVB0ci5ib3goY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQg
b3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9j
YXRpb24uZ2V0KDEpLCAwLCAwLCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZzZXQubG9hZFZhbHVlKCkp
KSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVu
c2lvbnMoVGV4dHVyZTFEPCR7dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRo
LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiUmVhZGluZyBmcm9t
IG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVs
KG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmUx
REFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIDAsIDAsIDEsIGxv
Y2F0aW9uLmdldCgxKV07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3go
c2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBs
b2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlMURBcnJheTwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MiBsb2NhdGlvbixpbnQgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgMCwgMCwgMSwgbG9jYXRpb24u
Z2V0KDEpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNl
dC5sb2FkVmFsdWUoKSwgMCwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0
ci5ib3goc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1
ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmUxREFycmF5PCR7dHlwZX0+LGludDMg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3goY2hlY2tVbmRlZmluZWQo
IltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVl
KCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAs
IGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlMURBcnJheTwke3R5cGV9PixpbnQzIGxvY2F0aW9uLGlu
dCBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9m
ZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChjaGVja1Vu
ZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5s
b2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMCwgbG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0LmxvYWRWYWx1ZSgpKSkpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1
cmUxREFycmF5PCR7dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQq
IHRocmVhZCBFbGVtZW50cyx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGVsZW1lbnRzLCBudW1iZXJP
ZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxv
YWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwu
bG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4Lmxl
dmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJy
b3IoIltsb2FkXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1
cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9t
KEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJD
b3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmUyRDwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHNhbXBsZVRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSBTYW1wbGUoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9u
LGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlv
bkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9m
ZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94
KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwg
bG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDIgbG9jYXRpb24sZmxvYXQgQmlhcylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHNhbXBsZVRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9h
dDIgbG9jYXRpb24sZmxvYXQgQmlhcyxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVs
dGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZh
bHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIGJp
YXMubG9hZFZhbHVlKCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1w
bGVHcmFkKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdDIg
RERYLGZsb2F0MiBERFkpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9j
YXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4
LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5
LmdldCgwKSwgZGR5LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
RVB0ci5ib3goc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRW
YWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRk
eUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmUyRDwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBERFksaW50MiBvZmZzZXQpYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBk
ZHksIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5
ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBk
ZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0g
W29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEVQdHIuYm94KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCBk
ZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmUyRDwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2Nh
dGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQ
dHIuYm94KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFs
dWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlMkQ8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgTE9ELGludDIgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3goc2FtcGxlVGV4dHVyZSh0
ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBk
ZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVl
KCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlv
bilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkg
eworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
KFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZz
ZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJSZWQoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4
dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckdyZWVuKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4
dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1
cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJB
bHBoYShUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1
cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4
dHVyZTJEPCR7dHlwZX0+LGludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0
ci5ib3goY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5k
cyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDIp
LCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlMkQ8JHt0eXBlfT4s
aW50MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IEVQdHIuYm94KGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBi
b3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0aW9uLmdl
dCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDAp
ICsgb2Zmc2V0LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMkQ8JHt0eXBlfT4sdWludCBNaXBMZXZlbCx1
aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgTnVtYmVy
T2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lk
dGgsIGhlaWdodCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50
IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwg
MSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAg
ICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxl
dmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworCisgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0gU2FtcGxlKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChzYW1wbGVUZXh0dXJlKHRleHR1
cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5
ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQo
MildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0Lmdl
dCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
RVB0ci5ib3goc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRW
YWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmUyREFycmF5PCR7dHlw
ZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRp
b24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEVQdHIuYm94KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1
ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0
dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzLGlu
dDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIGJpYXMsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2Nh
dGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBb
b2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gRVB0ci5ib3goc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1w
bGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxvYWRWYWx1
ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0
dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdDIgRERYLGZs
b2F0MiBERFkpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25B
cnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24u
Z2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0
KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJh
eSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBFUHRyLmJveChzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBs
ZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBkZHhB
cnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZTJEQXJyYXk8
JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZLGlu
dDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIGRkeCwgZGR5LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwg
bG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9
IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSks
IDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHNhbXBsZVRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwg
dW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZUxldmVsKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uLGZsb2F0IExPRClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBsb2RdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRp
b25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRp
b24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChzYW1w
bGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0
aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9k
LmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9ELGludDIgb2Zmc2V0KWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0XSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0
KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0
KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChzYW1wbGVU
ZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9u
QXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxvZC5s
b2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlcihUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkRBcnJheTwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRBcnJh
eTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRBcnJheTwke3R5
cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0
dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJE
QXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRl
eHR1cmUyREFycmF5PCR7dHlwZX0+LGludDQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gRVB0ci5ib3goY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9m
IGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0
KDMpLCBsb2NhdGlvbi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDAp
KSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2Fk
KFRleHR1cmUyREFycmF5PCR7dHlwZX0+LGludDQgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChjaGVja1VuZGVmaW5lZCgiW0xvYWRd
IiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVt
ZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMyksIGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24u
Z2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0LmdldCgwKSkp
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5z
aW9ucyhUZXh0dXJlMkRBcnJheTwke3R5cGV9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBX
aWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBFbGVtZW50cyx1aW50KiB0aHJl
YWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBs
ZXZlbCwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHMsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3VudCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlJlYWRp
bmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWln
aHRBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBudW1i
ZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCks
IDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBT
YW1wbGUoVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBFUHRyLmJveChzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCks
IHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmUzRDwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9mZnNldClgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCks
IGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSks
IG9mZnNldC5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94
KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwg
bG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX00IEdhdGhlcihUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50
MyBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyUmVkKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9m
ZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckdyZWVuKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9m
ZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkg
eworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
Qmx1ZShUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MyBvZmZz
ZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
b2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyQWxwaGEoVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJB
bHBoYShUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MyBvZmZz
ZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
b2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSBMb2FkKFRleHR1cmUzRDwke3R5cGV9PixpbnQ0IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIEVQdHIuYm94KGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91
dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0
aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdl
dCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0g
TG9hZChUZXh0dXJlM0Q8JHt0eXBlfT4saW50NCBsb2NhdGlvbixpbnQzIG9mZnNldClgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0i
LCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1l
bnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIpICsgb2Zmc2V0Lmdl
dCgyKSwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApICsg
b2Zmc2V0LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
IHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlM0Q8JHt0eXBlfT4sdWludCBNaXBMZXZlbCx1aW50
KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRGVwdGgsdWlu
dCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBudW1iZXJPZkxldmVsc10pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJS
ZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGRlcHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5k
ZXB0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwg
MSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAg
ICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxl
dmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworCisgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0gU2FtcGxlKFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGN1YmVtYXAg
c2FtcGxpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0g
U2FtcGxlQmlhcyhUZXh0dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixm
bG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IGN1YmVtYXAgc2FtcGxpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbixmbG9hdDMgRERYLGZsb2F0MyBERFkpYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGN1YmVtYXAgc2FtcGxpbmcKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVy
ZUN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgY3ViZW1hcCBzYW1wbGlu
ZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
KFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZUN1
YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmVDdWJlPCR7dHlw
ZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBs
ZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBH
ZXREaW1lbnNpb25zKFRleHR1cmVDdWJlPCR7dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhy
ZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxz
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWln
aHQsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9
IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQg
PSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXgu
bGF5ZXJDb3VudCAhPSA2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBF
cnJvcigiQ3ViZSB0ZXh0dXJlIGRvZXNuJ3QgaGF2ZSA2IGZhY2VzIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJSZWFkaW5nIGZyb20g
bm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZl
bChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgp
LmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTFEPCR7dHlwZX0+LHVpbnQq
IHRocmVhZCBXaWR0aClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4dHVyZS5sb2FkVmFsdWUoKS53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTFEPCR7dHlw
ZX0+LGZsb2F0KiB0aHJlYWQgV2lkdGgpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCB3aWR0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleHR1cmUubG9hZFZhbHVlKCkud2lkdGgpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChSV1RleHR1cmUxRDwk
e3R5cGV9PixpbnQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwg
bG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3goY2hl
Y2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1
cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgMCwgMCwgMCwgbG9jYXRpb24ubG9hZFZh
bHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0
b3JlKFJXVGV4dHVyZTFEPCR7dHlwZX0+LCR7dHlwZX0sdWludCBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBjaGVja0ZhbHNlKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBi
b3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKDAsIDAsIDAsIDAs
IGxvY2F0aW9uLmxvYWRWYWx1ZSgpLCB2YWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVy
ZTFEQXJyYXk8JHt0eXBlfT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBFbGVtZW50
cylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBlbGVtZW50c10pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRo
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVy
ZTFEQXJyYXk8JHt0eXBlfT4sZmxvYXQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgRWxlbWVu
dHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgZWxlbWVudHNdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0
aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChSV1RleHR1cmUxREFy
cmF5PCR7dHlwZX0+LGludDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5i
b3goY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIs
IHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDEpLCAwLCAw
LCAwLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfT4sJHt0eXBlfSx1aW50
MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0ZhbHNlKCJbTG9hZF0iLCAi
VGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1l
bnRDaGVja2VkKGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgMCwgbG9jYXRpb24uZ2V0KDApLCB2YWx1
ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisKKyAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTJEPCR7dHlwZX0+LHVpbnQqIHRocmVhZCBX
aWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgd2lkdGgsIGhlaWdodF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0
ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCks
IDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1l
bnNpb25zKFJXVGV4dHVyZTJEPCR7dHlwZX0+LGZsb2F0KiB0aHJlYWQgV2lkdGgsZmxvYXQqIHRo
cmVhZCBIZWlnaHQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVp
Z2h0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZh
bHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lk
dGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoUldUZXh0dXJlMkQ8
JHt0eXBlfT4saW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChj
aGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4
dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSks
IGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMkQ8JHt0eXBlfT4sJHt0eXBlfSx1aW50MiBsb2NhdGlv
bilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0ZhbHNlKCJbTG9hZF0iLCAiVGV4dHVyZSBy
ZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2Vk
KDAsIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApLCB2YWx1ZS5sb2FkVmFs
dWUoKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisKKyAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBH
ZXREaW1lbnNpb25zKFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sdWludCogdGhyZWFkIFdpZHRo
LHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHNdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRl
eC5sYXllckNvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAg
ICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwg
MSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVu
c2lvbnMoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9PixmbG9hdCogdGhyZWFkIFdpZHRoLGZsb2F0
KiB0aHJlYWQgSGVpZ2h0LGZsb2F0KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50c10pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxh
eWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUo
KS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChSV1Rl
eHR1cmUyREFycmF5PCR7dHlwZX0+LGludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gRVB0ci5ib3goY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9m
IGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0
KDIpLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMkRBcnJh
eTwke3R5cGV9Piwke3R5cGV9LHVpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGNoZWNrRmFsc2UoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1
cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDIpLCAwLCAwLCBs
b2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSwgdmFsdWUubG9hZFZhbHVlKCkpKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9u
cyhSV1RleHR1cmUzRDwke3R5cGV9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhl
aWdodCx1aW50KiB0aHJlYWQgRGVwdGgpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCB3aWR0aCwgaGVpZ2h0LCBkZXB0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0
ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGgu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmRlcHRoKSwgMSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmhl
aWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlM0Q8JHt0eXBlfT4sZmxv
YXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhyZWFkIEhlaWdodCxmbG9hdCogdGhyZWFkIERlcHRo
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZGVwdGhd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC5kZXB0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0Lmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0
aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBM
b2FkKFJXVGV4dHVyZTNEPCR7dHlwZX0+LGludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gRVB0ci5ib3goY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0
IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgMCwgbG9j
YXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlM0Q8
JHt0eXBlfT4sJHt0eXBlfSx1aW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24g
KFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBj
aGVja0ZhbHNlKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJl
LmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKDAsIDAsIGxvY2F0aW9uLmdldCgyKSwgbG9j
YXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgZnVu
Y3Rpb24gYm94VmVjdG9yKGEpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbGV0IHJl
c3VsdCA9IG5ldyBFUHRyKG5ldyBFQnVmZmVyKGEubGVuZ3RoKSwgMCk7CisgICAgICAgICAgICAg
ICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgICAgICAg
ICByZXN1bHQuc2V0KGksIGFbaV0pOworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAobGV0IGxlbmd0aCBvZiBbMiwgMywgNF0p
IHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KIAogICAgIGFkZCh0aGluZykKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVSZXNvbHZlci5qcyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVSZXNvbHZlci5qcwppbmRleCBhNWRh
MmNhNWMxZTJiOWVkZWUwOTVmMTY2NGEyYmM0YjhmMzA4Mjg0Li45YTA5OWY0ODVlNmU5MjdlMTY0
MzdiYmY4MjY0MWY2MWU0NTI1Y2YxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9OYW1lUmVzb2x2ZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmFtZVJlc29sdmVyLmpzCkBAIC0xNjYsNiArMTY2LDE2IEBAIGNsYXNzIE5hbWVSZXNvbHZl
ciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICBzdXBlci52aXNpdFJldHVybihub2RlKTsKICAg
ICB9CiAgICAgCisgICAgX2hhbmRsZVByb3BlcnR5QWNjZXNzKG5vZGUpCisgICAgeworICAgICAg
ICBub2RlLnBvc3NpYmxlR2V0T3ZlcmxvYWRzID0gdGhpcy5fbmFtZUNvbnRleHQuZ2V0KEZ1bmMs
IG5vZGUuZ2V0RnVuY05hbWUpOworICAgICAgICBub2RlLnBvc3NpYmxlU2V0T3ZlcmxvYWRzID0g
dGhpcy5fbmFtZUNvbnRleHQuZ2V0KEZ1bmMsIG5vZGUuc2V0RnVuY05hbWUpOworICAgICAgICBu
b2RlLnBvc3NpYmxlQW5kT3ZlcmxvYWRzID0gdGhpcy5fbmFtZUNvbnRleHQuZ2V0KEZ1bmMsIG5v
ZGUuYW5kRnVuY05hbWUpOworCisgICAgICAgIGlmICghbm9kZS5wb3NzaWJsZUdldE92ZXJsb2Fk
cyAmJiAhbm9kZS5wb3NzaWJsZUFuZE92ZXJsb2FkcykKKyAgICAgICAgICAgIHRocm93IG5ldyBX
VHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkNhbm5vdCBmaW5kIGVpdGhlciAi
ICsgbm9kZS5nZXRGdW5jTmFtZSArICIgb3IgIiArIG5vZGUuYW5kRnVuY05hbWUpOworICAgIH0K
KyAgICAKICAgICB2aXNpdERvdEV4cHJlc3Npb24obm9kZSkKICAgICB7CiAgICAgICAgIC8vIFRo
aXMgY291bGQgYmUgYSByZWZlcmVuY2UgdG8gYW4gZW51bS4gTGV0J3MgcmVzb2x2ZSB0aGF0IG5v
dy4KQEAgLTE4MCw5ICsxOTAsMTYgQEAgY2xhc3MgTmFtZVJlc29sdmVyIGV4dGVuZHMgVmlzaXRv
ciB7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgCisgICAgICAgIHRoaXMuX2hh
bmRsZVByb3BlcnR5QWNjZXNzKG5vZGUpOwogICAgICAgICBzdXBlci52aXNpdERvdEV4cHJlc3Np
b24obm9kZSk7CiAgICAgfQogICAgIAorICAgIHZpc2l0SW5kZXhFeHByZXNzaW9uKG5vZGUpCisg
ICAgeworICAgICAgICB0aGlzLl9oYW5kbGVQcm9wZXJ0eUFjY2Vzcyhub2RlKTsKKyAgICAgICAg
c3VwZXIudmlzaXRJbmRleEV4cHJlc3Npb24obm9kZSk7CisgICAgfQorICAgIAogICAgIHZpc2l0
Q2FsbEV4cHJlc3Npb24obm9kZSkKICAgICB7CiAgICAgICAgIGxldCBmdW5jcyA9IHRoaXMuX25h
bWVDb250ZXh0LmdldChGdW5jLCBub2RlLm5hbWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1NQSVJWLmh0bWwKaW5kZXggNzhkMDA4ZjgzNWY5ZTljMjM0ZWYyZGY2ZDZkZWVhM2Y3NDI2
Y2U2NS4uMDYxYTQ3NjQxNGZlMmIyOTI4N2VlMGMzZDk0YmYwMjdlYWU0ZjAwYyAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbAorKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCkBAIC0xMzMsNiArMTMzLDggQEAgdGQg
ewogICAgIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9y
T3BlcmF0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lv
bi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlRleHR1cmUuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJUZXh0dXJlT3BlcmF0aW9ucy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJU
eXBlRGVmLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpz
Ij48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0
YW5kYXJkTGlicmFyeS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJk
TGlicmFyeS5qcwppbmRleCAzZGQ0ZmVlMTg2MDBkNWNkMmE4OTVhZDVhNDc5NzIxZGE3Nzg4Y2Mx
Li5kOGUxNjc2NTc5NGNkMDEzMDlkZTQ0NzlkMjdkNzVlMTI3MzAzNTNmIDEwMDY0NAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCkBAIC01Nyw3ICs1
Nyw3IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgIH0KICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSB0eXBlZGVmIHNhbXBsZXI7YCk7CiAgICAgICAgIGZvciAodmFy
IHR5cGUgb2YgW2BUZXh0dXJlMURgLCBgUldUZXh0dXJlMURgLCBgVGV4dHVyZTFEQXJyYXlgLCBg
UldUZXh0dXJlMURBcnJheWAsIGBUZXh0dXJlMkRgLCBgUldUZXh0dXJlMkRgLCBgVGV4dHVyZTJE
QXJyYXlgLCBgUldUZXh0dXJlMkRBcnJheWAsIGBUZXh0dXJlM0RgLCBgUldUZXh0dXJlM0RgLCBg
VGV4dHVyZUN1YmVgXSkgewotICAgICAgICAgICAgZm9yICh2YXIgdHlwZUFyZ3VtZW50QmFzZSBv
ZiBbYGJvb2xgLCBgdWNoYXJgLCBgdXNob3J0YCwgYHVpbnRgLCBgY2hhcmAsIGBzaG9ydGAsIGBp
bnRgLCBgaGFsZmAsIGBmbG9hdGBdKSB7CisgICAgICAgICAgICBmb3IgKHZhciB0eXBlQXJndW1l
bnRCYXNlIG9mIFtgdWNoYXJgLCBgdXNob3J0YCwgYHVpbnRgLCBgY2hhcmAsIGBzaG9ydGAsIGBp
bnRgLCBgaGFsZmAsIGBmbG9hdGBdKSB7CiAgICAgICAgICAgICAgICAgZm9yICh2YXIgc2l6ZSBv
ZiBbYGAsIGAyYCwgYDNgLCBgNGBdKSB7CiAgICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgdHlwZWRlZiAke3R5cGV9PCR7dHlwZUFyZ3VtZW50QmFzZX0ke3NpemV9PjtgKTsKICAgICAg
ICAgICAgICAgICB9CkBAIC0xODk3LDkgKzE4OTcsMTAgQEAgbGV0IHN0YW5kYXJkTGlicmFyeSA9
IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBJbnRlcmxvY2tl
ZENvbXBhcmVFeGNoYW5nZSh0aHJlYWQgYXRvbWljXyR7dHlwZX0qLCAke3R5cGV9LCAke3R5cGV9
LCB0aHJlYWQgJHt0eXBlfSopO2ApOwogICAgICAgICB9CiAgICAgICAgIHByaW50KCk7Ci0gICAg
ICAgIAorICAgICAgICAqLworCiAgICAgICAgIGZvciAodmFyIHR5cGUgb2YgW2B1Y2hhcmAsIGB1
c2hvcnRgLCBgdWludGAsIGBjaGFyYCwgYHNob3J0YCwgYGludGAsIGBoYWxmYCwgYGZsb2F0YF0p
IHsKLSAgICAgICAgICAgIGZvciAodmFyIGxlbmd0aCBvZiBbYGAsIGAyYCwgYDNgLCBgNGBdKSB7
CisgICAgICAgICAgICBmb3IgKHZhciBsZW5ndGggb2YgW2BgLyosIGAyYCwgYDNgLCBgNGAqL10p
IHsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxl
KFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pO2Ap
OwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUo
VGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50
IG9mZnNldCk7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IExvYWQoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LCBpbnQyIGxvY2F0aW9uKTtgKTsK
QEAgLTIwMTAsNyArMjAxMSw4IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7
CiAgICAgICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAg
ICAgICAKKworICAgICAgICAvKgogICAgICAgICBmb3IgKHZhciB0eXBlIG9mIFtgaGFsZmAsIGBm
bG9hdGBdKSB7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwogICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKaW5kZXggNjA3YTY5NTMyNTNkYTcyN2IxZGUzNzY3
OGVjMzg4YjRmYTI0MDQwNS4uMjBhMjYzNDdmM2U4OWVmMzFlNzIzNGY4NDliZDk1M2VlZTZjZDg4
OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sCisr
KyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbApAQCAtMTI3LDYgKzEy
Nyw4IEBACiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3Bl
cmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRlcm5hcnlFeHByZXNzaW9uLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUZXh0dXJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJUZXh0dXJlT3BlcmF0aW9ucy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHJhcFN0YXRl
bWVudC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4KQEAgLTE1Miw3ICsxNTQs
NyBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIGRvVGVzdEluQnJvd3NlcigpCiB7Ci0gICAgdmFyIHRl
c3RlciA9IGRvVGVzdCgvLiovKTsKKyAgICB2YXIgdGVzdGVyID0gZG9UZXN0KC90ZXh0dXJlU3Rv
cmUvKTsKICAgICB2YXIgbGFzdFRpbWU7CiAgICAgZnVuY3Rpb24gbmV4dCgpCiAgICAgewpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKaW5kZXggNGExMWMxODU4NTk5Nzc4ZmYzOTFi
MDRmMjYzNWM1YjcxMDA1ZGY3Zi4uNmUzMTU2MWFlMmQ5NWZkMGU4ODYxNWU0NjVlMjcwODExOTc4
ZGYxNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwor
KysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCkBAIC05NCw2ICs5NCwx
NDQgQEAgZnVuY3Rpb24gbWFrZUVudW0ocHJvZ3JhbSwgZW51bU5hbWUsIHZhbHVlKQogICAgIHJl
dHVybiBUeXBlZFZhbHVlLmJveChlbnVtVHlwZSwgZW51bU1lbWJlci52YWx1ZS51bmlmeU5vZGUu
dmFsdWVGb3JTZWxlY3RlZFR5cGUpOwogfQogCitmdW5jdGlvbiBtYWtlU2FtcGxlcihwcm9ncmFt
LCBkaWN0KQoreworICAgIC8vIGVudW0gV2ViR1BVQWRkcmVzc01vZGUgeworICAgIC8vICAgICAi
Y2xhbXBUb0VkZ2UiLAorICAgIC8vICAgICAicmVwZWF0IiwKKyAgICAvLyAgICAgIm1pcnJvclJl
cGVhdCIsCisgICAgLy8gICAgICJjbGFtcFRvQm9yZGVyQ29sb3IiCisgICAgLy8gfQorICAgIC8v
CisgICAgLy8gZW51bSBXZWJHUFVGaWx0ZXJNb2RlIHsKKyAgICAvLyAgICAgIm5lYXJlc3QiLAor
ICAgIC8vICAgICAibGluZWFyIgorICAgIC8vIH0KKyAgICAvLworICAgIC8vIGVudW0gV2ViR1BV
Q29tcGFyZUZ1bmN0aW9uIHsKKyAgICAvLyAgICAgIm5ldmVyIiwKKyAgICAvLyAgICAgImxlc3Mi
LAorICAgIC8vICAgICAiZXF1YWwiLAorICAgIC8vICAgICAibGVzc0VxdWFsIiwKKyAgICAvLyAg
ICAgImdyZWF0ZXIiLAorICAgIC8vICAgICAibm90RXF1YWwiLAorICAgIC8vICAgICAiZ3JlYXRl
ckVxdWFsIiwKKyAgICAvLyAgICAgImFsd2F5cyIKKyAgICAvLyB9CisgICAgLy8KKyAgICAvLyBl
bnVtIFdlYkdQVUJvcmRlckNvbG9yIHsKKyAgICAvLyAgICAgInRyYW5zcGFyZW50QmxhY2siLAor
ICAgIC8vICAgICAib3BhcXVlQmxhY2siLAorICAgIC8vICAgICAib3BhcXVlV2hpdGUiCisgICAg
Ly8gfQorICAgIC8vCisgICAgLy8gZGljdGlvbmFyeSBXZWJHUFVTYW1wbGVyRGVzY3JpcHRvciB7
CisgICAgLy8gICAgIFdlYkdQVWRkcmVzc01vZGUgckFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdl
IjsKKyAgICAvLyAgICAgV2ViR1BVZGRyZXNzTW9kZSBzQWRkcmVzc01vZGUgPSAiY2xhbXBUb0Vk
Z2UiOworICAgIC8vICAgICBXZWJHUFVkZHJlc3NNb2RlIHRBZGRyZXNzTW9kZSA9ICJjbGFtcFRv
RWRnZSI7CisgICAgLy8gICAgIFdlYkdQVUZpbHRlck1vZGVFbnVtIG1hZ0ZpbHRlciA9ICJuZWFy
ZXN0IjsKKyAgICAvLyAgICAgV2ViR1BVRmlsdGVyTW9kZUVudW0gbWluRmlsdGVyID0gIm5lYXJl
c3QiOworICAgIC8vICAgICBXZWJHUFVGaWx0ZXJNb2RlRW51bSBtaXBtYXBGaWx0ZXIgPSAibmVh
cmVzdCI7CisgICAgLy8gICAgIGZsb2F0IGxvZE1pbkNsYW1wID0gMDsKKyAgICAvLyAgICAgZmxv
YXQgbG9kTWF4Q2xhbXAgPSBOdW1iZXIuTUFYX1ZBTFVFOworICAgIC8vICAgICB1bnNpZ25lZCBs
b25nIG1heEFuaXNvdHJvcHkgPSAxOworICAgIC8vICAgICBXZWJHUFVDb21wYXJlRnVuY3Rpb24g
Y29tcGFyZUZ1bmN0aW9uID0gIm5ldmVyIjsKKyAgICAvLyAgICAgV2ViR1BVQm9yZGVyQ29sb3Ig
Ym9yZGVyQ29sb3IgPSAidHJhbnNwYXJlbnRCbGFjayI7CisgICAgLy8gfTsKKworICAgIGxldCBz
YW1wbGVyRGF0YSA9IHt9OworICAgIHNhbXBsZXJEYXRhLnJBZGRyZXNzTW9kZSA9IGRpY3QuckFk
ZHJlc3NNb2RlLAorICAgIHNhbXBsZXJEYXRhLnNBZGRyZXNzTW9kZSA9IGRpY3Quc0FkZHJlc3NN
b2RlLAorICAgIHNhbXBsZXJEYXRhLnRBZGRyZXNzTW9kZSA9IGRpY3QudEFkZHJlc3NNb2RlLAor
ICAgIHNhbXBsZXJEYXRhLm1hZ0ZpbHRlciA9IGRpY3QubWFnRmlsdGVyOworICAgIHNhbXBsZXJE
YXRhLm1pbkZpbHRlciA9IGRpY3QubWluRmlsdGVyCisgICAgc2FtcGxlckRhdGEubWlwbWFwRmls
dGVyID0gZGljdC5taXBtYXBGaWx0ZXI7CisgICAgc2FtcGxlckRhdGEubG9kTWluQ2xhbXAgPSBk
aWN0LmxvZE1pbkNsYW1wLAorICAgIHNhbXBsZXJEYXRhLmxvZE1heENsYW1wID0gZGljdC5sb2RN
YXhDbGFtcCwKKyAgICBzYW1wbGVyRGF0YS5tYXhBbmlzb3Ryb3B5ID0gZGljdC5tYXhBbmlzb3Ry
b3B5LAorICAgIHNhbXBsZXJEYXRhLmNvbXBhcmVGdW5jdGlvbiA9IGRpY3QuY29tcGFyZUZ1bmN0
aW9uOworICAgIHNhbXBsZXJEYXRhLmJvcmRlckNvbG9yID0gZGljdC5ib3JkZXJDb2xvcjsKKwor
ICAgIGlmIChzYW1wbGVyRGF0YS5yQWRkcmVzc01vZGUgPT0gdW5kZWZpbmVkKQorICAgICAgICBz
YW1wbGVyRGF0YS5yQWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgIGlmIChzYW1wbGVy
RGF0YS5zQWRkcmVzc01vZGUgPT0gdW5kZWZpbmVkKQorICAgICAgICBzYW1wbGVyRGF0YS5zQWRk
cmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgIGlmIChzYW1wbGVyRGF0YS50QWRkcmVzc01v
ZGUgPT0gdW5kZWZpbmVkKQorICAgICAgICBzYW1wbGVyRGF0YS50QWRkcmVzc01vZGUgPSAiY2xh
bXBUb0VkZ2UiOworICAgIGlmIChzYW1wbGVyRGF0YS5taW5GaWx0ZXIgPT0gdW5kZWZpbmVkKQor
ICAgICAgICBzYW1wbGVyRGF0YS5taW5GaWx0ZXIgPSAibmVhcmVzdCI7CisgICAgaWYgKHNhbXBs
ZXJEYXRhLm1hZ0ZpbHRlciA9PSB1bmRlZmluZWQpCisgICAgICAgIHNhbXBsZXJEYXRhLm1hZ0Zp
bHRlciA9ICJuZWFyZXN0IjsKKyAgICBpZiAoc2FtcGxlckRhdGEubWlwRmlsdGVyID09IHVuZGVm
aW5lZCkKKyAgICAgICAgc2FtcGxlckRhdGEubWlwRmlsdGVyID0gIm5lYXJlc3QiOworICAgIGlm
IChzYW1wbGVyRGF0YS5sb2RNaW5DbGFtcCA9PSB1bmRlZmluZWQpCisgICAgICAgIHNhbXBsZXJE
YXRhLmxvZE1pbkNsYW1wID0gMDsKKyAgICBpZiAoc2FtcGxlckRhdGEubG9kTWF4Q2xhbXAgPT0g
dW5kZWZpbmVkKQorICAgICAgICBzYW1wbGVyRGF0YS5sb2RNYXhDbGFtcCA9IE51bWJlci5NQVhf
VkFMVUU7CisgICAgaWYgKHNhbXBsZXJEYXRhLm1heEFuaXNvdHJvcHkgPT0gdW5kZWZpbmVkKQor
ICAgICAgICBzYW1wbGVyRGF0YS5tYXhBbmlzb3Ryb3B5ID0gMTsKKyAgICBpZiAoc2FtcGxlckRh
dGEuY29tcGFyZUZ1bmN0aW9uID09IHVuZGVmaW5lZCkKKyAgICAgICAgc2FtcGxlckRhdGEuY29t
cGFyZUZ1bmN0aW9uID0gIm5ldmVyIjsKKyAgICBpZiAoc2FtcGxlckRhdGEuYm9yZGVyQ29sb3Ig
PT0gdW5kZWZpbmVkKQorICAgICAgICBzYW1wbGVyRGF0YS5ib3JkZXJDb2xvciA9ICJ0cmFuc3Bh
cmVudEJsYWNrIjsKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNz
LnNhbXBsZXIsIHNhbXBsZXJEYXRhKTsKK30KKworZnVuY3Rpb24gbWFrZTFEVGV4dHVyZShwcm9n
cmFtLCBtaXBtYXBzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3go
cHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlMUQ8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0
dXJlMUQoZWxlbWVudFR5cGUsIG1pcG1hcHMpKTsKK30KKworZnVuY3Rpb24gbWFrZTFEVGV4dHVy
ZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRW
YWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlMURBcnJheTwke2VsZW1lbnRUeXBl
fT5gXSwgbmV3IFRleHR1cmUxREFycmF5KGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQorCitmdW5j
dGlvbiBtYWtlMkRUZXh0dXJlKHByb2dyYW0sIG1pcG1hcHMsIGVsZW1lbnRUeXBlKQoreworICAg
IHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmUyRDwke2Vs
ZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUyRChlbGVtZW50VHlwZSwgbWlwbWFwcykpOworfQor
CitmdW5jdGlvbiBtYWtlMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBl
KQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1
cmUyREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTJEQXJyYXkoZWxlbWVudFR5
cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UzRFRleHR1cmUocHJvZ3JhbSwgbWlwbWFw
cywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50
cmluc2ljc1tgVGV4dHVyZTNEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTNEKGVsZW1l
bnRUeXBlLCBtaXBtYXBzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VUZXh0dXJlQ3ViZShwcm9ncmFt
LCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dy
YW0uaW50cmluc2ljc1tgVGV4dHVyZUN1YmU8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJl
Q3ViZShlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24gbWFrZVJXMURUZXh0dXJl
KHByb2dyYW0sIGVsZW1lbnRzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1
ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUxRDwke2VsZW1lbnRUeXBlfT5gXSwg
bmV3IFRleHR1cmUxRFJXKGVsZW1lbnRUeXBlLCBlbGVtZW50cykpOworfQorCitmdW5jdGlvbiBt
YWtlUlcxRFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAg
cmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldUZXh0dXJlMURBcnJh
eTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUxREFycmF5UlcoZWxlbWVudFR5cGUsIGFy
cmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzJEVGV4dHVyZShwcm9ncmFtLCByb3dzLCBlbGVt
ZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNz
W2BSV1RleHR1cmUyRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUyRFJXKGVsZW1lbnRU
eXBlLCByb3dzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzJEVGV4dHVyZUFycmF5KHByb2dyYW0s
IGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3Jh
bS5pbnRyaW5zaWNzW2BSV1RleHR1cmUyREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4
dHVyZTJEQXJyYXlSVyhlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24gbWFrZVJX
M0RUZXh0dXJlKHByb2dyYW0sIGRlcHRoU2xpY2VzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1
cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUzRDwke2VsZW1l
bnRUeXBlfT5gXSwgbmV3IFRleHR1cmUzRFJXKGVsZW1lbnRUeXBlLCBkZXB0aFNsaWNlcykpOwor
fQorCiBmdW5jdGlvbiBjaGVja051bWJlcihwcm9ncmFtLCByZXN1bHQsIGV4cGVjdGVkKQogewog
ICAgIGlmICghcmVzdWx0LnR5cGUudW5pZnlOb2RlLmlzTnVtYmVyKQpAQCAtNTU4Miw3ICs1NzIw
LDc0MyBAQCB0ZXN0cy5hcnJheUluZGV4ID0gZnVuY3Rpb24oKSB7CiAgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMikgXSksIDMpOwogICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApIF0pLCA0KTsKICAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBbIG1ha2VVaW50
KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSBdKSwgNSk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMikgXSksIDYpOyAgICAKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBbIG1h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAyKSBdKSwgNik7Cit9CisKK2Z1
bmN0aW9uIGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9ncmFtKQoreworICAgIGxldCB0ZXh0
dXJlMUQgPSBtYWtlMURUZXh0dXJlKHByb2dyYW0sIFtbMSwgNywgMTQsIDc5XSwgWzEzLCAxNl0s
IFsxNV1dLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZTFEQXJyYXkgPSBtYWtlMURUZXh0dXJl
QXJyYXkocHJvZ3JhbSwgW1tbMSwgNywgMTQsIDc5XSwgWzEzLCAxNl0sIFsxNV1dLCBbWzE2LCAx
NywgMTgsIDE5XSwgWzIwLCAyMV0sIFsyMl1dXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmUy
RCA9IG1ha2UyRFRleHR1cmUocHJvZ3JhbSwgWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYs
IDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAg
ICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcs
IDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2XSwKKyAgICAg
ICAgWzM3LCAzOCwgMzksIDQwXV0sCisgICAgICAgIFtbNDEsIDQyXV0KKyAgICBdLCAiZmxvYXQi
KTsKKyAgICBsZXQgdGV4dHVyZTJEQXJyYXkgPSBtYWtlMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwg
W1sKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAx
MSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIs
IDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAg
ICAgICAgW1szMywgMzQsIDM1LCAzNl0sCisgICAgICAgIFszNywgMzgsIDM5LCA0MF1dLAorICAg
ICAgICBbWzQxLCA0Ml1dCisgICAgXSwgWworICAgICAgICBbWzQzLCA0NCwgNDUsIDQ2LCA0Nywg
NDgsIDQ5LCA1MF0sCisgICAgICAgIFs1MSwgNTIsIDUzLCA1NCwgNTUsIDU2LCA1NywgNThdLAor
ICAgICAgICBbNTksIDYwLCA2MSwgNjIsIDYzLCA2NCwgNjUsIDY2XSwKKyAgICAgICAgWzY3LCA2
OCwgNjksIDcwLCA3MSwgNzIsIDczLCA3NF1dLAorICAgICAgICBbWzc1LCA3NiwgNzcsIDc4XSwK
KyAgICAgICAgWzc5LCA4MCwgODEsIDgyXV0sCisgICAgICAgIFtbODMsIDg0XV0KKyAgICBdXSwg
ImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmUzRCA9IG1ha2UzRFRleHR1cmUocHJvZ3JhbSwgWwor
ICAgICAgICBbW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwg
MTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIz
LCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAg
ICAgW1szMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDBdLAorICAgICAgICBbNDEsIDQyLCA0
MywgNDQsIDQ1LCA0NiwgNDcsIDQ4XSwKKyAgICAgICAgWzQ5LCA1MCwgNTEsIDUyLCA1MywgNTQs
IDU1LCA1Nl0sCisgICAgICAgIFs1NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2MywgNjRdXV0sCisg
ICAgICAgIFtbWzY1LCA2NiwgNjcsIDY4XSwKKyAgICAgICAgWzY5LCA3MCwgNzEsIDcyXV1dCisg
ICAgXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmVDdWJlID0gbWFrZVRleHR1cmVDdWJlKHBy
b2dyYW0sIFtbCisgICAgICAgIFtbMSwgMl0sCisgICAgICAgIFszLCA0XSwKKyAgICAgICAgWzUs
IDZdLAorICAgICAgICBbNywgOF1dLAorICAgICAgICBbWzldLAorICAgICAgICBbMTBdXSwKKyAg
ICBdLCBbCisgICAgICAgIFtbMTEsIDEyXSwKKyAgICAgICAgWzEzLCAxNF0sCisgICAgICAgIFsx
NSwgMTZdLAorICAgICAgICBbMTcsIDE4XV0sCisgICAgICAgIFtbMTldLAorICAgICAgICBbMjBd
XSwKKyAgICBdLCBbCisgICAgICAgIFtbMjEsIDIyXSwKKyAgICAgICAgWzIzLCAyNF0sCisgICAg
ICAgIFsyNSwgMjZdLAorICAgICAgICBbMjcsIDI4XV0sCisgICAgICAgIFtbMjldLAorICAgICAg
ICBbMzBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbMzEsIDMyXSwKKyAgICAgICAgWzMzLCAzNF0s
CisgICAgICAgIFszNSwgMzZdLAorICAgICAgICBbMzcsIDM4XV0sCisgICAgICAgIFtbMzldLAor
ICAgICAgICBbNDBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbNDEsIDQyXSwKKyAgICAgICAgWzQz
LCA0NF0sCisgICAgICAgIFs0NSwgNDZdLAorICAgICAgICBbNDcsIDQ4XV0sCisgICAgICAgIFtb
NDldLAorICAgICAgICBbNTBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbNTEsIDUyXSwKKyAgICAg
ICAgWzUzLCA1NF0sCisgICAgICAgIFs1NSwgNTZdLAorICAgICAgICBbNTcsIDU4XV0sCisgICAg
ICAgIFtbNTldLAorICAgICAgICBbNjBdXSwKKyAgICBdXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3
VGV4dHVyZTFEID0gbWFrZVJXMURUZXh0dXJlKHByb2dyYW0sIFsxLCAyLCAzLCA0LCA1LCA2LCA3
LCA4XSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4dHVyZTFEQXJyYXkgPSBtYWtlUlcxRFRleHR1
cmVBcnJheShwcm9ncmFtLCBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLCBbOSwgMTAsIDExLCAx
MiwgMTMsIDE0LCAxNSwgMTZdLCBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XV0sICJm
bG9hdCIpOworICAgIGxldCByd1RleHR1cmUyRCA9IG1ha2VSVzJEVGV4dHVyZShwcm9ncmFtLCBb
CisgICAgICAgIFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwg
MTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIz
LCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwgImZsb2F0
Iik7CisgICAgbGV0IHJ3VGV4dHVyZTJEQXJyYXkgPSBtYWtlUlcyRFRleHR1cmVBcnJheShwcm9n
cmFtLCBbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAx
MCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEs
IDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0s
CisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwXSwKKyAgICAgICAgWzQx
LCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OF0sCisgICAgICAgIFs0OSwgNTAsIDUxLCA1Miwg
NTMsIDU0LCA1NSwgNTZdLAorICAgICAgICBbNTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjMsIDY0
XV1dLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlM0QgPSBtYWtlUlczRFRleHR1cmUocHJv
Z3JhbSwgWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwg
MTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIx
LCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1d
LAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MF0sCisgICAgICAgIFs0
MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDhdLAorICAgICAgICBbNDksIDUwLCA1MSwgNTIs
IDUzLCA1NCwgNTUsIDU2XSwKKyAgICAgICAgWzU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLCA2
NF1dXSwgImZsb2F0Iik7CisgICAgcmV0dXJuIFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0
ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1
cmUxRCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3
VGV4dHVyZTNEXTsKK30KKwordGVzdHMudGV4dHVyZURpbWVuc2lvbnMgPSBmdW5jdGlvbigpIHsK
KyAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCisgICAgICAgIHVpbnQgZm9vMShUZXh0dXJlMUQ8
ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1
aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAw
LCAmd2lkdGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7Cisg
ICAgICAgIH0KKyAgICAgICAgdWludCBmb28yKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSkgewor
ICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7
CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJm51bWJlck9m
TGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQor
ICAgICAgICB1aW50IGZvbzMoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAg
ICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAg
ICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgMCwgJndpZHRoLCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICBy
ZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb280KFRleHR1cmUxREFycmF5
PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAg
dWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAg
ICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmVsZW1lbnRzLCAmbnVtYmVy
T2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAgICB9CisgICAg
ICAgIHVpbnQgZm9vNShUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAg
ICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1
aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAw
LCAmd2lkdGgsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVy
biBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzYoVGV4dHVyZTJE
PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAg
dWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAg
ICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxl
dmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWlu
dCBmb283KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0
aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxl
dmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVp
Z2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAg
ICAgfQorICAgICAgICB1aW50IGZvbzgoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAg
ICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAg
ICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJl
LCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1
cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb285KFRleHR1cmUy
REFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAg
ICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAg
ICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAg
ICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xMChUZXh0
dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAg
ICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAg
ICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRl
eHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOwor
ICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzEx
KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRo
OworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOwor
ICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVs
cyk7CisgICAgICAgICAgICByZXR1cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWlu
dCBmb28xMihUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWlu
dCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVt
ZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXRE
aW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVy
T2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9
CisgICAgICAgIHVpbnQgZm9vMTMoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAg
ICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1
aW50IGRlcHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAg
IEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgsICZudW1i
ZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAg
ICAgdWludCBmb28xNChUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVp
bnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVw
dGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGlt
ZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCwgJm51bWJlck9mTGV2
ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWlu
dCBmb28xNShUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lk
dGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7Cisg
ICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9u
cyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCwgJm51bWJlck9mTGV2ZWxzKTsK
KyAgICAgICAgICAgIHJldHVybiBkZXB0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE2
KFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAg
ICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAg
ICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1
cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAg
ICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9v
MTcoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7
CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZl
bHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdo
dCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAg
fQorICAgICAgICB1aW50IGZvbzE4KFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAg
ICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAg
ICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJl
LCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1
cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTkoVGV4dHVyZUN1YmU8Zmxv
YXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50
IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBH
ZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxz
KTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAg
ICB1aW50IGZvbzIwKFJXVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1
aW50IHdpZHRoOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgpOwor
ICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjEo
UldUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0
aDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25z
KHRleHR1cmUsICZ3aWR0aCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIyKFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRl
eHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVsZW1l
bnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZlbGVtZW50
cyk7CisgICAgICAgICAgICByZXR1cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWlu
dCBmb28yMyhSV1RleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3
aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgR2V0RGltZW5zaW9u
cyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOwor
ICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjQoUldUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUp
IHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAg
ICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICAg
ICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yNShSV1Rl
eHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOwor
ICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAg
ICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50
cyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBm
b28yNihSV1RleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50
IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1l
bnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQs
ICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAg
ICAgIHVpbnQgZm9vMjcoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAg
ICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAg
dWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRo
LCAmaGVpZ2h0LCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAg
ICAgICB9CisgICAgICAgIHVpbnQgZm9vMjgoUldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsK
KyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAg
ICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3
aWR0aCwgJmhlaWdodCwgJmRlcHRoKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAg
ICAgfQorICAgICAgICB1aW50IGZvbzI5KFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7Cisg
ICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAg
ICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lk
dGgsICZoZWlnaHQsICZkZXB0aCk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAg
ICB9CisgICAgICAgIHVpbnQgZm9vMzAoUldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAg
ICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAg
ICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0
aCwgJmhlaWdodCwgJmRlcHRoKTsKKyAgICAgICAgICAgIHJldHVybiBkZXB0aDsKKyAgICAgICAg
fQorICAgIGApOworICAgIGxldCBbdGV4dHVyZTFELCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJE
LCB0ZXh0dXJlMkRBcnJheSwgdGV4dHVyZTNELCB0ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3
VGV4dHVyZTFEQXJyYXksIHJ3VGV4dHVyZTJELCByd1RleHR1cmUyREFycmF5LCByd1RleHR1cmUz
RF0gPSBjcmVhdGVUZXh0dXJlc0ZvclRlc3RpbmcocHJvZ3JhbSk7CisgICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMURdKSwgNCk7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0
dXJlMURdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheV0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5XSksIDIpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVy
ZTFEQXJyYXldKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkRdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRdKSwgNCk7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRdKSwg
Myk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIs
IFt0ZXh0dXJlMkRBcnJheV0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlMkRBcnJheV0pLCA0KTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlMkRBcnJh
eV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMiIsIFt0ZXh0dXJlMkRBcnJheV0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFt0ZXh0dXJlM0RdKSwgOCk7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVyZTNEXSks
IDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1
IiwgW3RleHR1cmUzRF0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlM0RdKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZUN1YmVdKSwgMik7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4
dHVyZUN1YmVdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTkiLCBbdGV4dHVyZUN1YmVdKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlMURdKSwgOCk7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbcndUZXh0
dXJlMURBcnJheV0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yMiIsIFtyd1RleHR1cmUxREFycmF5XSksIDMpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3J3VGV4dHVyZTJEXSksIDgp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI0Iiwg
W3J3VGV4dHVyZTJEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzI1IiwgW3J3VGV4dHVyZTJEQXJyYXldKSwgOCk7CisgICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjYiLCBbcndUZXh0dXJlMkRBcnJh
eV0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yNyIsIFtyd1RleHR1cmUyREFycmF5XSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4IiwgW3J3VGV4dHVyZTNEXSksIDgpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI5IiwgW3J3VGV4dHVy
ZTNEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMwIiwgW3J3VGV4dHVyZTNEXSksIDIpOworfQorCit0ZXN0cy50ZXh0dXJlTG9hZCA9IGZ1
bmN0aW9uKCkgeworICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKKyAgICAgICAgZmxvYXQgZm9v
MShUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50IG1pcG1hcCkgewor
ICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Mihsb2NhdGlvbiwgbWlwbWFwKSk7
CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMihUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUs
IGludCBsb2NhdGlvbiwgaW50IG1pcG1hcCwgaW50IG9mZnNldCkgeworICAgICAgICAgICAgcmV0
dXJuIExvYWQodGV4dHVyZSwgaW50Mihsb2NhdGlvbiwgbWlwbWFwKSwgb2Zmc2V0KTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb28zKFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBp
bnQgbG9jYXRpb24sIGludCBtaXBtYXAsIGludCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJu
IExvYWQodGV4dHVyZSwgaW50Myhsb2NhdGlvbiwgbWlwbWFwLCBsYXllcikpOworICAgICAgICB9
CisgICAgICAgIGZsb2F0IGZvbzQoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCBs
b2NhdGlvbiwgaW50IG1pcG1hcCwgaW50IGxheWVyLCBpbnQgb2Zmc2V0KSB7CisgICAgICAgICAg
ICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKGxvY2F0aW9uLCBtaXBtYXAsIGxheWVyKSwgb2Zm
c2V0KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb281KFRleHR1cmUyRDxmbG9hdD4gdGV4
dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbWlwbWFwKSB7CisgICAgICAgICAgICByZXR1cm4gTG9h
ZCh0ZXh0dXJlLCBpbnQzKHgsIHksIG1pcG1hcCkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0
IGZvbzYoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXAs
IGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4
dHVyZSwgaW50Myh4LCB5LCBtaXBtYXApLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb283KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBp
bnQgeCwgaW50IHksIGludCBtaXBtYXAsIGludCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJu
IExvYWQodGV4dHVyZSwgaW50NCh4LCB5LCBtaXBtYXAsIGxheWVyKSk7CisgICAgICAgIH0KKyAg
ICAgICAgZmxvYXQgZm9vOChUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGlu
dCB5LCBpbnQgbWlwbWFwLCBpbnQgbGF5ZXIsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgewor
ICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50NCh4LCB5LCBtaXBtYXAsIGxheWVy
KSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9v
OShUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IHosIGludCBtaXBt
YXApIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDQoeCwgeSwgeiwgbWlw
bWFwKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTAoVGV4dHVyZTNEPGZsb2F0PiB0
ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCB6LCBpbnQgbWlwbWFwLCBpbnQgb2Zmc2V0WCwgaW50
IG9mZnNldFksIGludCBvZmZzZXRaKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJl
LCBpbnQ0KHgsIHksIHosIG1pcG1hcCksIGludDMob2Zmc2V0WCwgb2Zmc2V0WSwgb2Zmc2V0Wikp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzExKFJXVGV4dHVyZTFEPGZsb2F0PiB0ZXh0
dXJlLCBpbnQgbG9jYXRpb24pIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGxv
Y2F0aW9uKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xMihSV1RleHR1cmUxREFycmF5
PGZsb2F0PiB0ZXh0dXJlLCBpbnQgbG9jYXRpb24sIGludCBsYXllcikgeworICAgICAgICAgICAg
cmV0dXJuIExvYWQodGV4dHVyZSwgaW50Mihsb2NhdGlvbiwgbGF5ZXIpKTsKKyAgICAgICAgfQor
ICAgICAgICBmbG9hdCBmb28xMyhSV1RleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGlu
dCB5KSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKHgsIHkpKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb28xNChSV1RleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0
dXJlLCBpbnQgeCwgaW50IHksIGludCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQo
dGV4dHVyZSwgaW50Myh4LCB5LCBsYXllcikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZv
bzE1KFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCB6KSB7Cisg
ICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIHopKTsKKyAgICAgICAg
fQorICAgIGApOworICAgIGxldCBbdGV4dHVyZTFELCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJE
LCB0ZXh0dXJlMkRBcnJheSwgdGV4dHVyZTNELCB0ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3
VGV4dHVyZTFEQXJyYXksIHJ3VGV4dHVyZTJELCByd1RleHR1cmUyREFycmF5LCByd1RleHR1cmUz
RF0gPSBjcmVhdGVUZXh0dXJlc0ZvclRlc3RpbmcocHJvZ3JhbSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTMpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTFELCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFt0
ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgLTEpXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJl
MURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMyk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURB
cnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAxNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMjApOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDIxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBb
dGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUx
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAxMyk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIC0xKV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgMjEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IC0xKV0pLCAyMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0
ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM3KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0
ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0
dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
MTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282
IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCAxOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzOCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzMyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4
dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAzNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgLTEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
LTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAzMyk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMzKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzcpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCA0Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgNDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDUxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1Mik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNzUpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDc2KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgODApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE4KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgMTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzUpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDM0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAzOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDM1KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgNTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQ1KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCA1Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNTIpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDYwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCA1Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNjEpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDc2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA4MCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDgxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA4MCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgLTEpXSksIDc2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA4MSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDc3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285
IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0Qs
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1
cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0Mik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDY1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgNjYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA2OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBb
dGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDcwKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBb
dGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDE3KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVy
ZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQxKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDQyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDQxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0x
KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM1
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAi
LCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQyKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4
dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAyKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNE
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQyKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQ5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDQzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDUwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IC0xKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCA2Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwg
W3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2Nyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1
cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3MCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3MCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNzEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDY2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDIpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUx
RCwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3Jh
bSwgMyldKSwgNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDQpXSksIDUpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1Rl
eHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCA1KV0pLCA2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQo
cHJvZ3JhbSwgNildKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDcpXSksIDgp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIs
IFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDIp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUx
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDYpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFty
d1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTIpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFty
d1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNiks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxNyk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVy
ZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTgp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIs
IFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0s
IDIpXSksIDE5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUlu
dChwcm9ncmFtLCAyKV0pLCAyMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
NCksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIyKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJh
eSwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4
dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwg
MjQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDUp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFt
LCA2KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJv
Z3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJE
LCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDExKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0
dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTIpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFty
d1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAx
Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEz
IiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgMTUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDIpXSksIDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFt
LCAyKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHBy
b2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIwKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjEpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwg
bWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMik7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVy
ZTJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIzKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndU
ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIs
IFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAzKV0p
LCAyNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDMpXSksIDI2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJv
Z3JhbSwgMyldKSwgMjcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUlu
dChwcm9ncmFtLCAzKV0pLCAyOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDQpLCBt
YWtlSW50KHByb2dyYW0sIDMpXSksIDI5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
NSksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMzApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9n
cmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAzMSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDMyKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndU
ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCA0MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDIp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIs
IFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4
dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNE
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCA0MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQyKTsKK30KKwordGVzdHMudGV4dHVyZVN0
b3JlID0gZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICBm
bG9hdCBmb28xKFJXVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCB1aW50IGxvY2F0aW9uLCBmbG9h
dCB2YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uKTsK
KyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludChsb2NhdGlvbikpOworICAgICAg
ICB9CisgICAgICAgIGZsb2F0IGZvbzIoUldUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSwg
dWludCBsb2NhdGlvbiwgdWludCBsYXllciwgZmxvYXQgdmFsdWUpIHsKKyAgICAgICAgICAgIFN0
b3JlKHRleHR1cmUsIHZhbHVlLCB1aW50Mihsb2NhdGlvbiwgbGF5ZXIpKTsKKyAgICAgICAgICAg
IHJldHVybiBMb2FkKHRleHR1cmUsIGludDIoaW50KGxvY2F0aW9uKSwgaW50KGxheWVyKSkpOwor
ICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzMoUldUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUs
IHVpbnQgeCwgdWludCB5LCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4dHVy
ZSwgdmFsdWUsIHVpbnQyKHgsIHkpKTsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUs
IGludDIoaW50KHgpLCBpbnQoeSkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb280KFJX
VGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHVpbnQgeCwgdWludCB5LCB1aW50IGxheWVy
LCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4dHVyZSwgdmFsdWUsIHVpbnQz
KHgsIHksIGxheWVyKSk7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKGlu
dCh4KSwgaW50KHkpLCBpbnQobGF5ZXIpKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9v
NShSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwgdWludCB4LCB1aW50IHksIHVpbnQgeiwgZmxv
YXQgdmFsdWUpIHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1cmUsIHZhbHVlLCB1aW50Myh4LCB5
LCB6KSk7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKGludCh4KSwgaW50
KHkpLCBpbnQoeikpKTsKKyAgICAgICAgfQorICAgIGApOworICAgIGxldCBbdGV4dHVyZTFELCB0
ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0ZXh0dXJlMkRBcnJheSwgdGV4dHVyZTNELCB0ZXh0
dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVyZTFEQXJyYXksIHJ3VGV4dHVyZTJELCByd1Rl
eHR1cmUyREFycmF5LCByd1RleHR1cmUzRF0gPSBjcmVhdGVUZXh0dXJlc0ZvclRlc3RpbmcocHJv
Z3JhbSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwg
MiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50
KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFE
LCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFty
d1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFE
QXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9n
cmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJy
YXksIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFt
LCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIi
LCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXks
IG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBb
cndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1h
a2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA0KSwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndU
ZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VV
aW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0
dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50
KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJl
MURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHBy
b2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURB
cnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dy
YW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwg
bWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0
dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwg
NiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwg
W3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHBy
b2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtl
VWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUy
RCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA1KSwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndU
ZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28z
IiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50
KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHBy
b2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBt
YWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtl
VWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1
cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA2
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBb
cndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAyKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VV
aW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50
KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJE
LCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBt
YWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1Rl
eHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFt
LCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQi
LCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50
KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
VWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281
IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281Iiwg
W3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3
VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwogfQog
CiBva1RvVGVzdCA9IHRydWU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9UZXh0dXJlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZS5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45ZDZlMDVhYzgxNzg3ODlhNjVmMzAwYjEwMDA4NjE2MDgyNDVkZjhiCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZS5q
cwpAQCAtMCwwICsxLDUzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisidXNlIHN0cmljdCI7CisKK2NsYXNzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9y
KGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQs
IGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIHRoaXMuX2RpbWVuc2lvbiA9IGRpbWVu
c2lvbjsKKyAgICAgICAgdGhpcy5fd2lkdGggPSB3aWR0aDsKKyAgICAgICAgdGhpcy5faGVpZ2h0
ID0gaGVpZ2h0OworICAgICAgICB0aGlzLl9kZXB0aCA9IGRlcHRoOworICAgICAgICB0aGlzLl9s
ZXZlbENvdW50ID0gbGV2ZWxDb3VudDsKKyAgICAgICAgdGhpcy5fbGF5ZXJDb3VudCA9IGxheWVy
Q291bnQ7CisgICAgICAgIHRoaXMuX2lubmVyVHlwZSA9IGlubmVyVHlwZTsKKyAgICAgICAgdGhp
cy5fZGF0YSA9IGRhdGE7CisgICAgfQorCisgICAgZ2V0IGRpbWVuc2lvbigpIHsgcmV0dXJuIHRo
aXMuX2RpbWVuc2lvbjsgfQorICAgIGdldCB3aWR0aCgpIHsgcmV0dXJuIHRoaXMuX3dpZHRoOyB9
CisgICAgZ2V0IGhlaWdodCgpIHsgcmV0dXJuIHRoaXMuX2hlaWdodDsgfQorICAgIGdldCBkZXB0
aCgpIHsgcmV0dXJuIHRoaXMuX2RlcHRoOyB9CisgICAgZ2V0IGxldmVsQ291bnQoKSB7IHJldHVy
biB0aGlzLl9sZXZlbENvdW50OyB9CisgICAgZ2V0IGxheWVyQ291bnQoKSB7IHJldHVybiB0aGlz
Ll9sYXllckNvdW50OyB9CisgICAgZ2V0IGlubmVyVHlwZSgpIHsgcmV0dXJuIHRoaXMuX2lubmVy
VHlwZTsgfQorICAgIGdldCBkYXRhKCkgeyByZXR1cm4gdGhpcy5fZGF0YTsgfQorCisgICAgZWxl
bWVudENoZWNrZWQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgaWYgKGxh
eWVyIDwgMCB8fCBsYXllciA+PSB0aGlzLmxheWVyQ291bnQKKyAgICAgICAgICAgIHx8IGxldmVs
IDwgMCB8fCBsZXZlbCA+PSB0aGlzLmxldmVsQ291bnQKKyAgICAgICAgICAgIHx8IGsgPCAwIHx8
IGsgPj0gdGhpcy5kZXB0aAorICAgICAgICAgICAgfHwgaiA8IDAgfHwgaiA+PSB0aGlzLmhlaWdo
dAorICAgICAgICAgICAgfHwgaSA8IDAgfHwgaSA+PSB0aGlzLndpZHRoKQorICAgICAgICAgICAg
cmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudChsYXllciwgbGV2
ZWwsIGssIGosIGkpOworICAgIH0KKworICAgIHNldEVsZW1lbnRDaGVja2VkKGxheWVyLCBsZXZl
bCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICBpZiAobGF5ZXIgPCAwIHx8IGxheWVy
ID49IHRoaXMubGF5ZXJDb3VudAorICAgICAgICAgICAgfHwgbGV2ZWwgPCAwIHx8IGxldmVsID49
IHRoaXMubGV2ZWxDb3VudAorICAgICAgICAgICAgfHwgayA8IDAgfHwgayA+PSB0aGlzLmRlcHRo
CisgICAgICAgICAgICB8fCBqIDwgMCB8fCBqID49IHRoaXMuaGVpZ2h0CisgICAgICAgICAgICB8
fCBpIDwgMCB8fCBpID49IHRoaXMud2lkdGgpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIHRoaXMuc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKTsKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlMUQgZXh0ZW5kcyBU
ZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAg
ICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgbWlwbWFwcy4KKyAgICAgICAgLy8gVGhlIGZpcnN0
IG1pcG1hcCBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50
IG1heSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8g
VGhlIHdpZHRoIG11c3QgYmUgYSBwb3dlci1vZi10d28uCisgICAgICAgIC8vIEVhY2ggbWlwbWFw
IGlzIGhhbGYtc2l6ZSBvZiB0aGUgcHJldmlvdXMgc2l6ZS4KKworICAgICAgICBsZXQgZGltZW5z
aW9uID0gMTsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxl
dCBoZWlnaHQgPSAxOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxD
b3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IDE7CisgICAgICAg
IHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVy
Q291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVs
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF0ubGVuZ3RoOworICAgIH0K
KworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAg
ICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsK
KyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQo
bGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVts
ZXZlbF1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUxREFycmF5IGV4dGVu
ZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAg
ICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIDFEIHRleHR1cmVzLgorICAgICAgICAvLyBB
bGwgdGV4dHVyZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHdpZHRoIGFuZCBudW1iZXIgb2YgbWlwbWFw
cy4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMTsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0
YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSAxOworICAgICAgICBsZXQgZGVw
dGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAg
ICBsZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBzdXBlcihkaW1lbnNpb24s
IHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUs
IGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLmRhdGFbMF1bbGV2ZWxdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRB
dExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZGVw
dGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAg
ZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhp
cy5kYXRhW2xheWVyXVtsZXZlbF1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwg
bGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVts
ZXZlbF1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUyRCBleHRlbmRzIFRl
eHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAg
IC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiBtaXBtYXBzLgorICAgICAgICAvLyBUaGUgZmlyc3Qg
bWlwbWFwIGlzIGEgcmVjdGFuZ3VsYXIgYXJyYXkgb2Ygcm93cywgd2hlcmUgZWFjaCByb3cgaXMg
YW4gYXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBz
Y2FsYXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCBh
bmQgaGVpZ2h0IG11c3QgYmUgcG93ZXJzLW9mLXR3by4KKyAgICAgICAgLy8gRWFjaCBtaXBtYXAg
aXMgaGFsZi13aWR0aCBhbmQgaGFsZi1oZWlnaHQgb2YgdGhlIHByZXZpb3VzIHNpemUuCisKKyAg
ICAgICAgbGV0IGRpbWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF0u
bGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxl
dCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YS5sZW5ndGg7CisgICAg
ICAgIGxldCBsYXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwg
aGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsK
KyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5kYXRhW2xldmVsXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChs
ZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdLmxlbmd0aDsKKyAg
ICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsK
KyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdW2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1l
bnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0
YVtsZXZlbF1bal1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUyREFycmF5
IGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAg
IHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIDJEIHRleHR1cmVzLgorICAgICAg
ICAvLyBBbGwgdGV4dHVyZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHdpZHRoLCBoZWlnaHQgYW5kIG51
bWJlciBvZiBtaXBtYXBzLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAyOworICAgICAgICBs
ZXQgd2lkdGggPSBkYXRhWzBdWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRh
dGFbMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2
ZWxDb3VudCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IGRhdGEu
bGVuZ3RoOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBs
ZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdp
ZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bbGV2
ZWxdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKworICAg
IGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKwor
ICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQo
bGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVts
YXllcl1bbGV2ZWxdW2pdW2ldID0gdmFsdWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlM0Qg
ZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAg
eworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgbWlwbWFwcy4KKyAgICAgICAgLy8g
VGhlIGZpcnN0IG1pcG1hcCBpcyBhbiBhcnJheSBvZiBkZXB0aCBzbGljZXMsIGVhY2ggZGVwdGgg
c2xpY2UgaXMgYW4gYXJyYXkgb2Ygcm93cywgYW5kIGVhY2ggcm93IGlzIGFuIGFycmF5IG9mIGVs
ZW1lbnRzLgorICAgICAgICAvLyBFYWNoIGVsZW1lbnQgbWF5IGJlIGEgc2NhbGFyIG9yIGFuIGFy
cmF5IG9mIDItNCBzY2FsYXJzLgorICAgICAgICAvLyBUaGUgd2lkdGgsIGhlaWdodCwgYW5kIGRl
cHRoIG11c3QgYmUgcG93ZXJzLW9mLXR3by4KKyAgICAgICAgLy8gRWFjaCBtaXBtYXAgaXMgaGFs
Zi13aWR0aCwgaGFsZi1oZWlnaHQsIGFuZCBoYWxmLWRlcHRoIG9mIHRoZSBwcmV2aW91cyBzaXpl
LgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAzOworICAgICAgICBsZXQgd2lkdGggPSBkYXRh
WzBdWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRhdGFbMF1bMF0ubGVuZ3Ro
OworICAgICAgICBsZXQgZGVwdGggPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGxldmVs
Q291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSAxOworICAgICAg
ICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXll
ckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZl
bCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdWzBdWzBdLmxlbmd0aDsK
KyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMuZGF0YVtsZXZlbF1bMF0ubGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChs
ZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdLmxlbmd0aDsKKyAg
ICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdW2tdW2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1l
bnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0
YVtsZXZlbF1ba11bal1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmVDdWJl
IGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAg
IHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIDYgMkQgdGV4dHVyZXMuCisgICAg
ICAgIC8vIEFsbCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNhbWUgd2lkdGgsIGhlaWdodCwgZGVw
dGgsIGFuZCBudW1iZXIgb2YgbWlwbWFwcy4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMjsK
KyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBo
ZWlnaHQgPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAg
ICAgbGV0IGxldmVsQ291bnQgPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGxheWVyQ291
bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0
LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9
CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5k
YXRhWzBdW2xldmVsXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZl
bCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bbGV2ZWxdLmxlbmd0aDsKKyAg
ICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsK
KyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtqXVtpXTsKKyAgICB9CisKKyAgICBz
ZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0
aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3Mg
VGV4dHVyZTFEUlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUs
IGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMu
CisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2FsYXIgb3IgYW4gYXJyYXkgb2Yg
Mi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCBtdXN0IGJlIGEgcG93ZXItb2YtdHdv
LgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAxOworICAgICAgICBsZXQgd2lkdGggPSBkYXRh
Lmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IDE7CisgICAgICAgIGxldCBkZXB0aCA9IDE7
CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gMTsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSAx
OworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENv
dW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRM
ZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGEubGVuZ3RoOworICAg
IH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsK
KyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4g
MTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB0aGlzLmRhdGFbaV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXll
ciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2ldID0g
dmFsdWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlMURBcnJheVJXIGV4dGVuZHMgVGV4dHVy
ZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8g
ImRhdGEiIGlzIGFuIGFycmF5IG9mIDFEIFJXIHRleHR1cmVzLgorICAgICAgICAvLyBBbGwgdGV4
dHVyZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHNpemUuCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9
IDE7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVp
Z2h0ID0gMTsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQg
PSAxOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBzdXBl
cihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50
LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF0ubGVuZ3RoOworICAgIH0KKworICAgIGhl
aWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAg
ICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisK
KyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVy
biB0aGlzLmRhdGFbbGF5ZXJdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxl
dmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsYXllcl1baV0g
PSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUyRFJXIGV4dGVuZHMgVGV4dHVyZSB7
CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRh
dGEiIGlzIGEgcmVjdGFuZ3VsYXIgYXJyYXkgb2Ygcm93cywgd2hlcmUgZWFjaCByb3cgaXMgYW4g
YXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2Fs
YXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCBhbmQg
aGVpZ2h0IG11c3QgYmUgcG93ZXJzLW9mLXR3by4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0g
MjsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWln
aHQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxl
dmVsQ291bnQgPSAxOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IDE7CisgICAgICAgIHN1cGVy
KGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQs
IGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVp
Z2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGEubGVuZ3Ro
OworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVy
biAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtqXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50
KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFb
al1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUyREFycmF5UlcgZXh0ZW5k
cyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAg
ICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgMkQgUlcgdGV4dHVyZXMuCisgICAgICAgIC8v
IEFsbCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNhbWUgd2lkdGggYW5kIGhlaWdodC4KKworICAg
ICAgICBsZXQgZGltZW5zaW9uID0gMjsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXS5s
ZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0
IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSAxOworICAgICAgICBsZXQgbGF5
ZXJDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBo
ZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOwor
ICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLmRhdGFbMF1bMF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwp
CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdLmxlbmd0aDsKKyAgICB9CisKKyAg
ICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisK
KyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVy
biB0aGlzLmRhdGFbbGF5ZXJdW2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIs
IGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsYXllcl1b
al1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUzRFJXIGV4dGVuZHMgVGV4
dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAg
Ly8gImRhdGEiIGlzIGFuIGFycmF5IG9mIGRlcHRoIHNsaWNlcywgZWFjaCBkZXB0aCBzbGljZSBp
cyBhbiBhcnJheSBvZiByb3dzLCBhbmQgZWFjaCByb3cgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMu
CisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2FsYXIgb3IgYW4gYXJyYXkgb2Yg
Mi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCwgaGVpZ2h0LCBhbmQgZGVwdGggbXVz
dCBiZSBwb3dlcnMtb2YtdHdvLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAzOworICAgICAg
ICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRh
dGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSBkYXRhLmxlbmd0aDsKKyAgICAgICAg
bGV0IGxldmVsQ291bnQgPSAxOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IDE7CisgICAgICAg
IHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVy
Q291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVs
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVswXS5sZW5ndGg7CisgICAgfQor
CisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRh
dGFbMF0ubGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB0aGlzLmRhdGEubGVuZ3RoOworICAgIH0KKworICAgIGVsZW1lbnQobGF5
ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtrXVtq
XVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFs
dWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFba11bal1baV0gPSB2YWx1ZTsKKyAgICB9Cit9
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlT3BlcmF0
aW9ucy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1cmVPcGVyYXRpb25z
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZkOGE4YjNjZjdhYTAwMjYzMjM0NTM5ZTRmMDY0MjljNGMyY2Y3ZjcK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJl
T3BlcmF0aW9ucy5qcwpAQCAtMCwwICsxLDUzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisidXNlIHN0cmljdCI7CisKK2Z1bmN0aW9uIGRlcHRoQ29tcGFy
ZU9wZXJhdGlvbihkcmVmLCBkLCBjb21wYXJlRnVuY3Rpb24pCit7CisgICAgLy8gVnVsa2FuIDEu
MS44MyBzZWN0aW9uIDE1LjMuNAorICAgIHN3aXRjaCAoY29tcGFyZUZ1bmN0aW9uKSB7CisgICAg
ICAgIGNhc2UgIm5ldmVyIjoKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBjYXNlICJs
ZXNzIjoKKyAgICAgICAgICAgIHJldHVybiBkcmVmIDwgZCA/IDEgOiAwOworICAgICAgICBjYXNl
ICJlcXVhbCI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiA9PSBkID8gMSA6IDA7CisgICAgICAg
IGNhc2UgImxlc3NFcXVhbCI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiA8PSBkID8gMSA6IDA7
CisgICAgICAgIGNhc2UgImdyZWF0ZXIiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYgPiBkID8g
MSA6IDA7CisgICAgICAgIGNhc2UgIm5vdEVxdWFsIjoKKyAgICAgICAgICAgIHJldHVybiBkcmVm
ICE9IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAiZ3JlYXRlckVxdWFsIjoKKyAgICAgICAgICAg
IHJldHVybiBkcmVmID49IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAiYWx3YXlzIjoKKyAgICAg
ICAgICAgIHJldHVybiAxOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJVbmtub3duIGRlcHRoIGNvbXBhcmlzb24gZnVuY3Rpb24iKTsKKyAgICB9Cit9CisK
K2Z1bmN0aW9uIGNvbnZlcnNpb25Ub1JHQkEodmFsdWUpCit7CisgICAgLy8gVnVsa2FuIDEuMS44
MyBzZWN0aW9uIDE1LjMuNQorICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7CisgICAg
ICAgIHZhciByZXN1bHQgPSBbXTsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5s
ZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlW2ldKTsKKyAgICAgICAg
d2hpbGUgKHJlc3VsdC5sZW5ndGggIT0gNCkKKyAgICAgICAgICAgIHJlc3VsdC5wdXNoKHJlc3Vs
dC5sZW5ndGggPT0gMyA/IDEgOiAwKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9IGVs
c2UKKyAgICAgICAgcmV0dXJuIFt2YWx1ZSwgMCwgMCwgMV07Cit9CisKKy8vRm9yIGV4cGxpY2l0
IExPRCBpbWFnZSBpbnN0cnVjdGlvbnMsIGlmIHRoZSBvcHRpb25hbCBTUElSLVYgb3BlcmFuZCBH
cmFkIGlzIHByb3ZpZGVkLCB0aGVuIHRoZSBvcGVyYW5kIHZhbHVlcyBhcmUgdXNlZCBmb3IgdGhl
IGRlcml2YXRpdmVzLiBUaGUgbnVtYmVyIG9mIGNvbXBvbmVudHMgcHJlc2VudCBpbiBlYWNoIGRl
cml2YXRpdmUgZm9yIGEgZ2l2ZW4gaW1hZ2UgZGltZW5zaW9uYWxpdHkgbWF0Y2hlcyB0aGUgbnVt
YmVyIG9mIHBhcnRpYWwgZGVyaXZhdGl2ZXMgY29tcHV0ZWQgYWJvdmUuCisvL0lmIHRoZSBvcHRp
b25hbCBTUElSLVYgb3BlcmFuZCBMb2QgaXMgcHJvdmlkZWQsIHRoZW4gZGVyaXZhdGl2ZXMgYXJl
IHNldCB0byB6ZXJvLCB0aGUgY3ViZSBtYXAgZGVyaXZhdGl2ZSB0cmFuc2Zvcm1hdGlvbiBpcyBz
a2lwcGVkLCBhbmQgdGhlIHNjYWxlIGZhY3RvciBvcGVyYXRpb24gaXMgc2tpcHBlZC4gSW5zdGVh
ZCwgdGhlIGZsb2F0aW5nIHBvaW50IHNjYWxhciBjb29yZGluYXRlIGlzIGRpcmVjdGx5IGFzc2ln
bmVkIHRvIM67YmFzZSBhcyBkZXNjcmliZWQgaW4gTGV2ZWwtb2YtRGV0YWlsIE9wZXJhdGlvbi4K
K2Z1bmN0aW9uIGltcGxpY2l0RGVyaXZhdGl2ZSgpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBz
ZWN0aW9uIDE1LjUKKyAgICByZXR1cm4gMDsKK30KKworZnVuY3Rpb24gcHJvamVjdGlvbk9wZXJh
dGlvbihzLCB0LCByLCBkcmVmLCBxKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAx
NS42LjEKKyAgICByZXR1cm4gW3MgLyBxLCB0IC8gcSwgciAvIHEsIGRyZWYgLyBxXTsKK30KKwor
ZnVuY3Rpb24gY3ViZU1hcEZhY2VTZWxlY3Rpb24ocywgdCwgciwgcGFydGlhbFJ4V2l0aFJlc3Bl
Y3RUb1gsIHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWCwg
cGFydGlhbFJ5V2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSeldpdGhSZXNwZWN0VG9YLCBwYXJ0aWFs
UnpXaXRoUmVzcGVjdFRvWSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi40
CisgICAgbGV0IHJ4ID0gczsKKyAgICBsZXQgcnkgPSB0OworICAgIGxldCByeiA9IHI7CisgICAg
bGV0IHdpbm5lciA9IDA7CisgICAgaWYgKE1hdGguYWJzKHJ6KSA+PSBNYXRoLmFicyhyeSkgJiYg
TWF0aC5hYnMocnopID49IE1hdGguYWJzKHJ4KSkKKyAgICAgICAgd2lubmVyID0gMjsKKyAgICBl
bHNlIGlmIChNYXRoLmFicyhyeSkgPj0gTWF0aC5hYnMocngpICYmIE1hdGguYWJzKHJ5KSA+PSBN
YXRoLmFicyhyeikpCisgICAgICAgIHdpbm5lciA9IDE7CisKKyAgICBsZXQgbGF5ZXJOdW1iZXI7
CisgICAgbGV0IHNjOworICAgIGxldCB0YzsKKyAgICBsZXQgcmM7CisgICAgbGV0IHBhcnRpYWxT
Y1dpdGhSZXNwZWN0VG9YOworICAgIGxldCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWTsKKyAgICBs
ZXQgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1g7CisgICAgbGV0IHBhcnRpYWxUY1dpdGhSZXNwZWN0
VG9ZOworICAgIGxldCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWDsKKyAgICBsZXQgcGFydGlhbFJj
V2l0aFJlc3BlY3RUb1k7CisgICAgaWYgKHdpbm5lciA9PSAwICYmIHJ4ID49IDApIHsKKyAgICAg
ICAgbGF5ZXJOdW1iZXIgPSAwOworICAgICAgICBzYyA9IC1yejsKKyAgICAgICAgdGMgPSAtcnk7
CisgICAgICAgIHJjID0gcng7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gLXBh
cnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9
IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RU
b1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNw
ZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRo
UmVzcGVjdFRvWCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsUmNX
aXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxzZSBpZiAo
d2lubmVyID09IDApIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSAxOworICAgICAgICBzYyA9IHJ6
OworICAgICAgICB0YyA9IC1yeTsKKyAgICAgICAgcmMgPSByeDsKKyAgICAgICAgcGFydGlhbFNj
V2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlh
bFNjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFy
dGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAg
IHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAg
ICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsK
KyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ4V2l0aFJlc3BlY3RU
b1k7CisgICAgfSBlbHNlIGlmICh3aW5uZXIgPT0gMSAmJiByeSA+PSAwKSB7CisgICAgICAgIGxh
eWVyTnVtYmVyID0gMjsKKyAgICAgICAgc2MgPSByeDsKKyAgICAgICAgdGMgPSAtcno7CisgICAg
ICAgIHJjID0gcnk7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ4
V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlh
bFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gcGFy
dGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0g
cGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9Y
ID0gcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0
VG9ZID0gcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgfSBlbHNlIGlmICh3aW5uZXIgPT0g
MSkgeworICAgICAgICBsYXllck51bWJlciA9IDM7CisgICAgICAgIHNjID0gcng7CisgICAgICAg
IHRjID0gLXJ6OworICAgICAgICByYyA9IHJ5OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVj
dFRvWCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVz
cGVjdFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRo
UmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRj
V2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRp
YWxSY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAgICBw
YXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICB9
IGVsc2UgaWYgKHdpbm5lciA9PSAyICYmIHJ6ID49IDApIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIg
PSA0OworICAgICAgICBzYyA9IHJ4OworICAgICAgICB0YyA9IC1yeTsKKyAgICAgICAgcmMgPSBy
ejsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnhXaXRoUmVzcGVj
dFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnhXaXRoUmVz
cGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0
aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxS
eVdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IHBhcnRp
YWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IHBh
cnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxzZSB7CisgICAgICAgIGxheWVyTnVtYmVy
ID0gNTsKKyAgICAgICAgc2MgPSAtcng7CisgICAgICAgIHRjID0gLXJ5OworICAgICAgICByYyA9
IHJ6OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnhXaXRoUmVz
cGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ4V2l0
aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxS
eVdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0
aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSAt
cGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9Z
ID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgIH0KKyAgICByZXR1cm4gW2xheWVyTnVt
YmVyLCBzYywgdGMsIHJjLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNjV2l0aFJl
c3BlY3RUb1ksIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRv
WSwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZXQorfQor
CitmdW5jdGlvbiBjdWJlTWFwQ29vcmRpbmF0ZVRyYW5zZm9ybWF0aW9uKHNjLCByYykKK3sKKyAg
ICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi41CisgICAgbGV0IHNGYWNlID0gKDEgLyAy
KSAqIHNjIC8gTWF0aC5hYnMocmMpICsgKDEgLyAyKTsKKyAgICBsZXQgdEZhY2UgPSAoMSAvIDIp
ICogdGMgLyBNYXRoLmFicyhyYykgKyAoMSAvIDIpOworICAgIHJldHVybiBbc0ZhY2UsIHRGYWNl
XTsKK30KKworZnVuY3Rpb24gY3ViZU1hcERlcml2YXRpdmVUcmFuc2Zvcm1hdGlvbihzYywgdGMs
IHJjLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ksIHBh
cnRpYWxUY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJj
V2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZKQoreworICAgIC8vIFZ1bGth
biAxLjEuODMgc2VjdGlvbiAxNS42LjYKKyAgICBsZXQgcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RU
b1ggPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCAt
IHNjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICBs
ZXQgcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1kgPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykg
KiBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSAtIHNjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kp
IC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICBsZXQgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1gg
PSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCAtIHRj
ICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICBsZXQg
cGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1kgPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBw
YXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSAtIHRjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kpIC8g
TWF0aC5wb3cocmMsIDIpKTsKKyAgICByZXR1cm4gW3BhcnRpYWxTRmFjZVdpdGhSZXNwZWN0VG9Y
LCBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1gs
IHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0VG9ZXTsKK30KKworZnVuY3Rpb24gc2NhbGVGYWN0b3JP
cGVyYXRpb24oZGV2aWNlTWF4QW5pc290cm9weSwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIHNhbXBs
ZXJNYXhBbmlzb3Ryb3B5LCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVFdpdGhSZXNw
ZWN0VG9YLCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9ZLCBw
YXJ0aWFsVFdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9ZKQoreworICAgIC8v
IFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjcKKyAgICBsZXQgbXV4ID0gTWF0aC5hYnMocGFy
dGlhbFNXaXRoUmVzcGVjdFRvWCkgKiB3aWR0aDsKKyAgICBsZXQgbXZ4ID0gTWF0aC5hYnMocGFy
dGlhbFRXaXRoUmVzcGVjdFRvWCkgKiBoZWlnaHQ7CisgICAgbGV0IG13eCA9IE1hdGguYWJzKHBh
cnRpYWxSV2l0aFJlc3BlY3RUb1gpICogZGVwdGg7CisgICAgbGV0IG11eSA9IE1hdGguYWJzKHBh
cnRpYWxTV2l0aFJlc3BlY3RUb1kpICogd2lkdGg7CisgICAgbGV0IG12eSA9IE1hdGguYWJzKHBh
cnRpYWxUV2l0aFJlc3BlY3RUb1kpICogaGVpZ2h0OworICAgIGxldCBtd3kgPSBNYXRoLmFicyhw
YXJ0aWFsUldpdGhSZXNwZWN0VG9ZKSAqIGRlcHRoOworCisgICAgbGV0IGZ4ID0gTWF0aC5zcXJ0
KDIpICogKG11eCArIG12eCArIG13eCk7CisgICAgbGV0IGZ5ID0gTWF0aC5zcXJ0KDIpICogKG11
eSArIG12eSArIG13eSk7CisKKyAgICBsZXQgcmhvWCA9IGZ4OworICAgIGxldCByaG9ZID0gZnk7
CisgICAgbGV0IHJob01heCA9IE1hdGgubWF4KHJob1gsIHJob1kpOworICAgIGxldCByaG9NaW4g
PSBNYXRoLm1pbihyaG9YLCByaG9ZKTsKKworICAgIGxldCBtYXhBbmlzbyA9IE1hdGgubWluKHNh
bXBsZXJNYXhBbmlzb3Ryb3B5LCBkZXZpY2VNYXhBbmlzb3Ryb3B5KTsKKworICAgIGxldCBldGE7
CisgICAgaWYgKHJob01heCA9PSAwICYmIHJob01pbiA9PSAwKQorICAgICAgICBldGEgPSAxOwor
ICAgIGVsc2UgaWYgKHJob01pbiA9PSAwKQorICAgICAgICBldGEgPSBtYXhBbmlzbzsKKyAgICBl
bHNlCisgICAgICAgIGV0YSA9IE1hdGgubWluKHJob01heCAvIHJob01pbiwgbWF4QW5pc28pOwor
CisgICAgbGV0IE4gPSBNYXRoLmNlaWwoZXRhKTsKKyAgICByZXR1cm4gW3Job01heCwgcmhvTWlu
LCBldGEsIE5dOworfQorCitmdW5jdGlvbiBsZXZlbE9mRGV0YWlsT3BlcmF0aW9uKGRldmljZU1h
eFNhbXBsZXJMb2RCaWFzLCBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLCBsb2RNaW5Gcm9tRnVuY3Rp
b25PcGVyYW5kLCBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwgc2FtcGxlckJpYXMsIHNhbXBsZXJM
b2RNaW4sIHNhbXBsZXJMb2FkTWF4LCByaG9NYXgsIGV0YSkKK3sKKyAgICAvLyBWdWxrYW4gMS4x
LjgzIHNlY3Rpb24gMTUuNi43CisgICAgbGV0IGxhbWJkYUJhc2UgPSBsb2RGcm9tRnVuY3Rpb25P
cGVyYW5kICE9IHVuZGVmaW5lZCA/IGxvZEZyb21GdW5jdGlvbk9wZXJhbmQgOiBNYXRoLmxvZzIo
cmhvTWF4IC8gZXRhKTsKKyAgICBsZXQgbGFtYmRhUHJpbWUgPSBsYW1iZGFCYXNlICsgTWF0aC5t
aW4oTWF0aC5tYXgoc2FtcGxlckJpYXMgKyBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwgLWRldmlj
ZU1heFNhbXBsZXJMb2RCaWFzKSwgZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMpOworICAgIGxldCBs
b2RNaW4gPSBNYXRoLm1heChzYW1wbGVyTG9kTWluLCBsb2RNaW5Gcm9tRnVuY3Rpb25PcGVyYW5k
KTsKKyAgICBsZXQgbG9kTWF4ID0gc2FtcGxlckxvYWRNYXg7CisgICAgbGV0IGxhbWJkYTsKKyAg
ICBpZiAobGFtYmRhUHJpbWUgPiBsb2RNYXgpCisgICAgICAgIGxhbWJkYSA9IGxvZE1heDsKKyAg
ICBlbHNlIGlmIChsb2RNaW4gPD0gbGFtYmRhUHJpbWUgJiYgbGFtYmRhUHJpbWUgPD0gbG9kTWF4
KQorICAgICAgICBsYW1iZGEgPSBsYW1iZGFQcmltZTsKKyAgICBlbHNlIGlmIChsYW1iZGFQcmlt
ZSA8IGxvZE1pbikKKyAgICAgICAgbGFtYmRhID0gbG9kTWluOworICAgIGVsc2UKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJsb2RNaW4gPj0gbG9kTWF4Iik7CisgICAgcmV0dXJuIGxhbWJkYTsK
K30KKworZnVuY3Rpb24gaW1hZ2VMZXZlbFNlbGVjdGlvbihiYXNlTWlwTGV2ZWwsIGxldmVsQ291
bnQsIG1pcG1hcE1vZGUsIGxhbWJkYSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24g
MTUuNi43CisgICAgZnVuY3Rpb24gbmVhcmVzdChkUHJpbWUpCisgICAgeworICAgICAgICByZXR1
cm4gTWF0aC5jZWlsKGRQcmltZSArIDAuNSkgLSAxOworICAgIH0KKworICAgIGxldCBxID0gbGV2
ZWxDb3VudCAtIDE7CisgICAgbGV0IGRQcmltZSA9IGJhc2VNaXBMZXZlbCArIE1hdGgubWluKE1h
dGgubWF4KGxhbWJkYSwgMCksIHEpOworICAgIGxldCBkbDsKKyAgICBpZiAobWlwbWFwTW9kZSA9
PSAibmVhcmVzdCIpCisgICAgICAgIGRsID0gbmVhcmVzdChkUHJpbWUpOworICAgIGVsc2UKKyAg
ICAgICAgZGwgPSBkUHJpbWU7CisgICAgaWYgKG1pcG1hcE1vZGUgPT0gIm5lYXJlc3QiKQorICAg
ICAgICByZXR1cm4gZGw7CisgICAgZWxzZSB7CisgICAgICAgIGxldCBkSGkgPSBNYXRoLmZsb29y
KGRsKTsKKyAgICAgICAgbGV0IGRMb3cgPSBNYXRoLm1pbihkSGkgKyAxLCBxKTsKKyAgICAgICAg
bGV0IGRlbHRhID0gZGwgLSBkSGk7CisgICAgICAgIHJldHVybiBbZEhpLCBkTG93LCBkZWx0YV07
CisgICAgfQorfQorCitmdW5jdGlvbiBzdHJxYVRvVVZXQVRyYW5zZm9ybWF0aW9uKHMsIHQsIHIs
IHdpZHRoLCBoZWlnaHQsIGRlcHRoKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAx
NS42LjgKKyAgICBsZXQgdSA9IHMgKiB3aWR0aDsKKyAgICBsZXQgdiA9IHQgKiBoZWlnaHQ7Cisg
ICAgbGV0IHcgPSByICogZGVwdGg7CisgICAgcmV0dXJuIFt1LCB2LCB3XTsKK30KKworZnVuY3Rp
b24gdXZ3YVRvSUpLTE5UcmFuc2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJTZWxlY3Rpb24obGF5ZXJD
b3VudCwgYmFzZUFycmF5TGF5ZXIsIGZpbHRlciwgdSwgdiwgdywgYSwgZGVsdGFJLCBkZWx0YUos
IGRlbHRhSykKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNy4xCisgICAgZnVu
Y3Rpb24gcm5lKGEpCisgICAgeworICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihhICsgMC41KTsK
KyAgICB9CisgICAgbGV0IGwgPSBNYXRoLm1pbihNYXRoLm1heChybmUoYSksIDApLCBsYXllckNv
dW50IC0gMSkgKyBiYXNlQXJyYXlMYXllcjsKKyAgICBsZXQgaTsKKyAgICBsZXQgajsKKyAgICBs
ZXQgazsKKyAgICBpZiAoZmlsdGVyID09ICJuZWFyZXN0IikgeworICAgICAgICBpID0gTWF0aC5m
bG9vcih1KTsKKyAgICAgICAgaiA9IE1hdGguZmxvb3Iodik7CisgICAgICAgIGsgPSBNYXRoLmZs
b29yKHcpOworICAgICAgICAKKyAgICAgICAgaSArPSBkZWx0YUk7CisgICAgICAgIGogKz0gZGVs
dGFKOworICAgICAgICBrICs9IGRlbHRhSzsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBbaSwg
aiwgaywgbF07CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGZpbHRlciAhPSAibGluZWFyIikK
KyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBmaWx0ZXIiKTsKKyAgICAgICAg
bGV0IGkwID0gTWF0aC5mbG9vcih1IC0gMC41KTsKKyAgICAgICAgbGV0IGkxID0gaTAgKyAxOwor
ICAgICAgICBsZXQgajAgPSBNYXRoLmZsb29yKHYgLSAwLjUpOworICAgICAgICBsZXQgajEgPSBq
MCArIDE7CisgICAgICAgIGxldCBrMCA9IE1hdGguZmxvb3IodyAtIDAuNSk7CisgICAgICAgIGxl
dCBrMSA9IGswICsgMTsKKyAgICAgICAgbGV0IGFscGhhID0gKHUgLSAwLjUpIC0gaTA7CisgICAg
ICAgIGxldCBiZXRhID0gKHYgLSAwLjUpIC0gajA7CisgICAgICAgIGxldCBnYW1tYSA9ICh3IC0g
MC41KSAtIGswOworICAgICAgICAKKyAgICAgICAgaTAgKz0gZGVsdGFJOworICAgICAgICBpMSAr
PSBkZWx0YUk7CisgICAgICAgIGowICs9IGRlbHRhSjsKKyAgICAgICAgajEgKz0gZGVsdGFKOwor
ICAgICAgICBrMCArPSBkZWx0YUs7CisgICAgICAgIGsxICs9IGRlbHRhSzsKKyAgICAgICAgCisg
ICAgICAgIHJldHVybiBbaTAsIGkxLCBqMCwgajEsIGswLCBrMSwgbCwgYWxwaGEsIGJldGEsIGdh
bW1hXTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGludGVnZXJUZXhlbENvb3JkaW5hdGVPcGVyYXRp
b25zKGJhc2VNaXBMZXZlbCwgbGV2ZWxDb3VudCwgbGV2ZWxCYXNlLCBsb2RGcm9tRnVuY3Rpb25P
cGVyYW5kKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS44CisgICAgbGV0IGQg
PSBsZXZlbEJhc2UgKyBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kOworICAgIGlmIChkIDwgYmFzZU1p
cExldmVsIHx8IGQgPj0gYmFzZU1pcExldmVsICsgbGV2ZWxDb3VudCkKKyAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJTZWxlY3RlZCBsZXZlbCBkb2VzIG5vdCBsaWUgaW5zaWRlIHRoZSBpbWFnZSIp
OworICAgIHJldHVybiBkOworfQorCitmdW5jdGlvbiB3cmFwcGluZ09wZXJhdGlvbih3aWR0aCwg
aGVpZ2h0LCBkZXB0aCwgYWRkcmVzc01vZGVVLCBhZGRyZXNzTW9kZVYsIGFkZHJlc3NNb2RlVywg
aSwgaiwgaykKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOS4xCisgICAgLy8g
RklYTUU6IEltcGxlbWVudCBjdWJlIG1hcCBoYW5kbGluZworICAgIGZ1bmN0aW9uIHRyYW5zZm9y
bShhZGRyZXNzTW9kZSwgc2l6ZSwgaSkKKyAgICB7CisgICAgICAgIGZ1bmN0aW9uIG1pcnJvcihu
KSB7CisgICAgICAgICAgICBpZiAobiA+PSAwKQorICAgICAgICAgICAgICAgIHJldHVybiBuOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiAtKDEgKyBuKTsKKyAgICAg
ICAgfQorICAgICAgICBzd2l0Y2ggKGFkZHJlc3NNb2RlKSB7CisgICAgICAgICAgICBjYXNlICJj
bGFtcFRvRWRnZSI6CisgICAgICAgICAgICAgICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGks
IDApLCBzaXplIC0gMSk7CisgICAgICAgICAgICBjYXNlICJyZXBlYXQiOgorICAgICAgICAgICAg
ICAgIHJldHVybiBpICUgc2l6ZTsKKyAgICAgICAgICAgIGNhc2UgIm1pcnJvclJlcGVhdCI6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIChzaXplIC0gMSkgLSBtaXJyb3IoKGkgJSAoMiAqIHNpemUp
KSAtIHNpemUpOworICAgICAgICAgICAgY2FzZSAiY2xhbXBUb0JvcmRlckNvbG9yIjoKKyAgICAg
ICAgICAgICAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoaSwgLTEpLCBzaXplKTsKKyAgICAg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3du
IGFkZHJlc3MgbW9kZSIpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBbdHJhbnNmb3Jt
KGFkZHJlc3NNb2RlVSwgd2lkdGgsIGkpLCB0cmFuc2Zvcm0oYWRkcmVzc01vZGVWLCBoZWlnaHQs
IGopLCB0cmFuc2Zvcm0oYWRkcmVzc01vZGVXLCBkZXB0aCwgayldOworfQorCitmdW5jdGlvbiB0
ZXhlbEdhdGhlcmluZygpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjkuMgor
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcworICAgIC8qbGV0IHRhdVIgPSA7CisgICAgbGV0
IHRhdUcgPSA7CisgICAgbGV0IHRhdUIgPSA7CisgICAgbGV0IHRhdUEgPSA7Ki8KK30KKworZnVu
Y3Rpb24gdGV4ZWxGaWx0ZXJpbmcoCisgICAgZGV2aWNlTWF4QW5pc290cm9weSwKKyAgICBkZXZp
Y2VNYXhTYW1wbGVyTG9kQmlhcywKKyAgICBiYXNlTWlwTGV2ZWwsCisgICAgYmFzZUFycmF5TGF5
ZXIsCisgICAgdGV4dHVyZSwKKyAgICBzYW1wbGVyLAorICAgIHNhbXBsZXJCaWFzLAorICAgIHMs
IHQsIHIsIGEsCisgICAgZGVsdGFJLCBkZWx0YUosIGRlbHRhSywKKyAgICBsb2RGcm9tRnVuY3Rp
b25PcGVyYW5kLAorICAgIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgYmlhc0Zyb21G
dW5jdGlvbk9wZXJhbmQsCisgICAgZGR4LCBkZHkpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBz
ZWN0aW9uIDE1LjkuMworCisgICAgLy8gVGhlIHNwZWMgdXNlcyBkaWZmZXJlbnQgbmFtZXMgdGhh
biBXZWJHUFUgZG9lcy4KKyAgICBsZXQgYWRkcmVzc01vZGVVID0gc2FtcGxlci5yQWRkcmVzc01v
ZGU7CisgICAgbGV0IGFkZHJlc3NNb2RlViA9IHNhbXBsZXIuc0FkZHJlc3NNb2RlOworICAgIGxl
dCBhZGRyZXNzTW9kZVcgPSBzYW1wbGVyLnRBZGRyZXNzTW9kZTsKKworICAgIGxldCBmaWx0ZXI7
CisgICAgaWYgKGxhbWJkYSA8PSAwKQorICAgICAgICBmaWx0ZXIgPSBzYW1wbGVyLm1hZ0ZpbHRl
cjsKKyAgICBlbHNlCisgICAgICAgIGZpbHRlciA9IHNhbXBsZXIubWluRmlsdGVyOworCisgICAg
ZnVuY3Rpb24gY29tcHV0ZVRhdShsZXZlbCkKKyAgICB7CisgICAgICAgIGZ1bmN0aW9uIHJlZHVj
ZSguLi52YWx1ZXMpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoICUg
MiAhPSAwKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRG9uJ3QgaGF2ZSBhIHdl
aWdodCBjb3JyZXNwb25kaW5nIHRvIGVhY2ggdmFsdWUiKTsKKyAgICAgICAgICAgIGxldCBzdW0g
PSAwOworICAgICAgICAgICAgLy8gRklYTUU6IFRoZXNlIGFyZ3VtZW50cyBuZWVkIHRvIGJlIGF2
ZXJhZ2VkIGNvbXBvbmVudC13aXNlLgorICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2
YWx1ZXMubGVuZ3RoIC8gMjsgKytpKQorICAgICAgICAgICAgICAgIHN1bSArPSB2YWx1ZXNbMiAq
IGldICogdmFsdWVzWzIgKiBpICsgMV07CisgICAgICAgICAgICByZXR1cm4gc3VtOworICAgICAg
ICB9CisKKyAgICAgICAgZnVuY3Rpb24gYWNjZXNzQ29sb3Iod2lkdGgsIGhlaWdodCwgZGVwdGgs
IGwsIGksIGosIGspCisgICAgICAgIHsKKyAgICAgICAgICAgIGZ1bmN0aW9uIHNob3VsZEJlQm9y
ZGVyKHZhbHVlLCBtYXgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVl
IDwgLTEgfHwgdmFsdWUgPiBtYXgpCisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiT3V0LW9mLWJvdW5kcyB0ZXh0dXJlIHJlYWQiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
dmFsdWUgPT0gLTEgfHwgdmFsdWUgPT0gbWF4OworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBsZXQgW3dyYXBwZWRJLCB3cmFwcGVkSiwgd3JhcHBlZEtdID0gd3JhcHBpbmdPcGVyYXRpb24o
d2lkdGgsIGhlaWdodCwgZGVwdGgsIGFkZHJlc3NNb2RlVSwgYWRkcmVzc01vZGVWLCBhZGRyZXNz
TW9kZVcsIGksIGosIGspCisgICAgICAgICAgICBpZiAoc2hvdWxkQmVCb3JkZXIod3JhcHBlZEks
IHdpZHRoKSB8fCBzaG91bGRCZUJvcmRlcih3cmFwcGVkSiwgaGVpZ2h0KSB8fCBzaG91bGRCZUJv
cmRlcih3cmFwcGVkSywgZGVwdGgpKQorICAgICAgICAgICAgICAgIHJldHVybiBzYW1wbGVyLmJv
cmRlckNvbG9yKHRleHR1cmUuaW5uZXJUeXBlKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdGV4dHVyZS5lbGVtZW50KGwsIGxldmVsLCBrLCBqLCBpKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGxldCBbdSwgdiwgd10gPSBzdHJxYVRvVVZXQVRyYW5zZm9ybWF0aW9u
KHMsIHQsIHIsIHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExl
dmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpKTsKKyAgICAgICAgaWYgKGZp
bHRlciA9PSAibmVhcmVzdCIpIHsKKyAgICAgICAgICAgIGxldCBbaSwgaiwgaywgbF0gPSB1dndh
VG9JSktMTlRyYW5zZm9ybWF0aW9uQW5kQXJyYXlMYXllclNlbGVjdGlvbih0ZXh0dXJlLmxheWVy
Q291bnQsIGJhc2VBcnJheUxheWVyLCBmaWx0ZXIsIHUsIHYsIHcsIGEsIGRlbHRhSSwgZGVsdGFK
LCBkZWx0YUspOworICAgICAgICAgICAgcmV0dXJuIGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQs
IGRlcHRoLCBsLCBpLCBqLCBrKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmICht
aXBtYXBNb2RlICE9ICJsaW5lYXIiKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigi
VW5rbm93biBmaWx0ZXIiKTsKKyAgICAgICAgICAgIFtpMCwgaTEsIGowLCBqMSwgazAsIGsxLCBs
LCBhbHBoYSwgYmV0YSwgZ2FtbWFdID0gdXZ3YVRvSUpLTE5UcmFuc2Zvcm1hdGlvbkFuZEFycmF5
TGF5ZXJTZWxlY3Rpb24odGV4dHVyZS5sYXllckNvdW50LCBiYXNlQXJyYXlMYXllciwgZmlsdGVy
LCB1LCB2LCB3LCBhLCBkZWx0YUksIGRlbHRhSiwgZGVsdGFLKTsKKyAgICAgICAgICAgIGxldCBj
b2xvcjAwMCA9IGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsLCBpMCwgajAsIGsw
KTsKKyAgICAgICAgICAgIGxldCBjb2xvcjEwMCA9IGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQs
IGRlcHRoLCBsLCBpMSwgajAsIGswKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjAxMCA9IGFjY2Vz
c0NvbG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsLCBpMCwgajEsIGswKTsKKyAgICAgICAgICAg
IGxldCBjb2xvcjExMCA9IGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsLCBpMSwg
ajEsIGswKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjAwMSA9IGFjY2Vzc0NvbG9yKHdpZHRoLCBo
ZWlnaHQsIGRlcHRoLCBsLCBpMCwgajAsIGsxKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjEwMSA9
IGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsLCBpMSwgajAsIGsxKTsKKyAgICAg
ICAgICAgIGxldCBjb2xvcjAxMSA9IGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBs
LCBpMCwgajEsIGsxKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjExMSA9IGFjY2Vzc0NvbG9yKHdp
ZHRoLCBoZWlnaHQsIGRlcHRoLCBsLCBpMSwgajEsIGsxKTsKKyAgICAgICAgICAgIHN3aXRjaCAo
dGV4dHVyZS5kaW1lbnNpb24pIHsKKyAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAg
ICAgICAgICAgIGxldCBjb2xvcjAgPSBjb2xvcjAxMTsKKyAgICAgICAgICAgICAgICAgICAgbGV0
IGNvbG9yMSA9IGNvbG9yMTExOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVkdWNlKDEg
LSBhbHBoYSwgY29sb3IwLCBhbHBoYSwgY29sb3IxKTsKKyAgICAgICAgICAgICAgICBjYXNlIDI6
CisgICAgICAgICAgICAgICAgICAgIGxldCBjb2xvcjAwID0gY29sb3IwMDE7CisgICAgICAgICAg
ICAgICAgICAgIGxldCBjb2xvcjEwID0gY29sb3IxMDE7CisgICAgICAgICAgICAgICAgICAgIGxl
dCBjb2xvcjAxID0gY29sb3IwMTE7CisgICAgICAgICAgICAgICAgICAgIGxldCBjb2xvcjExID0g
Y29sb3IxMTE7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWR1Y2UoKDEgLSBhbHBoYSkg
KiAoMSAtIGJldGEpLCBjb2xvcjAwLCBhbHBoYSAqICgxIC0gYmV0YSksIGNvbG9yMTAsICgxIC0g
YWxwaGEpICogYmV0YSwgY29sb3IwMSwgYWxwaGEgKiBiZXRhLCBjb2xvcjExKTsKKyAgICAgICAg
ICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWR1Y2UoCisgICAg
ICAgICAgICAgICAgICAgICAgICAoMSAtIGFscGhhKSAqICgxIC0gYmV0YSkgKiAoMSAtIGdhbW1h
KSwgY29sb3IwMDAsCisgICAgICAgICAgICAgICAgICAgICAgICBhbHBoYSAqICgxIC0gYmV0YSkg
KiAoMSAtIGdhbW1hKSwgY29sb3IxMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAoMSAtIGFs
cGhhKSAqIGJldGEgKiAoMSAtIGdhbW1hKSwgY29sb3IwMTAsCisgICAgICAgICAgICAgICAgICAg
ICAgICBhbHBoYSAqIGJldGEgKiAoMSAtIGdhbW1hKSwgY29sb3IxMTAsCisgICAgICAgICAgICAg
ICAgICAgICAgICAoMSAtIGFscGhhKSAqICgxIC0gYmV0YSkgKiBnYW1tYSwgY29sb3IwMDEsCisg
ICAgICAgICAgICAgICAgICAgICAgICBhbHBoYSAqICgxIC0gYmV0YSkgKiBnYW1tYSwgY29sb3Ix
MDEsCisgICAgICAgICAgICAgICAgICAgICAgICAoMSAtIGFscGhhKSAqIGJldGEgKiBnYW1tYSwg
Y29sb3IwMTEsCisgICAgICAgICAgICAgICAgICAgICAgICBhbHBoYSAqIGJldGEgKiBnYW1tYSwg
Y29sb3IxMTEpOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiVW5rbm93biBkaW1lbnNpb24iKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgIH0KKworICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgd29yayB3aXRoIGN1YmVt
YXBzCisgICAgbGV0IHBhcnRpYWxTV2l0aFJlc3BlY3RUb1ggPSAwOworICAgIGxldCBwYXJ0aWFs
VFdpdGhSZXNwZWN0VG9YID0gMDsKKyAgICBsZXQgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCA9IDA7
CisgICAgaWYgKGRkeCAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgcGFydGlhbFNXaXRoUmVzcGVj
dFRvWCA9IGRkeFswXTsKKyAgICAgICAgcGFydGlhbFRXaXRoUmVzcGVjdFRvWCA9IGRkeFsxXTsK
KyAgICAgICAgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCA9IGRkeFsyXTsKKyAgICB9CisgICAgbGV0
IHBhcnRpYWxTV2l0aFJlc3BlY3RUb1kgPSAwOworICAgIGxldCBwYXJ0aWFsVFdpdGhSZXNwZWN0
VG9ZID0gMDsKKyAgICBsZXQgcGFydGlhbFJXaXRoUmVzcGVjdFRvWSA9IDA7CisgICAgaWYgKGRk
eSAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgcGFydGlhbFNXaXRoUmVzcGVjdFRvWSA9IGRkeVsw
XTsKKyAgICAgICAgcGFydGlhbFRXaXRoUmVzcGVjdFRvWSA9IGRkeVsxXTsKKyAgICAgICAgcGFy
dGlhbFJXaXRoUmVzcGVjdFRvWSA9IGRkeVsyXTsKKyAgICB9CisgICAgbGV0IFtyaG9NYXgsIHJo
b01pbiwgZXRhLCBOXSA9IHNjYWxlRmFjdG9yT3BlcmF0aW9uKGRldmljZU1heEFuaXNvdHJvcHks
IHRleHR1cmUud2lkdGgsIHRleHR1cmUuaGVpZ2h0LCB0ZXh0dXJlLmRlcHRoLCBzYW1wbGVyTWF4
QW5pc290cm9weSwgcGFydGlhbFNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRXaXRoUmVzcGVjdFRv
WCwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNXaXRoUmVzcGVjdFRvWSwgcGFydGlh
bFRXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWSk7CisgICAgbGV0IGxhbWJk
YSA9IGxldmVsT2ZEZXRhaWxPcGVyYXRpb24oZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMsIGxvZEZy
b21GdW5jdGlvbk9wZXJhbmQsIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQsIGJpYXNGcm9tRnVu
Y3Rpb25PcGVyYW5kLCBzYW1wbGVyQmlhcywgc2FtcGxlckxvZE1pbiwgc2FtcGxlckxvYWRNYXgs
IHJob01heCwgZXRhKTsKKworICAgIGlmIChtaXBtYXBNb2RlID09ICJuZWFyZXN0IikgeworICAg
ICAgICBsZXQgaW1hZ2VMZXZlbCA9IGltYWdlTGV2ZWxTZWxlY3Rpb24oYmFzZU1pcExldmVsLCB0
ZXh0dXJlLmxldmVsQ291bnQsIG1pcG1hcE1vZGUsIGxhbWJkYSk7CisgICAgICAgIHJldHVybiBj
b21wdXRlVGF1KGltYWdlTGV2ZWwpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChtaXBtYXBN
b2RlICE9ICJsaW5lYXIiKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGZp
bHRlciIpOworICAgICAgICBsZXQgW2RIaSwgZExvdywgZGVsdGFdID0gaW1hZ2VMZXZlbFNlbGVj
dGlvbihiYXNlTWlwTGV2ZWwsIHRleHR1cmUubGV2ZWxDb3VudCwgbWlwbWFwTW9kZSwgbGFtYmRh
KTsKKyAgICAgICAgcmV0dXJuIHJlZHVjZSgxIC0gZGVsdGEsIGNvbXB1dGVUYXUoZEhpKSwgZGVs
dGEsIGNvbXB1dGVUYXUoZExvKSk7CisgICAgfQorfQorCitmdW5jdGlvbiBzYW1wbGVUZXh0dXJl
KHRleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZWx0YSwgYmlhc0Zyb21GdW5jdGlvbk9wZXJh
bmQsIGRkeCwgZGR5LCBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLCBkcmVmKQoreworICAgIGxldCBz
ID0gbG9jYXRpb25bMF07CisgICAgbGV0IHQgPSBsb2NhdGlvblsxXTsKKyAgICBsZXQgciA9IGxv
Y2F0aW9uWzJdOworICAgIGxldCBxID0gbG9jYXRpb25bM107CisgICAgbGV0IGEgPSBsb2NhdGlv
bls0XTsKKworICAgIGxldCBkZWx0YUkgPSB1bmRlZmluZWQ7CisgICAgbGV0IGRlbHRhSiA9IHVu
ZGVmaW5lZDsKKyAgICBsZXQgZGVsdGFLID0gdW5kZWZpbmVkOworICAgIGlmIChkZWx0YSAhPSB1
bmRlZmluZWQpIHsKKyAgICAgICAgZGVsdGFJID0gZGVsdGFbMF07CisgICAgICAgIGRlbHRhSiA9
IGRlbHRhWzFdOworICAgICAgICBkZWx0YUsgPSBkZWx0YVsyXTsKKyAgICB9CisKKyAgICBbcywg
dCwgciwgZHJlZl0gPSBwcm9qZWN0aW9uT3BlcmF0aW9uKHMsIHQsIHIsIGRyZWYsIHEpOworICAg
IGxldCByZXN1bHQgPSB0ZXhlbEZpbHRlcmluZygKKyAgICAgICAgTnVtYmVyLk1BWF9WQUxVRSwK
KyAgICAgICAgTnVtYmVyLk1BWF9WQUxVRSwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAg
ICAgdGV4dHVyZSwKKyAgICAgICAgc2FtcGxlciwKKyAgICAgICAgMCwKKyAgICAgICAgcywgdCwg
ciwgYSwKKyAgICAgICAgZGVsdGFJLCBkZWx0YUosIGRlbHRhSywKKyAgICAgICAgbG9kRnJvbUZ1
bmN0aW9uT3BlcmFuZCwKKyAgICAgICAgMCwKKyAgICAgICAgYmlhc0Zyb21GdW5jdGlvbk9wZXJh
bmQsCisgICAgICAgIGRkeCwgZGR5KTsKKyAgICBpZiAoZHJlZiAhPSB1bmRlZmluZWQpIHsKKyAg
ICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIEFycmF5KQorICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJEZXB0aCBjb21wYXJpc29uIG5vdCBzdXBwb3J0ZWQgb24gbXVsdGljaGFubmVsIHRl
eHR1cmVzIik7CisgICAgICAgIHJlc3VsdCA9IGRlcHRoQ29tcGFyZU9wZXJhdGlvbihkcmVmLCBy
ZXN1bHQsIHNhbXBsZXIuY29tcGFyZUZ1bmN0aW9uKTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRvIGRvIHdpdGggYW5pc290cm9weQor
ICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IGhvdyB0byBkbyBtdWx0aXNhbXBsaW5nLgorfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbCBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKaW5kZXggNjVhODY0MTFiM2U3NzBi
NTU3YjQxYWNjN2U0MTRkZWY0MjQwMzAxMy4uMzM4ZWU5YzliOTM4YjU0ODJiODg4ZTRlOTI0ZGNj
ZGRiZTdmYjJjZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5k
ZXguaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCkBA
IC0xMjcsNiArMTI3LDggQEAKIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplQ29weUNvbnN0cnVjdG9y
T3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVEZWZhdWx0Q29u
c3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVGVybmFyeUV4cHJl
c3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlRleHR1cmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9IlRleHR1cmVPcGVyYXRpb25zLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJUcmFwU3RhdGVtZW50LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348695</attachid>
            <date>2018-08-31 18:25:38 -0700</date>
            <delta_ts>2018-08-31 19:42:09 -0700</delta_ts>
            <desc>Can sample</desc>
            <filename>bug-188940-20180831182537.patch</filename>
            <type>text/plain</type>
            <size>169480</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTY5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2E0OTlmZDVmNDJlZGIxOGQ0NzZiYmIzYjQyOTA5MDc1
MDIwOWMxMS4uOTlmMjkzM2EwMjlmNWNkN2ZhMGNlOGEyYjBlNWY1YjFjYzdhMGZhMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
MiBAQAorMjAxOC0wOC0zMSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRleHR1cmUgdHlwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNp
Y3MuanM6CisgICAgICAgIChJbnRyaW5zaWNzLik6CisgICAgICAgIChJbnRyaW5zaWNzLmNoZWNr
RmFsc2UpOgorICAgICAgICAoSW50cmluc2ljcyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmFtZVJlc29sdmVyLmpzOgorICAgICAgICAoTmFtZVJlc29sdmVyLnByb3RvdHlw
ZS5faGFuZGxlUHJvcGVydHlBY2Nlc3MpOgorICAgICAgICAoTmFtZVJlc29sdmVyLnByb3RvdHlw
ZS52aXNpdERvdEV4cHJlc3Npb24pOgorICAgICAgICAoTmFtZVJlc29sdmVyLnByb3RvdHlwZS52
aXNpdEluZGV4RXhwcmVzc2lvbik6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U1BJUlYuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExp
YnJhcnkuanM6CisgICAgICAgIChsZXQuc3RhbmRhcmRMaWJyYXJ5KToKKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWw6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVGVzdC5qczoKKyAgICAgICAgKG1ha2VTYW1wbGVyKToKKyAgICAgICAgKG1ha2Ux
RFRleHR1cmUpOgorICAgICAgICAobWFrZTFEVGV4dHVyZUFycmF5KToKKyAgICAgICAgKG1ha2Uy
RFRleHR1cmUpOgorICAgICAgICAobWFrZTJEVGV4dHVyZUFycmF5KToKKyAgICAgICAgKG1ha2Uz
RFRleHR1cmUpOgorICAgICAgICAobWFrZVRleHR1cmVDdWJlKToKKyAgICAgICAgKG1ha2VSVzFE
VGV4dHVyZSk6CisgICAgICAgIChtYWtlUlcxRFRleHR1cmVBcnJheSk6CisgICAgICAgIChtYWtl
UlcyRFRleHR1cmUpOgorICAgICAgICAobWFrZVJXMkRUZXh0dXJlQXJyYXkpOgorICAgICAgICAo
bWFrZVJXM0RUZXh0dXJlKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0
dXJlLmpzOiBBZGRlZC4KKyAgICAgICAgKFRleHR1cmUpOgorICAgICAgICAoVGV4dHVyZS5wcm90
b3R5cGUuZ2V0IGRpbWVuc2lvbik6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQgd2lk
dGgpOgorICAgICAgICAoVGV4dHVyZS5wcm90b3R5cGUuZ2V0IGhlaWdodCk6CisgICAgICAgIChU
ZXh0dXJlLnByb3RvdHlwZS5nZXQgZGVwdGgpOgorICAgICAgICAoVGV4dHVyZS5wcm90b3R5cGUu
Z2V0IGxldmVsQ291bnQpOgorICAgICAgICAoVGV4dHVyZS5wcm90b3R5cGUuZ2V0IGxheWVyQ291
bnQpOgorICAgICAgICAoVGV4dHVyZS5wcm90b3R5cGUuZ2V0IGlubmVyVHlwZSk6CisgICAgICAg
IChUZXh0dXJlLnByb3RvdHlwZS5nZXQgZGF0YSk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlw
ZS5lbGVtZW50Q2hlY2tlZCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5zZXRFbGVtZW50
Q2hlY2tlZCk6CisgICAgICAgIChUZXh0dXJlMUQpOgorICAgICAgICAoVGV4dHVyZTFELnByb3Rv
dHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlwZS5oZWlnaHRB
dExldmVsKToKKyAgICAgICAgKFRleHR1cmUxRC5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAg
ICAgICAgKFRleHR1cmUxRC5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMUQu
cHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTFEQXJyYXkpOgorICAgICAg
ICAoVGV4dHVyZTFEQXJyYXkucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0
dXJlMURBcnJheS5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMURB
cnJheS5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5LnBy
b3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5zZXRF
bGVtZW50KToKKyAgICAgICAgKFRleHR1cmUyRCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90
eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBlLmhlaWdodEF0
TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJELnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAg
ICAgICAoVGV4dHVyZTJELnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUyRC5w
cm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMkRBcnJheSk6CisgICAgICAg
IChUZXh0dXJlMkRBcnJheS5wcm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1
cmUyREFycmF5LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFy
cmF5LnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJv
dG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLnNldEVs
ZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTNEKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5
cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUuaGVpZ2h0QXRM
ZXZlbCk6CisgICAgICAgIChUZXh0dXJlM0QucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAg
ICAgIChUZXh0dXJlM0QucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTNELnBy
b3RvdHlwZS5zZXRFbGVtZW50KToKKyAgICAgICAgKFRleHR1cmVDdWJlKToKKyAgICAgICAgKFRl
eHR1cmVDdWJlLnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZUN1YmUu
cHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZUN1YmUucHJvdG90eXBl
LmRlcHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlQ3ViZS5wcm90b3R5cGUuZWxlbWVudCk6
CisgICAgICAgIChUZXh0dXJlQ3ViZS5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChU
ZXh0dXJlMURSVyk6CisgICAgICAgIChUZXh0dXJlMURSVy5wcm90b3R5cGUud2lkdGhBdExldmVs
KToKKyAgICAgICAgKFRleHR1cmUxRFJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAgICAg
ICAgKFRleHR1cmUxRFJXLnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVy
ZTFEUlcucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBl
LnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTFEQXJyYXlSVyk6CisgICAgICAgIChUZXh0
dXJlMURBcnJheVJXLnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFE
QXJyYXlSVy5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMURBcnJh
eVJXLnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEQXJyYXlSVy5w
cm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5z
ZXRFbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUyRFJXKToKKyAgICAgICAgKFRleHR1cmUyRFJX
LnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJEUlcucHJvdG90eXBl
LmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJEUlcucHJvdG90eXBlLmRlcHRoQXRM
ZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkRSVy5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAg
IChUZXh0dXJlMkRSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMkRB
cnJheVJXKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90eXBlLndpZHRoQXRMZXZl
bCk6CisgICAgICAgIChUZXh0dXJlMkRBcnJheVJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToK
KyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAg
ICAgIChUZXh0dXJlMkRBcnJheVJXLnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1
cmUyREFycmF5UlcucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTNEUlcp
OgorICAgICAgICAoVGV4dHVyZTNEUlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlM0RSVy5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJl
M0RSVy5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3Rv
dHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5zZXRFbGVtZW50
KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlT3BlcmF0aW9ucy5q
czogQWRkZWQuCisgICAgICAgIChkZXB0aENvbXBhcmVPcGVyYXRpb24pOgorICAgICAgICAoY29u
dmVyc2lvblRvUkdCQSk6CisgICAgICAgIChpbXBsaWNpdERlcml2YXRpdmUpOgorICAgICAgICAo
cHJvamVjdGlvbk9wZXJhdGlvbik6CisgICAgICAgIChjdWJlTWFwRmFjZVNlbGVjdGlvbik6Cisg
ICAgICAgIChjdWJlTWFwQ29vcmRpbmF0ZVRyYW5zZm9ybWF0aW9uKToKKyAgICAgICAgKGN1YmVN
YXBEZXJpdmF0aXZlVHJhbnNmb3JtYXRpb24pOgorICAgICAgICAoc2NhbGVGYWN0b3JPcGVyYXRp
b24pOgorICAgICAgICAobGV2ZWxPZkRldGFpbE9wZXJhdGlvbik6CisgICAgICAgIChuZWFyZXN0
KToKKyAgICAgICAgKGltYWdlTGV2ZWxTZWxlY3Rpb24pOgorICAgICAgICAoc3RycWFUb1VWV0FU
cmFuc2Zvcm1hdGlvbik6CisgICAgICAgIChybmUpOgorICAgICAgICAodXZ3YVRvSUpLTE5UcmFu
c2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJTZWxlY3Rpb24pOgorICAgICAgICAoaW50ZWdlclRleGVs
Q29vcmRpbmF0ZU9wZXJhdGlvbnMpOgorICAgICAgICAobWlycm9yKToKKyAgICAgICAgKHRyYW5z
Zm9ybSk6CisgICAgICAgICh3cmFwcGluZ09wZXJhdGlvbik6CisgICAgICAgICh0ZXhlbEdhdGhl
cmluZyk6CisgICAgICAgIChjb21wdXRlVGF1LnJlZHVjZSk6CisgICAgICAgIChjb21wdXRlVGF1
LnNob3VsZEJlQm9yZGVyKToKKyAgICAgICAgKGNvbXB1dGVUYXUuYWNjZXNzQ29sb3IpOgorICAg
ICAgICAoY29tcHV0ZVRhdSk6CisgICAgICAgICh0ZXhlbEZpbHRlcmluZyk6CisgICAgICAgIChz
YW1wbGVUZXh0dXJlKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5o
dG1sOgorCiAyMDE4LTA4LTMxICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5j
b20+CiAKICAgICAgICAgW1dITFNMXSBSZW1vdmUgdXNlbGVzcyBjb2RlIGluIE5hbWVSZXNvbHZl
cgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCmluZGV4IDljMmEzNzE1MGMxZTk3NmI5
MjZjZmJlZTIzNDM3NTIwYThkZTRhNDcuLjAwZmU1ZDAxMWJiMGM0YjVkMzU0NmM1ZDIwYThiY2Qw
YTMyZDM2M2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5q
cworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKQEAgLTE1MCw2ICsx
NTAsOCBAQCBsb2FkKCJTeW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzIik7CiBsb2FkKCJTeW50
aGVzaXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiKTsKIGxvYWQoIlN5bnRoZXNpemVEZWZh
dWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyIpOwogbG9hZCgiVGVybmFyeUV4cHJlc3Npb24uanMi
KTsKK2xvYWQoIlRleHR1cmUuanMiKTsKK2xvYWQoIlRleHR1cmVPcGVyYXRpb25zLmpzIik7CiBs
b2FkKCJUcmFwU3RhdGVtZW50LmpzIik7CiBsb2FkKCJUeXBlRGVmLmpzIik7CiBsb2FkKCJUeXBl
RGVmUmVzb2x2ZXIuanMiKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0ludHJpbnNpY3MuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5z
aWNzLmpzCmluZGV4IGIwMDQwNjdmNWViZmIzYThiNGJkOThlNDM3YThjMDc2OGJlMjZmMWUuLmI1
NzFhNGVhZjZiMTE0YjVlNTg3NWYwYmY1ZjdhOWVhYjQzNzQ5N2YgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMKKysrIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcwpAQCAtMzMwLDcgKzMzMCw4IEBAIGNsYXNz
IEludHJpbnNpY3MgewogICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIHNhbXBsZXIiLAogICAg
ICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAgICAgdGhpcy5zYW1wbGVyID0gdHlwZTsK
LSAgICAgICAgICAgICAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRvIHB1dCBoZXJlLgor
ICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgdHlwZS5wb3B1
bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQs
IHt9KTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIGZvciAobGV0IHRleHR1cmVUeXBlIG9m
IFsiVGV4dHVyZTFEIiwgIlJXVGV4dHVyZTFEIiwgIlRleHR1cmUxREFycmF5IiwgIlJXVGV4dHVy
ZTFEQXJyYXkiLCAiVGV4dHVyZTJEIiwgIlJXVGV4dHVyZTJEIiwgIlRleHR1cmUyREFycmF5Iiwg
IlJXVGV4dHVyZTJEQXJyYXkiLCAiVGV4dHVyZTNEIiwgIlJXVGV4dHVyZTNEIiwgIlRleHR1cmVD
dWJlIl0pIHsKQEAgLTMzOSwxMiArMzQwLDE2IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAg
ICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1l
bnR9PmAsCiAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAgICAgICAgICAgICAg
ICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmBdID0gdHlwZTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgICAg
ICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZm
ZXIuc2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAg
ICAgICBmb3IgKGxldCBpID0gMjsgaSA8PSA0OyArK2kpIHsKICAgICAgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdHlwZWRlZiAk
e3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0ke2l9PmAsCiAgICAgICAgICAgICAgICAgICAg
ICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1
cmVUeXBlfTwke3R5cGVBcmd1bWVudH0ke2l9PmBdID0gdHlwZTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5
cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQo
b2Zmc2V0LCB7fSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9CkBAIC0zNTYsNiArMzYxLDggQEAgY2xhc3MgSW50cmluc2ljcyB7
CiAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdHlwZWRlZiAke3RleHR1cmVUeXBlfTwke3R5
cGVBcmd1bWVudH0+YCwKICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YF0gPSB0
eXBlOworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQp
ID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCB7fSk7CiAgICAgICAgICAgICAgICAgICAgIH0pOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CkBAIC05MTQsNiArOTIxLDc4NyBAQCBjbGFzcyBJbnRyaW5z
aWNzIHsKIAogICAgICAgICBmb3IgKGxldCBzZXR0ZXIgb2YgQnVpbHRpbk1hdHJpeFNldHRlci5m
dW5jdGlvbnMoKSkKICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoc2V0dGVyLnRvU3RyaW5nKCks
IGZ1bmMgPT4gc2V0dGVyLmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYykpOworCisgICAg
ICAgIGZ1bmN0aW9uIGNoZWNrVW5kZWZpbmVkKG9yaWdpbiwgZXhwbGFuYXRpb24sIHZhbHVlKQor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAodmFsdWUgPT0gdW5kZWZpbmVkKQorICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBv
ZiBib3VuZHMiKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIGNoZWNrRmFsc2Uob3JpZ2luLCBleHBsYW5hdGlvbiwgdmFsdWUpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBmYWxzZSkKKyAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1RyYXBFcnJvcigiW1N0b3JlXSIsICJUZXh0dXJlIHN0b3JlIG91dCBvZiBib3Vu
ZHMiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHR5cGUgb2YgWyJ1Y2hhciIsICJ1
c2hvcnQiLCAidWludCIsICJjaGFyIiwgInNob3J0IiwgImludCIsICJoYWxmIiwgImZsb2F0Il0p
IHsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9IFNhbXBsZShUZXh0dXJlMUQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdCBsb2NhdGlvbilg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24ubG9h
ZFZhbHVlKCksIDAsIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQ
dHIuYm94KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFs
dWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQgbG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5sb2FkVmFsdWUoKSwgMCwgMCwgMSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQubG9hZFZh
bHVlKCksIDAsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHNh
bXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9j
YXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlMUQ8JHt0eXBlfT4saW50MiBsb2NhdGlvbilgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRl
eHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hl
Y2tlZCgwLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlMUQ8
JHt0eXBlfT4saW50MiBsb2NhdGlvbixpbnQgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gRVB0ci5ib3goY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQg
b3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9j
YXRpb24uZ2V0KDEpLCAwLCAwLCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZzZXQubG9hZFZhbHVlKCkp
KSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVu
c2lvbnMoVGV4dHVyZTFEPCR7dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRo
LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiUmVhZGluZyBmcm9t
IG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVs
KG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmUx
REFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIDAsIDAsIDEsIGxv
Y2F0aW9uLmdldCgxKV07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3go
c2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBs
b2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlMURBcnJheTwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MiBsb2NhdGlvbixpbnQgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgMCwgMCwgMSwgbG9jYXRpb24u
Z2V0KDEpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNl
dC5sb2FkVmFsdWUoKSwgMCwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0
ci5ib3goc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1
ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmUxREFycmF5PCR7dHlwZX0+LGludDMg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3goY2hlY2tVbmRlZmluZWQo
IltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVl
KCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAs
IGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlMURBcnJheTwke3R5cGV9PixpbnQzIGxvY2F0aW9uLGlu
dCBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9m
ZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChjaGVja1Vu
ZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5s
b2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMCwgbG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0LmxvYWRWYWx1ZSgpKSkpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1
cmUxREFycmF5PCR7dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQq
IHRocmVhZCBFbGVtZW50cyx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGVsZW1lbnRzLCBudW1iZXJP
ZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxv
YWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwu
bG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4Lmxl
dmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJy
b3IoIltsb2FkXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1
cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9t
KEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJD
b3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmUyRDwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHNhbXBsZVRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSBTYW1wbGUoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9u
LGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlv
bkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9m
ZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94
KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwg
bG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDIgbG9jYXRpb24sZmxvYXQgQmlhcylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHNhbXBsZVRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9h
dDIgbG9jYXRpb24sZmxvYXQgQmlhcyxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVs
dGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZh
bHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIGJp
YXMubG9hZFZhbHVlKCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1w
bGVHcmFkKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdDIg
RERYLGZsb2F0MiBERFkpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9j
YXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4
LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5
LmdldCgwKSwgZGR5LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
RVB0ci5ib3goc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRW
YWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRk
eUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmUyRDwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBERFksaW50MiBvZmZzZXQpYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBk
ZHksIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5
ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBk
ZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0g
W29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEVQdHIuYm94KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCBk
ZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmUyRDwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2Nh
dGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQ
dHIuYm94KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFs
dWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlMkQ8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgTE9ELGludDIgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3goc2FtcGxlVGV4dHVyZSh0
ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBk
ZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVl
KCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlv
bilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkg
eworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
KFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZz
ZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJSZWQoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4
dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckdyZWVuKFRleHR1cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4
dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1
cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJB
bHBoYShUZXh0dXJlMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1
cmUyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4
dHVyZTJEPCR7dHlwZX0+LGludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0
ci5ib3goY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5k
cyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDIp
LCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlMkQ8JHt0eXBlfT4s
aW50MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IEVQdHIuYm94KGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBi
b3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0aW9uLmdl
dCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDAp
ICsgb2Zmc2V0LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMkQ8JHt0eXBlfT4sdWludCBNaXBMZXZlbCx1
aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgTnVtYmVy
T2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lk
dGgsIGhlaWdodCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRocm93IG5ldyBXVHJhcEVycm9yKCJbbG9hZF0iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50
IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwg
MSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAg
ICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxl
dmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworCisgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0gU2FtcGxlKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChzYW1wbGVUZXh0dXJlKHRleHR1
cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5
ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQo
MildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0Lmdl
dCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
RVB0ci5ib3goc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRW
YWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmUyREFycmF5PCR7dHlw
ZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRp
b24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEVQdHIuYm94KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1
ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0
dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzLGlu
dDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIGJpYXMsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2Nh
dGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBb
b2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gRVB0ci5ib3goc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1w
bGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxvYWRWYWx1
ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0
dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdDIgRERYLGZs
b2F0MiBERFkpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25B
cnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24u
Z2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0
KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJh
eSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBFUHRyLmJveChzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBs
ZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBkZHhB
cnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZTJEQXJyYXk8
JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZLGlu
dDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIGRkeCwgZGR5LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwg
bG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9
IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSks
IDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHNhbXBsZVRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwg
dW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZUxldmVsKFRleHR1cmUyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uLGZsb2F0IExPRClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBsb2RdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRp
b25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRp
b24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChzYW1w
bGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0
aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9k
LmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9ELGludDIgb2Zmc2V0KWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0XSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0
KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0
KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChzYW1wbGVU
ZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9u
QXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxvZC5s
b2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlcihUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkRBcnJheTwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRBcnJh
eTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRBcnJheTwke3R5
cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0
dXJlMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJE
QXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRl
eHR1cmUyREFycmF5PCR7dHlwZX0+LGludDQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gRVB0ci5ib3goY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9m
IGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0
KDMpLCBsb2NhdGlvbi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDAp
KSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2Fk
KFRleHR1cmUyREFycmF5PCR7dHlwZX0+LGludDQgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChjaGVja1VuZGVmaW5lZCgiW0xvYWRd
IiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVt
ZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMyksIGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24u
Z2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0LmdldCgwKSkp
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5z
aW9ucyhUZXh0dXJlMkRBcnJheTwke3R5cGV9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBX
aWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBFbGVtZW50cyx1aW50KiB0aHJl
YWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBs
ZXZlbCwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHMsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3VudCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW2xvYWRdIiwgIlJlYWRp
bmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWln
aHRBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBudW1i
ZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCks
IDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBT
YW1wbGUoVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBFUHRyLmJveChzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCks
IHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmUzRDwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9mZnNldClgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCks
IGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSks
IG9mZnNldC5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94
KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwg
bG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX00IEdhdGhlcihUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50
MyBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyUmVkKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9m
ZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckdyZWVuKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9m
ZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUzRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkg
eworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
Qmx1ZShUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MyBvZmZz
ZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
b2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyQWxwaGEoVGV4dHVyZTNEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJB
bHBoYShUZXh0dXJlM0Q8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MyBvZmZz
ZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
b2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSBMb2FkKFRleHR1cmUzRDwke3R5cGV9PixpbnQ0IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIEVQdHIuYm94KGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91
dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0
aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdl
dCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0g
TG9hZChUZXh0dXJlM0Q8JHt0eXBlfT4saW50NCBsb2NhdGlvbixpbnQzIG9mZnNldClgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0i
LCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1l
bnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIpICsgb2Zmc2V0Lmdl
dCgyKSwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApICsg
b2Zmc2V0LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
IHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlM0Q8JHt0eXBlfT4sdWludCBNaXBMZXZlbCx1aW50
KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRGVwdGgsdWlu
dCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBudW1iZXJPZkxldmVsc10pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJS
ZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGRlcHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5k
ZXB0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwg
MSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAg
ICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxl
dmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworCisgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0gU2FtcGxlKFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGN1YmVtYXAg
c2FtcGxpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0g
U2FtcGxlQmlhcyhUZXh0dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixm
bG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IGN1YmVtYXAgc2FtcGxpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbixmbG9hdDMgRERYLGZsb2F0MyBERFkpYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGN1YmVtYXAgc2FtcGxpbmcKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVy
ZUN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgY3ViZW1hcCBzYW1wbGlu
ZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
KFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZUN1
YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmVDdWJlPCR7dHlw
ZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmVDdWJlPCR7dHlwZX0+LHNhbXBs
ZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBH
ZXREaW1lbnNpb25zKFRleHR1cmVDdWJlPCR7dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhy
ZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxz
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWln
aHQsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9
IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQg
PSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXgu
bGF5ZXJDb3VudCAhPSA2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBF
cnJvcigiQ3ViZSB0ZXh0dXJlIGRvZXNuJ3QgaGF2ZSA2IGZhY2VzIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltsb2FkXSIsICJSZWFkaW5nIGZyb20g
bm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZl
bChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgp
LmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTFEPCR7dHlwZX0+LHVpbnQq
IHRocmVhZCBXaWR0aClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4dHVyZS5sb2FkVmFsdWUoKS53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTFEPCR7dHlw
ZX0+LGZsb2F0KiB0aHJlYWQgV2lkdGgpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCB3aWR0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleHR1cmUubG9hZFZhbHVlKCkud2lkdGgpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChSV1RleHR1cmUxRDwk
e3R5cGV9PixpbnQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwg
bG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3goY2hl
Y2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1
cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgMCwgMCwgMCwgbG9jYXRpb24ubG9hZFZh
bHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0
b3JlKFJXVGV4dHVyZTFEPCR7dHlwZX0+LCR7dHlwZX0sdWludCBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBjaGVja0ZhbHNlKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBi
b3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKDAsIDAsIDAsIDAs
IGxvY2F0aW9uLmxvYWRWYWx1ZSgpLCB2YWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVy
ZTFEQXJyYXk8JHt0eXBlfT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBFbGVtZW50
cylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBlbGVtZW50c10pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRo
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVy
ZTFEQXJyYXk8JHt0eXBlfT4sZmxvYXQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgRWxlbWVu
dHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgZWxlbWVudHNdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0
aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChSV1RleHR1cmUxREFy
cmF5PCR7dHlwZX0+LGludDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5i
b3goY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIs
IHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDEpLCAwLCAw
LCAwLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfT4sJHt0eXBlfSx1aW50
MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0ZhbHNlKCJbTG9hZF0iLCAi
VGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1l
bnRDaGVja2VkKGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgMCwgbG9jYXRpb24uZ2V0KDApLCB2YWx1
ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisKKyAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTJEPCR7dHlwZX0+LHVpbnQqIHRocmVhZCBX
aWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgd2lkdGgsIGhlaWdodF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0
ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCks
IDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1l
bnNpb25zKFJXVGV4dHVyZTJEPCR7dHlwZX0+LGZsb2F0KiB0aHJlYWQgV2lkdGgsZmxvYXQqIHRo
cmVhZCBIZWlnaHQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVp
Z2h0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZh
bHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lk
dGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoUldUZXh0dXJlMkQ8
JHt0eXBlfT4saW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChj
aGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4
dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSks
IGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMkQ8JHt0eXBlfT4sJHt0eXBlfSx1aW50MiBsb2NhdGlv
bilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0ZhbHNlKCJbTG9hZF0iLCAiVGV4dHVyZSBy
ZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2Vk
KDAsIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApLCB2YWx1ZS5sb2FkVmFs
dWUoKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisKKyAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBH
ZXREaW1lbnNpb25zKFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBlfT4sdWludCogdGhyZWFkIFdpZHRo
LHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHNdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRl
eC5sYXllckNvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAg
ICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwg
MSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVu
c2lvbnMoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9PixmbG9hdCogdGhyZWFkIFdpZHRoLGZsb2F0
KiB0aHJlYWQgSGVpZ2h0LGZsb2F0KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50c10pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxh
eWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUo
KS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChSV1Rl
eHR1cmUyREFycmF5PCR7dHlwZX0+LGludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gRVB0ci5ib3goY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9m
IGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0
KDIpLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMkRBcnJh
eTwke3R5cGV9Piwke3R5cGV9LHVpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGNoZWNrRmFsc2UoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1
cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDIpLCAwLCAwLCBs
b2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSwgdmFsdWUubG9hZFZhbHVlKCkpKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9u
cyhSV1RleHR1cmUzRDwke3R5cGV9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhl
aWdodCx1aW50KiB0aHJlYWQgRGVwdGgpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCB3aWR0aCwgaGVpZ2h0LCBkZXB0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0
ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGgu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmRlcHRoKSwgMSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmhl
aWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlM0Q8JHt0eXBlfT4sZmxv
YXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhyZWFkIEhlaWdodCxmbG9hdCogdGhyZWFkIERlcHRo
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZGVwdGhd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC5kZXB0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0Lmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0
aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBM
b2FkKFJXVGV4dHVyZTNEPCR7dHlwZX0+LGludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gRVB0ci5ib3goY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0
IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgMCwgbG9j
YXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlM0Q8
JHt0eXBlfT4sJHt0eXBlfSx1aW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24g
KFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBj
aGVja0ZhbHNlKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJl
LmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKDAsIDAsIGxvY2F0aW9uLmdldCgyKSwgbG9j
YXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgZnVu
Y3Rpb24gYm94VmVjdG9yKGEpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbGV0IHJl
c3VsdCA9IG5ldyBFUHRyKG5ldyBFQnVmZmVyKGEubGVuZ3RoKSwgMCk7CisgICAgICAgICAgICAg
ICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgICAgICAg
ICByZXN1bHQuc2V0KGksIGFbaV0pOworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAobGV0IGxlbmd0aCBvZiBbMiwgMywgNF0p
IHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KIAogICAgIGFkZCh0aGluZykKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVSZXNvbHZlci5qcyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVSZXNvbHZlci5qcwppbmRleCBhNWRh
MmNhNWMxZTJiOWVkZWUwOTVmMTY2NGEyYmM0YjhmMzA4Mjg0Li45YTA5OWY0ODVlNmU5MjdlMTY0
MzdiYmY4MjY0MWY2MWU0NTI1Y2YxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9OYW1lUmVzb2x2ZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmFtZVJlc29sdmVyLmpzCkBAIC0xNjYsNiArMTY2LDE2IEBAIGNsYXNzIE5hbWVSZXNvbHZl
ciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICBzdXBlci52aXNpdFJldHVybihub2RlKTsKICAg
ICB9CiAgICAgCisgICAgX2hhbmRsZVByb3BlcnR5QWNjZXNzKG5vZGUpCisgICAgeworICAgICAg
ICBub2RlLnBvc3NpYmxlR2V0T3ZlcmxvYWRzID0gdGhpcy5fbmFtZUNvbnRleHQuZ2V0KEZ1bmMs
IG5vZGUuZ2V0RnVuY05hbWUpOworICAgICAgICBub2RlLnBvc3NpYmxlU2V0T3ZlcmxvYWRzID0g
dGhpcy5fbmFtZUNvbnRleHQuZ2V0KEZ1bmMsIG5vZGUuc2V0RnVuY05hbWUpOworICAgICAgICBu
b2RlLnBvc3NpYmxlQW5kT3ZlcmxvYWRzID0gdGhpcy5fbmFtZUNvbnRleHQuZ2V0KEZ1bmMsIG5v
ZGUuYW5kRnVuY05hbWUpOworCisgICAgICAgIGlmICghbm9kZS5wb3NzaWJsZUdldE92ZXJsb2Fk
cyAmJiAhbm9kZS5wb3NzaWJsZUFuZE92ZXJsb2FkcykKKyAgICAgICAgICAgIHRocm93IG5ldyBX
VHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkNhbm5vdCBmaW5kIGVpdGhlciAi
ICsgbm9kZS5nZXRGdW5jTmFtZSArICIgb3IgIiArIG5vZGUuYW5kRnVuY05hbWUpOworICAgIH0K
KyAgICAKICAgICB2aXNpdERvdEV4cHJlc3Npb24obm9kZSkKICAgICB7CiAgICAgICAgIC8vIFRo
aXMgY291bGQgYmUgYSByZWZlcmVuY2UgdG8gYW4gZW51bS4gTGV0J3MgcmVzb2x2ZSB0aGF0IG5v
dy4KQEAgLTE4MCw5ICsxOTAsMTYgQEAgY2xhc3MgTmFtZVJlc29sdmVyIGV4dGVuZHMgVmlzaXRv
ciB7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgCisgICAgICAgIHRoaXMuX2hh
bmRsZVByb3BlcnR5QWNjZXNzKG5vZGUpOwogICAgICAgICBzdXBlci52aXNpdERvdEV4cHJlc3Np
b24obm9kZSk7CiAgICAgfQogICAgIAorICAgIHZpc2l0SW5kZXhFeHByZXNzaW9uKG5vZGUpCisg
ICAgeworICAgICAgICB0aGlzLl9oYW5kbGVQcm9wZXJ0eUFjY2Vzcyhub2RlKTsKKyAgICAgICAg
c3VwZXIudmlzaXRJbmRleEV4cHJlc3Npb24obm9kZSk7CisgICAgfQorICAgIAogICAgIHZpc2l0
Q2FsbEV4cHJlc3Npb24obm9kZSkKICAgICB7CiAgICAgICAgIGxldCBmdW5jcyA9IHRoaXMuX25h
bWVDb250ZXh0LmdldChGdW5jLCBub2RlLm5hbWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1NQSVJWLmh0bWwKaW5kZXggNzhkMDA4ZjgzNWY5ZTljMjM0ZWYyZGY2ZDZkZWVhM2Y3NDI2
Y2U2NS4uMDYxYTQ3NjQxNGZlMmIyOTI4N2VlMGMzZDk0YmYwMjdlYWU0ZjAwYyAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbAorKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCkBAIC0xMzMsNiArMTMzLDggQEAgdGQg
ewogICAgIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9y
T3BlcmF0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lv
bi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlRleHR1cmUuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJUZXh0dXJlT3BlcmF0aW9ucy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJU
eXBlRGVmLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpz
Ij48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0
YW5kYXJkTGlicmFyeS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJk
TGlicmFyeS5qcwppbmRleCAzZGQ0ZmVlMTg2MDBkNWNkMmE4OTVhZDVhNDc5NzIxZGE3Nzg4Y2Mx
Li5kOGUxNjc2NTc5NGNkMDEzMDlkZTQ0NzlkMjdkNzVlMTI3MzAzNTNmIDEwMDY0NAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCkBAIC01Nyw3ICs1
Nyw3IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgIH0KICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSB0eXBlZGVmIHNhbXBsZXI7YCk7CiAgICAgICAgIGZvciAodmFy
IHR5cGUgb2YgW2BUZXh0dXJlMURgLCBgUldUZXh0dXJlMURgLCBgVGV4dHVyZTFEQXJyYXlgLCBg
UldUZXh0dXJlMURBcnJheWAsIGBUZXh0dXJlMkRgLCBgUldUZXh0dXJlMkRgLCBgVGV4dHVyZTJE
QXJyYXlgLCBgUldUZXh0dXJlMkRBcnJheWAsIGBUZXh0dXJlM0RgLCBgUldUZXh0dXJlM0RgLCBg
VGV4dHVyZUN1YmVgXSkgewotICAgICAgICAgICAgZm9yICh2YXIgdHlwZUFyZ3VtZW50QmFzZSBv
ZiBbYGJvb2xgLCBgdWNoYXJgLCBgdXNob3J0YCwgYHVpbnRgLCBgY2hhcmAsIGBzaG9ydGAsIGBp
bnRgLCBgaGFsZmAsIGBmbG9hdGBdKSB7CisgICAgICAgICAgICBmb3IgKHZhciB0eXBlQXJndW1l
bnRCYXNlIG9mIFtgdWNoYXJgLCBgdXNob3J0YCwgYHVpbnRgLCBgY2hhcmAsIGBzaG9ydGAsIGBp
bnRgLCBgaGFsZmAsIGBmbG9hdGBdKSB7CiAgICAgICAgICAgICAgICAgZm9yICh2YXIgc2l6ZSBv
ZiBbYGAsIGAyYCwgYDNgLCBgNGBdKSB7CiAgICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgdHlwZWRlZiAke3R5cGV9PCR7dHlwZUFyZ3VtZW50QmFzZX0ke3NpemV9PjtgKTsKICAgICAg
ICAgICAgICAgICB9CkBAIC0xODk3LDkgKzE4OTcsMTAgQEAgbGV0IHN0YW5kYXJkTGlicmFyeSA9
IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBJbnRlcmxvY2tl
ZENvbXBhcmVFeGNoYW5nZSh0aHJlYWQgYXRvbWljXyR7dHlwZX0qLCAke3R5cGV9LCAke3R5cGV9
LCB0aHJlYWQgJHt0eXBlfSopO2ApOwogICAgICAgICB9CiAgICAgICAgIHByaW50KCk7Ci0gICAg
ICAgIAorICAgICAgICAqLworCiAgICAgICAgIGZvciAodmFyIHR5cGUgb2YgW2B1Y2hhcmAsIGB1
c2hvcnRgLCBgdWludGAsIGBjaGFyYCwgYHNob3J0YCwgYGludGAsIGBoYWxmYCwgYGZsb2F0YF0p
IHsKLSAgICAgICAgICAgIGZvciAodmFyIGxlbmd0aCBvZiBbYGAsIGAyYCwgYDNgLCBgNGBdKSB7
CisgICAgICAgICAgICBmb3IgKHZhciBsZW5ndGggb2YgW2BgLyosIGAyYCwgYDNgLCBgNGAqL10p
IHsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxl
KFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pO2Ap
OwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUo
VGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbiwgaW50
IG9mZnNldCk7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IExvYWQoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LCBpbnQyIGxvY2F0aW9uKTtgKTsK
QEAgLTIwMTAsNyArMjAxMSw4IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7
CiAgICAgICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAg
ICAgICAKKworICAgICAgICAvKgogICAgICAgICBmb3IgKHZhciB0eXBlIG9mIFtgaGFsZmAsIGBm
bG9hdGBdKSB7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwogICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKaW5kZXggNjA3YTY5NTMyNTNkYTcyN2IxZGUzNzY3
OGVjMzg4YjRmYTI0MDQwNS4uMGUwODk1ZDk5ODcyNGZiY2RiYjNlZDgxZTNjNTUzMTVlNTYzZWFk
YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sCisr
KyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbApAQCAtMTI3LDYgKzEy
Nyw4IEBACiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3Bl
cmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRlcm5hcnlFeHByZXNzaW9uLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUZXh0dXJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJUZXh0dXJlT3BlcmF0aW9ucy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHJhcFN0YXRl
bWVudC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4KQEAgLTE1Miw3ICsxNTQs
NyBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIGRvVGVzdEluQnJvd3NlcigpCiB7Ci0gICAgdmFyIHRl
c3RlciA9IGRvVGVzdCgvLiovKTsKKyAgICB2YXIgdGVzdGVyID0gZG9UZXN0KC90ZXh0dXJlU2Ft
cGxlLyk7CiAgICAgdmFyIGxhc3RUaW1lOwogICAgIGZ1bmN0aW9uIG5leHQoKQogICAgIHsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCmluZGV4IDRhMTFjMTg1ODU5OTc3OGZmMzkx
YjA0ZjI2MzVjNWI3MTAwNWRmN2YuLjM5MTgwNmI0ZjViYWY2N2FhNGMxOWRjYWNkNzdjOTllN2Nh
ZjIyZGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMK
KysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwpAQCAtOTQsNiArOTQs
MTQ0IEBAIGZ1bmN0aW9uIG1ha2VFbnVtKHByb2dyYW0sIGVudW1OYW1lLCB2YWx1ZSkKICAgICBy
ZXR1cm4gVHlwZWRWYWx1ZS5ib3goZW51bVR5cGUsIGVudW1NZW1iZXIudmFsdWUudW5pZnlOb2Rl
LnZhbHVlRm9yU2VsZWN0ZWRUeXBlKTsKIH0KIAorZnVuY3Rpb24gbWFrZVNhbXBsZXIocHJvZ3Jh
bSwgZGljdCkKK3sKKyAgICAvLyBlbnVtIFdlYkdQVUFkZHJlc3NNb2RlIHsKKyAgICAvLyAgICAg
ImNsYW1wVG9FZGdlIiwKKyAgICAvLyAgICAgInJlcGVhdCIsCisgICAgLy8gICAgICJtaXJyb3JS
ZXBlYXQiLAorICAgIC8vICAgICAiY2xhbXBUb0JvcmRlckNvbG9yIgorICAgIC8vIH0KKyAgICAv
LworICAgIC8vIGVudW0gV2ViR1BVRmlsdGVyTW9kZSB7CisgICAgLy8gICAgICJuZWFyZXN0IiwK
KyAgICAvLyAgICAgImxpbmVhciIKKyAgICAvLyB9CisgICAgLy8KKyAgICAvLyBlbnVtIFdlYkdQ
VUNvbXBhcmVGdW5jdGlvbiB7CisgICAgLy8gICAgICJuZXZlciIsCisgICAgLy8gICAgICJsZXNz
IiwKKyAgICAvLyAgICAgImVxdWFsIiwKKyAgICAvLyAgICAgImxlc3NFcXVhbCIsCisgICAgLy8g
ICAgICJncmVhdGVyIiwKKyAgICAvLyAgICAgIm5vdEVxdWFsIiwKKyAgICAvLyAgICAgImdyZWF0
ZXJFcXVhbCIsCisgICAgLy8gICAgICJhbHdheXMiCisgICAgLy8gfQorICAgIC8vCisgICAgLy8g
ZW51bSBXZWJHUFVCb3JkZXJDb2xvciB7CisgICAgLy8gICAgICJ0cmFuc3BhcmVudEJsYWNrIiwK
KyAgICAvLyAgICAgIm9wYXF1ZUJsYWNrIiwKKyAgICAvLyAgICAgIm9wYXF1ZVdoaXRlIgorICAg
IC8vIH0KKyAgICAvLworICAgIC8vIGRpY3Rpb25hcnkgV2ViR1BVU2FtcGxlckRlc2NyaXB0b3Ig
eworICAgIC8vICAgICBXZWJHUFVkZHJlc3NNb2RlIHJBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRn
ZSI7CisgICAgLy8gICAgIFdlYkdQVWRkcmVzc01vZGUgc0FkZHJlc3NNb2RlID0gImNsYW1wVG9F
ZGdlIjsKKyAgICAvLyAgICAgV2ViR1BVZGRyZXNzTW9kZSB0QWRkcmVzc01vZGUgPSAiY2xhbXBU
b0VkZ2UiOworICAgIC8vICAgICBXZWJHUFVGaWx0ZXJNb2RlRW51bSBtYWdGaWx0ZXIgPSAibmVh
cmVzdCI7CisgICAgLy8gICAgIFdlYkdQVUZpbHRlck1vZGVFbnVtIG1pbkZpbHRlciA9ICJuZWFy
ZXN0IjsKKyAgICAvLyAgICAgV2ViR1BVRmlsdGVyTW9kZUVudW0gbWlwbWFwRmlsdGVyID0gIm5l
YXJlc3QiOworICAgIC8vICAgICBmbG9hdCBsb2RNaW5DbGFtcCA9IDA7CisgICAgLy8gICAgIGZs
b2F0IGxvZE1heENsYW1wID0gTnVtYmVyLk1BWF9WQUxVRTsKKyAgICAvLyAgICAgdW5zaWduZWQg
bG9uZyBtYXhBbmlzb3Ryb3B5ID0gMTsKKyAgICAvLyAgICAgV2ViR1BVQ29tcGFyZUZ1bmN0aW9u
IGNvbXBhcmVGdW5jdGlvbiA9ICJuZXZlciI7CisgICAgLy8gICAgIFdlYkdQVUJvcmRlckNvbG9y
IGJvcmRlckNvbG9yID0gInRyYW5zcGFyZW50QmxhY2siOworICAgIC8vIH07CisKKyAgICBsZXQg
c2FtcGxlckRhdGEgPSB7fTsKKyAgICBzYW1wbGVyRGF0YS5yQWRkcmVzc01vZGUgPSBkaWN0LnJB
ZGRyZXNzTW9kZTsKKyAgICBzYW1wbGVyRGF0YS5zQWRkcmVzc01vZGUgPSBkaWN0LnNBZGRyZXNz
TW9kZTsKKyAgICBzYW1wbGVyRGF0YS50QWRkcmVzc01vZGUgPSBkaWN0LnRBZGRyZXNzTW9kZTsK
KyAgICBzYW1wbGVyRGF0YS5tYWdGaWx0ZXIgPSBkaWN0Lm1hZ0ZpbHRlcjsKKyAgICBzYW1wbGVy
RGF0YS5taW5GaWx0ZXIgPSBkaWN0Lm1pbkZpbHRlcjsKKyAgICBzYW1wbGVyRGF0YS5taXBtYXBG
aWx0ZXIgPSBkaWN0Lm1pcG1hcEZpbHRlcjsKKyAgICBzYW1wbGVyRGF0YS5sb2RNaW5DbGFtcCA9
IGRpY3QubG9kTWluQ2xhbXA7CisgICAgc2FtcGxlckRhdGEubG9kTWF4Q2xhbXAgPSBkaWN0Lmxv
ZE1heENsYW1wOworICAgIHNhbXBsZXJEYXRhLm1heEFuaXNvdHJvcHkgPSBkaWN0Lm1heEFuaXNv
dHJvcHk7CisgICAgc2FtcGxlckRhdGEuY29tcGFyZUZ1bmN0aW9uID0gZGljdC5jb21wYXJlRnVu
Y3Rpb247CisgICAgc2FtcGxlckRhdGEuYm9yZGVyQ29sb3IgPSBkaWN0LmJvcmRlckNvbG9yOwor
CisgICAgaWYgKHNhbXBsZXJEYXRhLnJBZGRyZXNzTW9kZSA9PSB1bmRlZmluZWQpCisgICAgICAg
IHNhbXBsZXJEYXRhLnJBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAgaWYgKHNhbXBs
ZXJEYXRhLnNBZGRyZXNzTW9kZSA9PSB1bmRlZmluZWQpCisgICAgICAgIHNhbXBsZXJEYXRhLnNB
ZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAgaWYgKHNhbXBsZXJEYXRhLnRBZGRyZXNz
TW9kZSA9PSB1bmRlZmluZWQpCisgICAgICAgIHNhbXBsZXJEYXRhLnRBZGRyZXNzTW9kZSA9ICJj
bGFtcFRvRWRnZSI7CisgICAgaWYgKHNhbXBsZXJEYXRhLm1pbkZpbHRlciA9PSB1bmRlZmluZWQp
CisgICAgICAgIHNhbXBsZXJEYXRhLm1pbkZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICBpZiAoc2Ft
cGxlckRhdGEubWFnRmlsdGVyID09IHVuZGVmaW5lZCkKKyAgICAgICAgc2FtcGxlckRhdGEubWFn
RmlsdGVyID0gIm5lYXJlc3QiOworICAgIGlmIChzYW1wbGVyRGF0YS5taXBGaWx0ZXIgPT0gdW5k
ZWZpbmVkKQorICAgICAgICBzYW1wbGVyRGF0YS5taXBGaWx0ZXIgPSAibmVhcmVzdCI7CisgICAg
aWYgKHNhbXBsZXJEYXRhLmxvZE1pbkNsYW1wID09IHVuZGVmaW5lZCkKKyAgICAgICAgc2FtcGxl
ckRhdGEubG9kTWluQ2xhbXAgPSAtTnVtYmVyLk1BWF9WQUxVRTsKKyAgICBpZiAoc2FtcGxlckRh
dGEubG9kTWF4Q2xhbXAgPT0gdW5kZWZpbmVkKQorICAgICAgICBzYW1wbGVyRGF0YS5sb2RNYXhD
bGFtcCA9IE51bWJlci5NQVhfVkFMVUU7CisgICAgaWYgKHNhbXBsZXJEYXRhLm1heEFuaXNvdHJv
cHkgPT0gdW5kZWZpbmVkKQorICAgICAgICBzYW1wbGVyRGF0YS5tYXhBbmlzb3Ryb3B5ID0gMTsK
KyAgICBpZiAoc2FtcGxlckRhdGEuY29tcGFyZUZ1bmN0aW9uID09IHVuZGVmaW5lZCkKKyAgICAg
ICAgc2FtcGxlckRhdGEuY29tcGFyZUZ1bmN0aW9uID0gIm5ldmVyIjsKKyAgICBpZiAoc2FtcGxl
ckRhdGEuYm9yZGVyQ29sb3IgPT0gdW5kZWZpbmVkKQorICAgICAgICBzYW1wbGVyRGF0YS5ib3Jk
ZXJDb2xvciA9ICJ0cmFuc3BhcmVudEJsYWNrIjsKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3go
cHJvZ3JhbS5pbnRyaW5zaWNzLnNhbXBsZXIsIHNhbXBsZXJEYXRhKTsKK30KKworZnVuY3Rpb24g
bWFrZTFEVGV4dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1
cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlMUQ8JHtlbGVtZW50
VHlwZX0+YF0sIG5ldyBUZXh0dXJlMUQoZWxlbWVudFR5cGUsIG1pcG1hcHMpKTsKK30KKworZnVu
Y3Rpb24gbWFrZTFEVGV4dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sK
KyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlMURB
cnJheTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUxREFycmF5KGVsZW1lbnRUeXBlLCBh
cnJheSkpOworfQorCitmdW5jdGlvbiBtYWtlMkRUZXh0dXJlKHByb2dyYW0sIG1pcG1hcHMsIGVs
ZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNp
Y3NbYFRleHR1cmUyRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUyRChlbGVtZW50VHlw
ZSwgbWlwbWFwcykpOworfQorCitmdW5jdGlvbiBtYWtlMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwg
YXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFt
LmludHJpbnNpY3NbYFRleHR1cmUyREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVy
ZTJEQXJyYXkoZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UzRFRleHR1
cmUocHJvZ3JhbSwgbWlwbWFwcywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFs
dWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZTNEPCR7ZWxlbWVudFR5cGV9PmBdLCBu
ZXcgVGV4dHVyZTNEKGVsZW1lbnRUeXBlLCBtaXBtYXBzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VU
ZXh0dXJlQ3ViZShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5
cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZUN1YmU8JHtlbGVtZW50VHlw
ZX0+YF0sIG5ldyBUZXh0dXJlQ3ViZShlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rp
b24gbWFrZVJXMURUZXh0dXJlKHByb2dyYW0sIGVsZW1lbnRzLCBlbGVtZW50VHlwZSkKK3sKKyAg
ICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUxRDwk
e2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUxRFJXKGVsZW1lbnRUeXBlLCBlbGVtZW50cykp
OworfQorCitmdW5jdGlvbiBtYWtlUlcxRFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxl
bWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2lj
c1tgUldUZXh0dXJlMURBcnJheTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUxREFycmF5
UlcoZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzJEVGV4dHVyZShw
cm9ncmFtLCByb3dzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3go
cHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUyRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRl
eHR1cmUyRFJXKGVsZW1lbnRUeXBlLCByb3dzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzJEVGV4
dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlw
ZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUyREFycmF5PCR7ZWxlbWVu
dFR5cGV9PmBdLCBuZXcgVGV4dHVyZTJEQXJyYXlSVyhlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30K
KworZnVuY3Rpb24gbWFrZVJXM0RUZXh0dXJlKHByb2dyYW0sIGRlcHRoU2xpY2VzLCBlbGVtZW50
VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BS
V1RleHR1cmUzRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUzRFJXKGVsZW1lbnRUeXBl
LCBkZXB0aFNsaWNlcykpOworfQorCiBmdW5jdGlvbiBjaGVja051bWJlcihwcm9ncmFtLCByZXN1
bHQsIGV4cGVjdGVkKQogewogICAgIGlmICghcmVzdWx0LnR5cGUudW5pZnlOb2RlLmlzTnVtYmVy
KQpAQCAtNTU4Miw3ICs1NzIwLDc1MyBAQCB0ZXN0cy5hcnJheUluZGV4ID0gZnVuY3Rpb24oKSB7
CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUluZGV4
aW5nIiwgWyBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMikgXSksIDMp
OwogICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJbmRl
eGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApIF0pLCA0
KTsKICAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5k
ZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSBdKSwg
NSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUlu
ZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMikgXSks
IDYpOyAgICAKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFy
cmF5SW5kZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAy
KSBdKSwgNik7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9ncmFt
KQoreworICAgIGxldCB0ZXh0dXJlMUQgPSBtYWtlMURUZXh0dXJlKHByb2dyYW0sIFtbMSwgNywg
MTQsIDc5XSwgWzEzLCAxNl0sIFsxNV1dLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZTFEQXJy
YXkgPSBtYWtlMURUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbMSwgNywgMTQsIDc5XSwgWzEzLCAx
Nl0sIFsxNV1dLCBbWzE2LCAxNywgMTgsIDE5XSwgWzIwLCAyMV0sIFsyMl1dXSwgImZsb2F0Iik7
CisgICAgbGV0IHRleHR1cmUyRCA9IG1ha2UyRFRleHR1cmUocHJvZ3JhbSwgWworICAgICAgICBb
WzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0
LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAg
ICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAz
NCwgMzUsIDM2XSwKKyAgICAgICAgWzM3LCAzOCwgMzksIDQwXV0sCisgICAgICAgIFtbNDEsIDQy
XV0KKyAgICBdLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZTJEQXJyYXkgPSBtYWtlMkRUZXh0
dXJlQXJyYXkocHJvZ3JhbSwgW1sKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwK
KyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAx
OCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjks
IDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNl0sCisgICAgICAgIFszNywg
MzgsIDM5LCA0MF1dLAorICAgICAgICBbWzQxLCA0Ml1dCisgICAgXSwgWworICAgICAgICBbWzQz
LCA0NCwgNDUsIDQ2LCA0NywgNDgsIDQ5LCA1MF0sCisgICAgICAgIFs1MSwgNTIsIDUzLCA1NCwg
NTUsIDU2LCA1NywgNThdLAorICAgICAgICBbNTksIDYwLCA2MSwgNjIsIDYzLCA2NCwgNjUsIDY2
XSwKKyAgICAgICAgWzY3LCA2OCwgNjksIDcwLCA3MSwgNzIsIDczLCA3NF1dLAorICAgICAgICBb
Wzc1LCA3NiwgNzcsIDc4XSwKKyAgICAgICAgWzc5LCA4MCwgODEsIDgyXV0sCisgICAgICAgIFtb
ODMsIDg0XV0KKyAgICBdXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmUzRCA9IG1ha2UzRFRl
eHR1cmUocHJvZ3JhbSwgWworICAgICAgICBbW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAg
ICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwg
MTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMw
LCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDBdLAor
ICAgICAgICBbNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4XSwKKyAgICAgICAgWzQ5LCA1
MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1Nl0sCisgICAgICAgIFs1NywgNTgsIDU5LCA2MCwgNjEs
IDYyLCA2MywgNjRdXV0sCisgICAgICAgIFtbWzY1LCA2NiwgNjcsIDY4XSwKKyAgICAgICAgWzY5
LCA3MCwgNzEsIDcyXV1dCisgICAgXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmVDdWJlID0g
bWFrZVRleHR1cmVDdWJlKHByb2dyYW0sIFtbCisgICAgICAgIFtbMSwgMl0sCisgICAgICAgIFsz
LCA0XSwKKyAgICAgICAgWzUsIDZdLAorICAgICAgICBbNywgOF1dLAorICAgICAgICBbWzldLAor
ICAgICAgICBbMTBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbMTEsIDEyXSwKKyAgICAgICAgWzEz
LCAxNF0sCisgICAgICAgIFsxNSwgMTZdLAorICAgICAgICBbMTcsIDE4XV0sCisgICAgICAgIFtb
MTldLAorICAgICAgICBbMjBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbMjEsIDIyXSwKKyAgICAg
ICAgWzIzLCAyNF0sCisgICAgICAgIFsyNSwgMjZdLAorICAgICAgICBbMjcsIDI4XV0sCisgICAg
ICAgIFtbMjldLAorICAgICAgICBbMzBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbMzEsIDMyXSwK
KyAgICAgICAgWzMzLCAzNF0sCisgICAgICAgIFszNSwgMzZdLAorICAgICAgICBbMzcsIDM4XV0s
CisgICAgICAgIFtbMzldLAorICAgICAgICBbNDBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbNDEs
IDQyXSwKKyAgICAgICAgWzQzLCA0NF0sCisgICAgICAgIFs0NSwgNDZdLAorICAgICAgICBbNDcs
IDQ4XV0sCisgICAgICAgIFtbNDldLAorICAgICAgICBbNTBdXSwKKyAgICBdLCBbCisgICAgICAg
IFtbNTEsIDUyXSwKKyAgICAgICAgWzUzLCA1NF0sCisgICAgICAgIFs1NSwgNTZdLAorICAgICAg
ICBbNTcsIDU4XV0sCisgICAgICAgIFtbNTldLAorICAgICAgICBbNjBdXSwKKyAgICBdXSwgImZs
b2F0Iik7CisgICAgbGV0IHJ3VGV4dHVyZTFEID0gbWFrZVJXMURUZXh0dXJlKHByb2dyYW0sIFsx
LCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4dHVyZTFEQXJy
YXkgPSBtYWtlUlcxRFRleHR1cmVBcnJheShwcm9ncmFtLCBbWzEsIDIsIDMsIDQsIDUsIDYsIDcs
IDhdLCBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLCBbMTcsIDE4LCAxOSwgMjAsIDIx
LCAyMiwgMjMsIDI0XV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmUyRCA9IG1ha2VSVzJE
VGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAgIFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAg
ICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwg
MTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMw
LCAzMSwgMzJdXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4dHVyZTJEQXJyYXkgPSBtYWtlUlcy
RFRleHR1cmVBcnJheShwcm9ncmFtLCBbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywg
OF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsx
NywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgs
IDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzks
IDQwXSwKKyAgICAgICAgWzQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OF0sCisgICAgICAg
IFs0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTZdLAorICAgICAgICBbNTcsIDU4LCA1OSwg
NjAsIDYxLCA2MiwgNjMsIDY0XV1dLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlM0QgPSBt
YWtlUlczRFRleHR1cmUocHJvZ3JhbSwgWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcs
IDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBb
MTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4
LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5
LCA0MF0sCisgICAgICAgIFs0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDhdLAorICAgICAg
ICBbNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2XSwKKyAgICAgICAgWzU3LCA1OCwgNTks
IDYwLCA2MSwgNjIsIDYzLCA2NF1dXSwgImZsb2F0Iik7CisgICAgcmV0dXJuIFt0ZXh0dXJlMUQs
IHRleHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRl
eHR1cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3
VGV4dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNEXTsKK30KKwordGVzdHMudGV4dHVyZURpbWVuc2lv
bnMgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCisgICAgICAgIHVp
bnQgZm9vMShUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lk
dGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGlt
ZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAg
ICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yKFRleHR1cmUxRDxm
bG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVp
bnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAs
ICZ3aWR0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxl
dmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzMoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+
IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVs
ZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdl
dERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVs
cyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBm
b280KFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdp
ZHRoOworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVy
T2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwg
JmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRz
OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNShUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4
dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVu
dHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGlt
ZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsK
KyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1
aW50IGZvbzYoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdp
ZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9m
TGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZo
ZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb283KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAg
ICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0
dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzgoVGV4dHVyZTJEPGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0
RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7
CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAg
dWludCBmb285KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1
aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVs
ZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdl
dERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1i
ZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAg
ICAgdWludCBmb28xMChUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAg
ICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWlu
dCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAg
ICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAm
bnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQor
ICAgICAgICB1aW50IGZvbzExKFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAg
ICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAg
ICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAg
ICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVu
dHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gZWxlbWVudHM7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb28xMihUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkg
eworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAg
ICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7
CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwg
JmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9m
TGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTMoVGV4dHVyZTNEPGZsb2F0PiB0
ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWln
aHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxl
dmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVp
Z2h0LCAmZGVwdGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7
CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xNChUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUp
IHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAg
ICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZk
ZXB0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb28xNShUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAg
ICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAg
ICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAg
ICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCwg
Jm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBkZXB0aDsKKyAgICAgICAgfQor
ICAgICAgICB1aW50IGZvbzE2KFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAg
ICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWlu
dCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBH
ZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoLCAmbnVtYmVy
T2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9
CisgICAgICAgIHVpbnQgZm9vMTcoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAg
ICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAg
IHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUs
IDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVy
biB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE4KFRleHR1cmVDdWJlPGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0
RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7
CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9v
MTkoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7
CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZl
bHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdo
dCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIwKFJXVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJl
KSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0
ZXh0dXJlLCAmd2lkdGgpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9Cisg
ICAgICAgIHVpbnQgZm9vMjEoUldUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAg
ICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmVsZW1lbnRzKTsKKyAgICAgICAg
ICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIyKFJXVGV4dHVy
ZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAg
ICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJl
LCAmd2lkdGgsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1cm4gZWxlbWVudHM7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb28yMyhSV1RleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgewor
ICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAg
ICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQpOworICAgICAgICAg
ICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjQoUldUZXh0dXJl
MkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAg
ICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRo
LCAmaGVpZ2h0KTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAg
ICAgdWludCBmb28yNShSV1RleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAg
ICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1
aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgs
ICZoZWlnaHQsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAg
IH0KKyAgICAgICAgdWludCBmb28yNihSV1RleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7
CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAg
ICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJl
LCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0
OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjcoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4g
dGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVp
Z2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0
dXJuIGVsZW1lbnRzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjgoUldUZXh0dXJlM0Q8
ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1
aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICBHZXREaW1l
bnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoKTsKKyAgICAgICAgICAgIHJl
dHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI5KFJXVGV4dHVyZTNEPGZs
b2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWlu
dCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgR2V0RGltZW5z
aW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCk7CisgICAgICAgICAgICByZXR1
cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMzAoUldUZXh0dXJlM0Q8Zmxv
YXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50
IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICBHZXREaW1lbnNp
b25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoKTsKKyAgICAgICAgICAgIHJldHVy
biBkZXB0aDsKKyAgICAgICAgfQorICAgIGApOworICAgIGxldCBbdGV4dHVyZTFELCB0ZXh0dXJl
MURBcnJheSwgdGV4dHVyZTJELCB0ZXh0dXJlMkRBcnJheSwgdGV4dHVyZTNELCB0ZXh0dXJlQ3Vi
ZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVyZTFEQXJyYXksIHJ3VGV4dHVyZTJELCByd1RleHR1cmUy
REFycmF5LCByd1RleHR1cmUzRF0gPSBjcmVhdGVUZXh0dXJlc0ZvclRlc3RpbmcocHJvZ3JhbSk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0
ZXh0dXJlMURdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMiIsIFt0ZXh0dXJlMURdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheV0pLCA0KTsKKyAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUx
REFycmF5XSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUiLCBbdGV4dHVyZTFEQXJyYXldKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkRdKSwgOCk7CisgICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRd
KSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OCIsIFt0ZXh0dXJlMkRdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlMkRBcnJheV0pLCA4KTsKKyAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlMkRBcnJheV0p
LCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MSIsIFt0ZXh0dXJlMkRBcnJheV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFt0ZXh0dXJlMkRBcnJheV0pLCAzKTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFt0ZXh0dXJlM0Rd
KSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTQiLCBbdGV4dHVyZTNEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE1IiwgW3RleHR1cmUzRF0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlM0RdKSwgMik7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4
dHVyZUN1YmVdKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTgiLCBbdGV4dHVyZUN1YmVdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZUN1YmVdKSwgMik7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0
dXJlMURdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjEiLCBbcndUZXh0dXJlMURBcnJheV0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMiIsIFtyd1RleHR1cmUxREFycmF5XSksIDMp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwg
W3J3VGV4dHVyZTJEXSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzI0IiwgW3J3VGV4dHVyZTJEXSksIDQpOworICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI1IiwgW3J3VGV4dHVyZTJEQXJyYXldKSwg
OCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjYi
LCBbcndUZXh0dXJlMkRBcnJheV0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yNyIsIFtyd1RleHR1cmUyREFycmF5XSksIDIpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4IiwgW3J3VGV4dHVy
ZTNEXSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzI5IiwgW3J3VGV4dHVyZTNEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMwIiwgW3J3VGV4dHVyZTNEXSksIDIpOworfQorCit0ZXN0
cy50ZXh0dXJlTG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAK
KyAgICAgICAgZmxvYXQgZm9vMShUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlv
biwgaW50IG1pcG1hcCkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Mihs
b2NhdGlvbiwgbWlwbWFwKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMihUZXh0dXJl
MUQ8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50IG1pcG1hcCwgaW50IG9mZnNldCkg
eworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Mihsb2NhdGlvbiwgbWlwbWFw
KSwgb2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28zKFRleHR1cmUxREFycmF5
PGZsb2F0PiB0ZXh0dXJlLCBpbnQgbG9jYXRpb24sIGludCBtaXBtYXAsIGludCBsYXllcikgewor
ICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myhsb2NhdGlvbiwgbWlwbWFwLCBs
YXllcikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQoVGV4dHVyZTFEQXJyYXk8Zmxv
YXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50IG1pcG1hcCwgaW50IGxheWVyLCBpbnQgb2Zm
c2V0KSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKGxvY2F0aW9uLCBt
aXBtYXAsIGxheWVyKSwgb2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb281KFRl
eHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbWlwbWFwKSB7CisgICAg
ICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIG1pcG1hcCkpOworICAgICAg
ICB9CisgICAgICAgIGZsb2F0IGZvbzYoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwg
aW50IHksIGludCBtaXBtYXAsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAg
ICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myh4LCB5LCBtaXBtYXApLCBpbnQyKG9mZnNldFgs
IG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb283KFRleHR1cmUyREFycmF5
PGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXAsIGludCBsYXllcikgewor
ICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50NCh4LCB5LCBtaXBtYXAsIGxheWVy
KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vOChUZXh0dXJlMkRBcnJheTxmbG9hdD4g
dGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbWlwbWFwLCBpbnQgbGF5ZXIsIGludCBvZmZzZXRY
LCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50NCh4
LCB5LCBtaXBtYXAsIGxheWVyKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0K
KyAgICAgICAgZmxvYXQgZm9vOShUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQg
eSwgaW50IHosIGludCBtaXBtYXApIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUs
IGludDQoeCwgeSwgeiwgbWlwbWFwKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTAo
VGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCB6LCBpbnQgbWlwbWFw
LCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFksIGludCBvZmZzZXRaKSB7CisgICAgICAgICAgICBy
ZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgsIHksIHosIG1pcG1hcCksIGludDMob2Zmc2V0WCwg
b2Zmc2V0WSwgb2Zmc2V0WikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzExKFJXVGV4
dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgbG9jYXRpb24pIHsKKyAgICAgICAgICAgIHJldHVy
biBMb2FkKHRleHR1cmUsIGxvY2F0aW9uKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28x
MihSV1RleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgbG9jYXRpb24sIGludCBsYXll
cikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Mihsb2NhdGlvbiwgbGF5
ZXIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xMyhSV1RleHR1cmUyRDxmbG9hdD4g
dGV4dHVyZSwgaW50IHgsIGludCB5KSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJl
LCBpbnQyKHgsIHkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xNChSV1RleHR1cmUy
REFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBsYXllcikgeworICAgICAg
ICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myh4LCB5LCBsYXllcikpOworICAgICAgICB9
CisgICAgICAgIGZsb2F0IGZvbzE1KFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwg
aW50IHksIGludCB6KSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgs
IHksIHopKTsKKyAgICAgICAgfQorICAgIGApOworICAgIGxldCBbdGV4dHVyZTFELCB0ZXh0dXJl
MURBcnJheSwgdGV4dHVyZTJELCB0ZXh0dXJlMkRBcnJheSwgdGV4dHVyZTNELCB0ZXh0dXJlQ3Vi
ZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVyZTFEQXJyYXksIHJ3VGV4dHVyZTJELCByd1RleHR1cmUy
REFycmF5LCByd1RleHR1cmUzRF0gPSBjcmVhdGVUZXh0dXJlc0ZvclRlc3RpbmcocHJvZ3JhbSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBb
dGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIs
IFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
MTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
IiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVy
ZTFELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgMjApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDIxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAtMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAx
Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQi
LCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTcpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1
cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAxNik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMjEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAyMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1
cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVy
ZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzgpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTApOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3Rl
eHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE3KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3Rl
eHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCAzNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM3KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJl
MkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAz
Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzci
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzcp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM4KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0Myk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDUxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCA1Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgNzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDc2
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgODApOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAxMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSks
IDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzOSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgLTEpXSksIDM1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0NCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDQ1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1Myk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgNTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDYwKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCA1Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
NjEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDc2KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCA4MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNzcpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDgxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA4
MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgi
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDc2KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCA4MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDc3KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJl
M0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1
cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0Mik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBb
dGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDY1KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNjYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCA2OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDcwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0
ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUz
RCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDQxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDExKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBb
dGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDE4KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVy
ZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIC0xKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDM1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDQyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0x
KV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAi
LCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQ5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4
dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCA5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNE
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQzKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCA2Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA2OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCA2Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCA3MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3MCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwg
W3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNjUpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0
dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNzEpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0Qs
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDY2KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAzKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJl
MUQsIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dy
YW0sIDQpXSksIDUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCA1KV0pLCA2KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndU
ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgNildKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50
KHByb2dyYW0sIDcpXSksIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUx
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFty
d1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDYpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndU
ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAxMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDQpLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9n
cmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTUpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUx
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBb
cndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAy
KV0pLCAxNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMildKSwgMTgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDIp
LCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChw
cm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjEpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1
cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIi
LCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFt
LCAyKV0pLCAyMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJ
bnQocHJvZ3JhbSwgMildKSwgMjQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dy
YW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBt
YWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDYpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0
dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3
VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIs
IFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDUpLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
NiksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9n
cmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE3KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTgpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxOSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4
dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIwKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBb
cndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwg
MjEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAy
KV0pLCAyMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dy
YW0sIDIpXSksIDIzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQo
cHJvZ3JhbSwgMildKSwgMjQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAzKV0pLCAyNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjcpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyOCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtl
SW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMzApOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1
cmUyRCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAzMSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3
VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDMy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQi
LCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0MSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0Qs
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIs
IFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCA0MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQyKTsKK30K
KwordGVzdHMudGV4dHVyZVN0b3JlID0gZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBk
b1ByZXAoYAorICAgICAgICBmbG9hdCBmb28xKFJXVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCB1
aW50IGxvY2F0aW9uLCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4dHVyZSwg
dmFsdWUsIGxvY2F0aW9uKTsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludChs
b2NhdGlvbikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzIoUldUZXh0dXJlMURBcnJh
eTxmbG9hdD4gdGV4dHVyZSwgdWludCBsb2NhdGlvbiwgdWludCBsYXllciwgZmxvYXQgdmFsdWUp
IHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1cmUsIHZhbHVlLCB1aW50Mihsb2NhdGlvbiwgbGF5
ZXIpKTsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIoaW50KGxvY2F0aW9u
KSwgaW50KGxheWVyKSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzMoUldUZXh0dXJl
MkQ8ZmxvYXQ+IHRleHR1cmUsIHVpbnQgeCwgdWludCB5LCBmbG9hdCB2YWx1ZSkgeworICAgICAg
ICAgICAgU3RvcmUodGV4dHVyZSwgdmFsdWUsIHVpbnQyKHgsIHkpKTsKKyAgICAgICAgICAgIHJl
dHVybiBMb2FkKHRleHR1cmUsIGludDIoaW50KHgpLCBpbnQoeSkpKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmb280KFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHVpbnQgeCwg
dWludCB5LCB1aW50IGxheWVyLCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4
dHVyZSwgdmFsdWUsIHVpbnQzKHgsIHksIGxheWVyKSk7CisgICAgICAgICAgICByZXR1cm4gTG9h
ZCh0ZXh0dXJlLCBpbnQzKGludCh4KSwgaW50KHkpLCBpbnQobGF5ZXIpKSk7CisgICAgICAgIH0K
KyAgICAgICAgZmxvYXQgZm9vNShSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwgdWludCB4LCB1
aW50IHksIHVpbnQgeiwgZmxvYXQgdmFsdWUpIHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1cmUs
IHZhbHVlLCB1aW50Myh4LCB5LCB6KSk7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJl
LCBpbnQzKGludCh4KSwgaW50KHkpLCBpbnQoeikpKTsKKyAgICAgICAgfQorICAgIGApOworICAg
IGxldCBbdGV4dHVyZTFELCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0ZXh0dXJlMkRBcnJh
eSwgdGV4dHVyZTNELCB0ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVyZTFEQXJyYXks
IHJ3VGV4dHVyZTJELCByd1RleHR1cmUyREFycmF5LCByd1RleHR1cmUzRF0gPSBjcmVhdGVUZXh0
dXJlc0ZvclRlc3RpbmcocHJvZ3JhbSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwg
bWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndU
ZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0s
IDYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWlu
dChwcm9ncmFtLCA3KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUx
REFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFy
cmF5LCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3Jh
bSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
IiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5
LCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwg
NyksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwg
W3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMiks
IG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3
VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtl
VWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4
dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWlu
dChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VV
aW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVy
ZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChw
cm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50
KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFE
QXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9n
cmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHBy
b2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJy
YXksIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3
VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dy
YW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWlu
dChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwg
bWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0
dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwg
W3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHBy
b2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtl
VWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUy
RCwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndU
ZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28z
IiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50
KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHBy
b2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBt
YWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtl
VWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1
cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBb
cndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAzKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJv
Z3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VV
aW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50
KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJE
LCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50
KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWlu
dChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFtLCAxKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworfQorCit0ZXN0cy50ZXh0dXJlU2FtcGxlID0gZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICBmbG9hdCBmb28xKFRleHR1cmUxRDxm
bG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCBsb2NhdGlvbikgeworICAgICAgICAgICAg
cmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBsb2NhdGlvbik7CisgICAgICAgIH0KKyAgICBgKTsK
KyAgICBsZXQgW3RleHR1cmUxRCwgdGV4dHVyZTFEQXJyYXksIHRleHR1cmUyRCwgdGV4dHVyZTJE
QXJyYXksIHRleHR1cmUzRCwgdGV4dHVyZUN1YmUsIHJ3VGV4dHVyZTFELCByd1RleHR1cmUxREFy
cmF5LCByd1RleHR1cmUyRCwgcndUZXh0dXJlMkRBcnJheSwgcndUZXh0dXJlM0RdID0gY3JlYXRl
VGV4dHVyZXNGb3JUZXN0aW5nKHByb2dyYW0pOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge30pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAxNCk7CiB9CiAKIG9rVG9UZXN0ID0g
dHJ1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1cmUu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjlkNmUwNWFjODE3ODc4OWE2NWYzMDBiMTAwMDg2MTYwODI0NWRmOGIKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlLmpzCkBAIC0wLDAgKzEs
NTM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyJ1c2Ug
c3RyaWN0IjsKKworY2xhc3MgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoZGltZW5zaW9uLCB3
aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBk
YXRhKQorICAgIHsKKyAgICAgICAgdGhpcy5fZGltZW5zaW9uID0gZGltZW5zaW9uOworICAgICAg
ICB0aGlzLl93aWR0aCA9IHdpZHRoOworICAgICAgICB0aGlzLl9oZWlnaHQgPSBoZWlnaHQ7Cisg
ICAgICAgIHRoaXMuX2RlcHRoID0gZGVwdGg7CisgICAgICAgIHRoaXMuX2xldmVsQ291bnQgPSBs
ZXZlbENvdW50OworICAgICAgICB0aGlzLl9sYXllckNvdW50ID0gbGF5ZXJDb3VudDsKKyAgICAg
ICAgdGhpcy5faW5uZXJUeXBlID0gaW5uZXJUeXBlOworICAgICAgICB0aGlzLl9kYXRhID0gZGF0
YTsKKyAgICB9CisKKyAgICBnZXQgZGltZW5zaW9uKCkgeyByZXR1cm4gdGhpcy5fZGltZW5zaW9u
OyB9CisgICAgZ2V0IHdpZHRoKCkgeyByZXR1cm4gdGhpcy5fd2lkdGg7IH0KKyAgICBnZXQgaGVp
Z2h0KCkgeyByZXR1cm4gdGhpcy5faGVpZ2h0OyB9CisgICAgZ2V0IGRlcHRoKCkgeyByZXR1cm4g
dGhpcy5fZGVwdGg7IH0KKyAgICBnZXQgbGV2ZWxDb3VudCgpIHsgcmV0dXJuIHRoaXMuX2xldmVs
Q291bnQ7IH0KKyAgICBnZXQgbGF5ZXJDb3VudCgpIHsgcmV0dXJuIHRoaXMuX2xheWVyQ291bnQ7
IH0KKyAgICBnZXQgaW5uZXJUeXBlKCkgeyByZXR1cm4gdGhpcy5faW5uZXJUeXBlOyB9CisgICAg
Z2V0IGRhdGEoKSB7IHJldHVybiB0aGlzLl9kYXRhOyB9CisKKyAgICBlbGVtZW50Q2hlY2tlZChs
YXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICBpZiAobGF5ZXIgPCAwIHx8IGxh
eWVyID49IHRoaXMubGF5ZXJDb3VudAorICAgICAgICAgICAgfHwgbGV2ZWwgPCAwIHx8IGxldmVs
ID49IHRoaXMubGV2ZWxDb3VudAorICAgICAgICAgICAgfHwgayA8IDAgfHwgayA+PSB0aGlzLmRl
cHRoCisgICAgICAgICAgICB8fCBqIDwgMCB8fCBqID49IHRoaXMuaGVpZ2h0CisgICAgICAgICAg
ICB8fCBpIDwgMCB8fCBpID49IHRoaXMud2lkdGgpCisgICAgICAgICAgICByZXR1cm4gdW5kZWZp
bmVkOworICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSk7
CisgICAgfQorCisgICAgc2V0RWxlbWVudENoZWNrZWQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2
YWx1ZSkKKyAgICB7CisgICAgICAgIGlmIChsYXllciA8IDAgfHwgbGF5ZXIgPj0gdGhpcy5sYXll
ckNvdW50CisgICAgICAgICAgICB8fCBsZXZlbCA8IDAgfHwgbGV2ZWwgPj0gdGhpcy5sZXZlbENv
dW50CisgICAgICAgICAgICB8fCBrIDwgMCB8fCBrID49IHRoaXMuZGVwdGgKKyAgICAgICAgICAg
IHx8IGogPCAwIHx8IGogPj0gdGhpcy5oZWlnaHQKKyAgICAgICAgICAgIHx8IGkgPCAwIHx8IGkg
Pj0gdGhpcy53aWR0aCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgdGhpcy5z
ZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpOworICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUxRCBleHRlbmRzIFRleHR1cmUgeworICAg
IGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBp
cyBhbiBhcnJheSBvZiBtaXBtYXBzLgorICAgICAgICAvLyBUaGUgZmlyc3QgbWlwbWFwIGlzIGFu
IGFycmF5IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBFYWNoIGVsZW1lbnQgbWF5IGJlIGEgc2Nh
bGFyIG9yIGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgorICAgICAgICAvLyBUaGUgd2lkdGggbXVz
dCBiZSBhIHBvd2VyLW9mLXR3by4KKyAgICAgICAgLy8gRWFjaCBtaXBtYXAgaXMgaGFsZi1zaXpl
IG9mIHRoZSBwcmV2aW91cyBzaXplLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAxOworICAg
ICAgICBsZXQgd2lkdGggPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IDE7
CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YS5s
ZW5ndGg7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5z
aW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJU
eXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0
QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGRl
cHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAg
IGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRo
aXMuZGF0YVtsZXZlbF1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWws
IGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xldmVsXVtpXSA9IHZh
bHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTFEQXJyYXkgZXh0ZW5kcyBUZXh0dXJlIHsK
KyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0
YSIgaXMgYW4gYXJyYXkgb2YgMUQgdGV4dHVyZXMuCisgICAgICAgIC8vIEFsbCB0ZXh0dXJlcyBt
dXN0IGhhdmUgdGhlIHNhbWUgd2lkdGggYW5kIG51bWJlciBvZiBtaXBtYXBzLgorCisgICAgICAg
IGxldCBkaW1lbnNpb24gPSAxOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdLmxlbmd0
aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IDE7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAg
ICAgIGxldCBsZXZlbENvdW50ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBsYXllckNv
dW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdo
dCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAg
fQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
ZGF0YVswXVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwp
CisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2
ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVy
LCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGF5ZXJd
W2xldmVsXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwg
aSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtpXSA9IHZh
bHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTJEIGV4dGVuZHMgVGV4dHVyZSB7CisgICAg
Y29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlz
IGFuIGFycmF5IG9mIG1pcG1hcHMuCisgICAgICAgIC8vIFRoZSBmaXJzdCBtaXBtYXAgaXMgYSBy
ZWN0YW5ndWxhciBhcnJheSBvZiByb3dzLCB3aGVyZSBlYWNoIHJvdyBpcyBhbiBhcnJheSBvZiBl
bGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBhIHNjYWxhciBvciBhbiBh
cnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRoIGFuZCBoZWlnaHQgbXVz
dCBiZSBwb3dlcnMtb2YtdHdvLgorICAgICAgICAvLyBFYWNoIG1pcG1hcCBpcyBoYWxmLXdpZHRo
IGFuZCBoYWxmLWhlaWdodCBvZiB0aGUgcHJldmlvdXMgc2l6ZS4KKworICAgICAgICBsZXQgZGlt
ZW5zaW9uID0gMjsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAg
ICAgIGxldCBoZWlnaHQgPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsK
KyAgICAgICAgbGV0IGxldmVsQ291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgbGV0IGxheWVy
Q291bnQgPSAxOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRo
LCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAg
IHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2
ZWxdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKworICAgIGRl
cHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAg
IGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRo
aXMuZGF0YVtsZXZlbF1bal1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2
ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xldmVsXVtqXVtp
XSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTJEQXJyYXkgZXh0ZW5kcyBUZXh0
dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAv
LyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgMkQgdGV4dHVyZXMuCisgICAgICAgIC8vIEFsbCB0ZXh0
dXJlcyBtdXN0IGhhdmUgdGhlIHNhbWUgd2lkdGgsIGhlaWdodCBhbmQgbnVtYmVyIG9mIG1pcG1h
cHMuCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0aCA9IGRh
dGFbMF1bMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXVswXS5sZW5n
dGg7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0
YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7CisgICAg
ICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxh
eWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxl
dmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF1bMF0ubGVuZ3Ro
OworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1
cm4gdGhpcy5kYXRhWzBdW2xldmVsXS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVs
KGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChs
YXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xh
eWVyXVtsZXZlbF1bal1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWws
IGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1b
al1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUzRCBleHRlbmRzIFRleHR1
cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8v
ICJkYXRhIiBpcyBhbiBhcnJheSBvZiBtaXBtYXBzLgorICAgICAgICAvLyBUaGUgZmlyc3QgbWlw
bWFwIGlzIGFuIGFycmF5IG9mIGRlcHRoIHNsaWNlcywgZWFjaCBkZXB0aCBzbGljZSBpcyBhbiBh
cnJheSBvZiByb3dzLCBhbmQgZWFjaCByb3cgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuCisgICAg
ICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2FsYXIgb3IgYW4gYXJyYXkgb2YgMi00IHNj
YWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCwgaGVpZ2h0LCBhbmQgZGVwdGggbXVzdCBiZSBw
b3dlcnMtb2YtdHdvLgorICAgICAgICAvLyBFYWNoIG1pcG1hcCBpcyBoYWxmLXdpZHRoLCBoYWxm
LWhlaWdodCwgYW5kIGhhbGYtZGVwdGggb2YgdGhlIHByZXZpb3VzIHNpemUuCisKKyAgICAgICAg
bGV0IGRpbWVuc2lvbiA9IDM7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF1bMF0ubGVu
Z3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxl
dCBkZXB0aCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGEu
bGVuZ3RoOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IDE7CisgICAgICAgIHN1cGVyKGRpbWVu
c2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVy
VHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1bMF1bMF0ubGVuZ3RoOworICAgIH0KKworICAg
IGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xl
dmVsXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKworICAgIGVs
ZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
ZGF0YVtsZXZlbF1ba11bal1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2
ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xldmVsXVtrXVtq
XVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZUN1YmUgZXh0ZW5kcyBUZXh0
dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAv
LyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgNiAyRCB0ZXh0dXJlcy4KKyAgICAgICAgLy8gQWxsIHRl
eHR1cmVzIG11c3QgaGF2ZSB0aGUgc2FtZSB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgYW5kIG51bWJl
ciBvZiBtaXBtYXBzLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAyOworICAgICAgICBsZXQg
d2lkdGggPSBkYXRhWzBdWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRhdGFb
MF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxD
b3VudCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVu
Z3RoOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZl
bENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRo
QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bbGV2ZWxd
WzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKworICAgIGRl
cHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAg
IGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRo
aXMuZGF0YVtsYXllcl1bbGV2ZWxdW2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5
ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsYXll
cl1bbGV2ZWxdW2pdW2ldID0gdmFsdWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlMURSVyBl
eHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7
CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8g
RWFjaCBlbGVtZW50IG1heSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4K
KyAgICAgICAgLy8gVGhlIHdpZHRoIG11c3QgYmUgYSBwb3dlci1vZi10d28uCisKKyAgICAgICAg
bGV0IGRpbWVuc2lvbiA9IDE7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGEubGVuZ3RoOworICAg
ICAgICBsZXQgaGVpZ2h0ID0gMTsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0
IGxldmVsQ291bnQgPSAxOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IDE7CisgICAgICAgIHN1
cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291
bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5sZW5ndGg7CisgICAgfQorCisgICAgaGVp
Z2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAg
IGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKwor
ICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMuZGF0YVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywg
aiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbaV0gPSB2YWx1ZTsKKyAgICB9
Cit9CisKK2NsYXNzIFRleHR1cmUxREFycmF5UlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25z
dHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4g
YXJyYXkgb2YgMUQgUlcgdGV4dHVyZXMuCisgICAgICAgIC8vIEFsbCB0ZXh0dXJlcyBtdXN0IGhh
dmUgdGhlIHNhbWUgc2l6ZS4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMTsKKyAgICAgICAg
bGV0IHdpZHRoID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSAxOworICAg
ICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7CisgICAgICAg
IGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwg
d2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwg
ZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuZGF0YVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChs
ZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGRlcHRoQXRMZXZl
bChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQo
bGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVts
YXllcl1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGks
IHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtpXSA9IHZhbHVlOworICAg
IH0KK30KKworY2xhc3MgVGV4dHVyZTJEUlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1
Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYSByZWN0
YW5ndWxhciBhcnJheSBvZiByb3dzLCB3aGVyZSBlYWNoIHJvdyBpcyBhbiBhcnJheSBvZiBlbGVt
ZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBhIHNjYWxhciBvciBhbiBhcnJh
eSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRoIGFuZCBoZWlnaHQgbXVzdCBi
ZSBwb3dlcnMtb2YtdHdvLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAyOworICAgICAgICBs
ZXQgd2lkdGggPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRhdGEubGVu
Z3RoOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7
CisgICAgICAgIGxldCBsYXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3
aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBk
YXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICBy
ZXR1cm4gdGhpcy5kYXRhWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxl
dmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5sZW5ndGg7CisgICAgfQorCisg
ICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQor
CisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1
cm4gdGhpcy5kYXRhW2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVs
LCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtqXVtpXSA9IHZhbHVl
OworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTJEQXJyYXlSVyBleHRlbmRzIFRleHR1cmUgewor
ICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRh
IiBpcyBhbiBhcnJheSBvZiAyRCBSVyB0ZXh0dXJlcy4KKyAgICAgICAgLy8gQWxsIHRleHR1cmVz
IG11c3QgaGF2ZSB0aGUgc2FtZSB3aWR0aCBhbmQgaGVpZ2h0LgorCisgICAgICAgIGxldCBkaW1l
bnNpb24gPSAyOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAg
ICAgbGV0IGhlaWdodCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSAxOwor
ICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0
YS5sZW5ndGg7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgs
IGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAg
d2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVsw
XS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0aGlzLmRhdGFbMF0ubGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZl
bChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQo
bGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVts
YXllcl1bal1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGos
IGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtqXVtpXSA9IHZhbHVl
OworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTNEUlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBj
b25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMg
YW4gYXJyYXkgb2YgZGVwdGggc2xpY2VzLCBlYWNoIGRlcHRoIHNsaWNlIGlzIGFuIGFycmF5IG9m
IHJvd3MsIGFuZCBlYWNoIHJvdyBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8g
RWFjaCBlbGVtZW50IG1heSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4K
KyAgICAgICAgLy8gVGhlIHdpZHRoLCBoZWlnaHQsIGFuZCBkZXB0aCBtdXN0IGJlIHBvd2Vycy1v
Zi10d28uCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDM7CisgICAgICAgIGxldCB3aWR0aCA9
IGRhdGFbMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXS5sZW5ndGg7
CisgICAgICAgIGxldCBkZXB0aCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgbGV2ZWxDb3Vu
dCA9IDE7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5z
aW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJU
eXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpcy5kYXRhWzBdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRB
dExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXS5sZW5ndGg7
CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMuZGF0YS5sZW5ndGg7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGss
IGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2tdW2pdW2ldOworICAgIH0K
KworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7Cisg
ICAgICAgIHRoaXMuZGF0YVtrXVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30KZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1cmVPcGVyYXRpb25zLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjM5NWU3MmEwN2FiM2E1MjRmODc3ZGJkN2U4YWMyZDBmNGJlNjRiYQotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1cmVPcGVyYXRpb25zLmpz
CkBAIC0wLDAgKzEsNTUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKyJ1c2Ugc3RyaWN0IjsKKworZnVuY3Rpb24gZGVwdGhDb21wYXJlT3BlcmF0aW9uKGRy
ZWYsIGQsIGNvbXBhcmVGdW5jdGlvbikKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24g
MTUuMy40CisgICAgc3dpdGNoIChjb21wYXJlRnVuY3Rpb24pIHsKKyAgICAgICAgY2FzZSAibmV2
ZXIiOgorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGNhc2UgImxlc3MiOgorICAgICAg
ICAgICAgcmV0dXJuIGRyZWYgPCBkID8gMSA6IDA7CisgICAgICAgIGNhc2UgImVxdWFsIjoKKyAg
ICAgICAgICAgIHJldHVybiBkcmVmID09IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAibGVzc0Vx
dWFsIjoKKyAgICAgICAgICAgIHJldHVybiBkcmVmIDw9IGQgPyAxIDogMDsKKyAgICAgICAgY2Fz
ZSAiZ3JlYXRlciI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiA+IGQgPyAxIDogMDsKKyAgICAg
ICAgY2FzZSAibm90RXF1YWwiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYgIT0gZCA/IDEgOiAw
OworICAgICAgICBjYXNlICJncmVhdGVyRXF1YWwiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYg
Pj0gZCA/IDEgOiAwOworICAgICAgICBjYXNlICJhbHdheXMiOgorICAgICAgICAgICAgcmV0dXJu
IDE7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25v
d24gZGVwdGggY29tcGFyaXNvbiBmdW5jdGlvbiIpOworICAgIH0KK30KKworZnVuY3Rpb24gY29u
dmVyc2lvblRvUkdCQSh2YWx1ZSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUu
My41CisgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAgdmFyIHJlc3Vs
dCA9IFtdOworICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgKytpKQor
ICAgICAgICAgICAgcmVzdWx0LnB1c2godmFsdWVbaV0pOworICAgICAgICB3aGlsZSAocmVzdWx0
Lmxlbmd0aCAhPSA0KQorICAgICAgICAgICAgcmVzdWx0LnB1c2gocmVzdWx0Lmxlbmd0aCA9PSAz
ID8gMSA6IDApOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0gZWxzZQorICAgICAgICBy
ZXR1cm4gW3ZhbHVlLCAwLCAwLCAxXTsKK30KKworLy9Gb3IgZXhwbGljaXQgTE9EIGltYWdlIGlu
c3RydWN0aW9ucywgaWYgdGhlIG9wdGlvbmFsIFNQSVItViBvcGVyYW5kIEdyYWQgaXMgcHJvdmlk
ZWQsIHRoZW4gdGhlIG9wZXJhbmQgdmFsdWVzIGFyZSB1c2VkIGZvciB0aGUgZGVyaXZhdGl2ZXMu
IFRoZSBudW1iZXIgb2YgY29tcG9uZW50cyBwcmVzZW50IGluIGVhY2ggZGVyaXZhdGl2ZSBmb3Ig
YSBnaXZlbiBpbWFnZSBkaW1lbnNpb25hbGl0eSBtYXRjaGVzIHRoZSBudW1iZXIgb2YgcGFydGlh
bCBkZXJpdmF0aXZlcyBjb21wdXRlZCBhYm92ZS4KKy8vSWYgdGhlIG9wdGlvbmFsIFNQSVItViBv
cGVyYW5kIExvZCBpcyBwcm92aWRlZCwgdGhlbiBkZXJpdmF0aXZlcyBhcmUgc2V0IHRvIHplcm8s
IHRoZSBjdWJlIG1hcCBkZXJpdmF0aXZlIHRyYW5zZm9ybWF0aW9uIGlzIHNraXBwZWQsIGFuZCB0
aGUgc2NhbGUgZmFjdG9yIG9wZXJhdGlvbiBpcyBza2lwcGVkLiBJbnN0ZWFkLCB0aGUgZmxvYXRp
bmcgcG9pbnQgc2NhbGFyIGNvb3JkaW5hdGUgaXMgZGlyZWN0bHkgYXNzaWduZWQgdG8gzrtiYXNl
IGFzIGRlc2NyaWJlZCBpbiBMZXZlbC1vZi1EZXRhaWwgT3BlcmF0aW9uLgorZnVuY3Rpb24gaW1w
bGljaXREZXJpdmF0aXZlKCkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNQor
ICAgIHJldHVybiAwOworfQorCitmdW5jdGlvbiBwcm9qZWN0aW9uT3BlcmF0aW9uKHMsIHQsIHIs
IGRyZWYsIHEpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuMQorICAgIHJl
dHVybiBbcyAvIHEsIHQgLyBxLCByIC8gcSwgZHJlZiAhPSB1bmRlZmluZWQgPyBkcmVmIC8gcSA6
IHVuZGVmaW5lZF07Cit9CisKK2Z1bmN0aW9uIGN1YmVNYXBGYWNlU2VsZWN0aW9uKHMsIHQsIHIs
IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWSwgcGFydGlh
bFJ5V2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUnpXaXRo
UmVzcGVjdFRvWCwgcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1kpCit7CisgICAgLy8gVnVsa2FuIDEu
MS44MyBzZWN0aW9uIDE1LjYuNAorICAgIGxldCByeCA9IHM7CisgICAgbGV0IHJ5ID0gdDsKKyAg
ICBsZXQgcnogPSByOworICAgIGxldCB3aW5uZXIgPSAwOworICAgIGlmIChNYXRoLmFicyhyeikg
Pj0gTWF0aC5hYnMocnkpICYmIE1hdGguYWJzKHJ6KSA+PSBNYXRoLmFicyhyeCkpCisgICAgICAg
IHdpbm5lciA9IDI7CisgICAgZWxzZSBpZiAoTWF0aC5hYnMocnkpID49IE1hdGguYWJzKHJ4KSAm
JiBNYXRoLmFicyhyeSkgPj0gTWF0aC5hYnMocnopKQorICAgICAgICB3aW5uZXIgPSAxOworCisg
ICAgbGV0IGxheWVyTnVtYmVyOworICAgIGxldCBzYzsKKyAgICBsZXQgdGM7CisgICAgbGV0IHJj
OworICAgIGxldCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWDsKKyAgICBsZXQgcGFydGlhbFNjV2l0
aFJlc3BlY3RUb1k7CisgICAgbGV0IHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YOworICAgIGxldCBw
YXJ0aWFsVGNXaXRoUmVzcGVjdFRvWTsKKyAgICBsZXQgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1g7
CisgICAgbGV0IHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZOworICAgIGlmICh3aW5uZXIgPT0gMCAm
JiByeCA+PSAwKSB7CisgICAgICAgIGxheWVyTnVtYmVyID0gMDsKKyAgICAgICAgc2MgPSAtcno7
CisgICAgICAgIHRjID0gLXJ5OworICAgICAgICByYyA9IHJ4OworICAgICAgICBwYXJ0aWFsU2NX
aXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlh
bFNjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBh
cnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAg
ICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAg
ICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsK
KyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRv
WTsKKyAgICB9IGVsc2UgaWYgKHdpbm5lciA9PSAwKSB7CisgICAgICAgIGxheWVyTnVtYmVyID0g
MTsKKyAgICAgICAgc2MgPSByejsKKyAgICAgICAgdGMgPSAtcnk7CisgICAgICAgIHJjID0gcng7
CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RU
b1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ6V2l0aFJlc3Bl
Y3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhS
ZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlX
aXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlh
bFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0gLXBh
cnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxzZSBpZiAod2lubmVyID09IDEgJiYgcnkg
Pj0gMCkgeworICAgICAgICBsYXllck51bWJlciA9IDI7CisgICAgICAgIHNjID0gcng7CisgICAg
ICAgIHRjID0gLXJ6OworICAgICAgICByYyA9IHJ5OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVz
cGVjdFRvWCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRo
UmVzcGVjdFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNX
aXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFs
VGNXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0
aWFsUmNXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAgICBw
YXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgIH0g
ZWxzZSBpZiAod2lubmVyID09IDEpIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSAzOworICAgICAg
ICBzYyA9IHJ4OworICAgICAgICB0YyA9IC1yejsKKyAgICAgICAgcmMgPSByeTsKKyAgICAgICAg
cGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsKKyAgICAg
ICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAg
ICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7
CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0
VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVz
cGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0
aFJlc3BlY3RUb1k7CisgICAgfSBlbHNlIGlmICh3aW5uZXIgPT0gMiAmJiByeiA+PSAwKSB7Cisg
ICAgICAgIGxheWVyTnVtYmVyID0gNDsKKyAgICAgICAgc2MgPSByeDsKKyAgICAgICAgdGMgPSAt
cnk7CisgICAgICAgIHJjID0gcno7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0g
cGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9Z
ID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0
VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVz
cGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0
aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJj
V2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBsYXllck51bWJlciA9IDU7CisgICAgICAgIHNjID0gLXJ4OworICAgICAgICB0YyA9
IC1yeTsKKyAgICAgICAgcmMgPSByejsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1gg
PSAtcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0
VG9ZID0gLXBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVz
cGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0
aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxS
Y1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0
aWFsUmNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICB9Cisg
ICAgcmV0dXJuIFtsYXllck51bWJlciwgc2MsIHRjLCByYywgcGFydGlhbFNjV2l0aFJlc3BlY3RU
b1gsIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCwgcGFy
dGlhbFRjV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUmNX
aXRoUmVzcGVjdFRvWV0KK30KKworZnVuY3Rpb24gY3ViZU1hcENvb3JkaW5hdGVUcmFuc2Zvcm1h
dGlvbihzYywgcmMpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuNQorICAg
IGxldCBzRmFjZSA9ICgxIC8gMikgKiBzYyAvIE1hdGguYWJzKHJjKSArICgxIC8gMik7CisgICAg
bGV0IHRGYWNlID0gKDEgLyAyKSAqIHRjIC8gTWF0aC5hYnMocmMpICsgKDEgLyAyKTsKKyAgICBy
ZXR1cm4gW3NGYWNlLCB0RmFjZV07Cit9CisKK2Z1bmN0aW9uIGN1YmVNYXBEZXJpdmF0aXZlVHJh
bnNmb3JtYXRpb24oc2MsIHRjLCByYywgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxT
Y1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRjV2l0aFJl
c3BlY3RUb1ksIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRv
WSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi42CisgICAgbGV0IHBhcnRp
YWxTRmFjZVdpdGhSZXNwZWN0VG9YID0gKDEgLyAyKSAqICgoTWF0aC5hYnMocmMpICogcGFydGlh
bFNjV2l0aFJlc3BlY3RUb1ggLSBzYyAqIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YKSAvIE1hdGgu
cG93KHJjLCAyKSk7CisgICAgbGV0IHBhcnRpYWxTRmFjZVdpdGhSZXNwZWN0VG9ZID0gKDEgLyAy
KSAqICgoTWF0aC5hYnMocmMpICogcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgLSBzYyAqIHBhcnRp
YWxSY1dpdGhSZXNwZWN0VG9ZKSAvIE1hdGgucG93KHJjLCAyKSk7CisgICAgbGV0IHBhcnRpYWxU
RmFjZVdpdGhSZXNwZWN0VG9YID0gKDEgLyAyKSAqICgoTWF0aC5hYnMocmMpICogcGFydGlhbFRj
V2l0aFJlc3BlY3RUb1ggLSB0YyAqIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YKSAvIE1hdGgucG93
KHJjLCAyKSk7CisgICAgbGV0IHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0VG9ZID0gKDEgLyAyKSAq
ICgoTWF0aC5hYnMocmMpICogcGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgLSB0YyAqIHBhcnRpYWxS
Y1dpdGhSZXNwZWN0VG9ZKSAvIE1hdGgucG93KHJjLCAyKSk7CisgICAgcmV0dXJuIFtwYXJ0aWFs
U0ZhY2VXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxU
RmFjZVdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRvWV07Cit9CisKK2Z1
bmN0aW9uIHNjYWxlRmFjdG9yT3BlcmF0aW9uKGRldmljZU1heEFuaXNvdHJvcHksIHdpZHRoLCBo
ZWlnaHQsIGRlcHRoLCBzYW1wbGVyTWF4QW5pc290cm9weSwgcGFydGlhbFNXaXRoUmVzcGVjdFRv
WCwgcGFydGlhbFRXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCwgcGFydGlh
bFNXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJXaXRoUmVz
cGVjdFRvWSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi43CisgICAgbGV0
IG11eCA9IE1hdGguYWJzKHBhcnRpYWxTV2l0aFJlc3BlY3RUb1gpICogd2lkdGg7CisgICAgbGV0
IG12eCA9IE1hdGguYWJzKHBhcnRpYWxUV2l0aFJlc3BlY3RUb1gpICogaGVpZ2h0OworICAgIGxl
dCBtd3ggPSBNYXRoLmFicyhwYXJ0aWFsUldpdGhSZXNwZWN0VG9YKSAqIGRlcHRoOworICAgIGxl
dCBtdXkgPSBNYXRoLmFicyhwYXJ0aWFsU1dpdGhSZXNwZWN0VG9ZKSAqIHdpZHRoOworICAgIGxl
dCBtdnkgPSBNYXRoLmFicyhwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZKSAqIGhlaWdodDsKKyAgICBs
ZXQgbXd5ID0gTWF0aC5hYnMocGFydGlhbFJXaXRoUmVzcGVjdFRvWSkgKiBkZXB0aDsKKworICAg
IGxldCBmeCA9IE1hdGguc3FydCgyKSAqIChtdXggKyBtdnggKyBtd3gpOworICAgIGxldCBmeSA9
IE1hdGguc3FydCgyKSAqIChtdXkgKyBtdnkgKyBtd3kpOworCisgICAgbGV0IHJob1ggPSBmeDsK
KyAgICBsZXQgcmhvWSA9IGZ5OworICAgIGxldCByaG9NYXggPSBNYXRoLm1heChyaG9YLCByaG9Z
KTsKKyAgICBsZXQgcmhvTWluID0gTWF0aC5taW4ocmhvWCwgcmhvWSk7CisKKyAgICBsZXQgbWF4
QW5pc28gPSBNYXRoLm1pbihzYW1wbGVyTWF4QW5pc290cm9weSwgZGV2aWNlTWF4QW5pc290cm9w
eSk7CisKKyAgICBsZXQgZXRhOworICAgIGlmIChyaG9NYXggPT0gMCAmJiByaG9NaW4gPT0gMCkK
KyAgICAgICAgZXRhID0gMTsKKyAgICBlbHNlIGlmIChyaG9NaW4gPT0gMCkKKyAgICAgICAgZXRh
ID0gbWF4QW5pc287CisgICAgZWxzZQorICAgICAgICBldGEgPSBNYXRoLm1pbihyaG9NYXggLyBy
aG9NaW4sIG1heEFuaXNvKTsKKworICAgIGxldCBOID0gTWF0aC5jZWlsKGV0YSk7CisgICAgcmV0
dXJuIFtyaG9NYXgsIHJob01pbiwgZXRhLCBOXTsKK30KKworZnVuY3Rpb24gbGV2ZWxPZkRldGFp
bE9wZXJhdGlvbihkZXZpY2VNYXhTYW1wbGVyTG9kQmlhcywgbG9kRnJvbUZ1bmN0aW9uT3BlcmFu
ZCwgbG9kTWluRnJvbUZ1bmN0aW9uT3BlcmFuZCwgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIHNh
bXBsZXJCaWFzLCBzYW1wbGVyTG9kTWluLCBzYW1wbGVyTG9hZE1heCwgcmhvTWF4LCBldGEpCit7
CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuNworICAgIGlmIChiaWFzRnJvbUZ1
bmN0aW9uT3BlcmFuZCA9PSB1bmRlZmluZWQpCisgICAgICAgIGJpYXNGcm9tRnVuY3Rpb25PcGVy
YW5kID0gMDsKKworICAgIGxldCBsYW1iZGFCYXNlID0gbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCAh
PSB1bmRlZmluZWQgPyBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kIDogTWF0aC5sb2cyKHJob01heCAv
IGV0YSk7CisgICAgbGV0IGxhbWJkYVByaW1lID0gbGFtYmRhQmFzZSArIE1hdGgubWluKE1hdGgu
bWF4KHNhbXBsZXJCaWFzICsgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIC1kZXZpY2VNYXhTYW1w
bGVyTG9kQmlhcyksIGRldmljZU1heFNhbXBsZXJMb2RCaWFzKTsKKyAgICBsZXQgbG9kTWluID0g
TWF0aC5tYXgoc2FtcGxlckxvZE1pbiwgbG9kTWluRnJvbUZ1bmN0aW9uT3BlcmFuZCk7CisgICAg
bGV0IGxvZE1heCA9IHNhbXBsZXJMb2FkTWF4OworICAgIGxldCBsYW1iZGE7CisgICAgaWYgKGxh
bWJkYVByaW1lID4gbG9kTWF4KQorICAgICAgICBsYW1iZGEgPSBsb2RNYXg7CisgICAgZWxzZSBp
ZiAobG9kTWluIDw9IGxhbWJkYVByaW1lICYmIGxhbWJkYVByaW1lIDw9IGxvZE1heCkKKyAgICAg
ICAgbGFtYmRhID0gbGFtYmRhUHJpbWU7CisgICAgZWxzZSBpZiAobGFtYmRhUHJpbWUgPCBsb2RN
aW4pCisgICAgICAgIGxhbWJkYSA9IGxvZE1pbjsKKyAgICBlbHNlCisgICAgICAgIHRocm93IG5l
dyBFcnJvcigibG9kTWluID49IGxvZE1heCIpOworICAgIHJldHVybiBsYW1iZGE7Cit9CisKK2Z1
bmN0aW9uIGltYWdlTGV2ZWxTZWxlY3Rpb24oYmFzZU1pcExldmVsLCBsZXZlbENvdW50LCBtaXBt
YXBNb2RlLCBsYW1iZGEpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuNwor
ICAgIGZ1bmN0aW9uIG5lYXJlc3QoZFByaW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE1hdGgu
Y2VpbChkUHJpbWUgKyAwLjUpIC0gMTsKKyAgICB9CisKKyAgICBsZXQgcSA9IGxldmVsQ291bnQg
LSAxOworICAgIGxldCBkUHJpbWUgPSBiYXNlTWlwTGV2ZWwgKyBNYXRoLm1pbihNYXRoLm1heChs
YW1iZGEsIDApLCBxKTsKKyAgICBsZXQgZGw7CisgICAgaWYgKG1pcG1hcE1vZGUgPT0gIm5lYXJl
c3QiKQorICAgICAgICBkbCA9IG5lYXJlc3QoZFByaW1lKTsKKyAgICBlbHNlCisgICAgICAgIGRs
ID0gZFByaW1lOworICAgIGlmIChtaXBtYXBNb2RlID09ICJuZWFyZXN0IikKKyAgICAgICAgcmV0
dXJuIGRsOworICAgIGVsc2UgeworICAgICAgICBsZXQgZEhpID0gTWF0aC5mbG9vcihkbCk7Cisg
ICAgICAgIGxldCBkTG93ID0gTWF0aC5taW4oZEhpICsgMSwgcSk7CisgICAgICAgIGxldCBkZWx0
YSA9IGRsIC0gZEhpOworICAgICAgICByZXR1cm4gW2RIaSwgZExvdywgZGVsdGFdOworICAgIH0K
K30KKworZnVuY3Rpb24gc3RycWFUb1VWV0FUcmFuc2Zvcm1hdGlvbihzLCB0LCByLCB3aWR0aCwg
aGVpZ2h0LCBkZXB0aCkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi44Cisg
ICAgbGV0IHUgPSBzICogd2lkdGg7CisgICAgbGV0IHYgPSB0ICogaGVpZ2h0OworICAgIGxldCB3
ID0gciAqIGRlcHRoOworICAgIHJldHVybiBbdSwgdiwgd107Cit9CisKK2Z1bmN0aW9uIHV2d2FU
b0lKS0xOVHJhbnNmb3JtYXRpb25BbmRBcnJheUxheWVyU2VsZWN0aW9uKGxheWVyQ291bnQsIGJh
c2VBcnJheUxheWVyLCBmaWx0ZXIsIHUsIHYsIHcsIGEsIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUsp
Cit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjcuMQorCisgICAgaWYgKGRlbHRh
SSA9PSB1bmRlZmluZWQpCisgICAgICAgIGRlbHRhSSA9IDA7CisgICAgaWYgKGRlbHRhSiA9PSB1
bmRlZmluZWQpCisgICAgICAgIGRlbHRhSiA9IDA7CisgICAgaWYgKGRlbHRhSyA9PSB1bmRlZmlu
ZWQpCisgICAgICAgIGRlbHRhSyA9IDA7CisKKyAgICBmdW5jdGlvbiBybmUoYSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBNYXRoLmZsb29yKGEgKyAwLjUpOworICAgIH0KKyAgICBsZXQgbCA9IE1h
dGgubWluKE1hdGgubWF4KHJuZShhKSwgMCksIGxheWVyQ291bnQgLSAxKSArIGJhc2VBcnJheUxh
eWVyOworICAgIGxldCBpOworICAgIGxldCBqOworICAgIGxldCBrOworICAgIGlmIChmaWx0ZXIg
PT0gIm5lYXJlc3QiKSB7CisgICAgICAgIGkgPSBNYXRoLmZsb29yKHUpOworICAgICAgICBqID0g
TWF0aC5mbG9vcih2KTsKKyAgICAgICAgayA9IE1hdGguZmxvb3Iodyk7CisgICAgICAgIAorICAg
ICAgICBpICs9IGRlbHRhSTsKKyAgICAgICAgaiArPSBkZWx0YUo7CisgICAgICAgIGsgKz0gZGVs
dGFLOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIFtpLCBqLCBrLCBsXTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBpZiAoZmlsdGVyICE9ICJsaW5lYXIiKQorICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJVbmtub3duIGZpbHRlciIpOworICAgICAgICBsZXQgaTAgPSBNYXRoLmZsb29yKHUg
LSAwLjUpOworICAgICAgICBsZXQgaTEgPSBpMCArIDE7CisgICAgICAgIGxldCBqMCA9IE1hdGgu
Zmxvb3IodiAtIDAuNSk7CisgICAgICAgIGxldCBqMSA9IGowICsgMTsKKyAgICAgICAgbGV0IGsw
ID0gTWF0aC5mbG9vcih3IC0gMC41KTsKKyAgICAgICAgbGV0IGsxID0gazAgKyAxOworICAgICAg
ICBsZXQgYWxwaGEgPSAodSAtIDAuNSkgLSBpMDsKKyAgICAgICAgbGV0IGJldGEgPSAodiAtIDAu
NSkgLSBqMDsKKyAgICAgICAgbGV0IGdhbW1hID0gKHcgLSAwLjUpIC0gazA7CisgICAgICAgIAor
ICAgICAgICBpMCArPSBkZWx0YUk7CisgICAgICAgIGkxICs9IGRlbHRhSTsKKyAgICAgICAgajAg
Kz0gZGVsdGFKOworICAgICAgICBqMSArPSBkZWx0YUo7CisgICAgICAgIGswICs9IGRlbHRhSzsK
KyAgICAgICAgazEgKz0gZGVsdGFLOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIFtpMCwgaTEs
IGowLCBqMSwgazAsIGsxLCBsLCBhbHBoYSwgYmV0YSwgZ2FtbWFdOworICAgIH0KK30KKworZnVu
Y3Rpb24gaW50ZWdlclRleGVsQ29vcmRpbmF0ZU9wZXJhdGlvbnMoYmFzZU1pcExldmVsLCBsZXZl
bENvdW50LCBsZXZlbEJhc2UsIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQpCit7CisgICAgLy8gVnVs
a2FuIDEuMS44MyBzZWN0aW9uIDE1LjgKKyAgICBsZXQgZCA9IGxldmVsQmFzZSArIGxvZEZyb21G
dW5jdGlvbk9wZXJhbmQ7CisgICAgaWYgKGQgPCBiYXNlTWlwTGV2ZWwgfHwgZCA+PSBiYXNlTWlw
TGV2ZWwgKyBsZXZlbENvdW50KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNlbGVjdGVkIGxl
dmVsIGRvZXMgbm90IGxpZSBpbnNpZGUgdGhlIGltYWdlIik7CisgICAgcmV0dXJuIGQ7Cit9CisK
K2Z1bmN0aW9uIHdyYXBwaW5nT3BlcmF0aW9uKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBhZGRyZXNz
TW9kZVUsIGFkZHJlc3NNb2RlViwgYWRkcmVzc01vZGVXLCBpLCBqLCBrKQoreworICAgIC8vIFZ1
bGthbiAxLjEuODMgc2VjdGlvbiAxNS45LjEKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGN1YmUg
bWFwIGhhbmRsaW5nCisgICAgZnVuY3Rpb24gdHJhbnNmb3JtKGFkZHJlc3NNb2RlLCBzaXplLCBp
KQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gbWlycm9yKG4pIHsKKyAgICAgICAgICAgIGlmIChu
ID49IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIG47CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgcmV0dXJuIC0oMSArIG4pOworICAgICAgICB9CisgICAgICAgIHN3aXRjaCAo
YWRkcmVzc01vZGUpIHsKKyAgICAgICAgICAgIGNhc2UgImNsYW1wVG9FZGdlIjoKKyAgICAgICAg
ICAgICAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoaSwgMCksIHNpemUgLSAxKTsKKyAgICAg
ICAgICAgIGNhc2UgInJlcGVhdCI6CisgICAgICAgICAgICAgICAgcmV0dXJuIGkgJSBzaXplOwor
ICAgICAgICAgICAgY2FzZSAibWlycm9yUmVwZWF0IjoKKyAgICAgICAgICAgICAgICByZXR1cm4g
KHNpemUgLSAxKSAtIG1pcnJvcigoaSAlICgyICogc2l6ZSkpIC0gc2l6ZSk7CisgICAgICAgICAg
ICBjYXNlICJjbGFtcFRvQm9yZGVyQ29sb3IiOgorICAgICAgICAgICAgICAgIHJldHVybiBNYXRo
Lm1pbihNYXRoLm1heChpLCAtMSksIHNpemUpOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gYWRkcmVzcyBtb2RlIik7CisgICAg
ICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFt0cmFuc2Zvcm0oYWRkcmVzc01vZGVVLCB3aWR0aCwg
aSksIHRyYW5zZm9ybShhZGRyZXNzTW9kZVYsIGhlaWdodCwgaiksIHRyYW5zZm9ybShhZGRyZXNz
TW9kZVcsIGRlcHRoLCBrKV07Cit9CisKK2Z1bmN0aW9uIHRleGVsR2F0aGVyaW5nKCkKK3sKKyAg
ICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOS4yCisgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0aGlzCisgICAgLypsZXQgdGF1UiA9IDsKKyAgICBsZXQgdGF1RyA9IDsKKyAgICBsZXQgdGF1
QiA9IDsKKyAgICBsZXQgdGF1QSA9IDsqLworfQorCitmdW5jdGlvbiB0ZXhlbEZpbHRlcmluZygK
KyAgICBkZXZpY2VNYXhBbmlzb3Ryb3B5LAorICAgIGRldmljZU1heFNhbXBsZXJMb2RCaWFzLAor
ICAgIGJhc2VNaXBMZXZlbCwKKyAgICBiYXNlQXJyYXlMYXllciwKKyAgICB0ZXh0dXJlLAorICAg
IHNhbXBsZXIsCisgICAgc2FtcGxlckJpYXMsCisgICAgcywgdCwgciwgYSwKKyAgICBkZWx0YUks
IGRlbHRhSiwgZGVsdGFLLAorICAgIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgbG9kTWlu
RnJvbUZ1bmN0aW9uT3BlcmFuZCwKKyAgICBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwKKyAgICBk
ZHgsIGRkeSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOS4zCisKKyAgICAv
LyBUaGUgc3BlYyB1c2VzIGRpZmZlcmVudCBuYW1lcyB0aGFuIFdlYkdQVSBkb2VzLgorICAgIGxl
dCBhZGRyZXNzTW9kZVUgPSBzYW1wbGVyLnJBZGRyZXNzTW9kZTsKKyAgICBsZXQgYWRkcmVzc01v
ZGVWID0gc2FtcGxlci5zQWRkcmVzc01vZGU7CisgICAgbGV0IGFkZHJlc3NNb2RlVyA9IHNhbXBs
ZXIudEFkZHJlc3NNb2RlOworCisgICAgLy8gRklYTUU6IE1ha2UgdGhpcyB3b3JrIHdpdGggY3Vi
ZW1hcHMKKyAgICBsZXQgcGFydGlhbFNXaXRoUmVzcGVjdFRvWCA9IDA7CisgICAgbGV0IHBhcnRp
YWxUV2l0aFJlc3BlY3RUb1ggPSAwOworICAgIGxldCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9YID0g
MDsKKyAgICBpZiAoZGR4ICE9IHVuZGVmaW5lZCkgeworICAgICAgICBwYXJ0aWFsU1dpdGhSZXNw
ZWN0VG9YID0gZGR4WzBdOworICAgICAgICBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YID0gZGR4WzFd
OworICAgICAgICBwYXJ0aWFsUldpdGhSZXNwZWN0VG9YID0gZGR4WzJdOworICAgIH0KKyAgICBs
ZXQgcGFydGlhbFNXaXRoUmVzcGVjdFRvWSA9IDA7CisgICAgbGV0IHBhcnRpYWxUV2l0aFJlc3Bl
Y3RUb1kgPSAwOworICAgIGxldCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9ZID0gMDsKKyAgICBpZiAo
ZGR5ICE9IHVuZGVmaW5lZCkgeworICAgICAgICBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9ZID0gZGR5
WzBdOworICAgICAgICBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZID0gZGR5WzFdOworICAgICAgICBw
YXJ0aWFsUldpdGhSZXNwZWN0VG9ZID0gZGR5WzJdOworICAgIH0KKyAgICBsZXQgW3Job01heCwg
cmhvTWluLCBldGEsIE5dID0gc2NhbGVGYWN0b3JPcGVyYXRpb24oZGV2aWNlTWF4QW5pc290cm9w
eSwgdGV4dHVyZS53aWR0aCwgdGV4dHVyZS5oZWlnaHQsIHRleHR1cmUuZGVwdGgsIHNhbXBsZXIu
bWF4QW5pc290cm9weSwgcGFydGlhbFNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRXaXRoUmVzcGVj
dFRvWCwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNXaXRoUmVzcGVjdFRvWSwgcGFy
dGlhbFRXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWSk7CisgICAgbGV0IGxh
bWJkYSA9IGxldmVsT2ZEZXRhaWxPcGVyYXRpb24oZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMsIGxv
ZEZyb21GdW5jdGlvbk9wZXJhbmQsIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQsIGJpYXNGcm9t
RnVuY3Rpb25PcGVyYW5kLCBzYW1wbGVyQmlhcywgc2FtcGxlci5sb2RNaW5DbGFtcCwgc2FtcGxl
ci5sb2RNYXhDbGFtcCwgcmhvTWF4LCBldGEpOworCisgICAgbGV0IGZpbHRlcjsKKyAgICBpZiAo
bGFtYmRhIDw9IDApCisgICAgICAgIGZpbHRlciA9IHNhbXBsZXIubWFnRmlsdGVyOworICAgIGVs
c2UKKyAgICAgICAgZmlsdGVyID0gc2FtcGxlci5taW5GaWx0ZXI7CisKKyAgICBmdW5jdGlvbiBj
b21wdXRlVGF1KGxldmVsKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gcmVkdWNlKC4uLnZhbHVl
cykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggJSAyICE9IDApCisg
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJEb24ndCBoYXZlIGEgd2VpZ2h0IGNvcnJl
c3BvbmRpbmcgdG8gZWFjaCB2YWx1ZSIpOworICAgICAgICAgICAgbGV0IHN1bSA9IDA7CisgICAg
ICAgICAgICAvLyBGSVhNRTogVGhlc2UgYXJndW1lbnRzIG5lZWQgdG8gYmUgYXZlcmFnZWQgY29t
cG9uZW50LXdpc2UuCisgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5n
dGggLyAyOyArK2kpCisgICAgICAgICAgICAgICAgc3VtICs9IHZhbHVlc1syICogaV0gKiB2YWx1
ZXNbMiAqIGkgKyAxXTsKKyAgICAgICAgICAgIHJldHVybiBzdW07CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBhY2Nlc3NDb2xvcih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbCwgaSwgaiwg
aykKKyAgICAgICAgeworICAgICAgICAgICAgZnVuY3Rpb24gc2hvdWxkQmVCb3JkZXIodmFsdWUs
IG1heCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgPCAtMSB8fCB2
YWx1ZSA+IG1heCkKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJPdXQtb2Yt
Ym91bmRzIHRleHR1cmUgcmVhZCIpOworICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PSAt
MSB8fCB2YWx1ZSA9PSBtYXg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxldCBbd3Jh
cHBlZEksIHdyYXBwZWRKLCB3cmFwcGVkS10gPSB3cmFwcGluZ09wZXJhdGlvbih3aWR0aCwgaGVp
Z2h0LCBkZXB0aCwgYWRkcmVzc01vZGVVLCBhZGRyZXNzTW9kZVYsIGFkZHJlc3NNb2RlVywgaSwg
aiwgaykKKyAgICAgICAgICAgIGlmIChzaG91bGRCZUJvcmRlcih3cmFwcGVkSSwgd2lkdGgpIHx8
IHNob3VsZEJlQm9yZGVyKHdyYXBwZWRKLCBoZWlnaHQpIHx8IHNob3VsZEJlQm9yZGVyKHdyYXBw
ZWRLLCBkZXB0aCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHNhbXBsZXIuYm9yZGVyQ29sb3Io
dGV4dHVyZS5pbm5lclR5cGUpOyAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIHRleHR1cmUuZWxlbWVudChsLCBsZXZlbCwg
aywgaiwgaSk7CisgICAgICAgIH0KKworICAgICAgICBsZXQgW3UsIHYsIHddID0gc3RycWFUb1VW
V0FUcmFuc2Zvcm1hdGlvbihzLCB0LCByLCB0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRl
eHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSk7
CisgICAgICAgIGlmIChmaWx0ZXIgPT0gIm5lYXJlc3QiKSB7CisgICAgICAgICAgICBsZXQgW2ks
IGosIGssIGxdID0gdXZ3YVRvSUpLTE5UcmFuc2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJTZWxlY3Rp
b24odGV4dHVyZS5sYXllckNvdW50LCBiYXNlQXJyYXlMYXllciwgZmlsdGVyLCB1LCB2LCB3LCBh
LCBkZWx0YUksIGRlbHRhSiwgZGVsdGFLKTsKKyAgICAgICAgICAgIHJldHVybiBhY2Nlc3NDb2xv
cih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZl
bCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaSwgaiwgayk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBpZiAoZmlsdGVyICE9ICJsaW5lYXIiKQorICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBmaWx0ZXIiKTsKKyAgICAgICAgICAgIFtpMCwg
aTEsIGowLCBqMSwgazAsIGsxLCBsLCBhbHBoYSwgYmV0YSwgZ2FtbWFdID0gdXZ3YVRvSUpLTE5U
cmFuc2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJTZWxlY3Rpb24odGV4dHVyZS5sYXllckNvdW50LCBi
YXNlQXJyYXlMYXllciwgZmlsdGVyLCB1LCB2LCB3LCBhLCBkZWx0YUksIGRlbHRhSiwgZGVsdGFL
KTsKKyAgICAgICAgICAgIGxldCBjb2xvcjAwMCA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhB
dExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0
aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMCwgajAsIGswKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjEw
MCA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWln
aHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMSwgajAs
IGswKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjAxMCA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lk
dGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5k
ZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMCwgajEsIGswKTsKKyAgICAgICAgICAgIGxldCBjb2xv
cjExMCA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5o
ZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMSwg
ajEsIGswKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjAwMSA9IGFjY2Vzc0NvbG9yKHRleHR1cmUu
d2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVy
ZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMCwgajAsIGsxKTsKKyAgICAgICAgICAgIGxldCBj
b2xvcjEwMSA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVy
ZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBp
MSwgajAsIGsxKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjAxMSA9IGFjY2Vzc0NvbG9yKHRleHR1
cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4
dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMCwgajEsIGsxKTsKKyAgICAgICAgICAgIGxl
dCBjb2xvcjExMSA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4
dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBs
LCBpMSwgajEsIGsxKTsKKyAgICAgICAgICAgIHN3aXRjaCAodGV4dHVyZS5kaW1lbnNpb24pIHsK
KyAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgIGxldCBjb2xvcjAg
PSBjb2xvcjAxMTsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMSA9IGNvbG9yMTExOwor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVkdWNlKDEgLSBhbHBoYSwgY29sb3IwLCBhbHBo
YSwgY29sb3IxKTsKKyAgICAgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgICAg
IGxldCBjb2xvcjAwID0gY29sb3IwMDE7CisgICAgICAgICAgICAgICAgICAgIGxldCBjb2xvcjEw
ID0gY29sb3IxMDE7CisgICAgICAgICAgICAgICAgICAgIGxldCBjb2xvcjAxID0gY29sb3IwMTE7
CisgICAgICAgICAgICAgICAgICAgIGxldCBjb2xvcjExID0gY29sb3IxMTE7CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiByZWR1Y2UoKDEgLSBhbHBoYSkgKiAoMSAtIGJldGEpLCBjb2xvcjAw
LCBhbHBoYSAqICgxIC0gYmV0YSksIGNvbG9yMTAsICgxIC0gYWxwaGEpICogYmV0YSwgY29sb3Iw
MSwgYWxwaGEgKiBiZXRhLCBjb2xvcjExKTsKKyAgICAgICAgICAgICAgICBjYXNlIDM6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiByZWR1Y2UoCisgICAgICAgICAgICAgICAgICAgICAgICAo
MSAtIGFscGhhKSAqICgxIC0gYmV0YSkgKiAoMSAtIGdhbW1hKSwgY29sb3IwMDAsCisgICAgICAg
ICAgICAgICAgICAgICAgICBhbHBoYSAqICgxIC0gYmV0YSkgKiAoMSAtIGdhbW1hKSwgY29sb3Ix
MDAsCisgICAgICAgICAgICAgICAgICAgICAgICAoMSAtIGFscGhhKSAqIGJldGEgKiAoMSAtIGdh
bW1hKSwgY29sb3IwMTAsCisgICAgICAgICAgICAgICAgICAgICAgICBhbHBoYSAqIGJldGEgKiAo
MSAtIGdhbW1hKSwgY29sb3IxMTAsCisgICAgICAgICAgICAgICAgICAgICAgICAoMSAtIGFscGhh
KSAqICgxIC0gYmV0YSkgKiBnYW1tYSwgY29sb3IwMDEsCisgICAgICAgICAgICAgICAgICAgICAg
ICBhbHBoYSAqICgxIC0gYmV0YSkgKiBnYW1tYSwgY29sb3IxMDEsCisgICAgICAgICAgICAgICAg
ICAgICAgICAoMSAtIGFscGhhKSAqIGJldGEgKiBnYW1tYSwgY29sb3IwMTEsCisgICAgICAgICAg
ICAgICAgICAgICAgICBhbHBoYSAqIGJldGEgKiBnYW1tYSwgY29sb3IxMTEpOworICAgICAgICAg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5r
bm93biBkaW1lbnNpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAg
IGlmIChzYW1wbGVyLm1pcEZpbHRlciA9PSAibmVhcmVzdCIpIHsKKyAgICAgICAgbGV0IGltYWdl
TGV2ZWwgPSBpbWFnZUxldmVsU2VsZWN0aW9uKGJhc2VNaXBMZXZlbCwgdGV4dHVyZS5sZXZlbENv
dW50LCBzYW1wbGVyLm1pcEZpbHRlciwgbGFtYmRhKTsKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVU
YXUoaW1hZ2VMZXZlbCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHNhbXBsZXIubWlwRmls
dGVyICE9ICJsaW5lYXIiKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGZp
bHRlciIpOworICAgICAgICBsZXQgW2RIaSwgZExvdywgZGVsdGFdID0gaW1hZ2VMZXZlbFNlbGVj
dGlvbihiYXNlTWlwTGV2ZWwsIHRleHR1cmUubGV2ZWxDb3VudCwgc2FtcGxlci5taXBGaWx0ZXIs
IGxhbWJkYSk7CisgICAgICAgIHJldHVybiByZWR1Y2UoMSAtIGRlbHRhLCBjb21wdXRlVGF1KGRI
aSksIGRlbHRhLCBjb21wdXRlVGF1KGRMbykpOworICAgIH0KK30KKworZnVuY3Rpb24gc2FtcGxl
VGV4dHVyZSh0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGVsdGEsIGJpYXNGcm9tRnVuY3Rp
b25PcGVyYW5kLCBkZHgsIGRkeSwgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwgZHJlZikKK3sKKyAg
ICBsZXQgcyA9IGxvY2F0aW9uWzBdOworICAgIGxldCB0ID0gbG9jYXRpb25bMV07CisgICAgbGV0
IHIgPSBsb2NhdGlvblsyXTsKKyAgICBsZXQgcSA9IGxvY2F0aW9uWzNdOworICAgIGxldCBhID0g
bG9jYXRpb25bNF07CisKKyAgICBsZXQgZGVsdGFJID0gdW5kZWZpbmVkOworICAgIGxldCBkZWx0
YUogPSB1bmRlZmluZWQ7CisgICAgbGV0IGRlbHRhSyA9IHVuZGVmaW5lZDsKKyAgICBpZiAoZGVs
dGEgIT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGRlbHRhSSA9IGRlbHRhWzBdOworICAgICAgICBk
ZWx0YUogPSBkZWx0YVsxXTsKKyAgICAgICAgZGVsdGFLID0gZGVsdGFbMl07CisgICAgfQorCisg
ICAgW3MsIHQsIHIsIGRyZWZdID0gcHJvamVjdGlvbk9wZXJhdGlvbihzLCB0LCByLCBkcmVmLCBx
KTsKKyAgICBsZXQgcmVzdWx0ID0gdGV4ZWxGaWx0ZXJpbmcoCisgICAgICAgIE51bWJlci5NQVhf
VkFMVUUsCisgICAgICAgIE51bWJlci5NQVhfVkFMVUUsCisgICAgICAgIDAsCisgICAgICAgIDAs
CisgICAgICAgIHRleHR1cmUsCisgICAgICAgIHNhbXBsZXIsCisgICAgICAgIDAsCisgICAgICAg
IHMsIHQsIHIsIGEsCisgICAgICAgIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUssCisgICAgICAgIGxv
ZEZyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgICAgIC1OdW1iZXIuTUFYX1ZBTFVFLAorICAgICAg
ICBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwKKyAgICAgICAgZGR4LCBkZHkpOworICAgIGlmIChk
cmVmICE9IHVuZGVmaW5lZCkgeworICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgQXJyYXkp
CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkRlcHRoIGNvbXBhcmlzb24gbm90IHN1cHBv
cnRlZCBvbiBtdWx0aWNoYW5uZWwgdGV4dHVyZXMiKTsKKyAgICAgICAgcmVzdWx0ID0gZGVwdGhD
b21wYXJlT3BlcmF0aW9uKGRyZWYsIHJlc3VsdCwgc2FtcGxlci5jb21wYXJlRnVuY3Rpb24pOwor
ICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQg
dG8gZG8gd2l0aCBhbmlzb3Ryb3B5CisgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgaG93IHRvIGRv
IG11bHRpc2FtcGxpbmcuCisgICAgLy8gRklYTUU6IENhc3QgdGhlIHJlc3VsdCBiYWNrIHRvIHRo
ZSBjb3JyZWN0IHR5cGUuCit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9pbmRleC5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRt
bAppbmRleCA2NWE4NjQxMWIzZTc3MGI1NTdiNDFhY2M3ZTQxNGRlZjQyNDAzMDEzLi4zMzhlZTlj
OWI5MzhiNTQ4MmI4ODhlNGU5MjRkY2NkZGJlN2ZiMmNkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL2luZGV4Lmh0bWwKQEAgLTEyNyw2ICsxMjcsOCBAQAogPHNjcmlwdCBzcmM9IlN5
bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
VGV4dHVyZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNv
bHZlci5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348698</attachid>
            <date>2018-08-31 19:42:10 -0700</date>
            <delta_ts>2018-08-31 22:02:47 -0700</delta_ts>
            <desc>Can sample</desc>
            <filename>bug-188940-20180831194209.patch</filename>
            <type>text/plain</type>
            <size>171063</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTc5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2Q4OThkNDE0Y2U2OGY4MWEyM2UzYmQyMTU2Zjc1ZDNl
MjMwZTkzOC4uMTBkZjgxMTUzMDMyZWM5NDI0MmNmMTZiZGMxZGY4NDdjZTRhMTRkMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
OSBAQAorMjAxOC0wOC0zMSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRleHR1cmUgdHlwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNp
Y3MuanM6CisgICAgICAgIChJbnRyaW5zaWNzLik6CisgICAgICAgIChJbnRyaW5zaWNzLmNoZWNr
RmFsc2UpOgorICAgICAgICAoSW50cmluc2ljcy5ib3hWZWN0b3IpOgorICAgICAgICAoSW50cmlu
c2ljcy51bmJveFZlY3Rvcik6CisgICAgICAgIChJbnRyaW5zaWNzKToKKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qczoKKyAgICAgICAgKGxldC5zdGFuZGFyZExpYnJh
cnkpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAobWFrZVNhbXBs
ZXIpOgorICAgICAgICAobWFrZTFEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMURUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMkRUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTNEVGV4dHVyZSk6CisgICAgICAgIChtYWtlVGV4dHVyZUN1YmUp
OgorICAgICAgICAobWFrZVJXMURUZXh0dXJlKToKKyAgICAgICAgKG1ha2VSVzFEVGV4dHVyZUFy
cmF5KToKKyAgICAgICAgKG1ha2VSVzJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlUlcyRFRleHR1
cmVBcnJheSk6CisgICAgICAgIChtYWtlUlczRFRleHR1cmUpOgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1RleHR1cmUuanM6IEFkZGVkLgorICAgICAgICAoVGV4dHVyZSk6Cisg
ICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQgZGltZW5zaW9uKToKKyAgICAgICAgKFRleHR1
cmUucHJvdG90eXBlLmdldCB3aWR0aCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aGVpZ2h0KToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkZXB0aCk6CisgICAgICAg
IChUZXh0dXJlLnByb3RvdHlwZS5nZXQgbGV2ZWxDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnBy
b3RvdHlwZS5nZXQgbGF5ZXJDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aW5uZXJUeXBlKToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkYXRhKToKKyAgICAg
ICAgKFRleHR1cmUucHJvdG90eXBlLmVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUu
cHJvdG90eXBlLnNldEVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUxRCk6CisgICAg
ICAgIChUZXh0dXJlMUQucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJl
MUQucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlw
ZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlwZS5lbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUxRC5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0
dXJlMURBcnJheSk6CisgICAgICAgIChUZXh0dXJlMURBcnJheS5wcm90b3R5cGUud2lkdGhBdExl
dmVsKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToK
KyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTFEQXJyYXkucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTFE
QXJyYXkucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEKToKKyAgICAg
ICAgKFRleHR1cmUyRC5wcm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUy
RC5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBl
LmRlcHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBlLmVsZW1lbnQpOgor
ICAgICAgICAoVGV4dHVyZTJELnByb3RvdHlwZS5zZXRFbGVtZW50KToKKyAgICAgICAgKFRleHR1
cmUyREFycmF5KToKKyAgICAgICAgKFRleHR1cmUyREFycmF5LnByb3RvdHlwZS53aWR0aEF0TGV2
ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgor
ICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMkRBcnJheS5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMkRB
cnJheS5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlM0QpOgorICAgICAg
ICAoVGV4dHVyZTNELnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTNE
LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUuZWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0QucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVy
ZUN1YmUpOgorICAgICAgICAoVGV4dHVyZUN1YmUucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6Cisg
ICAgICAgIChUZXh0dXJlQ3ViZS5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlQ3ViZS5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmVDdWJl
LnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmVDdWJlLnByb3RvdHlwZS5zZXRF
bGVtZW50KToKKyAgICAgICAgKFRleHR1cmUxRFJXKToKKyAgICAgICAgKFRleHR1cmUxRFJXLnBy
b3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmhl
aWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmRlcHRoQXRMZXZl
bCk6CisgICAgICAgIChUZXh0dXJlMURSVy5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChU
ZXh0dXJlMURSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMURBcnJh
eVJXKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6
CisgICAgICAgIChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAg
ICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUx
REFycmF5UlcucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEUlcpOgor
ICAgICAgICAoVGV4dHVyZTJEUlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlMkRSVy5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkRS
Vy5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlw
ZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlwZS5zZXRFbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUyREFycmF5UlcpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5w
cm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90
eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90eXBlLmVsZW1l
bnQpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0RSVyk6CisgICAgICAgIChUZXh0dXJlM0RSVy5wcm90b3R5cGUud2lk
dGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVs
KToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTNEUlcucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTNEUlcu
cHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1RleHR1cmVPcGVyYXRpb25zLmpzOiBBZGRlZC4KKyAgICAgICAgKGRlcHRoQ29tcGFyZU9wZXJh
dGlvbik6CisgICAgICAgIChjb252ZXJzaW9uVG9SR0JBKToKKyAgICAgICAgKHByb2plY3Rpb25P
cGVyYXRpb24pOgorICAgICAgICAoY3ViZU1hcEZhY2VTZWxlY3Rpb24pOgorICAgICAgICAoY3Vi
ZU1hcENvb3JkaW5hdGVUcmFuc2Zvcm1hdGlvbik6CisgICAgICAgIChjdWJlTWFwRGVyaXZhdGl2
ZVRyYW5zZm9ybWF0aW9uKToKKyAgICAgICAgKHNjYWxlRmFjdG9yT3BlcmF0aW9uKToKKyAgICAg
ICAgKGxldmVsT2ZEZXRhaWxPcGVyYXRpb24pOgorICAgICAgICAobmVhcmVzdCk6CisgICAgICAg
IChpbWFnZUxldmVsU2VsZWN0aW9uKToKKyAgICAgICAgKHN0cnFhVG9VVldBVHJhbnNmb3JtYXRp
b24pOgorICAgICAgICAocm5lKToKKyAgICAgICAgKHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25B
bmRBcnJheUxheWVyU2VsZWN0aW9uKToKKyAgICAgICAgKGludGVnZXJUZXhlbENvb3JkaW5hdGVP
cGVyYXRpb25zKToKKyAgICAgICAgKG1pcnJvcik6CisgICAgICAgICh0cmFuc2Zvcm0pOgorICAg
ICAgICAod3JhcHBpbmdPcGVyYXRpb24pOgorICAgICAgICAodGV4ZWxHYXRoZXJpbmcpOgorICAg
ICAgICAoY29tcHV0ZVRhdS5yZWR1Y2UpOgorICAgICAgICAoY29tcHV0ZVRhdS5zaG91bGRCZUJv
cmRlcik6CisgICAgICAgIChjb21wdXRlVGF1LmFjY2Vzc0NvbG9yKToKKyAgICAgICAgKGNvbXB1
dGVUYXUpOgorICAgICAgICAodGV4ZWxGaWx0ZXJpbmcpOgorICAgICAgICAoc2FtcGxlVGV4dHVy
ZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAx
OC0wOC0zMSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgYWRkIGFuIGFsdGVybmF0ZSBlbWFpbCBmb3IgQWRpdHlhIEtlZXJ0aGkuCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKaW5kZXggOWMyYTM3MTUwYzFlOTc2YjkyNmNm
YmVlMjM0Mzc1MjBhOGRlNGE0Ny4uMDBmZTVkMDExYmIwYzRiNWQzNTQ2YzVkMjBhOGJjZDBhMzJk
MzYzYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCisr
KyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwpAQCAtMTUwLDYgKzE1MCw4
IEBAIGxvYWQoIlN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMiKTsKIGxvYWQoIlN5bnRoZXNp
emVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyIpOwogbG9hZCgiU3ludGhlc2l6ZURlZmF1bHRD
b25zdHJ1Y3Rvck9wZXJhdG9yLmpzIik7CiBsb2FkKCJUZXJuYXJ5RXhwcmVzc2lvbi5qcyIpOwor
bG9hZCgiVGV4dHVyZS5qcyIpOworbG9hZCgiVGV4dHVyZU9wZXJhdGlvbnMuanMiKTsKIGxvYWQo
IlRyYXBTdGF0ZW1lbnQuanMiKTsKIGxvYWQoIlR5cGVEZWYuanMiKTsKIGxvYWQoIlR5cGVEZWZS
ZXNvbHZlci5qcyIpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
SW50cmluc2ljcy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3Mu
anMKaW5kZXggYjAwNDA2N2Y1ZWJmYjNhOGI0YmQ5OGU0MzdhOGMwNzY4YmUyNmYxZS4uYmU3ODQw
MDQzNGUzN2UzOTE3MzlmNTViZjc2NGY0ZWFhZmNiYzIzNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcworKysgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCkBAIC0zMzAsNyArMzMwLDggQEAgY2xhc3MgSW50
cmluc2ljcyB7CiAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgc2FtcGxlciIsCiAgICAgICAg
ICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAgICB0aGlzLnNhbXBsZXIgPSB0eXBlOwotICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gcHV0IGhlcmUuCisgICAg
ICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRl
RGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwge30p
OwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgZm9yIChsZXQgdGV4dHVyZVR5cGUgb2YgWyJU
ZXh0dXJlMUQiLCAiUldUZXh0dXJlMUQiLCAiVGV4dHVyZTFEQXJyYXkiLCAiUldUZXh0dXJlMURB
cnJheSIsICJUZXh0dXJlMkQiLCAiUldUZXh0dXJlMkQiLCAiVGV4dHVyZTJEQXJyYXkiLCAiUldU
ZXh0dXJlMkRBcnJheSIsICJUZXh0dXJlM0QiLCAiUldUZXh0dXJlM0QiLCAiVGV4dHVyZUN1YmUi
XSkgewpAQCAtMzM5LDEyICszNDAsMTYgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgdHlwZWRlZiAke3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+
YCwKICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzW2Ake3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YF0gPSB0eXBlOworICAgICAg
ICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5z
ZXQob2Zmc2V0LCB7fSk7CiAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAg
IGZvciAobGV0IGkgPSAyOyBpIDw9IDQ7ICsraSkgewogICAgICAgICAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAogICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4
dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fSR7aX0+YCwKICAgICAgICAgICAgICAgICAgICAgICAg
IHR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5
cGV9PCR7dHlwZUFyZ3VtZW50fSR7aX0+YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5w
b3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZz
ZXQsIHt9KTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0KQEAgLTM1Niw2ICszNjEsOCBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlwZUFy
Z3VtZW50fT5gLAogICAgICAgICAgICAgICAgICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAg
ICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gXSA9IHR5cGU7
CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAg
ICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4g
YnVmZmVyLnNldChvZmZzZXQsIHt9KTsKICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KQEAgLTkxNCw2ICs5MjEsNzQyIEBAIGNsYXNzIEludHJpbnNpY3Mg
ewogCiAgICAgICAgIGZvciAobGV0IHNldHRlciBvZiBCdWlsdGluTWF0cml4U2V0dGVyLmZ1bmN0
aW9ucygpKQogICAgICAgICAgICAgdGhpcy5fbWFwLnNldChzZXR0ZXIudG9TdHJpbmcoKSwgZnVu
YyA9PiBzZXR0ZXIuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKSk7CisKKyAgICAgICAg
ZnVuY3Rpb24gY2hlY2tVbmRlZmluZWQob3JpZ2luLCBleHBsYW5hdGlvbiwgdmFsdWUpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJv
dW5kcyIpOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICB9CisKKyAgICAgICAg
ZnVuY3Rpb24gY2hlY2tGYWxzZShvcmlnaW4sIGV4cGxhbmF0aW9uLCB2YWx1ZSkKKyAgICAgICAg
eworICAgICAgICAgICAgaWYgKHZhbHVlID09IGZhbHNlKQorICAgICAgICAgICAgICAgIHRocm93
IG5ldyBXVHJhcEVycm9yKCJbU3RvcmVdIiwgIlRleHR1cmUgc3RvcmUgb3V0IG9mIGJvdW5kcyIp
OworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gYm94VmVjdG9yKGEpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAgICAgICAgICBs
ZXQgcmVzdWx0ID0gbmV3IEVQdHIobmV3IEVCdWZmZXIoYS5sZW5ndGgpLCAwKTsKKyAgICAgICAg
ICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyArK2kpCisgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdC5zZXQoaSwgYVtpXSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChh
KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHVuYm94VmVjdG9yKGEsIGxlbmd0aCkK
KyAgICAgICAgeworICAgICAgICAgICAgaWYgKGxlbmd0aCAhPSAiIikgeworICAgICAgICAgICAg
ICAgIGxlbmd0aCA9IE51bWJlci5wYXJzZUludChsZW5ndGgpOworICAgICAgICAgICAgICAgIGxl
dCByZXN1bHQgPSBbXTsKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0
aDsgKytpKQorICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChhLmdldChpKSk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgICAgIHJldHVybiBhLmxvYWRWYWx1ZSgpOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChs
ZXQgdHlwZSBvZiBbInVjaGFyIiwgInVzaG9ydCIsICJ1aW50IiwgImNoYXIiLCAic2hvcnQiLCAi
aW50IiwgImhhbGYiLCAiZmxvYXQiXSkgeworICAgICAgICAgICAgZm9yICh2YXIgbGVuZ3RoVmFy
aWFibGUgb2YgW2BgLCBgMmAsIGAzYCwgYDRgXSkgeworICAgICAgICAgICAgICAgIGxldCBsZW5n
dGggPSBsZW5ndGhWYXJpYWJsZTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUx
RDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0IGxvY2F0aW9uKWAsCisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5sb2Fk
VmFsdWUoKSwgMCwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9h
ZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBs
ZShUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdCBsb2NhdGlvbixpbnQg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBs
b2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmxvYWRWYWx1ZSgpLCAwLCAwLCAxLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQubG9hZFZhbHVl
KCksIDAsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Io
c2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBs
b2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMUQ8
JHt0eXBlfSR7bGVuZ3RofT4saW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJl
YWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwg
bG9jYXRpb24uZ2V0KDEpLCAwLCAwLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3Ro
fSBMb2FkKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixpbnQyIGxvY2F0aW9uLGludCBvZmZz
ZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwg
b2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Io
Y2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRl
eHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDEpLCAwLCAw
LCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZzZXQubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNp
b25zKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVh
ZCBXaWR0aCx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgbnVtYmVyT2ZMZXZlbHNdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVl
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9h
ZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5s
ZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1Ry
YXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAg
bGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9
IFNhbXBsZShUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBs
b2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9u
QXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCAwLCAwLCAxLCBsb2NhdGlvbi5nZXQoMSldOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0
ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7
bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2Nh
dGlvbi5nZXQoMCksIDAsIDAsIDEsIGxvY2F0aW9uLmdldCgxKV07CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmxvYWRWYWx1ZSgpLCAwLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTFEQXJyYXk8JHt0eXBl
fSR7bGVuZ3RofT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0
IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24u
Z2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IExvYWQoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4saW50MyBsb2Nh
dGlvbixpbnQgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVy
ZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBv
ZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdl
dCgyKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAwLCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZzZXQubG9h
ZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
ICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxREFycmF5PCR7dHlwZX0ke2xl
bmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBFbGVt
ZW50cyx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgZWxlbWVudHMsIG51bWJlck9mTGV2
ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxv
YWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxl
dmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+
PSB0ZXgubGV2ZWxDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cg
bmV3IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3Rh
bnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3
aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElE
KSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgp
LmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMkQ8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0
aH0gU2FtcGxlKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkg
PSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSR7bGVuZ3RofSBTYW1wbGVCaWFzKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MiBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0
aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9h
ZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgYmlhcy5sb2FkVmFsdWUoKSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3Ro
fSBTYW1wbGVCaWFzKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBs
b2NhdGlvbixmbG9hdCBCaWFzLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhcywgb2Zmc2V0XSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdl
dCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgZGVsdGFBcnJheSwgYmlhcy5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVHcmFkKFRleHR1cmUy
RDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdDIgRERYLGZs
b2F0MiBERFkpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBkZHgsIGRkeV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwg
MSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5n
ZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBk
ZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFs
dWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIGRkeEFycmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIs
ZmxvYXQyIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSxpbnQyIG9mZnNldClgLAorICAg
ICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRk
eCwgZGR5LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0
aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBk
ZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkg
PSBbZGR5LmdldCgwKSwgZGR5LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJl
KHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXks
IGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEPCR7dHlwZX0k
e2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IExPRClgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9JHtsZW5ndGh9IFNhbXBsZUxldmVsKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Pixz
YW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBMT0QsaW50MiBvZmZzZXQpYCwKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2QsIG9m
ZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9
IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0
LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rv
cihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCks
IGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIGxvZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUy
RDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVy
ZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQy
IGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVu
KFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAor
ICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBs
ZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdh
dGhlckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9
PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9
JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNl
dF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LGlu
dDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9y
KGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0
ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgyKSwgMCwg
bG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2Fk
KFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNl
dF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNr
VW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJl
LmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRp
b24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0LmdldCgw
KSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQg
TWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhy
ZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigi
W0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2Yg
dGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUo
KS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZl
bENvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIH0pOworCisgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTJEQXJyYXk8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwg
bG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDAp
LCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0Lmdl
dCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihz
YW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxv
Y2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVCaWFzKFRleHR1
cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0
IEJpYXMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2Nh
dGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIGJpYXMubG9hZFZhbHVlKCksIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxl
QmlhcyhUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbixmbG9hdCBCaWFzLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhcywgb2Zmc2V0XSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5n
ZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Io
c2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBs
b2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdy
YWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24sZmxvYXQyIEREWCxmbG9hdDIgRERZKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2Nh
dGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHku
Z2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9y
KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwg
bG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGRkeEFycmF5LCBkZHlBcnJheSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4dHVy
ZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQy
IEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5n
ZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4LmdldCgx
KSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeUFycmF5ID0gW2RkeS5n
ZXQoMCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBk
ZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFy
cmF5LCB1bmRlZmluZWQsIGRkeEFycmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUxldmVsKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xl
bmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IExPRClgLAorICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5n
ZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVy
ZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVu
ZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEQXJyYXk8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9ELGludDIgb2Zm
c2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgbG9kLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEs
IGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRh
QXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9h
ZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXks
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxvZC5sb2FkVmFsdWUoKSwgdW5kZWZp
bmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEQXJy
YXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQp
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUyREFycmF5PCR7dHlwZX0k
e2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJS
ZWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVy
ZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00
IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBv
ZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVu
Z3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhh
KFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
LGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJl
MkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQ0IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRl
eHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hl
Y2tlZChsb2NhdGlvbi5nZXQoMyksIGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEp
LCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyREFycmF5
PCR7dHlwZX0ke2xlbmd0aH0+LGludDQgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQo
IltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVl
KCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDMpLCBsb2NhdGlvbi5nZXQoMiksIDAsIGxv
Y2F0aW9uLmdldCgxKSArIG9mZnNldC5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5n
ZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0
aH0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQs
dWludCogdGhyZWFkIEVsZW1lbnRzLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAg
ICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWln
aHQsIGVsZW1lbnRzLCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10i
LCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIu
Ym94KHRleC5oZWlnaHRBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2
ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRl
eHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRl
eHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3Ro
fT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MyBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24u
Z2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zm
c2V0LmdldCgxKSwgb2Zmc2V0LmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBs
ZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3Ro
fSBMb2FkKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PixpbnQ0IGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xv
YWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5l
bGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMyksIGxvY2F0aW9uLmdldCgyKSwgbG9jYXRp
b24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1
cmUzRDwke3R5cGV9JHtsZW5ndGh9PixpbnQ0IGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZp
bmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRW
YWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIp
ICsgb2Zmc2V0LmdldCgyKSwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRp
b24uZ2V0KDApICsgb2Zmc2V0LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTNE
PCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQq
IHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIERlcHRoLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxl
dmVscylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWws
IHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGlt
ZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJl
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGgubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4LmRlcHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmhl
aWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lk
dGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkp
LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xl
bmd0aH0gU2FtcGxlKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog
SW1wbGVtZW50IGN1YmVtYXAgc2FtcGxpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJpYXMoVGV4
dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQg
QmlhcylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6
IEltcGxlbWVudCBjdWJlbWFwIHNhbXBsaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVHcmFkKFRl
eHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0
MyBERFgsZmxvYXQzIEREWSlgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgY3ViZW1hcCBzYW1wbGluZworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0
aH0gU2FtcGxlTGV2ZWwoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgY3ViZW1hcCBzYW1wbGluZworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
cihUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilg
LAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJl
Q3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZUN1YmU8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGlt
ZW5zaW9ucyhUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9Pix1aW50IE1pcExldmVsLHVpbnQq
IHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxl
dmVscylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWws
IHdpZHRoLCBoZWlnaHQsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICh0ZXgubGF5ZXJDb3VudCAhPSA2KQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkN1YmUgdGV4dHVyZSBkb2Vzbid0IGhh
dmUgNiBmYWNlcyIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0
ZXgubGV2ZWxDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3
IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQg
bWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWln
aHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQp
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUx
RDwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiB0aHJlYWQgV2lkdGgpYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleHR1cmUubG9hZFZh
bHVlKCkud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMUQ8JHt0eXBlfSR7
bGVuZ3RofT4sZmxvYXQqIHRocmVhZCBXaWR0aClgLAorICAgICAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgd2lkdGhdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lk
dGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4dHVyZS5sb2FkVmFsdWUoKS53aWR0
aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChSV1RleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9
PixpbnQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVj
dG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMi
LCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIDAsIDAsIDAsIGxvY2F0aW9u
LmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4s
JHt0eXBlfSR7bGVuZ3RofSx1aW50IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBvdXQgb2YgYm91
bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tlZCgwLCAwLCAwLCAwLCBs
b2NhdGlvbi5sb2FkVmFsdWUoKSwgdW5ib3hWZWN0b3IodmFsdWUsIGxlbmd0aCkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lk
IEdldERpbWVuc2lvbnMoUldUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiB0
aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lv
bnMoUldUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixmbG9hdCogdGhyZWFkIFdpZHRo
LHVpbnQqIHRocmVhZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgd2lkdGgsIGVsZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4
dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4saW50MiBsb2NhdGlvbilgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIs
ICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVu
dENoZWNrZWQobG9jYXRpb24uZ2V0KDEpLCAwLCAwLCAwLCBsb2NhdGlvbi5nZXQoMCkpKSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9p
ZCBTdG9yZShSV1RleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0
aH0sdWludDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hl
Y2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0dXJlIHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJl
LmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgMCwg
bG9jYXRpb24uZ2V0KDApLCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0
RGltZW5zaW9ucyhSV1RleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiB0aHJlYWQgV2lk
dGgsdWludCogdGhyZWFkIEhlaWdodClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgd2lkdGgsIGhlaWdodF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUyRDwke3R5
cGV9JHtsZW5ndGh9PixmbG9hdCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0KWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0XSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1
ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5
RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LGludDIgbG9j
YXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNr
VW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJl
LmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9j
YXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4s
JHt0eXBlfSR7bGVuZ3RofSx1aW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjaGVja0ZhbHNlKCJbU3RvcmVdIiwgIlRleHR1cmUgd3JpdGUgb3V0IG9mIGJv
dW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQoMCwgMCwgMCwgbG9j
YXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVlLCBsZW5ndGgp
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
CisgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBu
YXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3Ro
fT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIEVs
ZW1lbnRzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwg
aGVpZ2h0LCBlbGVtZW50c10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4
ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVt
ZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lk
dGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXRE
aW1lbnNpb25zKFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sZmxvYXQqIHRocmVh
ZCBXaWR0aCxmbG9hdCogdGhyZWFkIEhlaWdodCxmbG9hdCogdGhyZWFkIEVsZW1lbnRzKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBlbGVt
ZW50c10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5s
b2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
aGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2Fk
KFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4saW50MyBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltM
b2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCku
ZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDIpLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxv
Y2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVu
Z3RofT4sJHt0eXBlfSR7bGVuZ3RofSx1aW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjaGVja0ZhbHNlKCJbU3RvcmVdIiwgIlRleHR1cmUgd3JpdGUgb3V0
IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQobG9jYXRp
b24uZ2V0KDIpLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hW
ZWN0b3IodmFsdWUsIGxlbmd0aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlM0Q8
JHt0eXBlfSR7bGVuZ3RofT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQs
dWludCogdGhyZWFkIERlcHRoKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkZXB0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguZGVwdGgpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
ZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0
RGltZW5zaW9ucyhSV1RleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PixmbG9hdCogdGhyZWFkIFdp
ZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0LGZsb2F0KiB0aHJlYWQgRGVwdGgpYCwKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGRlcHRoXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9t
KEVQdHIuYm94KHRleC5kZXB0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhl
aWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVyZTNEPCR7dHlw
ZX0ke2xlbmd0aH0+LGludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91
dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIDAsIGxv
Y2F0aW9uLmdldCgyKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBT
dG9yZShSV1RleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQz
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFs
dWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2Uo
IltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFs
dWUoKS5zZXRFbGVtZW50Q2hlY2tlZCgwLCAwLCBsb2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdl
dCgxKSwgbG9jYXRpb24uZ2V0KDApLCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQogICAgIH0KIAogICAgIGFkZCh0aGluZykKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCmluZGV4IDc4ZDAwOGY4MzVmOWU5YzIzNGVmMmRmNmQ2
ZGVlYTNmNzQyNmNlNjUuLjA2MWE0NzY0MTRmZTJiMjkyODdlZTBjM2Q5NGJmMDI3ZWFlNGYwMGMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKKysr
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbApAQCAtMTMzLDYgKzEz
Myw4IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9w
ZXJhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZURlZmF1bHRD
b25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVGVybmFy
eUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJUZXh0dXJlLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJUcmFwU3RhdGVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlR5cGVEZWZS
ZXNvbHZlci5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9TdGFuZGFyZExpYnJhcnkuanMKaW5kZXggM2RkNGZlZTE4NjAwZDVjZDJhODk1YWQ1YTQ3OTcy
MWRhNzc4OGNjMS4uZGJhOTliMWVmOWIzNGZmYjE5OWM2NDhlNDM3ZjhlOTQ2NDBmNjUxMSAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5Lmpz
CisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcwpA
QCAtNTcsNyArNTcsNyBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewogICAg
ICAgICB9CiAgICAgICAgIHByaW50KGBuYXRpdmUgdHlwZWRlZiBzYW1wbGVyO2ApOwogICAgICAg
ICBmb3IgKHZhciB0eXBlIG9mIFtgVGV4dHVyZTFEYCwgYFJXVGV4dHVyZTFEYCwgYFRleHR1cmUx
REFycmF5YCwgYFJXVGV4dHVyZTFEQXJyYXlgLCBgVGV4dHVyZTJEYCwgYFJXVGV4dHVyZTJEYCwg
YFRleHR1cmUyREFycmF5YCwgYFJXVGV4dHVyZTJEQXJyYXlgLCBgVGV4dHVyZTNEYCwgYFJXVGV4
dHVyZTNEYCwgYFRleHR1cmVDdWJlYF0pIHsKLSAgICAgICAgICAgIGZvciAodmFyIHR5cGVBcmd1
bWVudEJhc2Ugb2YgW2Bib29sYCwgYHVjaGFyYCwgYHVzaG9ydGAsIGB1aW50YCwgYGNoYXJgLCBg
c2hvcnRgLCBgaW50YCwgYGhhbGZgLCBgZmxvYXRgXSkgeworICAgICAgICAgICAgZm9yICh2YXIg
dHlwZUFyZ3VtZW50QmFzZSBvZiBbYHVjaGFyYCwgYHVzaG9ydGAsIGB1aW50YCwgYGNoYXJgLCBg
c2hvcnRgLCBgaW50YCwgYGhhbGZgLCBgZmxvYXRgXSkgewogICAgICAgICAgICAgICAgIGZvciAo
dmFyIHNpemUgb2YgW2BgLCBgMmAsIGAzYCwgYDRgXSkgewogICAgICAgICAgICAgICAgICAgICBw
cmludChgbmF0aXZlIHR5cGVkZWYgJHt0eXBlfTwke3R5cGVBcmd1bWVudEJhc2V9JHtzaXplfT47
YCk7CiAgICAgICAgICAgICAgICAgfQpAQCAtMTg5Nyw3ICsxODk3LDggQEAgbGV0IHN0YW5kYXJk
TGlicmFyeSA9IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBJ
bnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZSh0aHJlYWQgYXRvbWljXyR7dHlwZX0qLCAke3R5cGV9
LCAke3R5cGV9LCB0aHJlYWQgJHt0eXBlfSopO2ApOwogICAgICAgICB9CiAgICAgICAgIHByaW50
KCk7Ci0gICAgICAgIAorICAgICAgICAqLworCiAgICAgICAgIGZvciAodmFyIHR5cGUgb2YgW2B1
Y2hhcmAsIGB1c2hvcnRgLCBgdWludGAsIGBjaGFyYCwgYHNob3J0YCwgYGludGAsIGBoYWxmYCwg
YGZsb2F0YF0pIHsKICAgICAgICAgICAgIGZvciAodmFyIGxlbmd0aCBvZiBbYGAsIGAyYCwgYDNg
LCBgNGBdKSB7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9
IFNhbXBsZShUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0
aW9uKTtgKTsKQEAgLTE5NTgsMTYgKzE5NTksNiBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0gKGZ1
bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIHByaW50KCk7CiAgICAgICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVu
Z3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVu
Z3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwotICAgICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUzRDwke3R5cGV9
JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3Ro
fT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwotICAgICAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUzRDwke3R5cGV9
JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVu
Z3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwotICAgICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTNEPCR7
dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTNEPCR7dHlw
ZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDMgb2Zmc2V0KTtgKTsK
LSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVy
ZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAg
ICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlM0Q8
JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MyBvZmZzZXQp
O2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEo
VGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2Ap
OwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4
dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDMg
b2Zmc2V0KTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0
aH0gTG9hZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIGludDQgbG9jYXRpb24pO2ApOwog
ICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1
cmUzRDwke3R5cGV9JHtsZW5ndGh9PiwgaW50NCBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwog
ICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUz
RDwke3R5cGV9JHtsZW5ndGh9PiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0
aHJlYWQgdWludCogSGVpZ2h0LCB0aHJlYWQgdWludCogRGVwdGgsIHRocmVhZCB1aW50KiBOdW1i
ZXJPZkxldmVscyk7YCk7CkBAIC0yMDEwLDcgKzIwMDEsOCBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5
ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIHByaW50KCk7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KLSAgICAgICAgCisKKyAgICAgICAgLyoKICAgICAgICAgZm9yICh2YXIgdHlw
ZSBvZiBbYGhhbGZgLCBgZmxvYXRgXSkgewogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0
aW9uKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVy
ZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQp
O2ApOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1s
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sCmluZGV4IDYwN2E2OTUz
MjUzZGE3MjdiMWRlMzc2NzhlYzM4OGI0ZmEyNDA0MDUuLjE0YTEwZWU0NDY1YTZkNzUzZDIxMGVi
YzJlYTc1ODYxMTliOGMyNjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1Rlc3QuaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0
bWwKQEAgLTEyNyw2ICsxMjcsOCBAQAogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVDb3B5Q29uc3Ry
dWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZURlZmF1
bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUZXJuYXJ5
RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWYu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+
CkBAIC0xNTIsNyArMTU0LDcgQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiBkb1Rlc3RJbkJyb3dzZXIo
KQogewotICAgIHZhciB0ZXN0ZXIgPSBkb1Rlc3QoLy4qLyk7CisgICAgdmFyIHRlc3RlciA9IGRv
VGVzdCgvdGV4dHVyZS8pOwogICAgIHZhciBsYXN0VGltZTsKICAgICBmdW5jdGlvbiBuZXh0KCkK
ICAgICB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwppbmRleCA0YTExYzE4NTg1
OTk3NzhmZjM5MWIwNGYyNjM1YzViNzEwMDVkZjdmLi4zOTE4MDZiNGY1YmFmNjdhYTRjMTlkY2Fj
ZDc3Yzk5ZTdjYWYyMmRiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UZXN0LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKQEAg
LTk0LDYgKzk0LDE0NCBAQCBmdW5jdGlvbiBtYWtlRW51bShwcm9ncmFtLCBlbnVtTmFtZSwgdmFs
dWUpCiAgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KGVudW1UeXBlLCBlbnVtTWVtYmVyLnZhbHVl
LnVuaWZ5Tm9kZS52YWx1ZUZvclNlbGVjdGVkVHlwZSk7CiB9CiAKK2Z1bmN0aW9uIG1ha2VTYW1w
bGVyKHByb2dyYW0sIGRpY3QpCit7CisgICAgLy8gZW51bSBXZWJHUFVBZGRyZXNzTW9kZSB7Cisg
ICAgLy8gICAgICJjbGFtcFRvRWRnZSIsCisgICAgLy8gICAgICJyZXBlYXQiLAorICAgIC8vICAg
ICAibWlycm9yUmVwZWF0IiwKKyAgICAvLyAgICAgImNsYW1wVG9Cb3JkZXJDb2xvciIKKyAgICAv
LyB9CisgICAgLy8KKyAgICAvLyBlbnVtIFdlYkdQVUZpbHRlck1vZGUgeworICAgIC8vICAgICAi
bmVhcmVzdCIsCisgICAgLy8gICAgICJsaW5lYXIiCisgICAgLy8gfQorICAgIC8vCisgICAgLy8g
ZW51bSBXZWJHUFVDb21wYXJlRnVuY3Rpb24geworICAgIC8vICAgICAibmV2ZXIiLAorICAgIC8v
ICAgICAibGVzcyIsCisgICAgLy8gICAgICJlcXVhbCIsCisgICAgLy8gICAgICJsZXNzRXF1YWwi
LAorICAgIC8vICAgICAiZ3JlYXRlciIsCisgICAgLy8gICAgICJub3RFcXVhbCIsCisgICAgLy8g
ICAgICJncmVhdGVyRXF1YWwiLAorICAgIC8vICAgICAiYWx3YXlzIgorICAgIC8vIH0KKyAgICAv
LworICAgIC8vIGVudW0gV2ViR1BVQm9yZGVyQ29sb3IgeworICAgIC8vICAgICAidHJhbnNwYXJl
bnRCbGFjayIsCisgICAgLy8gICAgICJvcGFxdWVCbGFjayIsCisgICAgLy8gICAgICJvcGFxdWVX
aGl0ZSIKKyAgICAvLyB9CisgICAgLy8KKyAgICAvLyBkaWN0aW9uYXJ5IFdlYkdQVVNhbXBsZXJE
ZXNjcmlwdG9yIHsKKyAgICAvLyAgICAgV2ViR1BVZGRyZXNzTW9kZSByQWRkcmVzc01vZGUgPSAi
Y2xhbXBUb0VkZ2UiOworICAgIC8vICAgICBXZWJHUFVkZHJlc3NNb2RlIHNBZGRyZXNzTW9kZSA9
ICJjbGFtcFRvRWRnZSI7CisgICAgLy8gICAgIFdlYkdQVWRkcmVzc01vZGUgdEFkZHJlc3NNb2Rl
ID0gImNsYW1wVG9FZGdlIjsKKyAgICAvLyAgICAgV2ViR1BVRmlsdGVyTW9kZUVudW0gbWFnRmls
dGVyID0gIm5lYXJlc3QiOworICAgIC8vICAgICBXZWJHUFVGaWx0ZXJNb2RlRW51bSBtaW5GaWx0
ZXIgPSAibmVhcmVzdCI7CisgICAgLy8gICAgIFdlYkdQVUZpbHRlck1vZGVFbnVtIG1pcG1hcEZp
bHRlciA9ICJuZWFyZXN0IjsKKyAgICAvLyAgICAgZmxvYXQgbG9kTWluQ2xhbXAgPSAwOworICAg
IC8vICAgICBmbG9hdCBsb2RNYXhDbGFtcCA9IE51bWJlci5NQVhfVkFMVUU7CisgICAgLy8gICAg
IHVuc2lnbmVkIGxvbmcgbWF4QW5pc290cm9weSA9IDE7CisgICAgLy8gICAgIFdlYkdQVUNvbXBh
cmVGdW5jdGlvbiBjb21wYXJlRnVuY3Rpb24gPSAibmV2ZXIiOworICAgIC8vICAgICBXZWJHUFVC
b3JkZXJDb2xvciBib3JkZXJDb2xvciA9ICJ0cmFuc3BhcmVudEJsYWNrIjsKKyAgICAvLyB9Owor
CisgICAgbGV0IHNhbXBsZXJEYXRhID0ge307CisgICAgc2FtcGxlckRhdGEuckFkZHJlc3NNb2Rl
ID0gZGljdC5yQWRkcmVzc01vZGU7CisgICAgc2FtcGxlckRhdGEuc0FkZHJlc3NNb2RlID0gZGlj
dC5zQWRkcmVzc01vZGU7CisgICAgc2FtcGxlckRhdGEudEFkZHJlc3NNb2RlID0gZGljdC50QWRk
cmVzc01vZGU7CisgICAgc2FtcGxlckRhdGEubWFnRmlsdGVyID0gZGljdC5tYWdGaWx0ZXI7Cisg
ICAgc2FtcGxlckRhdGEubWluRmlsdGVyID0gZGljdC5taW5GaWx0ZXI7CisgICAgc2FtcGxlckRh
dGEubWlwbWFwRmlsdGVyID0gZGljdC5taXBtYXBGaWx0ZXI7CisgICAgc2FtcGxlckRhdGEubG9k
TWluQ2xhbXAgPSBkaWN0LmxvZE1pbkNsYW1wOworICAgIHNhbXBsZXJEYXRhLmxvZE1heENsYW1w
ID0gZGljdC5sb2RNYXhDbGFtcDsKKyAgICBzYW1wbGVyRGF0YS5tYXhBbmlzb3Ryb3B5ID0gZGlj
dC5tYXhBbmlzb3Ryb3B5OworICAgIHNhbXBsZXJEYXRhLmNvbXBhcmVGdW5jdGlvbiA9IGRpY3Qu
Y29tcGFyZUZ1bmN0aW9uOworICAgIHNhbXBsZXJEYXRhLmJvcmRlckNvbG9yID0gZGljdC5ib3Jk
ZXJDb2xvcjsKKworICAgIGlmIChzYW1wbGVyRGF0YS5yQWRkcmVzc01vZGUgPT0gdW5kZWZpbmVk
KQorICAgICAgICBzYW1wbGVyRGF0YS5yQWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAg
IGlmIChzYW1wbGVyRGF0YS5zQWRkcmVzc01vZGUgPT0gdW5kZWZpbmVkKQorICAgICAgICBzYW1w
bGVyRGF0YS5zQWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgIGlmIChzYW1wbGVyRGF0
YS50QWRkcmVzc01vZGUgPT0gdW5kZWZpbmVkKQorICAgICAgICBzYW1wbGVyRGF0YS50QWRkcmVz
c01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgIGlmIChzYW1wbGVyRGF0YS5taW5GaWx0ZXIgPT0g
dW5kZWZpbmVkKQorICAgICAgICBzYW1wbGVyRGF0YS5taW5GaWx0ZXIgPSAibmVhcmVzdCI7Cisg
ICAgaWYgKHNhbXBsZXJEYXRhLm1hZ0ZpbHRlciA9PSB1bmRlZmluZWQpCisgICAgICAgIHNhbXBs
ZXJEYXRhLm1hZ0ZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICBpZiAoc2FtcGxlckRhdGEubWlwRmls
dGVyID09IHVuZGVmaW5lZCkKKyAgICAgICAgc2FtcGxlckRhdGEubWlwRmlsdGVyID0gIm5lYXJl
c3QiOworICAgIGlmIChzYW1wbGVyRGF0YS5sb2RNaW5DbGFtcCA9PSB1bmRlZmluZWQpCisgICAg
ICAgIHNhbXBsZXJEYXRhLmxvZE1pbkNsYW1wID0gLU51bWJlci5NQVhfVkFMVUU7CisgICAgaWYg
KHNhbXBsZXJEYXRhLmxvZE1heENsYW1wID09IHVuZGVmaW5lZCkKKyAgICAgICAgc2FtcGxlckRh
dGEubG9kTWF4Q2xhbXAgPSBOdW1iZXIuTUFYX1ZBTFVFOworICAgIGlmIChzYW1wbGVyRGF0YS5t
YXhBbmlzb3Ryb3B5ID09IHVuZGVmaW5lZCkKKyAgICAgICAgc2FtcGxlckRhdGEubWF4QW5pc290
cm9weSA9IDE7CisgICAgaWYgKHNhbXBsZXJEYXRhLmNvbXBhcmVGdW5jdGlvbiA9PSB1bmRlZmlu
ZWQpCisgICAgICAgIHNhbXBsZXJEYXRhLmNvbXBhcmVGdW5jdGlvbiA9ICJuZXZlciI7CisgICAg
aWYgKHNhbXBsZXJEYXRhLmJvcmRlckNvbG9yID09IHVuZGVmaW5lZCkKKyAgICAgICAgc2FtcGxl
ckRhdGEuYm9yZGVyQ29sb3IgPSAidHJhbnNwYXJlbnRCbGFjayI7CisgICAgcmV0dXJuIFR5cGVk
VmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljcy5zYW1wbGVyLCBzYW1wbGVyRGF0YSk7Cit9CisK
K2Z1bmN0aW9uIG1ha2UxRFRleHR1cmUocHJvZ3JhbSwgbWlwbWFwcywgZWxlbWVudFR5cGUpCit7
CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZTFE
PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTFEKGVsZW1lbnRUeXBlLCBtaXBtYXBzKSk7
Cit9CisKK2Z1bmN0aW9uIG1ha2UxRFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVu
dFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tg
VGV4dHVyZTFEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlMURBcnJheShlbGVt
ZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24gbWFrZTJEVGV4dHVyZShwcm9ncmFtLCBt
aXBtYXBzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3Jh
bS5pbnRyaW5zaWNzW2BUZXh0dXJlMkQ8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlMkQo
ZWxlbWVudFR5cGUsIG1pcG1hcHMpKTsKK30KKworZnVuY3Rpb24gbWFrZTJEVGV4dHVyZUFycmF5
KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5i
b3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlMkRBcnJheTwke2VsZW1lbnRUeXBlfT5gXSwg
bmV3IFRleHR1cmUyREFycmF5KGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQorCitmdW5jdGlvbiBt
YWtlM0RUZXh0dXJlKHByb2dyYW0sIG1pcG1hcHMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVy
biBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmUzRDwke2VsZW1lbnRU
eXBlfT5gXSwgbmV3IFRleHR1cmUzRChlbGVtZW50VHlwZSwgbWlwbWFwcykpOworfQorCitmdW5j
dGlvbiBtYWtlVGV4dHVyZUN1YmUocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAg
IHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmVDdWJlPCR7
ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZUN1YmUoZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9
CisKK2Z1bmN0aW9uIG1ha2VSVzFEVGV4dHVyZShwcm9ncmFtLCBlbGVtZW50cywgZWxlbWVudFR5
cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldU
ZXh0dXJlMUQ8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlMURSVyhlbGVtZW50VHlwZSwg
ZWxlbWVudHMpKTsKK30KKworZnVuY3Rpb24gbWFrZVJXMURUZXh0dXJlQXJyYXkocHJvZ3JhbSwg
YXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFt
LmludHJpbnNpY3NbYFJXVGV4dHVyZTFEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0
dXJlMURBcnJheVJXKGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQorCitmdW5jdGlvbiBtYWtlUlcy
RFRleHR1cmUocHJvZ3JhbSwgcm93cywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVk
VmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldUZXh0dXJlMkQ8JHtlbGVtZW50VHlwZX0+
YF0sIG5ldyBUZXh0dXJlMkRSVyhlbGVtZW50VHlwZSwgcm93cykpOworfQorCitmdW5jdGlvbiBt
YWtlUlcyRFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAg
cmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldUZXh0dXJlMkRBcnJh
eTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUyREFycmF5UlcoZWxlbWVudFR5cGUsIGFy
cmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzNEVGV4dHVyZShwcm9ncmFtLCBkZXB0aFNsaWNl
cywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50
cmluc2ljc1tgUldUZXh0dXJlM0Q8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlM0RSVyhl
bGVtZW50VHlwZSwgZGVwdGhTbGljZXMpKTsKK30KKwogZnVuY3Rpb24gY2hlY2tOdW1iZXIocHJv
Z3JhbSwgcmVzdWx0LCBleHBlY3RlZCkKIHsKICAgICBpZiAoIXJlc3VsdC50eXBlLnVuaWZ5Tm9k
ZS5pc051bWJlcikKQEAgLTU1ODIsNyArNTcyMCw3NTMgQEAgdGVzdHMuYXJyYXlJbmRleCA9IGZ1
bmN0aW9uKCkgewogICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
YXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0s
IDIpIF0pLCAzKTsKICAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImFycmF5SW5kZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFt
LCAwKSBdKSwgNCk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMSkgXSksIDUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiYXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dy
YW0sIDIpIF0pLCA2KTsgICAgCisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMikgXSksIDYpOworfQorCitmdW5jdGlvbiBjcmVhdGVUZXh0dXJlc0ZvclRlc3Rp
bmcocHJvZ3JhbSkKK3sKKyAgICBsZXQgdGV4dHVyZTFEID0gbWFrZTFEVGV4dHVyZShwcm9ncmFt
LCBbWzEsIDcsIDE0LCA3OV0sIFsxMywgMTZdLCBbMTVdXSwgImZsb2F0Iik7CisgICAgbGV0IHRl
eHR1cmUxREFycmF5ID0gbWFrZTFEVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbWzEsIDcsIDE0LCA3
OV0sIFsxMywgMTZdLCBbMTVdXSwgW1sxNiwgMTcsIDE4LCAxOV0sIFsyMCwgMjFdLCBbMjJdXV0s
ICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlMkQgPSBtYWtlMkRUZXh0dXJlKHByb2dyYW0sIFsK
KyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwg
MTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIz
LCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAg
ICAgW1szMywgMzQsIDM1LCAzNl0sCisgICAgICAgIFszNywgMzgsIDM5LCA0MF1dLAorICAgICAg
ICBbWzQxLCA0Ml1dCisgICAgXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmUyREFycmF5ID0g
bWFrZTJEVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwg
NiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAg
ICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAy
NywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzZdLAorICAg
ICAgICBbMzcsIDM4LCAzOSwgNDBdXSwKKyAgICAgICAgW1s0MSwgNDJdXQorICAgIF0sIFsKKyAg
ICAgICAgW1s0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4LCA0OSwgNTBdLAorICAgICAgICBbNTEsIDUy
LCA1MywgNTQsIDU1LCA1NiwgNTcsIDU4XSwKKyAgICAgICAgWzU5LCA2MCwgNjEsIDYyLCA2Mywg
NjQsIDY1LCA2Nl0sCisgICAgICAgIFs2NywgNjgsIDY5LCA3MCwgNzEsIDcyLCA3MywgNzRdXSwK
KyAgICAgICAgW1s3NSwgNzYsIDc3LCA3OF0sCisgICAgICAgIFs3OSwgODAsIDgxLCA4Ml1dLAor
ICAgICAgICBbWzgzLCA4NF1dCisgICAgXV0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlM0Qg
PSBtYWtlM0RUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAgICAgW1tbMSwgMiwgMywgNCwgNSwgNiwg
NywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAg
IFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywg
MjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwg
MzksIDQwXSwKKyAgICAgICAgWzQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OF0sCisgICAg
ICAgIFs0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTZdLAorICAgICAgICBbNTcsIDU4LCA1
OSwgNjAsIDYxLCA2MiwgNjMsIDY0XV1dLAorICAgICAgICBbW1s2NSwgNjYsIDY3LCA2OF0sCisg
ICAgICAgIFs2OSwgNzAsIDcxLCA3Ml1dXQorICAgIF0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0
dXJlQ3ViZSA9IG1ha2VUZXh0dXJlQ3ViZShwcm9ncmFtLCBbWworICAgICAgICBbWzEsIDJdLAor
ICAgICAgICBbMywgNF0sCisgICAgICAgIFs1LCA2XSwKKyAgICAgICAgWzcsIDhdXSwKKyAgICAg
ICAgW1s5XSwKKyAgICAgICAgWzEwXV0sCisgICAgXSwgWworICAgICAgICBbWzExLCAxMl0sCisg
ICAgICAgIFsxMywgMTRdLAorICAgICAgICBbMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOF1dLAor
ICAgICAgICBbWzE5XSwKKyAgICAgICAgWzIwXV0sCisgICAgXSwgWworICAgICAgICBbWzIxLCAy
Ml0sCisgICAgICAgIFsyMywgMjRdLAorICAgICAgICBbMjUsIDI2XSwKKyAgICAgICAgWzI3LCAy
OF1dLAorICAgICAgICBbWzI5XSwKKyAgICAgICAgWzMwXV0sCisgICAgXSwgWworICAgICAgICBb
WzMxLCAzMl0sCisgICAgICAgIFszMywgMzRdLAorICAgICAgICBbMzUsIDM2XSwKKyAgICAgICAg
WzM3LCAzOF1dLAorICAgICAgICBbWzM5XSwKKyAgICAgICAgWzQwXV0sCisgICAgXSwgWworICAg
ICAgICBbWzQxLCA0Ml0sCisgICAgICAgIFs0MywgNDRdLAorICAgICAgICBbNDUsIDQ2XSwKKyAg
ICAgICAgWzQ3LCA0OF1dLAorICAgICAgICBbWzQ5XSwKKyAgICAgICAgWzUwXV0sCisgICAgXSwg
WworICAgICAgICBbWzUxLCA1Ml0sCisgICAgICAgIFs1MywgNTRdLAorICAgICAgICBbNTUsIDU2
XSwKKyAgICAgICAgWzU3LCA1OF1dLAorICAgICAgICBbWzU5XSwKKyAgICAgICAgWzYwXV0sCisg
ICAgXV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmUxRCA9IG1ha2VSVzFEVGV4dHVyZShw
cm9ncmFtLCBbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sICJmbG9hdCIpOworICAgIGxldCByd1Rl
eHR1cmUxREFycmF5ID0gbWFrZVJXMURUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1sxLCAyLCAzLCA0
LCA1LCA2LCA3LCA4XSwgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwgWzE3LCAxOCwg
MTksIDIwLCAyMSwgMjIsIDIzLCAyNF1dLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlMkQg
PSBtYWtlUlcyRFRleHR1cmUocHJvZ3JhbSwgWworICAgICAgICBbMSwgMiwgMywgNCwgNSwgNiwg
NywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAg
IFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywg
MjgsIDI5LCAzMCwgMzEsIDMyXV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmUyREFycmF5
ID0gbWFrZVJXMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwgWworICAgICAgICBbWzEsIDIsIDMsIDQs
IDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAor
ICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAy
NiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2LCAz
NywgMzgsIDM5LCA0MF0sCisgICAgICAgIFs0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDhd
LAorICAgICAgICBbNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2XSwKKyAgICAgICAgWzU3
LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLCA2NF1dXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4
dHVyZTNEID0gbWFrZVJXM0RUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAgICAgW1sxLCAyLCAzLCA0
LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwK
KyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwg
MjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNiwg
MzcsIDM4LCAzOSwgNDBdLAorICAgICAgICBbNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4
XSwKKyAgICAgICAgWzQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1Nl0sCisgICAgICAgIFs1
NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2MywgNjRdXV0sICJmbG9hdCIpOworICAgIHJldHVybiBb
dGV4dHVyZTFELCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0ZXh0dXJlMkRBcnJheSwgdGV4
dHVyZTNELCB0ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVyZTFEQXJyYXksIHJ3VGV4
dHVyZTJELCByd1RleHR1cmUyREFycmF5LCByd1RleHR1cmUzRF07Cit9CisKK3Rlc3RzLnRleHR1
cmVEaW1lbnNpb25zID0gZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAor
ICAgICAgICB1aW50IGZvbzEoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAg
ICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAg
ICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmbnVtYmVyT2ZMZXZlbHMpOwor
ICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMihU
ZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAg
ICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0
ZXh0dXJlLCAwLCAmd2lkdGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4g
bnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28zKFRleHR1cmUxREFy
cmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAg
ICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAg
ICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmVsZW1lbnRzLCAmbnVt
YmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAg
ICAgIHVpbnQgZm9vNChUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAg
ICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1
aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAw
LCAmd2lkdGgsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVy
biBlbGVtZW50czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzUoVGV4dHVyZTFEQXJyYXk8
ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1
aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAg
ICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmZWxlbWVudHMsICZudW1iZXJP
ZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0K
KyAgICAgICAgdWludCBmb282KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAg
ICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWlu
dCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwg
JndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdp
ZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNyhUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1
cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsK
KyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNp
b25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAg
ICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb284KFRleHR1
cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAg
ICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAg
ICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVy
T2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9
CisgICAgICAgIHVpbnQgZm9vOShUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAg
ICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAg
ICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1l
bnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAg
ICB9CisgICAgICAgIHVpbnQgZm9vMTAoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsK
KyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAg
ICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZl
bGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7Cisg
ICAgICAgIH0KKyAgICAgICAgdWludCBmb28xMShUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVy
ZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0Owor
ICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZl
bHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdo
dCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGVsZW1l
bnRzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTIoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+
IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhl
aWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJl
ck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgs
ICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVy
biBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzEzKFRleHR1cmUz
RDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAg
IHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQg
bnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3
aWR0aCwgJmhlaWdodCwgJmRlcHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0
dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTQoVGV4dHVyZTNEPGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgdWludCBudW1iZXJP
ZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAm
aGVpZ2h0LCAmZGVwdGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gaGVp
Z2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTUoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0
dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7
CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVs
czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0
LCAmZGVwdGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gZGVwdGg7Cisg
ICAgICAgIH0KKyAgICAgICAgdWludCBmb28xNihUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsK
KyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAg
ICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAg
ICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0
aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE3KFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJl
KSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7Cisg
ICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9u
cyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAg
ICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xOChUZXh0dXJl
Q3ViZTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAg
ICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAg
ICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVy
T2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAg
ICB1aW50IGZvbzE5KFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1
aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51
bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lk
dGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVy
T2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yMChSV1RleHR1cmUxRDxmbG9h
dD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIEdldERp
bWVuc2lvbnModGV4dHVyZSwgJndpZHRoKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAg
ICAgICAgfQorICAgICAgICB1aW50IGZvbzIxKFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1
cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRz
OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZlbGVtZW50cyk7
CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28y
MihSV1RleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdp
ZHRoOworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgJndpZHRoLCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJuIGVsZW1l
bnRzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjMoUldUZXh0dXJlMkQ8ZmxvYXQ+IHRl
eHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdo
dDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0KTsK
KyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI0
KFJXVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOwor
ICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1
cmUsICZ3aWR0aCwgJmhlaWdodCk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAg
ICB9CisgICAgICAgIHVpbnQgZm9vMjUoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkg
eworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAg
ICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRo
OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjYoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4g
dGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVp
Z2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0
dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI3KFJXVGV4dHVyZTJEQXJy
YXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAg
ICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBH
ZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAg
ICAgICAgIHJldHVybiBlbGVtZW50czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI4KFJX
VGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAg
ICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAg
ICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCk7CisgICAg
ICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yOShSV1Rl
eHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAg
ICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAg
IEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgpOworICAgICAg
ICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzMwKFJXVGV4
dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAg
ICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAg
R2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCk7CisgICAgICAg
ICAgICByZXR1cm4gZGVwdGg7CisgICAgICAgIH0KKyAgICBgKTsKKyAgICBsZXQgW3RleHR1cmUx
RCwgdGV4dHVyZTFEQXJyYXksIHRleHR1cmUyRCwgdGV4dHVyZTJEQXJyYXksIHRleHR1cmUzRCwg
dGV4dHVyZUN1YmUsIHJ3VGV4dHVyZTFELCByd1RleHR1cmUxREFycmF5LCByd1RleHR1cmUyRCwg
cndUZXh0dXJlMkRBcnJheSwgcndUZXh0dXJlM0RdID0gY3JlYXRlVGV4dHVyZXNGb3JUZXN0aW5n
KHByb2dyYW0pOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEiLCBbdGV4dHVyZTFEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTFEXSksIDMpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXldKSwg
NCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIs
IFt0ZXh0dXJlMURBcnJheV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUxREFycmF5XSksIDMpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJEXSksIDgp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBb
dGV4dHVyZTJEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEXSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTJEQXJyYXldKSwgOCk7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVy
ZTJEQXJyYXldKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTEiLCBbdGV4dHVyZTJEQXJyYXldKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbdGV4dHVyZTJEQXJyYXldKSwgMyk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBb
dGV4dHVyZTNEXSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE0IiwgW3RleHR1cmUzRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFt0ZXh0dXJlM0RdKSwgMik7CisgICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZTNE
XSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE3IiwgW3RleHR1cmVDdWJlXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVDdWJlXSksIDQpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVDdWJlXSks
IDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIw
IiwgW3J3VGV4dHVyZTFEXSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZTFEQXJyYXldKSwgOCk7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbcndUZXh0dXJlMURB
cnJheV0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yMyIsIFtyd1RleHR1cmUyRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNCIsIFtyd1RleHR1cmUyRF0pLCA0KTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNSIsIFtyd1RleHR1cmUy
REFycmF5XSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzI2IiwgW3J3VGV4dHVyZTJEQXJyYXldKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjciLCBbcndUZXh0dXJlMkRBcnJheV0pLCAy
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOCIs
IFtyd1RleHR1cmUzRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yOSIsIFtyd1RleHR1cmUzRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMCIsIFtyd1RleHR1cmUzRF0pLCAyKTsK
K30KKwordGVzdHMudGV4dHVyZUxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3JhbSA9
IGRvUHJlcChgCisgICAgICAgIGZsb2F0IGZvbzEoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCBp
bnQgbG9jYXRpb24sIGludCBtaXBtYXApIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1
cmUsIGludDIobG9jYXRpb24sIG1pcG1hcCkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZv
bzIoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgbG9jYXRpb24sIGludCBtaXBtYXAsIGlu
dCBvZmZzZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIobG9jYXRp
b24sIG1pcG1hcCksIG9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMyhUZXh0
dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQgbWlwbWFwLCBpbnQg
bGF5ZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMobG9jYXRpb24s
IG1pcG1hcCwgbGF5ZXIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb280KFRleHR1cmUx
REFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgbG9jYXRpb24sIGludCBtaXBtYXAsIGludCBsYXll
ciwgaW50IG9mZnNldCkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myhs
b2NhdGlvbiwgbWlwbWFwLCBsYXllciksIG9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgZmxv
YXQgZm9vNShUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1h
cCkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myh4LCB5LCBtaXBtYXAp
KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb282KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVy
ZSwgaW50IHgsIGludCB5LCBpbnQgbWlwbWFwLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsK
KyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgbWlwbWFwKSwgaW50
MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNyhUZXh0
dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbWlwbWFwLCBpbnQg
bGF5ZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDQoeCwgeSwgbWlw
bWFwLCBsYXllcikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzgoVGV4dHVyZTJEQXJy
YXk8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCwgaW50IGxheWVyLCBp
bnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1
cmUsIGludDQoeCwgeSwgbWlwbWFwLCBsYXllciksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOwor
ICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzkoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCBp
bnQgeCwgaW50IHksIGludCB6LCBpbnQgbWlwbWFwKSB7CisgICAgICAgICAgICByZXR1cm4gTG9h
ZCh0ZXh0dXJlLCBpbnQ0KHgsIHksIHosIG1pcG1hcCkpOworICAgICAgICB9CisgICAgICAgIGZs
b2F0IGZvbzEwKFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgeiwg
aW50IG1pcG1hcCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZLCBpbnQgb2Zmc2V0WikgeworICAg
ICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50NCh4LCB5LCB6LCBtaXBtYXApLCBpbnQz
KG9mZnNldFgsIG9mZnNldFksIG9mZnNldFopKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBm
b28xMShSV1RleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uKSB7CisgICAgICAg
ICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBsb2NhdGlvbik7CisgICAgICAgIH0KKyAgICAgICAg
ZmxvYXQgZm9vMTIoUldUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9u
LCBpbnQgbGF5ZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIobG9j
YXRpb24sIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTMoUldUZXh0dXJl
MkQ8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSkgeworICAgICAgICAgICAgcmV0dXJuIExv
YWQodGV4dHVyZSwgaW50Mih4LCB5KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTQo
UldUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbGF5ZXIp
IHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgbGF5ZXIpKTsK
KyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xNShSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVy
ZSwgaW50IHgsIGludCB5LCBpbnQgeikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVy
ZSwgaW50Myh4LCB5LCB6KSk7CisgICAgICAgIH0KKyAgICBgKTsKKyAgICBsZXQgW3RleHR1cmUx
RCwgdGV4dHVyZTFEQXJyYXksIHRleHR1cmUyRCwgdGV4dHVyZTJEQXJyYXksIHRleHR1cmUzRCwg
dGV4dHVyZUN1YmUsIHJ3VGV4dHVyZTFELCByd1RleHR1cmUxREFycmF5LCByd1RleHR1cmUyRCwg
cndUZXh0dXJlMkRBcnJheSwgcndUZXh0dXJlM0RdID0gY3JlYXRlVGV4dHVyZXNGb3JUZXN0aW5n
KHByb2dyYW0pOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSks
IDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
IiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAxMyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVy
ZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNyk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDE2KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURB
cnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTcpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDIwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAyMSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAtMSldKSwgMTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMTYpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3Rl
eHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDIxKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURB
cnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMjApOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
MzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281
IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCAzNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM4KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJl
MkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBb
dGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTgpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJE
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNyk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBb
dGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzOCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAzNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVy
ZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAz
Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYi
LCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFt
LCAtMSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAz
OCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzci
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDMpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQ0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1MSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDc1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCA3Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
NzkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDgwKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMyk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCAxOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
MTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzgpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDM1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAz
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgi
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIC0xKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIC0xKV0pLCAzNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
NDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDUyKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCA0NSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTMpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDUyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA2
MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgi
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNTMpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDYxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3Nik7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgODApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDc3
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA4MSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgODApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCA3Nik7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgODEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCA3
Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzki
LCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzMpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUz
RCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDQxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA2NSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4
dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDY2KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNjkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCA3MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIs
IFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0
dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMyk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAxNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCA0MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAxMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAx
OCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEw
IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0Mik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3Rl
eHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUz
RCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0MSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCA0Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAtMSldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCA0Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCA0OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgOSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwg
W3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0Myk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1
cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA1MCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMTApOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNjYpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNjkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgNjcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgNzApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgNzApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDY1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcxKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBb
dGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2Nik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4
dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMyk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwg
W3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFr
ZUludChwcm9ncmFtLCA0KV0pLCA1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgNSld
KSwgNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDYpXSksIDcpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUx
RCwgbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJl
MURBcnJheSwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBb
cndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA1KSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCA2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9n
cmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFr
ZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA4KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURB
cnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndU
ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDMpLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDEyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9n
cmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUx
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE1KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBb
cndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMildKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChw
cm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxOSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjApOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1
cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIx
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIi
LCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFt
LCAyKV0pLCAyMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJ
bnQocHJvZ3JhbSwgMildKSwgMjMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDcpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDI0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFr
ZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVy
ZTJELCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1Rl
eHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBb
cndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEz
IiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAxMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDMpLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDEyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
NCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9n
cmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE1KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1h
a2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxNyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4
dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE4KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBb
cndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwg
MTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAy
KV0pLCAyMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dy
YW0sIDIpXSksIDIxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQo
cHJvZ3JhbSwgMildKSwgMjIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFr
ZUludChwcm9ncmFtLCAyKV0pLCAyMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDcp
LCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDI0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyNik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtl
SW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI3KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjgpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1
cmUyRCwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyOSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3
VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDMw
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMi
LCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMyld
KSwgMzEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFt
LCAzKV0pLCAzMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDEpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFty
d1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3
VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJl
M0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCA0Mik7Cit9CisKK3Rlc3RzLnRleHR1cmVTdG9yZSA9IGZ1bmN0aW9uKCkgeworICAgIGxldCBw
cm9ncmFtID0gZG9QcmVwKGAKKyAgICAgICAgZmxvYXQgZm9vMShSV1RleHR1cmUxRDxmbG9hdD4g
dGV4dHVyZSwgdWludCBsb2NhdGlvbiwgZmxvYXQgdmFsdWUpIHsKKyAgICAgICAgICAgIFN0b3Jl
KHRleHR1cmUsIHZhbHVlLCBsb2NhdGlvbik7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0
dXJlLCBpbnQobG9jYXRpb24pKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28yKFJXVGV4
dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHVpbnQgbG9jYXRpb24sIHVpbnQgbGF5ZXIsIGZs
b2F0IHZhbHVlKSB7CisgICAgICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDIobG9j
YXRpb24sIGxheWVyKSk7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGlu
dChsb2NhdGlvbiksIGludChsYXllcikpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28z
KFJXVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCB1aW50IHgsIHVpbnQgeSwgZmxvYXQgdmFsdWUp
IHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1cmUsIHZhbHVlLCB1aW50Mih4LCB5KSk7CisgICAg
ICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGludCh4KSwgaW50KHkpKSk7CisgICAg
ICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNChSV1RleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJl
LCB1aW50IHgsIHVpbnQgeSwgdWludCBsYXllciwgZmxvYXQgdmFsdWUpIHsKKyAgICAgICAgICAg
IFN0b3JlKHRleHR1cmUsIHZhbHVlLCB1aW50Myh4LCB5LCBsYXllcikpOworICAgICAgICAgICAg
cmV0dXJuIExvYWQodGV4dHVyZSwgaW50MyhpbnQoeCksIGludCh5KSwgaW50KGxheWVyKSkpOwor
ICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzUoUldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUs
IHVpbnQgeCwgdWludCB5LCB1aW50IHosIGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICBTdG9y
ZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDMoeCwgeSwgeikpOworICAgICAgICAgICAgcmV0dXJuIExv
YWQodGV4dHVyZSwgaW50MyhpbnQoeCksIGludCh5KSwgaW50KHopKSk7CisgICAgICAgIH0KKyAg
ICBgKTsKKyAgICBsZXQgW3RleHR1cmUxRCwgdGV4dHVyZTFEQXJyYXksIHRleHR1cmUyRCwgdGV4
dHVyZTJEQXJyYXksIHRleHR1cmUzRCwgdGV4dHVyZUN1YmUsIHJ3VGV4dHVyZTFELCByd1RleHR1
cmUxREFycmF5LCByd1RleHR1cmUyRCwgcndUZXh0dXJlMkRBcnJheSwgcndUZXh0dXJlM0RdID0g
Y3JlYXRlVGV4dHVyZXNGb3JUZXN0aW5nKHByb2dyYW0pOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndU
ZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0s
IDUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWlu
dChwcm9ncmFtLCA2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUx
RCwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBb
cndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAyKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndU
ZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VV
aW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0
dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50
KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJl
MURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHBy
b2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURB
cnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dy
YW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJh
eSwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIs
IFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwg
bWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDMp
LCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFty
d1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwg
MiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFr
ZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDYpLCBt
YWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1Rl
eHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHBy
b2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtl
VWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWlu
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUy
RCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA1KSwg
bWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndU
ZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28z
IiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50
KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBt
YWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1
cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA2
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBb
cndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VV
aW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50
KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJE
LCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBt
YWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1Rl
eHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFt
LCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMi
LCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAz
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1h
a2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VV
aW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVy
ZTJELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDYp
LCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFty
d1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50
KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVp
bnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtl
VWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwg
bWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJy
YXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRB
cnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUz
RCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVp
bnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKK30KKwordGVzdHMudGV4dHVyZVNhbXBsZSA9IGZ1bmN0
aW9uKCkgeworICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKKyAgICAgICAgZmxvYXQgZm9vMShU
ZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgbG9jYXRpb24pIHsKKyAg
ICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgbG9jYXRpb24pOworICAgICAgICB9
CisgICAgYCk7CisgICAgbGV0IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0ZXh0dXJlMkQs
IHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1cmUxRCwgcndU
ZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNE
XSA9IGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9ncmFtKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHt9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgMTQpOwogfQogCiBv
a1RvVGVzdCA9IHRydWU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UZXh0dXJlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45ZDZlMDVhYzgxNzg3ODlhNjVmMzAwYjEwMDA4NjE2MDgyNDVkZjhiCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZS5qcwpA
QCAtMCwwICsxLDUzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisidXNlIHN0cmljdCI7CisKK2NsYXNzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGRp
bWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlu
bmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIHRoaXMuX2RpbWVuc2lvbiA9IGRpbWVuc2lv
bjsKKyAgICAgICAgdGhpcy5fd2lkdGggPSB3aWR0aDsKKyAgICAgICAgdGhpcy5faGVpZ2h0ID0g
aGVpZ2h0OworICAgICAgICB0aGlzLl9kZXB0aCA9IGRlcHRoOworICAgICAgICB0aGlzLl9sZXZl
bENvdW50ID0gbGV2ZWxDb3VudDsKKyAgICAgICAgdGhpcy5fbGF5ZXJDb3VudCA9IGxheWVyQ291
bnQ7CisgICAgICAgIHRoaXMuX2lubmVyVHlwZSA9IGlubmVyVHlwZTsKKyAgICAgICAgdGhpcy5f
ZGF0YSA9IGRhdGE7CisgICAgfQorCisgICAgZ2V0IGRpbWVuc2lvbigpIHsgcmV0dXJuIHRoaXMu
X2RpbWVuc2lvbjsgfQorICAgIGdldCB3aWR0aCgpIHsgcmV0dXJuIHRoaXMuX3dpZHRoOyB9Cisg
ICAgZ2V0IGhlaWdodCgpIHsgcmV0dXJuIHRoaXMuX2hlaWdodDsgfQorICAgIGdldCBkZXB0aCgp
IHsgcmV0dXJuIHRoaXMuX2RlcHRoOyB9CisgICAgZ2V0IGxldmVsQ291bnQoKSB7IHJldHVybiB0
aGlzLl9sZXZlbENvdW50OyB9CisgICAgZ2V0IGxheWVyQ291bnQoKSB7IHJldHVybiB0aGlzLl9s
YXllckNvdW50OyB9CisgICAgZ2V0IGlubmVyVHlwZSgpIHsgcmV0dXJuIHRoaXMuX2lubmVyVHlw
ZTsgfQorICAgIGdldCBkYXRhKCkgeyByZXR1cm4gdGhpcy5fZGF0YTsgfQorCisgICAgZWxlbWVu
dENoZWNrZWQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgaWYgKGxheWVy
IDwgMCB8fCBsYXllciA+PSB0aGlzLmxheWVyQ291bnQKKyAgICAgICAgICAgIHx8IGxldmVsIDwg
MCB8fCBsZXZlbCA+PSB0aGlzLmxldmVsQ291bnQKKyAgICAgICAgICAgIHx8IGsgPCAwIHx8IGsg
Pj0gdGhpcy5kZXB0aAorICAgICAgICAgICAgfHwgaiA8IDAgfHwgaiA+PSB0aGlzLmhlaWdodAor
ICAgICAgICAgICAgfHwgaSA8IDAgfHwgaSA+PSB0aGlzLndpZHRoKQorICAgICAgICAgICAgcmV0
dXJuIHVuZGVmaW5lZDsKKyAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudChsYXllciwgbGV2ZWws
IGssIGosIGkpOworICAgIH0KKworICAgIHNldEVsZW1lbnRDaGVja2VkKGxheWVyLCBsZXZlbCwg
aywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICBpZiAobGF5ZXIgPCAwIHx8IGxheWVyID49
IHRoaXMubGF5ZXJDb3VudAorICAgICAgICAgICAgfHwgbGV2ZWwgPCAwIHx8IGxldmVsID49IHRo
aXMubGV2ZWxDb3VudAorICAgICAgICAgICAgfHwgayA8IDAgfHwgayA+PSB0aGlzLmRlcHRoCisg
ICAgICAgICAgICB8fCBqIDwgMCB8fCBqID49IHRoaXMuaGVpZ2h0CisgICAgICAgICAgICB8fCBp
IDwgMCB8fCBpID49IHRoaXMud2lkdGgpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIHRoaXMuc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKTsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlMUQgZXh0ZW5kcyBUZXh0
dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAv
LyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgbWlwbWFwcy4KKyAgICAgICAgLy8gVGhlIGZpcnN0IG1p
cG1hcCBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1h
eSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhl
IHdpZHRoIG11c3QgYmUgYSBwb3dlci1vZi10d28uCisgICAgICAgIC8vIEVhY2ggbWlwbWFwIGlz
IGhhbGYtc2l6ZSBvZiB0aGUgcHJldmlvdXMgc2l6ZS4KKworICAgICAgICBsZXQgZGltZW5zaW9u
ID0gMTsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBo
ZWlnaHQgPSAxOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3Vu
dCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IDE7CisgICAgICAgIHN1
cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291
bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKwor
ICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9
CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAg
ICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5
ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsZXZl
bF1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUxREFycmF5IGV4dGVuZHMg
VGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAg
ICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIDFEIHRleHR1cmVzLgorICAgICAgICAvLyBBbGwg
dGV4dHVyZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHdpZHRoIGFuZCBudW1iZXIgb2YgbWlwbWFwcy4K
KworICAgICAgICBsZXQgZGltZW5zaW9uID0gMTsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVsw
XVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSAxOworICAgICAgICBsZXQgZGVwdGgg
PSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBs
ZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdp
ZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRh
dGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB0aGlzLmRhdGFbMF1bbGV2ZWxdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExl
dmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZGVwdGhB
dExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxl
bWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5k
YXRhW2xheWVyXVtsZXZlbF1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2
ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtsZXZl
bF1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUyRCBleHRlbmRzIFRleHR1
cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8v
ICJkYXRhIiBpcyBhbiBhcnJheSBvZiBtaXBtYXBzLgorICAgICAgICAvLyBUaGUgZmlyc3QgbWlw
bWFwIGlzIGEgcmVjdGFuZ3VsYXIgYXJyYXkgb2Ygcm93cywgd2hlcmUgZWFjaCByb3cgaXMgYW4g
YXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2Fs
YXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCBhbmQg
aGVpZ2h0IG11c3QgYmUgcG93ZXJzLW9mLXR3by4KKyAgICAgICAgLy8gRWFjaCBtaXBtYXAgaXMg
aGFsZi13aWR0aCBhbmQgaGFsZi1oZWlnaHQgb2YgdGhlIHByZXZpb3VzIHNpemUuCisKKyAgICAg
ICAgbGV0IGRpbWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF0ubGVu
Z3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBk
ZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAg
IGxldCBsYXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVp
Z2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAg
ICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhp
cy5kYXRhW2xldmVsXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZl
bCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdLmxlbmd0aDsKKyAgICB9
CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAg
ICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdW2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQo
bGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVts
ZXZlbF1bal1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUyREFycmF5IGV4
dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsK
KyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIDJEIHRleHR1cmVzLgorICAgICAgICAv
LyBBbGwgdGV4dHVyZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHdpZHRoLCBoZWlnaHQgYW5kIG51bWJl
ciBvZiBtaXBtYXBzLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAyOworICAgICAgICBsZXQg
d2lkdGggPSBkYXRhWzBdWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRhdGFb
MF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxD
b3VudCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVu
Z3RoOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZl
bENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRo
QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bbGV2ZWxd
WzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKworICAgIGRl
cHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAg
IGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRo
aXMuZGF0YVtsYXllcl1bbGV2ZWxdW2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5
ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsYXll
cl1bbGV2ZWxdW2pdW2ldID0gdmFsdWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlM0QgZXh0
ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgewor
ICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgbWlwbWFwcy4KKyAgICAgICAgLy8gVGhl
IGZpcnN0IG1pcG1hcCBpcyBhbiBhcnJheSBvZiBkZXB0aCBzbGljZXMsIGVhY2ggZGVwdGggc2xp
Y2UgaXMgYW4gYXJyYXkgb2Ygcm93cywgYW5kIGVhY2ggcm93IGlzIGFuIGFycmF5IG9mIGVsZW1l
bnRzLgorICAgICAgICAvLyBFYWNoIGVsZW1lbnQgbWF5IGJlIGEgc2NhbGFyIG9yIGFuIGFycmF5
IG9mIDItNCBzY2FsYXJzLgorICAgICAgICAvLyBUaGUgd2lkdGgsIGhlaWdodCwgYW5kIGRlcHRo
IG11c3QgYmUgcG93ZXJzLW9mLXR3by4KKyAgICAgICAgLy8gRWFjaCBtaXBtYXAgaXMgaGFsZi13
aWR0aCwgaGFsZi1oZWlnaHQsIGFuZCBoYWxmLWRlcHRoIG9mIHRoZSBwcmV2aW91cyBzaXplLgor
CisgICAgICAgIGxldCBkaW1lbnNpb24gPSAzOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBd
WzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRhdGFbMF1bMF0ubGVuZ3RoOwor
ICAgICAgICBsZXQgZGVwdGggPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGxldmVsQ291
bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSAxOworICAgICAgICBz
dXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNv
dW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdWzBdWzBdLmxlbmd0aDsKKyAg
ICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRo
aXMuZGF0YVtsZXZlbF1bMF0ubGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZl
bCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdLmxlbmd0aDsKKyAgICB9
CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJl
dHVybiB0aGlzLmRhdGFbbGV2ZWxdW2tdW2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQo
bGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVts
ZXZlbF1ba11bal1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmVDdWJlIGV4
dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsK
KyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIDYgMkQgdGV4dHVyZXMuCisgICAgICAg
IC8vIEFsbCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNhbWUgd2lkdGgsIGhlaWdodCwgZGVwdGgs
IGFuZCBudW1iZXIgb2YgbWlwbWFwcy4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMjsKKyAg
ICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWln
aHQgPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAg
bGV0IGxldmVsQ291bnQgPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGxheWVyQ291bnQg
PSBkYXRhLmxlbmd0aDsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBk
ZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisK
KyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRh
WzBdW2xldmVsXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bbGV2ZWxdLmxlbmd0aDsKKyAgICB9
CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAg
ICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtqXVtpXTsKKyAgICB9CisKKyAgICBzZXRF
bGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlz
LmRhdGFbbGF5ZXJdW2xldmVsXVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4
dHVyZTFEUlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRh
dGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuCisg
ICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2FsYXIgb3IgYW4gYXJyYXkgb2YgMi00
IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCBtdXN0IGJlIGEgcG93ZXItb2YtdHdvLgor
CisgICAgICAgIGxldCBkaW1lbnNpb24gPSAxOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhLmxl
bmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IDE7CisgICAgICAgIGxldCBkZXB0aCA9IDE7Cisg
ICAgICAgIGxldCBsZXZlbENvdW50ID0gMTsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSAxOwor
ICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50
LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZl
bChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGEubGVuZ3RoOworICAgIH0K
KworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAg
ICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsK
KyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0aGlzLmRhdGFbaV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwg
bGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2ldID0gdmFs
dWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlMURBcnJheVJXIGV4dGVuZHMgVGV4dHVyZSB7
CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRh
dGEiIGlzIGFuIGFycmF5IG9mIDFEIFJXIHRleHR1cmVzLgorICAgICAgICAvLyBBbGwgdGV4dHVy
ZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHNpemUuCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDE7
CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0
ID0gMTsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSAx
OworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBzdXBlcihk
aW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBp
bm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdo
dEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBk
ZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAg
ICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLmRhdGFbbGF5ZXJdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVs
LCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsYXllcl1baV0gPSB2
YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUyRFJXIGV4dGVuZHMgVGV4dHVyZSB7Cisg
ICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEi
IGlzIGEgcmVjdGFuZ3VsYXIgYXJyYXkgb2Ygcm93cywgd2hlcmUgZWFjaCByb3cgaXMgYW4gYXJy
YXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2FsYXIg
b3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCBhbmQgaGVp
Z2h0IG11c3QgYmUgcG93ZXJzLW9mLXR3by4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMjsK
KyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQg
PSBkYXRhLmxlbmd0aDsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVs
Q291bnQgPSAxOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IDE7CisgICAgICAgIHN1cGVyKGRp
bWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlu
bmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0
QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGEubGVuZ3RoOwor
ICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAx
OworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuZGF0YVtqXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxh
eWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbal1b
aV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUyREFycmF5UlcgZXh0ZW5kcyBU
ZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAg
ICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgMkQgUlcgdGV4dHVyZXMuCisgICAgICAgIC8vIEFs
bCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNhbWUgd2lkdGggYW5kIGhlaWdodC4KKworICAgICAg
ICBsZXQgZGltZW5zaW9uID0gMjsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXS5sZW5n
dGg7CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGRl
cHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSAxOworICAgICAgICBsZXQgbGF5ZXJD
b3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWln
aHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAg
IH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
LmRhdGFbMF1bMF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisg
ICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBk
ZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAg
ICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLmRhdGFbbGF5ZXJdW2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxl
dmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsYXllcl1bal1b
aV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUzRFJXIGV4dGVuZHMgVGV4dHVy
ZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8g
ImRhdGEiIGlzIGFuIGFycmF5IG9mIGRlcHRoIHNsaWNlcywgZWFjaCBkZXB0aCBzbGljZSBpcyBh
biBhcnJheSBvZiByb3dzLCBhbmQgZWFjaCByb3cgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuCisg
ICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2FsYXIgb3IgYW4gYXJyYXkgb2YgMi00
IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCwgaGVpZ2h0LCBhbmQgZGVwdGggbXVzdCBi
ZSBwb3dlcnMtb2YtdHdvLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAzOworICAgICAgICBs
ZXQgd2lkdGggPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRhdGFb
MF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgbGV0
IGxldmVsQ291bnQgPSAxOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IDE7CisgICAgICAgIHN1
cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291
bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVswXS5sZW5ndGg7CisgICAgfQorCisg
ICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFb
MF0ubGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0aGlzLmRhdGEubGVuZ3RoOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIs
IGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtrXVtqXVtp
XTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUp
CisgICAgeworICAgICAgICB0aGlzLmRhdGFba11bal1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlT3BlcmF0aW9u
cy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1cmVPcGVyYXRpb25zLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQ3MTIyY2Y4ODQ0Y2JkYTU4ZTg4NWMyOGI4YzEyMjQ2YzVjYTFkN2IKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlT3Bl
cmF0aW9ucy5qcwpAQCAtMCwwICsxLDU1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisidXNlIHN0cmljdCI7CisKK2Z1bmN0aW9uIGRlcHRoQ29tcGFyZU9w
ZXJhdGlvbihkcmVmLCBkLCBjb21wYXJlRnVuY3Rpb24pCit7CisgICAgLy8gVnVsa2FuIDEuMS44
MyBzZWN0aW9uIDE1LjMuNAorICAgIHN3aXRjaCAoY29tcGFyZUZ1bmN0aW9uKSB7CisgICAgICAg
IGNhc2UgIm5ldmVyIjoKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBjYXNlICJsZXNz
IjoKKyAgICAgICAgICAgIHJldHVybiBkcmVmIDwgZCA/IDEgOiAwOworICAgICAgICBjYXNlICJl
cXVhbCI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiA9PSBkID8gMSA6IDA7CisgICAgICAgIGNh
c2UgImxlc3NFcXVhbCI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiA8PSBkID8gMSA6IDA7Cisg
ICAgICAgIGNhc2UgImdyZWF0ZXIiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYgPiBkID8gMSA6
IDA7CisgICAgICAgIGNhc2UgIm5vdEVxdWFsIjoKKyAgICAgICAgICAgIHJldHVybiBkcmVmICE9
IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAiZ3JlYXRlckVxdWFsIjoKKyAgICAgICAgICAgIHJl
dHVybiBkcmVmID49IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAiYWx3YXlzIjoKKyAgICAgICAg
ICAgIHJldHVybiAxOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJVbmtub3duIGRlcHRoIGNvbXBhcmlzb24gZnVuY3Rpb24iKTsKKyAgICB9Cit9CisKK2Z1
bmN0aW9uIGNvbnZlcnNpb25Ub1JHQkEodmFsdWUpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBz
ZWN0aW9uIDE1LjMuNQorICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7CisgICAgICAg
IHZhciByZXN1bHQgPSBbXTsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5n
dGg7ICsraSkKKyAgICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlW2ldKTsKKyAgICAgICAgd2hp
bGUgKHJlc3VsdC5sZW5ndGggIT0gNCkKKyAgICAgICAgICAgIHJlc3VsdC5wdXNoKHJlc3VsdC5s
ZW5ndGggPT0gMyA/IDEgOiAwKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9IGVsc2UK
KyAgICAgICAgcmV0dXJuIFt2YWx1ZSwgMCwgMCwgMV07Cit9CisKK2Z1bmN0aW9uIHByb2plY3Rp
b25PcGVyYXRpb24ocywgdCwgciwgZHJlZiwgcSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNl
Y3Rpb24gMTUuNi4xCisgICAgcmV0dXJuIFtzIC8gcSwgdCAvIHEsIHIgLyBxLCBkcmVmICE9IHVu
ZGVmaW5lZCA/IGRyZWYgLyBxIDogdW5kZWZpbmVkXTsKK30KKworZnVuY3Rpb24gY3ViZU1hcEZh
Y2VTZWxlY3Rpb24ocywgdCwgciwgcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSeFdp
dGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJ5V2l0aFJlc3Bl
Y3RUb1ksIHBhcnRpYWxSeldpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWSkK
K3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi40CisgICAgbGV0IHJ4ID0gczsK
KyAgICBsZXQgcnkgPSB0OworICAgIGxldCByeiA9IHI7CisgICAgbGV0IHdpbm5lciA9IDA7Cisg
ICAgaWYgKE1hdGguYWJzKHJ6KSA+PSBNYXRoLmFicyhyeSkgJiYgTWF0aC5hYnMocnopID49IE1h
dGguYWJzKHJ4KSkKKyAgICAgICAgd2lubmVyID0gMjsKKyAgICBlbHNlIGlmIChNYXRoLmFicyhy
eSkgPj0gTWF0aC5hYnMocngpICYmIE1hdGguYWJzKHJ5KSA+PSBNYXRoLmFicyhyeikpCisgICAg
ICAgIHdpbm5lciA9IDE7CisKKyAgICBsZXQgbGF5ZXJOdW1iZXI7CisgICAgbGV0IHNjOworICAg
IGxldCB0YzsKKyAgICBsZXQgcmM7CisgICAgbGV0IHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YOwor
ICAgIGxldCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWTsKKyAgICBsZXQgcGFydGlhbFRjV2l0aFJl
c3BlY3RUb1g7CisgICAgbGV0IHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZOworICAgIGxldCBwYXJ0
aWFsUmNXaXRoUmVzcGVjdFRvWDsKKyAgICBsZXQgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1k7Cisg
ICAgaWYgKHdpbm5lciA9PSAwICYmIHJ4ID49IDApIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSAw
OworICAgICAgICBzYyA9IC1yejsKKyAgICAgICAgdGMgPSAtcnk7CisgICAgICAgIHJjID0gcng7
CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0
VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnpXaXRoUmVz
cGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0
aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxS
eVdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IHBhcnRp
YWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IHBh
cnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxzZSBpZiAod2lubmVyID09IDApIHsKKyAg
ICAgICAgbGF5ZXJOdW1iZXIgPSAxOworICAgICAgICBzYyA9IHJ6OworICAgICAgICB0YyA9IC1y
eTsKKyAgICAgICAgcmMgPSByeDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSBw
YXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kg
PSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RU
b1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNw
ZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRo
UmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJj
V2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgfSBlbHNlIGlm
ICh3aW5uZXIgPT0gMSAmJiByeSA+PSAwKSB7CisgICAgICAgIGxheWVyTnVtYmVyID0gMjsKKyAg
ICAgICAgc2MgPSByeDsKKyAgICAgICAgdGMgPSAtcno7CisgICAgICAgIHJjID0gcnk7CisgICAg
ICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7Cisg
ICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7
CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RU
b1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ6V2l0aFJlc3Bl
Y3RUb1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ5V2l0aFJl
c3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ5V2l0
aFJlc3BlY3RUb1k7CisgICAgfSBlbHNlIGlmICh3aW5uZXIgPT0gMSkgeworICAgICAgICBsYXll
ck51bWJlciA9IDM7CisgICAgICAgIHNjID0gcng7CisgICAgICAgIHRjID0gLXJ6OworICAgICAg
ICByYyA9IHJ5OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeFdp
dGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxS
eFdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0
aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgPSAt
cGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9Y
ID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVj
dFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICB9IGVsc2UgaWYgKHdpbm5lciA9
PSAyICYmIHJ6ID49IDApIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSA0OworICAgICAgICBzYyA9
IHJ4OworICAgICAgICB0YyA9IC1yeTsKKyAgICAgICAgcmMgPSByejsKKyAgICAgICAgcGFydGlh
bFNjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFy
dGlhbFNjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAg
cGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAg
ICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOwor
ICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9Y
OworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeldpdGhSZXNwZWN0
VG9ZOworICAgIH0gZWxzZSB7CisgICAgICAgIGxheWVyTnVtYmVyID0gNTsKKyAgICAgICAgc2Mg
PSAtcng7CisgICAgICAgIHRjID0gLXJ5OworICAgICAgICByYyA9IHJ6OworICAgICAgICBwYXJ0
aWFsU2NXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAg
cGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAg
ICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOwor
ICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRv
WTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ6V2l0aFJlc3Bl
Y3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeldpdGhS
ZXNwZWN0VG9ZOworICAgIH0KKyAgICByZXR1cm4gW2xheWVyTnVtYmVyLCBzYywgdGMsIHJjLCBw
YXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxU
Y1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJjV2l0aFJl
c3BlY3RUb1gsIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZXQorfQorCitmdW5jdGlvbiBjdWJlTWFw
Q29vcmRpbmF0ZVRyYW5zZm9ybWF0aW9uKHNjLCByYykKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgz
IHNlY3Rpb24gMTUuNi41CisgICAgbGV0IHNGYWNlID0gKDEgLyAyKSAqIHNjIC8gTWF0aC5hYnMo
cmMpICsgKDEgLyAyKTsKKyAgICBsZXQgdEZhY2UgPSAoMSAvIDIpICogdGMgLyBNYXRoLmFicyhy
YykgKyAoMSAvIDIpOworICAgIHJldHVybiBbc0ZhY2UsIHRGYWNlXTsKK30KKworZnVuY3Rpb24g
Y3ViZU1hcERlcml2YXRpdmVUcmFuc2Zvcm1hdGlvbihzYywgdGMsIHJjLCBwYXJ0aWFsU2NXaXRo
UmVzcGVjdFRvWCwgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxUY1dpdGhSZXNwZWN0
VG9YLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gsIHBh
cnRpYWxSY1dpdGhSZXNwZWN0VG9ZKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAx
NS42LjYKKyAgICBsZXQgcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1ggPSAoMSAvIDIpICogKChN
YXRoLmFicyhyYykgKiBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCAtIHNjICogcGFydGlhbFJjV2l0
aFJlc3BlY3RUb1gpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICBsZXQgcGFydGlhbFNGYWNlV2l0
aFJlc3BlY3RUb1kgPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFsU2NXaXRoUmVz
cGVjdFRvWSAtIHNjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kpIC8gTWF0aC5wb3cocmMsIDIp
KTsKKyAgICBsZXQgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1ggPSAoMSAvIDIpICogKChNYXRo
LmFicyhyYykgKiBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCAtIHRjICogcGFydGlhbFJjV2l0aFJl
c3BlY3RUb1gpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICBsZXQgcGFydGlhbFRGYWNlV2l0aFJl
c3BlY3RUb1kgPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFsVGNXaXRoUmVzcGVj
dFRvWSAtIHRjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kpIC8gTWF0aC5wb3cocmMsIDIpKTsK
KyAgICByZXR1cm4gW3BhcnRpYWxTRmFjZVdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU0ZhY2VXaXRo
UmVzcGVjdFRvWSwgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxURmFjZVdpdGhS
ZXNwZWN0VG9ZXTsKK30KKworZnVuY3Rpb24gc2NhbGVGYWN0b3JPcGVyYXRpb24oZGV2aWNlTWF4
QW5pc290cm9weSwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIHNhbXBsZXJNYXhBbmlzb3Ryb3B5LCBw
YXJ0aWFsU1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUldp
dGhSZXNwZWN0VG9YLCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVFdpdGhSZXNwZWN0
VG9ZLCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9ZKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2Vj
dGlvbiAxNS42LjcKKyAgICBsZXQgbXV4ID0gTWF0aC5hYnMocGFydGlhbFNXaXRoUmVzcGVjdFRv
WCkgKiB3aWR0aDsKKyAgICBsZXQgbXZ4ID0gTWF0aC5hYnMocGFydGlhbFRXaXRoUmVzcGVjdFRv
WCkgKiBoZWlnaHQ7CisgICAgbGV0IG13eCA9IE1hdGguYWJzKHBhcnRpYWxSV2l0aFJlc3BlY3RU
b1gpICogZGVwdGg7CisgICAgbGV0IG11eSA9IE1hdGguYWJzKHBhcnRpYWxTV2l0aFJlc3BlY3RU
b1kpICogd2lkdGg7CisgICAgbGV0IG12eSA9IE1hdGguYWJzKHBhcnRpYWxUV2l0aFJlc3BlY3RU
b1kpICogaGVpZ2h0OworICAgIGxldCBtd3kgPSBNYXRoLmFicyhwYXJ0aWFsUldpdGhSZXNwZWN0
VG9ZKSAqIGRlcHRoOworCisgICAgbGV0IGZ4ID0gTWF0aC5zcXJ0KDIpICogKG11eCArIG12eCAr
IG13eCk7CisgICAgbGV0IGZ5ID0gTWF0aC5zcXJ0KDIpICogKG11eSArIG12eSArIG13eSk7CisK
KyAgICBsZXQgcmhvWCA9IGZ4OworICAgIGxldCByaG9ZID0gZnk7CisgICAgbGV0IHJob01heCA9
IE1hdGgubWF4KHJob1gsIHJob1kpOworICAgIGxldCByaG9NaW4gPSBNYXRoLm1pbihyaG9YLCBy
aG9ZKTsKKworICAgIGxldCBtYXhBbmlzbyA9IE1hdGgubWluKHNhbXBsZXJNYXhBbmlzb3Ryb3B5
LCBkZXZpY2VNYXhBbmlzb3Ryb3B5KTsKKworICAgIGxldCBldGE7CisgICAgaWYgKHJob01heCA9
PSAwICYmIHJob01pbiA9PSAwKQorICAgICAgICBldGEgPSAxOworICAgIGVsc2UgaWYgKHJob01p
biA9PSAwKQorICAgICAgICBldGEgPSBtYXhBbmlzbzsKKyAgICBlbHNlCisgICAgICAgIGV0YSA9
IE1hdGgubWluKHJob01heCAvIHJob01pbiwgbWF4QW5pc28pOworCisgICAgbGV0IE4gPSBNYXRo
LmNlaWwoZXRhKTsKKyAgICByZXR1cm4gW3Job01heCwgcmhvTWluLCBldGEsIE5dOworfQorCitm
dW5jdGlvbiBsZXZlbE9mRGV0YWlsT3BlcmF0aW9uKGRldmljZU1heFNhbXBsZXJMb2RCaWFzLCBs
b2RGcm9tRnVuY3Rpb25PcGVyYW5kLCBsb2RNaW5Gcm9tRnVuY3Rpb25PcGVyYW5kLCBiaWFzRnJv
bUZ1bmN0aW9uT3BlcmFuZCwgc2FtcGxlckJpYXMsIHNhbXBsZXJMb2RNaW4sIHNhbXBsZXJMb2Fk
TWF4LCByaG9NYXgsIGV0YSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi43
CisgICAgaWYgKGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kID09IHVuZGVmaW5lZCkKKyAgICAgICAg
Ymlhc0Zyb21GdW5jdGlvbk9wZXJhbmQgPSAwOworCisgICAgbGV0IGxhbWJkYUJhc2UgPSBsb2RG
cm9tRnVuY3Rpb25PcGVyYW5kICE9IHVuZGVmaW5lZCA/IGxvZEZyb21GdW5jdGlvbk9wZXJhbmQg
OiBNYXRoLmxvZzIocmhvTWF4IC8gZXRhKTsKKyAgICBsZXQgbGFtYmRhUHJpbWUgPSBsYW1iZGFC
YXNlICsgTWF0aC5taW4oTWF0aC5tYXgoc2FtcGxlckJpYXMgKyBiaWFzRnJvbUZ1bmN0aW9uT3Bl
cmFuZCwgLWRldmljZU1heFNhbXBsZXJMb2RCaWFzKSwgZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMp
OworICAgIGxldCBsb2RNaW4gPSBNYXRoLm1heChzYW1wbGVyTG9kTWluLCBsb2RNaW5Gcm9tRnVu
Y3Rpb25PcGVyYW5kKTsKKyAgICBsZXQgbG9kTWF4ID0gc2FtcGxlckxvYWRNYXg7CisgICAgbGV0
IGxhbWJkYTsKKyAgICBpZiAobGFtYmRhUHJpbWUgPiBsb2RNYXgpCisgICAgICAgIGxhbWJkYSA9
IGxvZE1heDsKKyAgICBlbHNlIGlmIChsb2RNaW4gPD0gbGFtYmRhUHJpbWUgJiYgbGFtYmRhUHJp
bWUgPD0gbG9kTWF4KQorICAgICAgICBsYW1iZGEgPSBsYW1iZGFQcmltZTsKKyAgICBlbHNlIGlm
IChsYW1iZGFQcmltZSA8IGxvZE1pbikKKyAgICAgICAgbGFtYmRhID0gbG9kTWluOworICAgIGVs
c2UKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJsb2RNaW4gPj0gbG9kTWF4Iik7CisgICAgcmV0
dXJuIGxhbWJkYTsKK30KKworZnVuY3Rpb24gaW1hZ2VMZXZlbFNlbGVjdGlvbihiYXNlTWlwTGV2
ZWwsIGxldmVsQ291bnQsIG1pcG1hcE1vZGUsIGxhbWJkYSkKK3sKKyAgICAvLyBWdWxrYW4gMS4x
LjgzIHNlY3Rpb24gMTUuNi43CisgICAgZnVuY3Rpb24gbmVhcmVzdChkUHJpbWUpCisgICAgewor
ICAgICAgICByZXR1cm4gTWF0aC5jZWlsKGRQcmltZSArIDAuNSkgLSAxOworICAgIH0KKworICAg
IGxldCBxID0gbGV2ZWxDb3VudCAtIDE7CisgICAgbGV0IGRQcmltZSA9IGJhc2VNaXBMZXZlbCAr
IE1hdGgubWluKE1hdGgubWF4KGxhbWJkYSwgMCksIHEpOworICAgIGxldCBkbDsKKyAgICBpZiAo
bWlwbWFwTW9kZSA9PSAibmVhcmVzdCIpCisgICAgICAgIGRsID0gbmVhcmVzdChkUHJpbWUpOwor
ICAgIGVsc2UKKyAgICAgICAgZGwgPSBkUHJpbWU7CisgICAgaWYgKG1pcG1hcE1vZGUgPT0gIm5l
YXJlc3QiKQorICAgICAgICByZXR1cm4gZGw7CisgICAgZWxzZSB7CisgICAgICAgIGxldCBkSGkg
PSBNYXRoLmZsb29yKGRsKTsKKyAgICAgICAgbGV0IGRMb3cgPSBNYXRoLm1pbihkSGkgKyAxLCBx
KTsKKyAgICAgICAgbGV0IGRlbHRhID0gZGwgLSBkSGk7CisgICAgICAgIHJldHVybiBbZEhpLCBk
TG93LCBkZWx0YV07CisgICAgfQorfQorCitmdW5jdGlvbiBzdHJxYVRvVVZXQVRyYW5zZm9ybWF0
aW9uKHMsIHQsIHIsIHdpZHRoLCBoZWlnaHQsIGRlcHRoKQoreworICAgIC8vIFZ1bGthbiAxLjEu
ODMgc2VjdGlvbiAxNS42LjgKKyAgICBsZXQgdSA9IHMgKiB3aWR0aDsKKyAgICBsZXQgdiA9IHQg
KiBoZWlnaHQ7CisgICAgbGV0IHcgPSByICogZGVwdGg7CisgICAgcmV0dXJuIFt1LCB2LCB3XTsK
K30KKworZnVuY3Rpb24gdXZ3YVRvSUpLTE5UcmFuc2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJTZWxl
Y3Rpb24obGF5ZXJDb3VudCwgYmFzZUFycmF5TGF5ZXIsIGZpbHRlciwgdSwgdiwgdywgYSwgZGVs
dGFJLCBkZWx0YUosIGRlbHRhSykKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUu
Ny4xCisKKyAgICBpZiAoZGVsdGFJID09IHVuZGVmaW5lZCkKKyAgICAgICAgZGVsdGFJID0gMDsK
KyAgICBpZiAoZGVsdGFKID09IHVuZGVmaW5lZCkKKyAgICAgICAgZGVsdGFKID0gMDsKKyAgICBp
ZiAoZGVsdGFLID09IHVuZGVmaW5lZCkKKyAgICAgICAgZGVsdGFLID0gMDsKKworICAgIGZ1bmN0
aW9uIHJuZShhKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoYSArIDAuNSk7Cisg
ICAgfQorICAgIGxldCBsID0gTWF0aC5taW4oTWF0aC5tYXgocm5lKGEpLCAwKSwgbGF5ZXJDb3Vu
dCAtIDEpICsgYmFzZUFycmF5TGF5ZXI7CisgICAgbGV0IGk7CisgICAgbGV0IGo7CisgICAgbGV0
IGs7CisgICAgaWYgKGZpbHRlciA9PSAibmVhcmVzdCIpIHsKKyAgICAgICAgaSA9IE1hdGguZmxv
b3IodSk7CisgICAgICAgIGogPSBNYXRoLmZsb29yKHYpOworICAgICAgICBrID0gTWF0aC5mbG9v
cih3KTsKKyAgICAgICAgCisgICAgICAgIGkgKz0gZGVsdGFJOworICAgICAgICBqICs9IGRlbHRh
SjsKKyAgICAgICAgayArPSBkZWx0YUs7CisgICAgICAgIAorICAgICAgICByZXR1cm4gW2ksIGos
IGssIGxdOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChmaWx0ZXIgIT0gImxpbmVhciIpCisg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZmlsdGVyIik7CisgICAgICAgIGxl
dCBpMCA9IE1hdGguZmxvb3IodSAtIDAuNSk7CisgICAgICAgIGxldCBpMSA9IGkwICsgMTsKKyAg
ICAgICAgbGV0IGowID0gTWF0aC5mbG9vcih2IC0gMC41KTsKKyAgICAgICAgbGV0IGoxID0gajAg
KyAxOworICAgICAgICBsZXQgazAgPSBNYXRoLmZsb29yKHcgLSAwLjUpOworICAgICAgICBsZXQg
azEgPSBrMCArIDE7CisgICAgICAgIGxldCBhbHBoYSA9ICh1IC0gMC41KSAtIGkwOworICAgICAg
ICBsZXQgYmV0YSA9ICh2IC0gMC41KSAtIGowOworICAgICAgICBsZXQgZ2FtbWEgPSAodyAtIDAu
NSkgLSBrMDsKKyAgICAgICAgCisgICAgICAgIGkwICs9IGRlbHRhSTsKKyAgICAgICAgaTEgKz0g
ZGVsdGFJOworICAgICAgICBqMCArPSBkZWx0YUo7CisgICAgICAgIGoxICs9IGRlbHRhSjsKKyAg
ICAgICAgazAgKz0gZGVsdGFLOworICAgICAgICBrMSArPSBkZWx0YUs7CisgICAgICAgIAorICAg
ICAgICByZXR1cm4gW2kwLCBpMSwgajAsIGoxLCBrMCwgazEsIGwsIGFscGhhLCBiZXRhLCBnYW1t
YV07CisgICAgfQorfQorCitmdW5jdGlvbiBpbnRlZ2VyVGV4ZWxDb29yZGluYXRlT3BlcmF0aW9u
cyhiYXNlTWlwTGV2ZWwsIGxldmVsQ291bnQsIGxldmVsQmFzZSwgbG9kRnJvbUZ1bmN0aW9uT3Bl
cmFuZCkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOAorICAgIGxldCBkID0g
bGV2ZWxCYXNlICsgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZDsKKyAgICBpZiAoZCA8IGJhc2VNaXBM
ZXZlbCB8fCBkID49IGJhc2VNaXBMZXZlbCArIGxldmVsQ291bnQpCisgICAgICAgIHRocm93IG5l
dyBFcnJvcigiU2VsZWN0ZWQgbGV2ZWwgZG9lcyBub3QgbGllIGluc2lkZSB0aGUgaW1hZ2UiKTsK
KyAgICByZXR1cm4gZDsKK30KKworZnVuY3Rpb24gd3JhcHBpbmdPcGVyYXRpb24od2lkdGgsIGhl
aWdodCwgZGVwdGgsIGFkZHJlc3NNb2RlVSwgYWRkcmVzc01vZGVWLCBhZGRyZXNzTW9kZVcsIGks
IGosIGspCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjkuMQorICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgY3ViZSBtYXAgaGFuZGxpbmcKKyAgICBmdW5jdGlvbiB0cmFuc2Zvcm0o
YWRkcmVzc01vZGUsIHNpemUsIGkpCisgICAgeworICAgICAgICBmdW5jdGlvbiBtaXJyb3Iobikg
eworICAgICAgICAgICAgaWYgKG4gPj0gMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gbjsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gLSgxICsgbik7CisgICAgICAg
IH0KKyAgICAgICAgc3dpdGNoIChhZGRyZXNzTW9kZSkgeworICAgICAgICAgICAgY2FzZSAiY2xh
bXBUb0VkZ2UiOgorICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1heChpLCAw
KSwgc2l6ZSAtIDEpOworICAgICAgICAgICAgY2FzZSAicmVwZWF0IjoKKyAgICAgICAgICAgICAg
ICByZXR1cm4gaSAlIHNpemU7CisgICAgICAgICAgICBjYXNlICJtaXJyb3JSZXBlYXQiOgorICAg
ICAgICAgICAgICAgIHJldHVybiAoc2l6ZSAtIDEpIC0gbWlycm9yKChpICUgKDIgKiBzaXplKSkg
LSBzaXplKTsKKyAgICAgICAgICAgIGNhc2UgImNsYW1wVG9Cb3JkZXJDb2xvciI6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGksIC0xKSwgc2l6ZSk7CisgICAgICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBh
ZGRyZXNzIG1vZGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gW3RyYW5zZm9ybShh
ZGRyZXNzTW9kZVUsIHdpZHRoLCBpKSwgdHJhbnNmb3JtKGFkZHJlc3NNb2RlViwgaGVpZ2h0LCBq
KSwgdHJhbnNmb3JtKGFkZHJlc3NNb2RlVywgZGVwdGgsIGspXTsKK30KKworZnVuY3Rpb24gdGV4
ZWxHYXRoZXJpbmcoKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS45LjIKKyAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMKKyAgICAvKmxldCB0YXVSID0gOworICAgIGxldCB0
YXVHID0gOworICAgIGxldCB0YXVCID0gOworICAgIGxldCB0YXVBID0gOyovCit9CisKK2Z1bmN0
aW9uIHRleGVsRmlsdGVyaW5nKAorICAgIGRldmljZU1heEFuaXNvdHJvcHksCisgICAgZGV2aWNl
TWF4U2FtcGxlckxvZEJpYXMsCisgICAgYmFzZU1pcExldmVsLAorICAgIGJhc2VBcnJheUxheWVy
LAorICAgIHRleHR1cmUsCisgICAgc2FtcGxlciwKKyAgICBzYW1wbGVyQmlhcywKKyAgICBzLCB0
LCByLCBhLAorICAgIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUssCisgICAgbG9kRnJvbUZ1bmN0aW9u
T3BlcmFuZCwKKyAgICBsb2RNaW5Gcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgIGJpYXNGcm9tRnVu
Y3Rpb25PcGVyYW5kLAorICAgIGRkeCwgZGR5KQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2Vj
dGlvbiAxNS45LjMKKworICAgIC8vIFRoZSBzcGVjIHVzZXMgZGlmZmVyZW50IG5hbWVzIHRoYW4g
V2ViR1BVIGRvZXMuCisgICAgbGV0IGFkZHJlc3NNb2RlVSA9IHNhbXBsZXIuckFkZHJlc3NNb2Rl
OworICAgIGxldCBhZGRyZXNzTW9kZVYgPSBzYW1wbGVyLnNBZGRyZXNzTW9kZTsKKyAgICBsZXQg
YWRkcmVzc01vZGVXID0gc2FtcGxlci50QWRkcmVzc01vZGU7CisKKyAgICAvLyBGSVhNRTogTWFr
ZSB0aGlzIHdvcmsgd2l0aCBjdWJlbWFwcworICAgIGxldCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9Y
ID0gMDsKKyAgICBsZXQgcGFydGlhbFRXaXRoUmVzcGVjdFRvWCA9IDA7CisgICAgbGV0IHBhcnRp
YWxSV2l0aFJlc3BlY3RUb1ggPSAwOworICAgIGlmIChkZHggIT0gdW5kZWZpbmVkKSB7CisgICAg
ICAgIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1ggPSBkZHhbMF07CisgICAgICAgIHBhcnRpYWxUV2l0
aFJlc3BlY3RUb1ggPSBkZHhbMV07CisgICAgICAgIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1ggPSBk
ZHhbMl07CisgICAgfQorICAgIGxldCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9ZID0gMDsKKyAgICBs
ZXQgcGFydGlhbFRXaXRoUmVzcGVjdFRvWSA9IDA7CisgICAgbGV0IHBhcnRpYWxSV2l0aFJlc3Bl
Y3RUb1kgPSAwOworICAgIGlmIChkZHkgIT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHBhcnRpYWxT
V2l0aFJlc3BlY3RUb1kgPSBkZHlbMF07CisgICAgICAgIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1kg
PSBkZHlbMV07CisgICAgICAgIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kgPSBkZHlbMl07CisgICAg
fQorICAgIGxldCBbcmhvTWF4LCByaG9NaW4sIGV0YSwgTl0gPSBzY2FsZUZhY3Rvck9wZXJhdGlv
bihkZXZpY2VNYXhBbmlzb3Ryb3B5LCB0ZXh0dXJlLndpZHRoLCB0ZXh0dXJlLmhlaWdodCwgdGV4
dHVyZS5kZXB0aCwgc2FtcGxlci5tYXhBbmlzb3Ryb3B5LCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9Y
LCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9YLCBwYXJ0aWFs
U1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUldpdGhSZXNw
ZWN0VG9ZKTsKKyAgICBsZXQgbGFtYmRhID0gbGV2ZWxPZkRldGFpbE9wZXJhdGlvbihkZXZpY2VN
YXhTYW1wbGVyTG9kQmlhcywgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwgbG9kTWluRnJvbUZ1bmN0
aW9uT3BlcmFuZCwgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIHNhbXBsZXJCaWFzLCBzYW1wbGVy
LmxvZE1pbkNsYW1wLCBzYW1wbGVyLmxvZE1heENsYW1wLCByaG9NYXgsIGV0YSk7CisKKyAgICBs
ZXQgZmlsdGVyOworICAgIGlmIChsYW1iZGEgPD0gMCkKKyAgICAgICAgZmlsdGVyID0gc2FtcGxl
ci5tYWdGaWx0ZXI7CisgICAgZWxzZQorICAgICAgICBmaWx0ZXIgPSBzYW1wbGVyLm1pbkZpbHRl
cjsKKworICAgIGZ1bmN0aW9uIGNvbXB1dGVUYXUobGV2ZWwpCisgICAgeworICAgICAgICBmdW5j
dGlvbiByZWR1Y2UoLi4udmFsdWVzKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAodmFsdWVz
Lmxlbmd0aCAlIDIgIT0gMCkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkRvbid0
IGhhdmUgYSB3ZWlnaHQgY29ycmVzcG9uZGluZyB0byBlYWNoIHZhbHVlIik7CisgICAgICAgICAg
ICBpZiAodmFsdWVzLmxlbmd0aCA8IDIpCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJEb24ndCBoYXZlIGVub3VnaCB0aGluZ3MgdG8gY2FsY3VsYXRlIGFuIGF2ZXJhZ2UiKTsKKyAg
ICAgICAgICAgIGxldCBzdW07CisgICAgICAgICAgICBpZiAodmFsdWVzWzFdIGluc3RhbmNlb2Yg
QXJyYXkpIHsKKyAgICAgICAgICAgICAgICBzdW0gPSBbXTsKKyAgICAgICAgICAgICAgICBmb3Ig
KGxldCBpID0gMDsgaSA8IHZhbHVlc1sxXS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICAg
ICAgc3VtLnB1c2goMCk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBzdW0g
PSAwOworICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoIC8gMjsg
KytpKSB7CisgICAgICAgICAgICAgICAgbGV0IHdlaWdodCA9IHZhbHVlc1syICogaV07CisgICAg
ICAgICAgICAgICAgbGV0IGNvbG9yID0gdmFsdWVzWzIgKiBpICsgMV07CisgICAgICAgICAgICAg
ICAgaWYgKGNvbG9yIGluc3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAgICAgICAgICAgICAgZm9y
IChsZXQgaSA9IDA7IGkgPCBjb2xvci5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHN1bVtpXSArPSB3ZWlnaHQgKiBjb2xvcltpXTsKKyAgICAgICAgICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgc3VtICs9IHdlaWdodCAqIGNvbG9yOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgcmV0dXJuIHN1bTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9u
IGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsLCBpLCBqLCBrKQorICAgICAgICB7
CisgICAgICAgICAgICBmdW5jdGlvbiBzaG91bGRCZUJvcmRlcih2YWx1ZSwgbWF4KQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA8IC0xIHx8IHZhbHVlID4gbWF4KQor
ICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk91dC1vZi1ib3VuZHMgdGV4dHVy
ZSByZWFkIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09IC0xIHx8IHZhbHVlID09
IG1heDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGV0IFt3cmFwcGVkSSwgd3JhcHBl
ZEosIHdyYXBwZWRLXSA9IHdyYXBwaW5nT3BlcmF0aW9uKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBh
ZGRyZXNzTW9kZVUsIGFkZHJlc3NNb2RlViwgYWRkcmVzc01vZGVXLCBpLCBqLCBrKQorICAgICAg
ICAgICAgaWYgKHNob3VsZEJlQm9yZGVyKHdyYXBwZWRJLCB3aWR0aCkgfHwgc2hvdWxkQmVCb3Jk
ZXIod3JhcHBlZEosIGhlaWdodCkgfHwgc2hvdWxkQmVCb3JkZXIod3JhcHBlZEssIGRlcHRoKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gc2FtcGxlci5ib3JkZXJDb2xvcih0ZXh0dXJlLmlubmVy
VHlwZSk7IC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICByZXR1cm4gdGV4dHVyZS5lbGVtZW50KGwsIGxldmVsLCBrLCBqLCBpKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGxldCBbdSwgdiwgd10gPSBzdHJxYVRvVVZXQVRyYW5zZm9ybWF0
aW9uKHMsIHQsIHIsIHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRB
dExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpKTsKKyAgICAgICAgaWYg
KGZpbHRlciA9PSAibmVhcmVzdCIpIHsKKyAgICAgICAgICAgIGxldCBbaSwgaiwgaywgbF0gPSB1
dndhVG9JSktMTlRyYW5zZm9ybWF0aW9uQW5kQXJyYXlMYXllclNlbGVjdGlvbih0ZXh0dXJlLmxh
eWVyQ291bnQsIGJhc2VBcnJheUxheWVyLCBmaWx0ZXIsIHUsIHYsIHcsIGEsIGRlbHRhSSwgZGVs
dGFKLCBkZWx0YUspOworICAgICAgICAgICAgcmV0dXJuIGFjY2Vzc0NvbG9yKHRleHR1cmUud2lk
dGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5k
ZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpLCBqLCBrKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIGlmIChmaWx0ZXIgIT0gImxpbmVhciIpCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJVbmtub3duIGZpbHRlciIpOworICAgICAgICAgICAgW2kwLCBpMSwgajAsIGoxLCBr
MCwgazEsIGwsIGFscGhhLCBiZXRhLCBnYW1tYV0gPSB1dndhVG9JSktMTlRyYW5zZm9ybWF0aW9u
QW5kQXJyYXlMYXllclNlbGVjdGlvbih0ZXh0dXJlLmxheWVyQ291bnQsIGJhc2VBcnJheUxheWVy
LCBmaWx0ZXIsIHUsIHYsIHcsIGEsIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUspOworICAgICAgICAg
ICAgbGV0IGNvbG9yMDAwID0gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwp
LCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZl
bCksIGwsIGkwLCBqMCwgazApOworICAgICAgICAgICAgbGV0IGNvbG9yMTAwID0gYWNjZXNzQ29s
b3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2
ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGkxLCBqMCwgazApOworICAgICAg
ICAgICAgbGV0IGNvbG9yMDEwID0gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2
ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChs
ZXZlbCksIGwsIGkwLCBqMSwgazApOworICAgICAgICAgICAgbGV0IGNvbG9yMTEwID0gYWNjZXNz
Q29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwo
bGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGkxLCBqMSwgazApOworICAg
ICAgICAgICAgbGV0IGNvbG9yMDAxID0gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwo
bGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZl
bChsZXZlbCksIGwsIGkwLCBqMCwgazEpOworICAgICAgICAgICAgbGV0IGNvbG9yMTAxID0gYWNj
ZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2
ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGkxLCBqMCwgazEpOwor
ICAgICAgICAgICAgbGV0IGNvbG9yMDExID0gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2
ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRM
ZXZlbChsZXZlbCksIGwsIGkwLCBqMSwgazEpOworICAgICAgICAgICAgbGV0IGNvbG9yMTExID0g
YWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0
TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGkxLCBqMSwgazEp
OworICAgICAgICAgICAgc3dpdGNoICh0ZXh0dXJlLmRpbWVuc2lvbikgeworICAgICAgICAgICAg
ICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMCA9IGNvbG9yMDExOwor
ICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IxID0gY29sb3IxMTE7CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiByZWR1Y2UoMSAtIGFscGhhLCBjb2xvcjAsIGFscGhhLCBjb2xvcjEpOwor
ICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMDAg
PSBjb2xvcjAwMTsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMTAgPSBjb2xvcjEwMTsK
KyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMDEgPSBjb2xvcjAxMTsKKyAgICAgICAgICAg
ICAgICAgICAgbGV0IGNvbG9yMTEgPSBjb2xvcjExMTsKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHJlZHVjZSgoMSAtIGFscGhhKSAqICgxIC0gYmV0YSksIGNvbG9yMDAsIGFscGhhICogKDEg
LSBiZXRhKSwgY29sb3IxMCwgKDEgLSBhbHBoYSkgKiBiZXRhLCBjb2xvcjAxLCBhbHBoYSAqIGJl
dGEsIGNvbG9yMTEpOworICAgICAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHJlZHVjZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICgxIC0gYWxwaGEpICog
KDEgLSBiZXRhKSAqICgxIC0gZ2FtbWEpLCBjb2xvcjAwMCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGFscGhhICogKDEgLSBiZXRhKSAqICgxIC0gZ2FtbWEpLCBjb2xvcjEwMCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICgxIC0gYWxwaGEpICogYmV0YSAqICgxIC0gZ2FtbWEpLCBjb2xvcjAx
MCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFscGhhICogYmV0YSAqICgxIC0gZ2FtbWEpLCBj
b2xvcjExMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICgxIC0gYWxwaGEpICogKDEgLSBiZXRh
KSAqIGdhbW1hLCBjb2xvcjAwMSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFscGhhICogKDEg
LSBiZXRhKSAqIGdhbW1hLCBjb2xvcjEwMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICgxIC0g
YWxwaGEpICogYmV0YSAqIGdhbW1hLCBjb2xvcjAxMSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGFscGhhICogYmV0YSAqIGdhbW1hLCBjb2xvcjExMSk7CisgICAgICAgICAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGRpbWVuc2lv
biIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHNhbXBsZXIu
bWlwRmlsdGVyID09ICJuZWFyZXN0IikgeworICAgICAgICBsZXQgaW1hZ2VMZXZlbCA9IGltYWdl
TGV2ZWxTZWxlY3Rpb24oYmFzZU1pcExldmVsLCB0ZXh0dXJlLmxldmVsQ291bnQsIHNhbXBsZXIu
bWlwRmlsdGVyLCBsYW1iZGEpOworICAgICAgICByZXR1cm4gY29tcHV0ZVRhdShpbWFnZUxldmVs
KTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoc2FtcGxlci5taXBGaWx0ZXIgIT0gImxpbmVh
ciIpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZmlsdGVyIik7CisgICAg
ICAgIGxldCBbZEhpLCBkTG93LCBkZWx0YV0gPSBpbWFnZUxldmVsU2VsZWN0aW9uKGJhc2VNaXBM
ZXZlbCwgdGV4dHVyZS5sZXZlbENvdW50LCBzYW1wbGVyLm1pcEZpbHRlciwgbGFtYmRhKTsKKyAg
ICAgICAgcmV0dXJuIHJlZHVjZSgxIC0gZGVsdGEsIGNvbXB1dGVUYXUoZEhpKSwgZGVsdGEsIGNv
bXB1dGVUYXUoZExvKSk7CisgICAgfQorfQorCitmdW5jdGlvbiBzYW1wbGVUZXh0dXJlKHRleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZWx0YSwgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIGRk
eCwgZGR5LCBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLCBkcmVmKQoreworICAgIGxldCBzID0gbG9j
YXRpb25bMF07CisgICAgbGV0IHQgPSBsb2NhdGlvblsxXTsKKyAgICBsZXQgciA9IGxvY2F0aW9u
WzJdOworICAgIGxldCBxID0gbG9jYXRpb25bM107CisgICAgbGV0IGEgPSBsb2NhdGlvbls0XTsK
KworICAgIGxldCBkZWx0YUkgPSB1bmRlZmluZWQ7CisgICAgbGV0IGRlbHRhSiA9IHVuZGVmaW5l
ZDsKKyAgICBsZXQgZGVsdGFLID0gdW5kZWZpbmVkOworICAgIGlmIChkZWx0YSAhPSB1bmRlZmlu
ZWQpIHsKKyAgICAgICAgZGVsdGFJID0gZGVsdGFbMF07CisgICAgICAgIGRlbHRhSiA9IGRlbHRh
WzFdOworICAgICAgICBkZWx0YUsgPSBkZWx0YVsyXTsKKyAgICB9CisKKyAgICBbcywgdCwgciwg
ZHJlZl0gPSBwcm9qZWN0aW9uT3BlcmF0aW9uKHMsIHQsIHIsIGRyZWYsIHEpOworICAgIGxldCBy
ZXN1bHQgPSB0ZXhlbEZpbHRlcmluZygKKyAgICAgICAgTnVtYmVyLk1BWF9WQUxVRSwKKyAgICAg
ICAgTnVtYmVyLk1BWF9WQUxVRSwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgdGV4
dHVyZSwKKyAgICAgICAgc2FtcGxlciwKKyAgICAgICAgMCwKKyAgICAgICAgcywgdCwgciwgYSwK
KyAgICAgICAgZGVsdGFJLCBkZWx0YUosIGRlbHRhSywKKyAgICAgICAgbG9kRnJvbUZ1bmN0aW9u
T3BlcmFuZCwKKyAgICAgICAgLU51bWJlci5NQVhfVkFMVUUsCisgICAgICAgIGJpYXNGcm9tRnVu
Y3Rpb25PcGVyYW5kLAorICAgICAgICBkZHgsIGRkeSk7CisgICAgaWYgKGRyZWYgIT0gdW5kZWZp
bmVkKSB7CisgICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBBcnJheSkKKyAgICAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiRGVwdGggY29tcGFyaXNvbiBub3Qgc3VwcG9ydGVkIG9uIG11bHRp
Y2hhbm5lbCB0ZXh0dXJlcyIpOworICAgICAgICByZXN1bHQgPSBkZXB0aENvbXBhcmVPcGVyYXRp
b24oZHJlZiwgcmVzdWx0LCBzYW1wbGVyLmNvbXBhcmVGdW5jdGlvbik7CisgICAgfQorICAgIHJl
dHVybiByZXN1bHQ7CisgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBkbyB3aXRoIGFu
aXNvdHJvcHkKKyAgICAvLyBGSVhNRTogRmlndXJlIG91dCBob3cgdG8gZG8gbXVsdGlzYW1wbGlu
Zy4KKyAgICAvLyBGSVhNRTogQ2FzdCB0aGUgcmVzdWx0IGJhY2sgdG8gdGhlIGNvcnJlY3QgdHlw
ZS4KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0
bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCmluZGV4IDY1YTg2
NDExYjNlNzcwYjU1N2I0MWFjYzdlNDE0ZGVmNDI0MDMwMTMuLjMzOGVlOWM5YjkzOGI1NDgyYjg4
OGU0ZTkyNGRjY2RkYmU3ZmIyY2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL2luZGV4Lmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5k
ZXguaHRtbApAQCAtMTI3LDYgKzEyNyw4IEBACiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlD
b25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTeW50aGVzaXpl
RGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRl
cm5hcnlFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUZXh0dXJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUZXh0dXJlT3BlcmF0aW9ucy5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iVHJhcFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlw
ZURlZi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3Nj
cmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348705</attachid>
            <date>2018-08-31 22:02:49 -0700</date>
            <delta_ts>2018-09-01 14:03:25 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188940-20180831220248.patch</filename>
            <type>text/plain</type>
            <size>174816</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTc5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2Q4OThkNDE0Y2U2OGY4MWEyM2UzYmQyMTU2Zjc1ZDNl
MjMwZTkzOC4uMTBkZjgxMTUzMDMyZWM5NDI0MmNmMTZiZGMxZGY4NDdjZTRhMTRkMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
OSBAQAorMjAxOC0wOC0zMSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRleHR1cmUgdHlwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNp
Y3MuanM6CisgICAgICAgIChJbnRyaW5zaWNzLik6CisgICAgICAgIChJbnRyaW5zaWNzLmNoZWNr
RmFsc2UpOgorICAgICAgICAoSW50cmluc2ljcy5ib3hWZWN0b3IpOgorICAgICAgICAoSW50cmlu
c2ljcy51bmJveFZlY3Rvcik6CisgICAgICAgIChJbnRyaW5zaWNzKToKKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qczoKKyAgICAgICAgKGxldC5zdGFuZGFyZExpYnJh
cnkpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAobWFrZVNhbXBs
ZXIpOgorICAgICAgICAobWFrZTFEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMURUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMkRUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTNEVGV4dHVyZSk6CisgICAgICAgIChtYWtlVGV4dHVyZUN1YmUp
OgorICAgICAgICAobWFrZVJXMURUZXh0dXJlKToKKyAgICAgICAgKG1ha2VSVzFEVGV4dHVyZUFy
cmF5KToKKyAgICAgICAgKG1ha2VSVzJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlUlcyRFRleHR1
cmVBcnJheSk6CisgICAgICAgIChtYWtlUlczRFRleHR1cmUpOgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1RleHR1cmUuanM6IEFkZGVkLgorICAgICAgICAoVGV4dHVyZSk6Cisg
ICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQgZGltZW5zaW9uKToKKyAgICAgICAgKFRleHR1
cmUucHJvdG90eXBlLmdldCB3aWR0aCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aGVpZ2h0KToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkZXB0aCk6CisgICAgICAg
IChUZXh0dXJlLnByb3RvdHlwZS5nZXQgbGV2ZWxDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnBy
b3RvdHlwZS5nZXQgbGF5ZXJDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aW5uZXJUeXBlKToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkYXRhKToKKyAgICAg
ICAgKFRleHR1cmUucHJvdG90eXBlLmVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUu
cHJvdG90eXBlLnNldEVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUxRCk6CisgICAg
ICAgIChUZXh0dXJlMUQucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJl
MUQucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlw
ZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlwZS5lbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUxRC5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0
dXJlMURBcnJheSk6CisgICAgICAgIChUZXh0dXJlMURBcnJheS5wcm90b3R5cGUud2lkdGhBdExl
dmVsKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToK
KyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTFEQXJyYXkucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTFE
QXJyYXkucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEKToKKyAgICAg
ICAgKFRleHR1cmUyRC5wcm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUy
RC5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBl
LmRlcHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBlLmVsZW1lbnQpOgor
ICAgICAgICAoVGV4dHVyZTJELnByb3RvdHlwZS5zZXRFbGVtZW50KToKKyAgICAgICAgKFRleHR1
cmUyREFycmF5KToKKyAgICAgICAgKFRleHR1cmUyREFycmF5LnByb3RvdHlwZS53aWR0aEF0TGV2
ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgor
ICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMkRBcnJheS5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMkRB
cnJheS5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlM0QpOgorICAgICAg
ICAoVGV4dHVyZTNELnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTNE
LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUuZWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0QucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVy
ZUN1YmUpOgorICAgICAgICAoVGV4dHVyZUN1YmUucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6Cisg
ICAgICAgIChUZXh0dXJlQ3ViZS5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlQ3ViZS5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmVDdWJl
LnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmVDdWJlLnByb3RvdHlwZS5zZXRF
bGVtZW50KToKKyAgICAgICAgKFRleHR1cmUxRFJXKToKKyAgICAgICAgKFRleHR1cmUxRFJXLnBy
b3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmhl
aWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmRlcHRoQXRMZXZl
bCk6CisgICAgICAgIChUZXh0dXJlMURSVy5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChU
ZXh0dXJlMURSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMURBcnJh
eVJXKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6
CisgICAgICAgIChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAg
ICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUx
REFycmF5UlcucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEUlcpOgor
ICAgICAgICAoVGV4dHVyZTJEUlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlMkRSVy5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkRS
Vy5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlw
ZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlwZS5zZXRFbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUyREFycmF5UlcpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5w
cm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90
eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90eXBlLmVsZW1l
bnQpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0RSVyk6CisgICAgICAgIChUZXh0dXJlM0RSVy5wcm90b3R5cGUud2lk
dGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVs
KToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTNEUlcucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTNEUlcu
cHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1RleHR1cmVPcGVyYXRpb25zLmpzOiBBZGRlZC4KKyAgICAgICAgKGRlcHRoQ29tcGFyZU9wZXJh
dGlvbik6CisgICAgICAgIChjb252ZXJzaW9uVG9SR0JBKToKKyAgICAgICAgKHByb2plY3Rpb25P
cGVyYXRpb24pOgorICAgICAgICAoY3ViZU1hcEZhY2VTZWxlY3Rpb24pOgorICAgICAgICAoY3Vi
ZU1hcENvb3JkaW5hdGVUcmFuc2Zvcm1hdGlvbik6CisgICAgICAgIChjdWJlTWFwRGVyaXZhdGl2
ZVRyYW5zZm9ybWF0aW9uKToKKyAgICAgICAgKHNjYWxlRmFjdG9yT3BlcmF0aW9uKToKKyAgICAg
ICAgKGxldmVsT2ZEZXRhaWxPcGVyYXRpb24pOgorICAgICAgICAobmVhcmVzdCk6CisgICAgICAg
IChpbWFnZUxldmVsU2VsZWN0aW9uKToKKyAgICAgICAgKHN0cnFhVG9VVldBVHJhbnNmb3JtYXRp
b24pOgorICAgICAgICAocm5lKToKKyAgICAgICAgKHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25B
bmRBcnJheUxheWVyU2VsZWN0aW9uKToKKyAgICAgICAgKGludGVnZXJUZXhlbENvb3JkaW5hdGVP
cGVyYXRpb25zKToKKyAgICAgICAgKG1pcnJvcik6CisgICAgICAgICh0cmFuc2Zvcm0pOgorICAg
ICAgICAod3JhcHBpbmdPcGVyYXRpb24pOgorICAgICAgICAodGV4ZWxHYXRoZXJpbmcpOgorICAg
ICAgICAoY29tcHV0ZVRhdS5yZWR1Y2UpOgorICAgICAgICAoY29tcHV0ZVRhdS5zaG91bGRCZUJv
cmRlcik6CisgICAgICAgIChjb21wdXRlVGF1LmFjY2Vzc0NvbG9yKToKKyAgICAgICAgKGNvbXB1
dGVUYXUpOgorICAgICAgICAodGV4ZWxGaWx0ZXJpbmcpOgorICAgICAgICAoc2FtcGxlVGV4dHVy
ZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAx
OC0wOC0zMSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgYWRkIGFuIGFsdGVybmF0ZSBlbWFpbCBmb3IgQWRpdHlhIEtlZXJ0aGkuCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKaW5kZXggOWMyYTM3MTUwYzFlOTc2YjkyNmNm
YmVlMjM0Mzc1MjBhOGRlNGE0Ny4uZGJjNjU3ODllNmEzMjRhZDcyZjJiMGUzYTBjYzc2MmY3ZjUy
NGRjNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCisr
KyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwpAQCAtMTM4LDYgKzEzOCw3
IEBAIGxvYWQoIlJlc29sdmVUeXBlRGVmcy5qcyIpOwogbG9hZCgiUmV0dXJuLmpzIik7CiBsb2Fk
KCJSZXR1cm5DaGVja2VyLmpzIik7CiBsb2FkKCJSZXR1cm5FeGNlcHRpb24uanMiKTsKK2xvYWQo
IlNhbXBsZXIuanMiKTsKIGxvYWQoIlN0YW5kYXJkTGlicmFyeS5qcyIpOwogbG9hZCgiU3RhdGVt
ZW50Q2xvbmVyLmpzIik7CiBsb2FkKCJTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIik7CkBAIC0xNTAs
NiArMTUxLDggQEAgbG9hZCgiU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyIpOwogbG9hZCgi
U3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIik7CiBsb2FkKCJTeW50aGVzaXpl
RGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiKTsKIGxvYWQoIlRlcm5hcnlFeHByZXNzaW9u
LmpzIik7Citsb2FkKCJUZXh0dXJlLmpzIik7Citsb2FkKCJUZXh0dXJlT3BlcmF0aW9ucy5qcyIp
OwogbG9hZCgiVHJhcFN0YXRlbWVudC5qcyIpOwogbG9hZCgiVHlwZURlZi5qcyIpOwogbG9hZCgi
VHlwZURlZlJlc29sdmVyLmpzIik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9JbnRyaW5zaWNzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50
cmluc2ljcy5qcwppbmRleCBiMDA0MDY3ZjVlYmZiM2E4YjRiZDk4ZTQzN2E4YzA3NjhiZTI2ZjFl
Li5iZTc4NDAwNDM0ZTM3ZTM5MTczOWY1NWJmNzY0ZjRlYWFmY2JjMjM1IDEwMDY0NAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMKQEAgLTMzMCw3ICszMzAsOCBAQCBj
bGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiBzYW1wbGVyIiwK
ICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAgICAgICAgICAgIHRoaXMuc2FtcGxlciA9IHR5
cGU7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBwdXQgaGVy
ZS4KKyAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgIHR5cGUu
cG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zm
c2V0LCB7fSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICBmb3IgKGxldCB0ZXh0dXJlVHlw
ZSBvZiBbIlRleHR1cmUxRCIsICJSV1RleHR1cmUxRCIsICJUZXh0dXJlMURBcnJheSIsICJSV1Rl
eHR1cmUxREFycmF5IiwgIlRleHR1cmUyRCIsICJSV1RleHR1cmUyRCIsICJUZXh0dXJlMkRBcnJh
eSIsICJSV1RleHR1cmUyREFycmF5IiwgIlRleHR1cmUzRCIsICJSV1RleHR1cmUzRCIsICJUZXh0
dXJlQ3ViZSJdKSB7CkBAIC0zMzksMTIgKzM0MCwxNiBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlwZUFy
Z3VtZW50fT5gLAogICAgICAgICAgICAgICAgICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAg
ICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gXSA9IHR5cGU7
CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAg
ICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4g
YnVmZmVyLnNldChvZmZzZXQsIHt9KTsKICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAg
ICAgICAgICAgZm9yIChsZXQgaSA9IDI7IGkgPD0gNDsgKytpKSB7CiAgICAgICAgICAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVk
ZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9JHtpfT5gLAogICAgICAgICAgICAgICAg
ICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0
ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9JHtpfT5gXSA9IHR5cGU7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIu
c2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQpAQCAtMzU2LDYgKzM2MSw4IEBAIGNsYXNzIEludHJpbnNp
Y3MgewogICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08
JHt0eXBlQXJndW1lbnR9PmAsCiAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAg
ICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmBd
ID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAg
ICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zm
c2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAgICAgICAgICB9KTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtOTE0LDYgKzkyMSw3NDIgQEAgY2xhc3MgSW50
cmluc2ljcyB7CiAKICAgICAgICAgZm9yIChsZXQgc2V0dGVyIG9mIEJ1aWx0aW5NYXRyaXhTZXR0
ZXIuZnVuY3Rpb25zKCkpCiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KHNldHRlci50b1N0cmlu
ZygpLCBmdW5jID0+IHNldHRlci5pbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsKKwor
ICAgICAgICBmdW5jdGlvbiBjaGVja1VuZGVmaW5lZChvcmlnaW4sIGV4cGxhbmF0aW9uLCB2YWx1
ZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkKKyAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBv
dXQgb2YgYm91bmRzIik7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKwor
ICAgICAgICBmdW5jdGlvbiBjaGVja0ZhbHNlKG9yaWdpbiwgZXhwbGFuYXRpb24sIHZhbHVlKQor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAodmFsdWUgPT0gZmFsc2UpCisgICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltTdG9yZV0iLCAiVGV4dHVyZSBzdG9yZSBvdXQgb2Yg
Ym91bmRzIik7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBib3hWZWN0b3IoYSkKKyAg
ICAgICAgeworICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBBcnJheSkgeworICAgICAgICAg
ICAgICAgIGxldCByZXN1bHQgPSBuZXcgRVB0cihuZXcgRUJ1ZmZlcihhLmxlbmd0aCksIDApOwor
ICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkKKyAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0LnNldChpLCBhW2ldKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIEVQ
dHIuYm94KGEpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdW5ib3hWZWN0b3IoYSwg
bGVuZ3RoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAobGVuZ3RoICE9ICIiKSB7CisgICAg
ICAgICAgICAgICAgbGVuZ3RoID0gTnVtYmVyLnBhcnNlSW50KGxlbmd0aCk7CisgICAgICAgICAg
ICAgICAgbGV0IHJlc3VsdCA9IFtdOworICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBp
IDwgbGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGEuZ2V0KGkp
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGEubG9hZFZhbHVlKCk7CisgICAgICAgIH0KKworICAgICAg
ICBmb3IgKGxldCB0eXBlIG9mIFsidWNoYXIiLCAidXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJz
aG9ydCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICBmb3IgKHZhciBs
ZW5ndGhWYXJpYWJsZSBvZiBbYGAsIGAyYCwgYDNgLCBgNGBdKSB7CisgICAgICAgICAgICAgICAg
bGV0IGxlbmd0aCA9IGxlbmd0aFZhcmlhYmxlOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUo
VGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0
aW9uLmxvYWRWYWx1ZSgpLCAwLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0
aH0gU2FtcGxlKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0IGxvY2F0
aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24ubG9hZFZhbHVlKCksIDAsIDAsIDEsIDBd
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5s
b2FkVmFsdWUoKSwgMCwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRl
eHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRl
eHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hl
Y2tlZCgwLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IExvYWQoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LGludDIgbG9jYXRpb24s
aW50IG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxv
Y2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91
bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQo
MSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5sb2FkVmFsdWUoKSkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdl
dERpbWVuc2lvbnMoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWlu
dCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBudW1iZXJPZkxl
dmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5s
b2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBs
ZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQg
Pj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93
IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0
YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
d2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJ
RCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIs
ZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIDAsIDAsIDEsIGxvY2F0aW9uLmdldCgx
KV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVU
ZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9u
QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMURBcnJheTwk
e3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQgb2Zmc2V0KWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
b2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5
ID0gW2xvY2F0aW9uLmdldCgwKSwgMCwgMCwgMSwgbG9jYXRpb24uZ2V0KDEpXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQubG9hZFZhbHVlKCks
IDAsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2Ft
cGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMURBcnJh
eTwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUg
cmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChs
b2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgbG9jYXRpb24uZ2V0KDApKSkp
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9Pixp
bnQzIGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24g
KFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJl
YWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9j
YXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSArIG9m
ZnNldC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEQXJyYXk8JHt0
eXBlfSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhy
ZWFkIEVsZW1lbnRzLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBlbGVtZW50cywgbnVt
YmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRl
eHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElE
ID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBu
b25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2
ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRl
eHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1
ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRp
b24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVs
dGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5s
b2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJh
eSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+
LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1
ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIs
ZmxvYXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9j
YXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQo
MSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2Ft
cGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQo
VGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0
MiBERFgsZmxvYXQyIEREWSlgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0
KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkg
PSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkp
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlR3JhZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4s
c2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwg
MSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5n
ZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBk
ZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEp
LCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBs
ZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRp
b25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkQ8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
bG9kXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5s
b2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVm
aW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEPCR7dHlwZX0ke2xl
bmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IExPRCxpbnQyIG9mZnNldClgLAor
ICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24s
IGxvZCwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlv
bkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDAp
LCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ym94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIo
VGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJl
ZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwK
KyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyR3JlZW4oVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3Ro
fT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0k
e2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJE
PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVu
Z3RofT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
b3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJv
dW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0
KDIpLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IExvYWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LGludDMgbG9jYXRpb24saW50MiBv
ZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlv
biwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIs
IHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDIpLCAw
LCBsb2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQuZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZz
ZXQuZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3Ro
fT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1
aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBudW1iZXJPZkxldmVsc10pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2Fk
VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4Lmxl
dmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJh
cEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBs
ZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0Lmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHRBdExldmVsKG1pcElEKSksIDEp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9t
KEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMkRB
cnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24u
Z2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1
cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5n
dGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBv
ZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94
VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFs
dWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJp
YXMoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24sZmxvYXQgQmlhcylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9h
ZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgYmlhcy5sb2FkVmFsdWUoKSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3Ro
fSBTYW1wbGVCaWFzKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwg
b2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIGJpYXMubG9hZFZhbHVlKCksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0g
U2FtcGxlR3JhZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBERFkpYCwKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeV0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQo
MCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwg
MF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQo
MCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
b3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRW
YWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRk
eUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlR3Jh
ZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bixmbG9hdDIgRERYLGZsb2F0MiBERFksaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeSwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBk
ZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkg
PSBbZGR5LmdldCgwKSwgZGR5LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJl
KHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXks
IGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEQXJyYXk8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9k
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVy
ZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxvZC5sb2FkVmFs
dWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkRB
cnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0Qs
aW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uLCBsb2QsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVs
dGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgp
LCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVu
Z3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0
dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQy
IG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEQXJyYXk8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00
IEdhdGhlclJlZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVl
bihUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVu
Z3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRB
cnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNl
dClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkRBcnJheTwke3R5
cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2Fk
KFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGludDQgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9h
ZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVs
ZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIpLCAwLCBsb2NhdGlv
bi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVy
ZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4saW50NCBsb2NhdGlvbixpbnQyIG9mZnNldClgLAor
ICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1Vu
ZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5s
b2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMyksIGxvY2F0aW9uLmdldCgy
KSwgMCwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApICsg
b2Zmc2V0LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTJEQXJyYXk8JHt0eXBl
fSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFk
IEhlaWdodCx1aW50KiB0aHJlYWQgRWxlbWVudHMsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxz
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lk
dGgsIGhlaWdodCwgZWxlbWVudHMsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3VudCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXREaW1l
bnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUi
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lndp
ZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVt
ZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBT
YW1wbGUoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9
IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUzRDwke3R5cGV9
JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNl
dF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFts
b2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0
KDApLCBvZmZzZXQuZ2V0KDEpLCBvZmZzZXQuZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUo
KSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IExvYWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LGludDQgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZp
bmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRW
YWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIp
LCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExv
YWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LGludDQgbG9jYXRpb24saW50MyBvZmZzZXQp
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hl
Y2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1
cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDMpLCBsb2NhdGlv
bi5nZXQoMikgKyBvZmZzZXQuZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQuZ2V0KDEp
LCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZzZXQuZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhU
ZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lk
dGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRGVwdGgsdWludCogdGhyZWFkIE51
bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBt
aXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3Vu
dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Io
IltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9m
IHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aC5sb2FkVmFsdWUo
KS5jb3B5RnJvbShFUHRyLmJveCh0ZXguZGVwdGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXguaGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVs
KG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxz
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgY3ViZW1hcCBzYW1wbGluZworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxl
QmlhcyhUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBGSVhNRTogSW1wbGVtZW50IGN1YmVtYXAgc2FtcGxpbmcKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBs
ZUdyYWQoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24sZmxvYXQzIEREWCxmbG9hdDMgRERZKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBjdWJlbWFwIHNhbXBsaW5nCisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2RdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBjdWJlbWFwIHNhbXBsaW5nCisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVu
Z3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVu
KFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJl
Q3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9p
ZCBHZXREaW1lbnNpb25zKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2
ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIE51
bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBt
aXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sYXllckNvdW50ICE9IDYpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ3ViZSB0ZXh0dXJlIGRv
ZXNuJ3QgaGF2ZSA2IGZhY2VzIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1p
cElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25l
eGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZl
bChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJX
VGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQqIHRocmVhZCBXaWR0aClgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGhdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4dHVy
ZS5sb2FkVmFsdWUoKS53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUxRDwk
e3R5cGV9JHtsZW5ndGh9PixmbG9hdCogdGhyZWFkIFdpZHRoKWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXh0dXJlLmxvYWRWYWx1
ZSgpLndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVyZTFEPCR7dHlwZX0k
e2xlbmd0aH0+LGludCBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9m
IGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgMCwgMCwgMCwg
bG9jYXRpb24ubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUxRDwke3R5cGV9JHts
ZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0dXJlIHdyaXRlIG91
dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKDAsIDAs
IDAsIDAsIGxvY2F0aW9uLmxvYWRWYWx1ZSgpLCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkp
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKwor
ICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+
LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBlbGVtZW50c10pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
ZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0
RGltZW5zaW9ucyhSV1RleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGZsb2F0KiB0aHJl
YWQgV2lkdGgsdWludCogdGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxh
eWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExv
YWQoUldUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQyIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgi
W0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUo
KS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMSksIDAsIDAsIDAsIGxvY2F0aW9uLmdldCgw
KSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sJHt0eXBl
fSR7bGVuZ3RofSx1aW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGVja0ZhbHNlKCJbU3RvcmVdIiwgIlRleHR1cmUgd3JpdGUgb3V0IG9mIGJvdW5kcyIs
IHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDEpLCAw
LCAwLCAwLCBsb2NhdGlvbi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVlLCBsZW5ndGgpKSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
dm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQqIHRo
cmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVy
ZTJEPCR7dHlwZX0ke2xlbmd0aH0+LGZsb2F0KiB0aHJlYWQgV2lkdGgsZmxvYXQqIHRocmVhZCBI
ZWlnaHQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBo
ZWlnaHRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUu
bG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgp
LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4s
aW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIs
IHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgMCwgMCwgbG9jYXRpb24uZ2V0
KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUyRDwke3R5cGV9JHts
ZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBv
dXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tlZCgwLCAw
LCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0b3IodmFsdWUs
IGxlbmd0aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9
JHtsZW5ndGh9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0
aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2
b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixmbG9h
dCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0LGZsb2F0KiB0aHJlYWQgRWxlbWVu
dHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWln
aHQsIGVsZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0
ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRz
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIu
Ym94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IExvYWQoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9u
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVm
aW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2Fk
VmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMiksIDAsIDAsIGxvY2F0aW9uLmdl
dCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMkRBcnJheTwke3R5
cGV9JHtsZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQzIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3
cml0ZSBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tl
ZChsb2NhdGlvbi5nZXQoMiksIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDAp
LCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1Rl
eHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFk
IEhlaWdodCx1aW50KiB0aHJlYWQgRGVwdGgpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGRlcHRoXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRlcHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5kZXB0
aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5j
b3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
dm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LGZsb2F0KiB0
aHJlYWQgV2lkdGgsZmxvYXQqIHRocmVhZCBIZWlnaHQsZmxvYXQqIHRocmVhZCBEZXB0aClgLAor
ICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZGVw
dGhdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9h
ZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGgubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4LmRlcHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAx
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJv
bShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoUldUZXh0dXJl
M0Q8JHt0eXBlfSR7bGVuZ3RofT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJl
IHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQo
MCwgMCwgbG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0
aH0sdWludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hl
Y2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0dXJlIHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJl
LmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKDAsIDAsIGxvY2F0aW9uLmdldCgyKSwgbG9j
YXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVlLCBsZW5ndGgp
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQogCiAgICAgYWRkKHRoaW5nKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbCBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKaW5kZXggNzhkMDA4ZjgzNWY5ZTljMjM0
ZWYyZGY2ZDZkZWVhM2Y3NDI2Y2U2NS4uMmVhMWQ5NGUwZmNhNWM3M2QzOGJiZWI2YTgzNzU0MGYz
MGJhYTI0OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYu
aHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCkBAIC0x
MjEsNiArMTIxLDcgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJSZXR1cm4uanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJSZXR1cm5DaGVja2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iUmV0dXJuRXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
U2FtcGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlN0YW5kYXJkTGlicmFyeS5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlN0YXRlbWVudENsb25lci5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IlN0cnVjdExheW91dEJ1aWxkZXIuanMiPjwvc2NyaXB0PgpA
QCAtMTMzLDYgKzEzNCw4IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlD
b25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3ludGhl
c2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iVGVybmFyeUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJU
ZXh0dXJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUcmFwU3RhdGVtZW50LmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TYW1wbGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU2FtcGxlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Yzc4Y2Y3YzhhYWFjMzEzMzQ1ZGM4MDUyNWVi
NGI3NjM5MTVjMDJiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU2FtcGxlci5qcwpAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKyJ1c2Ugc3RyaWN0IjsKKworY2xhc3MgU2FtcGxlciB7Cisg
ICAgY29uc3RydWN0b3Iob3B0aW9ucykKKyAgICB7CisgICAgICAgIGlmIChvcHRpb25zLnJBZGRy
ZXNzTW9kZSA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9yQWRkcmVzc01vZGUgPSAi
Y2xhbXBUb0VkZ2UiOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9yQWRkcmVzc01v
ZGUgPSBvcHRpb25zLnJBZGRyZXNzTW9kZTsKKyAgICAgICAgaWYgKG9wdGlvbnMuc0FkZHJlc3NN
b2RlID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX3NBZGRyZXNzTW9kZSA9ICJjbGFt
cFRvRWRnZSI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX3NBZGRyZXNzTW9kZSA9
IG9wdGlvbnMuc0FkZHJlc3NNb2RlOworICAgICAgICBpZiAob3B0aW9ucy50QWRkcmVzc01vZGUg
PT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fdEFkZHJlc3NNb2RlID0gImNsYW1wVG9F
ZGdlIjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fdEFkZHJlc3NNb2RlID0gb3B0
aW9ucy50QWRkcmVzc01vZGU7CisgICAgICAgIGlmIChvcHRpb25zLm1pbkZpbHRlciA9PSB1bmRl
ZmluZWQpCisgICAgICAgICAgICB0aGlzLl9taW5GaWx0ZXIgPSAibmVhcmVzdCI7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIHRoaXMuX21pbkZpbHRlciA9IG9wdGlvbnMubWluRmlsdGVyOwor
ICAgICAgICBpZiAob3B0aW9ucy5tYWdGaWx0ZXIgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAg
dGhpcy5fbWFnRmlsdGVyID0gIm5lYXJlc3QiOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0
aGlzLl9tYWdGaWx0ZXIgPSBvcHRpb25zLm1hZ0ZpbHRlcjsKKyAgICAgICAgaWYgKG9wdGlvbnMu
bWlwRmlsdGVyID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX21pcEZpbHRlciA9ICJu
ZWFyZXN0IjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fbWlwRmlsdGVyID0gb3B0
aW9ucy5taXBGaWx0ZXI7CisgICAgICAgIGlmIChvcHRpb25zLmxvZE1pbkNsYW1wID09IHVuZGVm
aW5lZCkKKyAgICAgICAgICAgIHRoaXMuX2xvZE1pbkNsYW1wID0gLU51bWJlci5NQVhfVkFMVUU7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX2xvZE1pbkNsYW1wID0gb3B0aW9ucy5s
b2RNaW5DbGFtcDsKKyAgICAgICAgaWYgKG9wdGlvbnMubG9kTWF4Q2xhbXAgPT0gdW5kZWZpbmVk
KQorICAgICAgICAgICAgdGhpcy5fbG9kTWF4Q2xhbXAgPSBOdW1iZXIuTUFYX1ZBTFVFOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9sb2RNYXhDbGFtcCA9IG9wdGlvbnMubG9kTWF4
Q2xhbXA7CisgICAgICAgIGlmIChvcHRpb25zLm1heEFuaXNvdHJvcHkgPT0gdW5kZWZpbmVkKQor
ICAgICAgICAgICAgdGhpcy5fbWF4QW5pc290cm9weSA9IDE7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHRoaXMuX21heEFuaXNvdHJvcHkgPSBvcHRpb25zLm1heEFuaXNvdHJvcHk7CisgICAg
ICAgIGlmIChvcHRpb25zLmNvbXBhcmVGdW5jdGlvbiA9PSB1bmRlZmluZWQpCisgICAgICAgICAg
ICB0aGlzLl9jb21wYXJlRnVuY3Rpb24gPSAibmV2ZXIiOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB0aGlzLl9jb21wYXJlRnVuY3Rpb24gPSBvcHRpb25zLmNvbXBhcmVGdW5jdGlvbjsKKyAg
ICAgICAgaWYgKG9wdGlvbnMuYm9yZGVyQ29sb3IgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAg
dGhpcy5fYm9yZGVyQ29sb3IgPSAidHJhbnNwYXJlbnRCbGFjayI7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIHRoaXMuX2JvcmRlckNvbG9yID0gb3B0aW9ucy5ib3JkZXJDb2xvcjsKKyAgICB9
CisgICAgCisgICAgZ2V0IHJBZGRyZXNzTW9kZSgpIHsgcmV0dXJuIHRoaXMuX3JBZGRyZXNzTW9k
ZTsgfQorICAgIGdldCBzQWRkcmVzc01vZGUoKSB7IHJldHVybiB0aGlzLl9zQWRkcmVzc01vZGU7
IH0KKyAgICBnZXQgdEFkZHJlc3NNb2RlKCkgeyByZXR1cm4gdGhpcy5fdEFkZHJlc3NNb2RlOyB9
CisgICAgZ2V0IG1pbkZpbHRlcigpIHsgcmV0dXJuIHRoaXMuX21pbkZpbHRlcjsgfQorICAgIGdl
dCBtYWdGaWx0ZXIoKSB7IHJldHVybiB0aGlzLl9tYWdGaWx0ZXI7IH0KKyAgICBnZXQgbWlwRmls
dGVyKCkgeyByZXR1cm4gdGhpcy5fbWlwRmlsdGVyOyB9CisgICAgZ2V0IGxvZE1pbkNsYW1wKCkg
eyByZXR1cm4gdGhpcy5fbG9kTWluQ2xhbXA7IH0KKyAgICBnZXQgbG9kTWF4Q2xhbXAoKSB7IHJl
dHVybiB0aGlzLl9sb2RNYXhDbGFtcDsgfQorICAgIGdldCBtYXhBbmlzb3Ryb3B5KCkgeyByZXR1
cm4gdGhpcy5fbWF4QW5pc290cm9weTsgfQorICAgIGdldCBjb21wYXJlRnVuY3Rpb24oKSB7IHJl
dHVybiB0aGlzLl9jb21wYXJlRnVuY3Rpb247IH0KKyAgICBnZXQgYm9yZGVyQ29sb3IoKSB7IHJl
dHVybiB0aGlzLl9ib3JkZXJDb2xvcjsgfQorCisgICAgY2FsY3VsYXRlQm9yZGVyQ29sb3IoaW5u
ZXJUeXBlKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorICAgIH0K
K30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGli
cmFyeS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5q
cwppbmRleCAzZGQ0ZmVlMTg2MDBkNWNkMmE4OTVhZDVhNDc5NzIxZGE3Nzg4Y2MxLi5kYmE5OWIx
ZWY5YjM0ZmZiMTk5YzY0OGU0MzdmOGU5NDY0MGY2NTExIDEwMDY0NAotLS0gYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKKysrIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCkBAIC01Nyw3ICs1Nyw3IEBAIGxl
dCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgIH0KICAgICAgICAgcHJp
bnQoYG5hdGl2ZSB0eXBlZGVmIHNhbXBsZXI7YCk7CiAgICAgICAgIGZvciAodmFyIHR5cGUgb2Yg
W2BUZXh0dXJlMURgLCBgUldUZXh0dXJlMURgLCBgVGV4dHVyZTFEQXJyYXlgLCBgUldUZXh0dXJl
MURBcnJheWAsIGBUZXh0dXJlMkRgLCBgUldUZXh0dXJlMkRgLCBgVGV4dHVyZTJEQXJyYXlgLCBg
UldUZXh0dXJlMkRBcnJheWAsIGBUZXh0dXJlM0RgLCBgUldUZXh0dXJlM0RgLCBgVGV4dHVyZUN1
YmVgXSkgewotICAgICAgICAgICAgZm9yICh2YXIgdHlwZUFyZ3VtZW50QmFzZSBvZiBbYGJvb2xg
LCBgdWNoYXJgLCBgdXNob3J0YCwgYHVpbnRgLCBgY2hhcmAsIGBzaG9ydGAsIGBpbnRgLCBgaGFs
ZmAsIGBmbG9hdGBdKSB7CisgICAgICAgICAgICBmb3IgKHZhciB0eXBlQXJndW1lbnRCYXNlIG9m
IFtgdWNoYXJgLCBgdXNob3J0YCwgYHVpbnRgLCBgY2hhcmAsIGBzaG9ydGAsIGBpbnRgLCBgaGFs
ZmAsIGBmbG9hdGBdKSB7CiAgICAgICAgICAgICAgICAgZm9yICh2YXIgc2l6ZSBvZiBbYGAsIGAy
YCwgYDNgLCBgNGBdKSB7CiAgICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdHlwZWRl
ZiAke3R5cGV9PCR7dHlwZUFyZ3VtZW50QmFzZX0ke3NpemV9PjtgKTsKICAgICAgICAgICAgICAg
ICB9CkBAIC0xODk3LDcgKzE4OTcsOCBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9u
KCkgewogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEludGVybG9ja2VkQ29tcGFyZUV4
Y2hhbmdlKHRocmVhZCBhdG9taWNfJHt0eXBlfSosICR7dHlwZX0sICR7dHlwZX0sIHRocmVhZCAk
e3R5cGV9Kik7YCk7CiAgICAgICAgIH0KICAgICAgICAgcHJpbnQoKTsKLSAgICAgICAgCisgICAg
ICAgICovCisKICAgICAgICAgZm9yICh2YXIgdHlwZSBvZiBbYHVjaGFyYCwgYHVzaG9ydGAsIGB1
aW50YCwgYGNoYXJgLCBgc2hvcnRgLCBgaW50YCwgYGhhbGZgLCBgZmxvYXRgXSkgewogICAgICAg
ICAgICAgZm9yICh2YXIgbGVuZ3RoIG9mIFtgYCwgYDJgLCBgM2AsIGA0YF0pIHsKICAgICAgICAg
ICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxRDwk
e3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pO2ApOwpAQCAtMTk1OCwx
NiArMTk1OSw2IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAg
ICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gU2FtcGxlKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxv
YXQzIGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gU2FtcGxlKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxv
YXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVy
LCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVy
LCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxv
YXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBs
ZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwotICAgICAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3Ro
fT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwg
c2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlM0Q8JHt0eXBlfSR7
bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVu
Z3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwogICAgICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUzRDwk
e3R5cGV9JHtsZW5ndGh9PiwgaW50NCBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0
aH0+LCBpbnQ0IGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7CiAgICAgICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+
LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBIZWlnaHQs
IHRocmVhZCB1aW50KiBEZXB0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTtgKTsKQEAg
LTIwMTAsNyArMjAwMSw4IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAg
ICAgICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAg
ICAKKworICAgICAgICAvKgogICAgICAgICBmb3IgKHZhciB0eXBlIG9mIFtgaGFsZmAsIGBmbG9h
dGBdKSB7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVE
ZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwogICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwg
c2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKaW5kZXggNjA3YTY5NTMyNTNkYTcyN2IxZGUzNzY3OGVj
Mzg4YjRmYTI0MDQwNS4uNTk2YjNkNmIyMDY3Zjg1ZmU3MDdhNDZjNzQ4ODVlZmQ3ZmMzYTZkMSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sCisrKyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbApAQCAtMTE1LDYgKzExNSw3
IEBACiA8c2NyaXB0IHNyYz0iUmV0dXJuLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZXR1
cm5DaGVja2VyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZXR1cm5FeGNlcHRpb24uanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlNhbXBsZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9IlN0YW5kYXJkTGlicmFyeS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3RhdGVtZW50
Q2xvbmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpz
Ij48L3NjcmlwdD4KQEAgLTEyNyw2ICsxMjgsOCBAQAogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVD
b3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhl
c2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+
PC9zY3JpcHQ+CkBAIC0xNTIsNyArMTU1LDcgQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiBkb1Rlc3RJ
bkJyb3dzZXIoKQogewotICAgIHZhciB0ZXN0ZXIgPSBkb1Rlc3QoLy4qLyk7CisgICAgdmFyIHRl
c3RlciA9IGRvVGVzdCgvdGV4dHVyZS8pOwogICAgIHZhciBsYXN0VGltZTsKICAgICBmdW5jdGlv
biBuZXh0KCkKICAgICB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UZXN0LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwppbmRleCA0
YTExYzE4NTg1OTk3NzhmZjM5MWIwNGYyNjM1YzViNzEwMDVkZjdmLi5hMzQwOWNiNGJlYjkwZmEw
ZTMzOTA2ZDEyMmZmZDg3ZmEwZTc0MDk1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UZXN0LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rl
c3QuanMKQEAgLTk0LDYgKzk0LDEwOCBAQCBmdW5jdGlvbiBtYWtlRW51bShwcm9ncmFtLCBlbnVt
TmFtZSwgdmFsdWUpCiAgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KGVudW1UeXBlLCBlbnVtTWVt
YmVyLnZhbHVlLnVuaWZ5Tm9kZS52YWx1ZUZvclNlbGVjdGVkVHlwZSk7CiB9CiAKK2Z1bmN0aW9u
IG1ha2VTYW1wbGVyKHByb2dyYW0sIG9wdGlvbnMpCit7CisgICAgLy8gZW51bSBXZWJHUFVBZGRy
ZXNzTW9kZSB7CisgICAgLy8gICAgICJjbGFtcFRvRWRnZSIsCisgICAgLy8gICAgICJyZXBlYXQi
LAorICAgIC8vICAgICAibWlycm9yUmVwZWF0IiwKKyAgICAvLyAgICAgImNsYW1wVG9Cb3JkZXJD
b2xvciIKKyAgICAvLyB9CisgICAgLy8KKyAgICAvLyBlbnVtIFdlYkdQVUZpbHRlck1vZGUgewor
ICAgIC8vICAgICAibmVhcmVzdCIsCisgICAgLy8gICAgICJsaW5lYXIiCisgICAgLy8gfQorICAg
IC8vCisgICAgLy8gZW51bSBXZWJHUFVDb21wYXJlRnVuY3Rpb24geworICAgIC8vICAgICAibmV2
ZXIiLAorICAgIC8vICAgICAibGVzcyIsCisgICAgLy8gICAgICJlcXVhbCIsCisgICAgLy8gICAg
ICJsZXNzRXF1YWwiLAorICAgIC8vICAgICAiZ3JlYXRlciIsCisgICAgLy8gICAgICJub3RFcXVh
bCIsCisgICAgLy8gICAgICJncmVhdGVyRXF1YWwiLAorICAgIC8vICAgICAiYWx3YXlzIgorICAg
IC8vIH0KKyAgICAvLworICAgIC8vIGVudW0gV2ViR1BVQm9yZGVyQ29sb3IgeworICAgIC8vICAg
ICAidHJhbnNwYXJlbnRCbGFjayIsCisgICAgLy8gICAgICJvcGFxdWVCbGFjayIsCisgICAgLy8g
ICAgICJvcGFxdWVXaGl0ZSIKKyAgICAvLyB9CisgICAgLy8KKyAgICAvLyBkaWN0aW9uYXJ5IFdl
YkdQVVNhbXBsZXJEZXNjcmlwdG9yIHsKKyAgICAvLyAgICAgV2ViR1BVZGRyZXNzTW9kZSByQWRk
cmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgIC8vICAgICBXZWJHUFVkZHJlc3NNb2RlIHNB
ZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAgLy8gICAgIFdlYkdQVWRkcmVzc01vZGUg
dEFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICAvLyAgICAgV2ViR1BVRmlsdGVyTW9k
ZUVudW0gbWFnRmlsdGVyID0gIm5lYXJlc3QiOworICAgIC8vICAgICBXZWJHUFVGaWx0ZXJNb2Rl
RW51bSBtaW5GaWx0ZXIgPSAibmVhcmVzdCI7CisgICAgLy8gICAgIFdlYkdQVUZpbHRlck1vZGVF
bnVtIG1pcG1hcEZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICAvLyAgICAgZmxvYXQgbG9kTWluQ2xh
bXAgPSAwOworICAgIC8vICAgICBmbG9hdCBsb2RNYXhDbGFtcCA9IE51bWJlci5NQVhfVkFMVUU7
CisgICAgLy8gICAgIHVuc2lnbmVkIGxvbmcgbWF4QW5pc290cm9weSA9IDE7CisgICAgLy8gICAg
IFdlYkdQVUNvbXBhcmVGdW5jdGlvbiBjb21wYXJlRnVuY3Rpb24gPSAibmV2ZXIiOworICAgIC8v
ICAgICBXZWJHUFVCb3JkZXJDb2xvciBib3JkZXJDb2xvciA9ICJ0cmFuc3BhcmVudEJsYWNrIjsK
KyAgICAvLyB9OworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3Mu
c2FtcGxlciwgbmV3IFNhbXBsZXIob3B0aW9ucykpOworfQorCitmdW5jdGlvbiBtYWtlMURUZXh0
dXJlKHByb2dyYW0sIG1pcG1hcHMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZh
bHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmUxRDwke2VsZW1lbnRUeXBlfT5gXSwg
bmV3IFRleHR1cmUxRChlbGVtZW50VHlwZSwgbWlwbWFwcykpOworfQorCitmdW5jdGlvbiBtYWtl
MURUZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVy
biBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmUxREFycmF5PCR7ZWxl
bWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTFEQXJyYXkoZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9
CisKK2Z1bmN0aW9uIG1ha2UyRFRleHR1cmUocHJvZ3JhbSwgbWlwbWFwcywgZWxlbWVudFR5cGUp
Cit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVy
ZTJEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTJEKGVsZW1lbnRUeXBlLCBtaXBtYXBz
KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UyRFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxl
bWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2lj
c1tgVGV4dHVyZTJEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlMkRBcnJheShl
bGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24gbWFrZTNEVGV4dHVyZShwcm9ncmFt
LCBtaXBtYXBzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJv
Z3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlM0Q8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJl
M0QoZWxlbWVudFR5cGUsIG1pcG1hcHMpKTsKK30KKworZnVuY3Rpb24gbWFrZVRleHR1cmVDdWJl
KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5i
b3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlQ3ViZTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3
IFRleHR1cmVDdWJlKGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQorCitmdW5jdGlvbiBtYWtlUlcx
RFRleHR1cmUocHJvZ3JhbSwgZWxlbWVudHMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBU
eXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTFEPCR7ZWxlbWVudFR5
cGV9PmBdLCBuZXcgVGV4dHVyZTFEUlcoZWxlbWVudFR5cGUsIGVsZW1lbnRzKSk7Cit9CisKK2Z1
bmN0aW9uIG1ha2VSVzFEVGV4dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkK
K3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1
cmUxREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTFEQXJyYXlSVyhlbGVtZW50
VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24gbWFrZVJXMkRUZXh0dXJlKHByb2dyYW0sIHJv
d3MsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmlu
dHJpbnNpY3NbYFJXVGV4dHVyZTJEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTJEUlco
ZWxlbWVudFR5cGUsIHJvd3MpKTsKK30KKworZnVuY3Rpb24gbWFrZVJXMkRUZXh0dXJlQXJyYXko
cHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJv
eChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTJEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0s
IG5ldyBUZXh0dXJlMkRBcnJheVJXKGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQorCitmdW5jdGlv
biBtYWtlUlczRFRleHR1cmUocHJvZ3JhbSwgZGVwdGhTbGljZXMsIGVsZW1lbnRUeXBlKQorewor
ICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTNE
PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTNEUlcoZWxlbWVudFR5cGUsIGRlcHRoU2xp
Y2VzKSk7Cit9CisKIGZ1bmN0aW9uIGNoZWNrTnVtYmVyKHByb2dyYW0sIHJlc3VsdCwgZXhwZWN0
ZWQpCiB7CiAgICAgaWYgKCFyZXN1bHQudHlwZS51bmlmeU5vZGUuaXNOdW1iZXIpCkBAIC01NTgy
LDcgKzU2ODQsNzUzIEBAIHRlc3RzLmFycmF5SW5kZXggPSBmdW5jdGlvbigpIHsKICAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBbIG1h
a2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAyKSBdKSwgMyk7CiAgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCkgXSksIDQpOwogICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJbmRleGluZyIsIFsg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpIF0pLCA1KTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBb
IG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAyKSBdKSwgNik7ICAgIAor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJbmRleGlu
ZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDIpIF0pLCA2KTsK
K30KKworZnVuY3Rpb24gY3JlYXRlVGV4dHVyZXNGb3JUZXN0aW5nKHByb2dyYW0pCit7CisgICAg
bGV0IHRleHR1cmUxRCA9IG1ha2UxRFRleHR1cmUocHJvZ3JhbSwgW1sxLCA3LCAxNCwgNzldLCBb
MTMsIDE2XSwgWzE1XV0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlMURBcnJheSA9IG1ha2Ux
RFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1sxLCA3LCAxNCwgNzldLCBbMTMsIDE2XSwgWzE1XV0s
IFtbMTYsIDE3LCAxOCwgMTldLCBbMjAsIDIxXSwgWzIyXV1dLCAiZmxvYXQiKTsKKyAgICBsZXQg
dGV4dHVyZTJEID0gbWFrZTJEVGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAgIFtbMSwgMiwgMywg
NCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0s
CisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUs
IDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzZd
LAorICAgICAgICBbMzcsIDM4LCAzOSwgNDBdXSwKKyAgICAgICAgW1s0MSwgNDJdXQorICAgIF0s
ICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlMkRBcnJheSA9IG1ha2UyRFRleHR1cmVBcnJheShw
cm9ncmFtLCBbWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBb
OSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAs
IDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAz
Ml1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2XSwKKyAgICAgICAgWzM3LCAzOCwgMzksIDQw
XV0sCisgICAgICAgIFtbNDEsIDQyXV0KKyAgICBdLCBbCisgICAgICAgIFtbNDMsIDQ0LCA0NSwg
NDYsIDQ3LCA0OCwgNDksIDUwXSwKKyAgICAgICAgWzUxLCA1MiwgNTMsIDU0LCA1NSwgNTYsIDU3
LCA1OF0sCisgICAgICAgIFs1OSwgNjAsIDYxLCA2MiwgNjMsIDY0LCA2NSwgNjZdLAorICAgICAg
ICBbNjcsIDY4LCA2OSwgNzAsIDcxLCA3MiwgNzMsIDc0XV0sCisgICAgICAgIFtbNzUsIDc2LCA3
NywgNzhdLAorICAgICAgICBbNzksIDgwLCA4MSwgODJdXSwKKyAgICAgICAgW1s4MywgODRdXQor
ICAgIF1dLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZTNEID0gbWFrZTNEVGV4dHVyZShwcm9n
cmFtLCBbCisgICAgICAgIFtbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwg
MTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIx
LCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1d
LAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MF0sCisgICAgICAgIFs0
MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDhdLAorICAgICAgICBbNDksIDUwLCA1MSwgNTIs
IDUzLCA1NCwgNTUsIDU2XSwKKyAgICAgICAgWzU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLCA2
NF1dXSwKKyAgICAgICAgW1tbNjUsIDY2LCA2NywgNjhdLAorICAgICAgICBbNjksIDcwLCA3MSwg
NzJdXV0KKyAgICBdLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZUN1YmUgPSBtYWtlVGV4dHVy
ZUN1YmUocHJvZ3JhbSwgW1sKKyAgICAgICAgW1sxLCAyXSwKKyAgICAgICAgWzMsIDRdLAorICAg
ICAgICBbNSwgNl0sCisgICAgICAgIFs3LCA4XV0sCisgICAgICAgIFtbOV0sCisgICAgICAgIFsx
MF1dLAorICAgIF0sIFsKKyAgICAgICAgW1sxMSwgMTJdLAorICAgICAgICBbMTMsIDE0XSwKKyAg
ICAgICAgWzE1LCAxNl0sCisgICAgICAgIFsxNywgMThdXSwKKyAgICAgICAgW1sxOV0sCisgICAg
ICAgIFsyMF1dLAorICAgIF0sIFsKKyAgICAgICAgW1syMSwgMjJdLAorICAgICAgICBbMjMsIDI0
XSwKKyAgICAgICAgWzI1LCAyNl0sCisgICAgICAgIFsyNywgMjhdXSwKKyAgICAgICAgW1syOV0s
CisgICAgICAgIFszMF1dLAorICAgIF0sIFsKKyAgICAgICAgW1szMSwgMzJdLAorICAgICAgICBb
MzMsIDM0XSwKKyAgICAgICAgWzM1LCAzNl0sCisgICAgICAgIFszNywgMzhdXSwKKyAgICAgICAg
W1szOV0sCisgICAgICAgIFs0MF1dLAorICAgIF0sIFsKKyAgICAgICAgW1s0MSwgNDJdLAorICAg
ICAgICBbNDMsIDQ0XSwKKyAgICAgICAgWzQ1LCA0Nl0sCisgICAgICAgIFs0NywgNDhdXSwKKyAg
ICAgICAgW1s0OV0sCisgICAgICAgIFs1MF1dLAorICAgIF0sIFsKKyAgICAgICAgW1s1MSwgNTJd
LAorICAgICAgICBbNTMsIDU0XSwKKyAgICAgICAgWzU1LCA1Nl0sCisgICAgICAgIFs1NywgNThd
XSwKKyAgICAgICAgW1s1OV0sCisgICAgICAgIFs2MF1dLAorICAgIF1dLCAiZmxvYXQiKTsKKyAg
ICBsZXQgcndUZXh0dXJlMUQgPSBtYWtlUlcxRFRleHR1cmUocHJvZ3JhbSwgWzEsIDIsIDMsIDQs
IDUsIDYsIDcsIDhdLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlMURBcnJheSA9IG1ha2VS
VzFEVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sIFs5LCAx
MCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywg
MjRdXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4dHVyZTJEID0gbWFrZVJXMkRUZXh0dXJlKHBy
b2dyYW0sIFsKKyAgICAgICAgWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwg
MTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIx
LCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1d
LCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlMkRBcnJheSA9IG1ha2VSVzJEVGV4dHVyZUFy
cmF5KHByb2dyYW0sIFsKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAg
ICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTks
IDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAz
MSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDBdLAorICAg
ICAgICBbNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4XSwKKyAgICAgICAgWzQ5LCA1MCwg
NTEsIDUyLCA1MywgNTQsIDU1LCA1Nl0sCisgICAgICAgIFs1NywgNTgsIDU5LCA2MCwgNjEsIDYy
LCA2MywgNjRdXV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmUzRCA9IG1ha2VSVzNEVGV4
dHVyZShwcm9ncmFtLCBbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAg
ICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5
LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwg
MzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwXSwKKyAg
ICAgICAgWzQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OF0sCisgICAgICAgIFs0OSwgNTAs
IDUxLCA1MiwgNTMsIDU0LCA1NSwgNTZdLAorICAgICAgICBbNTcsIDU4LCA1OSwgNjAsIDYxLCA2
MiwgNjMsIDY0XV1dLCAiZmxvYXQiKTsKKyAgICByZXR1cm4gW3RleHR1cmUxRCwgdGV4dHVyZTFE
QXJyYXksIHRleHR1cmUyRCwgdGV4dHVyZTJEQXJyYXksIHRleHR1cmUzRCwgdGV4dHVyZUN1YmUs
IHJ3VGV4dHVyZTFELCByd1RleHR1cmUxREFycmF5LCByd1RleHR1cmUyRCwgcndUZXh0dXJlMkRB
cnJheSwgcndUZXh0dXJlM0RdOworfQorCit0ZXN0cy50ZXh0dXJlRGltZW5zaW9ucyA9IGZ1bmN0
aW9uKCkgeworICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKKyAgICAgICAgdWludCBmb28xKFRl
eHR1cmUxRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAg
ICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRl
eHR1cmUsIDAsICZ3aWR0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3
aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0
dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBudW1iZXJP
ZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAm
bnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAg
ICAgICB9CisgICAgICAgIHVpbnQgZm9vMyhUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkg
eworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7Cisg
ICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9u
cyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAg
ICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzQoVGV4dHVy
ZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAg
ICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsK
KyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmZWxlbWVudHMs
ICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gZWxlbWVudHM7CisgICAgICAg
IH0KKyAgICAgICAgdWludCBmb281KFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7Cisg
ICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAg
ICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRl
eHR1cmUsIDAsICZ3aWR0aCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAg
ICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNihU
ZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAg
ICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7Cisg
ICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51
bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAg
ICAgICB1aW50IGZvbzcoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1
aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51
bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lk
dGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0
OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vOChUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUp
IHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAg
ICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25z
KHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAg
ICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzko
VGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7
CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7Cisg
ICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9u
cyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxz
KTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZv
bzEwKFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdp
ZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRz
OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVu
c2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxl
dmVscyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVp
bnQgZm9vMTEoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVp
bnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxl
bWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0
RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJl
ck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50czsKKyAgICAgICAgfQorICAg
ICAgICB1aW50IGZvbzEyKFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAg
ICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1
aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAg
ICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMs
ICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7Cisg
ICAgICAgIH0KKyAgICAgICAgdWludCBmb28xMyhUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsK
KyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAg
ICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAg
ICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0
aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAg
fQorICAgICAgICB1aW50IGZvbzE0KFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAg
ICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAg
dWludCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAg
ICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoLCAmbnVt
YmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAg
ICAgICB1aW50IGZvbzE1KFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAg
dWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBk
ZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXRE
aW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoLCAmbnVtYmVyT2ZM
ZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGRlcHRoOworICAgICAgICB9CisgICAgICAgIHVp
bnQgZm9vMTYoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdp
ZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOwor
ICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgsICZudW1iZXJPZkxldmVscyk7
CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAg
dWludCBmb28xNyhUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWlu
dCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1i
ZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRo
LCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOwor
ICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTgoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUp
IHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAg
ICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25z
KHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAg
ICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xOShUZXh0dXJl
Q3ViZTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAg
ICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAg
ICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVy
T2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9
CisgICAgICAgIHVpbnQgZm9vMjAoUldUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAg
ICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3
aWR0aCk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWlu
dCBmb28yMShSV1RleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1
aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERp
bWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJu
IHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjIoUldUZXh0dXJlMURBcnJheTxm
bG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVp
bnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwg
JmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50czsKKyAgICAgICAgfQorICAg
ICAgICB1aW50IGZvbzIzKFJXVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAg
ICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICBHZXRE
aW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCk7CisgICAgICAgICAgICByZXR1cm4g
d2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yNChSV1RleHR1cmUyRDxmbG9hdD4g
dGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVp
Z2h0OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQp
OworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZv
bzI1KFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQg
d2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVu
dHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwg
JmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAg
ICB1aW50IGZvbzI2KFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAg
ICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVp
bnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwg
JmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAg
IH0KKyAgICAgICAgdWludCBmb28yNyhSV1RleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7
CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAg
ICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJl
LCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1cm4gZWxlbWVu
dHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yOChSV1RleHR1cmUzRDxmbG9hdD4gdGV4
dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0
OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4
dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRo
OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjkoUldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1
cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsK
KyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1
cmUsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7
CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28zMChSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVy
ZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0Owor
ICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgpOworICAgICAgICAgICAgcmV0dXJuIGRlcHRoOwor
ICAgICAgICB9CisgICAgYCk7CisgICAgbGV0IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0
ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1
cmUxRCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3
VGV4dHVyZTNEXSA9IGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9ncmFtKTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRF0p
LCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
IiwgW3RleHR1cmUxRF0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5XSksIDQpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXldKSwg
Mik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIs
IFt0ZXh0dXJlMURBcnJheV0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyRF0pLCA0KTsKKyAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1
cmUyRF0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb285IiwgW3RleHR1cmUyREFycmF5XSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUyREFycmF5XSksIDQpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3RleHR1
cmUyREFycmF5XSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEyIiwgW3RleHR1cmUyREFycmF5XSksIDMpOworICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3RleHR1cmUzRF0pLCA4KTsKKyAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0
dXJlM0RdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTUiLCBbdGV4dHVyZTNEXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUzRF0pLCAyKTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlQ3ViZV0p
LCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
OCIsIFt0ZXh0dXJlQ3ViZV0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlQ3ViZV0pLCAyKTsKKyAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmUxRF0pLCA4
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIs
IFtyd1RleHR1cmUxREFycmF5XSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3J3VGV4dHVyZTFEQXJyYXldKSwgMyk7CisgICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbcndUZXh0dXJl
MkRdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjQiLCBbcndUZXh0dXJlMkRdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMjUiLCBbcndUZXh0dXJlMkRBcnJheV0pLCA4KTsKKyAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNiIsIFtyd1RleHR1
cmUyREFycmF5XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzI3IiwgW3J3VGV4dHVyZTJEQXJyYXldKSwgMik7CisgICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjgiLCBbcndUZXh0dXJlM0RdKSwgOCk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjkiLCBb
cndUZXh0dXJlM0RdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMzAiLCBbcndUZXh0dXJlM0RdKSwgMik7Cit9CisKK3Rlc3RzLnRleHR1cmVM
b2FkID0gZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICBm
bG9hdCBmb28xKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQgbWlw
bWFwKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGxvY2F0aW9uLCBt
aXBtYXApKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28yKFRleHR1cmUxRDxmbG9hdD4g
dGV4dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQgbWlwbWFwLCBpbnQgb2Zmc2V0KSB7CisgICAgICAg
ICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGxvY2F0aW9uLCBtaXBtYXApLCBvZmZzZXQp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzMoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRl
eHR1cmUsIGludCBsb2NhdGlvbiwgaW50IG1pcG1hcCwgaW50IGxheWVyKSB7CisgICAgICAgICAg
ICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKGxvY2F0aW9uLCBtaXBtYXAsIGxheWVyKSk7Cisg
ICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNChUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVy
ZSwgaW50IGxvY2F0aW9uLCBpbnQgbWlwbWFwLCBpbnQgbGF5ZXIsIGludCBvZmZzZXQpIHsKKyAg
ICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMobG9jYXRpb24sIG1pcG1hcCwgbGF5
ZXIpLCBvZmZzZXQpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzUoVGV4dHVyZTJEPGZs
b2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXApIHsKKyAgICAgICAgICAgIHJl
dHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgbWlwbWFwKSk7CisgICAgICAgIH0KKyAgICAg
ICAgZmxvYXQgZm9vNihUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50
IG1pcG1hcCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4g
TG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIG1pcG1hcCksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzcoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRl
eHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCwgaW50IGxheWVyKSB7CisgICAgICAgICAg
ICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgsIHksIG1pcG1hcCwgbGF5ZXIpKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb284KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBp
bnQgeCwgaW50IHksIGludCBtaXBtYXAsIGludCBsYXllciwgaW50IG9mZnNldFgsIGludCBvZmZz
ZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgsIHksIG1pcG1h
cCwgbGF5ZXIpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdCBmb285KFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgeiwg
aW50IG1pcG1hcCkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50NCh4LCB5
LCB6LCBtaXBtYXApKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xMChUZXh0dXJlM0Q8
ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IHosIGludCBtaXBtYXAsIGludCBvZmZz
ZXRYLCBpbnQgb2Zmc2V0WSwgaW50IG9mZnNldFopIHsKKyAgICAgICAgICAgIHJldHVybiBMb2Fk
KHRleHR1cmUsIGludDQoeCwgeSwgeiwgbWlwbWFwKSwgaW50MyhvZmZzZXRYLCBvZmZzZXRZLCBv
ZmZzZXRaKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTEoUldUZXh0dXJlMUQ8Zmxv
YXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4
dHVyZSwgbG9jYXRpb24pOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzEyKFJXVGV4dHVy
ZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50IGxheWVyKSB7CisgICAg
ICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGxvY2F0aW9uLCBsYXllcikpOworICAg
ICAgICB9CisgICAgICAgIGZsb2F0IGZvbzEzKFJXVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBp
bnQgeCwgaW50IHkpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIoeCwg
eSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE0KFJXVGV4dHVyZTJEQXJyYXk8Zmxv
YXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IGxheWVyKSB7CisgICAgICAgICAgICByZXR1
cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAg
ZmxvYXQgZm9vMTUoUldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50
IHopIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgeikpOwor
ICAgICAgICB9CisgICAgYCk7CisgICAgbGV0IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0
ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1
cmUxRCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3
VGV4dHVyZTNEXSA9IGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9ncmFtKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQs
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFE
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUx
RCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVy
ZTFELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0
dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJlMUQsIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwg
W3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEzKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0
ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3Rl
eHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAyMCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4
dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgMjEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0x
KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBb
dGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEzKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJl
MURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNyk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCAyMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgLTEpXSksIDIwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1
cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgMzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0
dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282
IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM4KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0
dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzcpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDMzKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNyk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzgpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCA0NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgNTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDUyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3NSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNzYpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDc5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA4MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTApOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDExKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgMTgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDExKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAxOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAzNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMzQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSld
KSwgMzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQ0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCA1Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDUpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDUzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCA1Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNjApOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDUzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA2MSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNzYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDgwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3Nyk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgODEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDgwKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAtMSldKSwgNzYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDgxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgNzcpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3Rl
eHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0
MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzki
LCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQyKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0Qs
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCA2Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDY5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNzApOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0
dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTcp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIs
IFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0
dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTEpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0Qs
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTgpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgLTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgMzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
NDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDIpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0
ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDIpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJl
M0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgNTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgLTEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDY2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDY5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDY3
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAi
LCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcwKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4
dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcwKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNE
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2NSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3MSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAt
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNjYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3
VGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUlu
dChwcm9ncmFtLCAzKV0pLCA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgNCldKSwg
NSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEx
IiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwg
bWFrZUludChwcm9ncmFtLCA2KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwg
NyldKSwgOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3
VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTApOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDExKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndU
ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAxMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDUpLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9n
cmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUx
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE3KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBb
cndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAy
KV0pLCAxOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQo
cHJvZ3JhbSwgMildKSwgMTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDMp
LCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChw
cm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjIpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1
cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIz
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIi
LCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFt
LCAyKV0pLCAyNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDMp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFt
LCA0KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJv
Z3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFr
ZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA4KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgOSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVy
ZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndU
ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTEp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIs
IFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAxMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAxNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDcpLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxOCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjApOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4
dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIyKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBb
cndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwg
MjMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAy
KV0pLCAyNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDMpXSksIDI1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMyldKSwgMjYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFr
ZUludChwcm9ncmFtLCAzKV0pLCAyNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDMp
LCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAzMCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtl
SW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDMxKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMzIpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1
cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1Rl
eHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBb
cndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
MzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
NCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCA0Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUi
LCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndU
ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVy
ZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDQxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDIpOworfQorCit0ZXN0cy50
ZXh0dXJlU3RvcmUgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCisg
ICAgICAgIGZsb2F0IGZvbzEoUldUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIHVpbnQgbG9jYXRp
b24sIGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwgbG9j
YXRpb24pOworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50KGxvY2F0aW9uKSk7
CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMihSV1RleHR1cmUxREFycmF5PGZsb2F0PiB0
ZXh0dXJlLCB1aW50IGxvY2F0aW9uLCB1aW50IGxheWVyLCBmbG9hdCB2YWx1ZSkgeworICAgICAg
ICAgICAgU3RvcmUodGV4dHVyZSwgdmFsdWUsIHVpbnQyKGxvY2F0aW9uLCBsYXllcikpOworICAg
ICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MihpbnQobG9jYXRpb24pLCBpbnQobGF5
ZXIpKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMyhSV1RleHR1cmUyRDxmbG9hdD4g
dGV4dHVyZSwgdWludCB4LCB1aW50IHksIGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICBTdG9y
ZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDIoeCwgeSkpOworICAgICAgICAgICAgcmV0dXJuIExvYWQo
dGV4dHVyZSwgaW50MihpbnQoeCksIGludCh5KSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0
IGZvbzQoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgdWludCB4LCB1aW50IHksIHVp
bnQgbGF5ZXIsIGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1
ZSwgdWludDMoeCwgeSwgbGF5ZXIpKTsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUs
IGludDMoaW50KHgpLCBpbnQoeSksIGludChsYXllcikpKTsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdCBmb281KFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCB1aW50IHgsIHVpbnQgeSwgdWlu
dCB6LCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4dHVyZSwgdmFsdWUsIHVp
bnQzKHgsIHksIHopKTsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoaW50
KHgpLCBpbnQoeSksIGludCh6KSkpOworICAgICAgICB9CisgICAgYCk7CisgICAgbGV0IFt0ZXh0
dXJlMUQsIHRleHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJl
M0QsIHRleHR1cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJl
MkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNEXSA9IGNyZWF0ZVRleHR1cmVzRm9yVGVz
dGluZyhwcm9ncmFtKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChw
cm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwg
bWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndU
ZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0s
IDcpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1h
a2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndU
ZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VV
aW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0
dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50
KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJl
MURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURB
cnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dy
YW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJh
eSwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0s
IDcpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIs
IFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDIp
LCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFty
d1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFr
ZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDUpLCBt
YWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1Rl
eHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVp
bnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQs
IG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1h
a2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4
dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0s
IDQpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIs
IFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChw
cm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJl
MkQsIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyks
IG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3
VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dy
YW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWlu
dChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChw
cm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0
dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwg
NCksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwg
W3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHBy
b2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dy
YW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtl
VWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWlu
dChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUy
RCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAzKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndU
ZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28z
IiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwg
MyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50
KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
VWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFt
LCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dy
YW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDEp
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDApLCBt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWlu
dChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9n
cmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7Cit9CisKK3Rlc3RzLnRleHR1cmVTYW1wbGUgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJv
Z3JhbSA9IGRvUHJlcChgCisgICAgICAgIGZsb2F0IGZvbzEoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0
dXJlLCBzYW1wbGVyIHMsIGZsb2F0IGxvY2F0aW9uKSB7CisgICAgICAgICAgICByZXR1cm4gU2Ft
cGxlKHRleHR1cmUsIHMsIGxvY2F0aW9uKTsKKyAgICAgICAgfQorICAgIGApOworICAgIGxldCBb
dGV4dHVyZTFELCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0ZXh0dXJlMkRBcnJheSwgdGV4
dHVyZTNELCB0ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVyZTFEQXJyYXksIHJ3VGV4
dHVyZTJELCByd1RleHR1cmUyREFycmF5LCByd1RleHR1cmUzRF0gPSBjcmVhdGVUZXh0dXJlc0Zv
clRlc3RpbmcocHJvZ3JhbSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7fSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpXSksIDE0KTsKIH0KIAogb2tUb1Rlc3QgPSB0cnVlOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZS5qcyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1cmUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQ2ZTA1YWM4
MTc4Nzg5YTY1ZjMwMGIxMDAwODYxNjA4MjQ1ZGY4YgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1cmUuanMKQEAgLTAsMCArMSw1MzQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworInVzZSBzdHJpY3QiOwor
CitjbGFzcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3RvcihkaW1lbnNpb24sIHdpZHRoLCBoZWln
aHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpCisgICAg
eworICAgICAgICB0aGlzLl9kaW1lbnNpb24gPSBkaW1lbnNpb247CisgICAgICAgIHRoaXMuX3dp
ZHRoID0gd2lkdGg7CisgICAgICAgIHRoaXMuX2hlaWdodCA9IGhlaWdodDsKKyAgICAgICAgdGhp
cy5fZGVwdGggPSBkZXB0aDsKKyAgICAgICAgdGhpcy5fbGV2ZWxDb3VudCA9IGxldmVsQ291bnQ7
CisgICAgICAgIHRoaXMuX2xheWVyQ291bnQgPSBsYXllckNvdW50OworICAgICAgICB0aGlzLl9p
bm5lclR5cGUgPSBpbm5lclR5cGU7CisgICAgICAgIHRoaXMuX2RhdGEgPSBkYXRhOworICAgIH0K
KworICAgIGdldCBkaW1lbnNpb24oKSB7IHJldHVybiB0aGlzLl9kaW1lbnNpb247IH0KKyAgICBn
ZXQgd2lkdGgoKSB7IHJldHVybiB0aGlzLl93aWR0aDsgfQorICAgIGdldCBoZWlnaHQoKSB7IHJl
dHVybiB0aGlzLl9oZWlnaHQ7IH0KKyAgICBnZXQgZGVwdGgoKSB7IHJldHVybiB0aGlzLl9kZXB0
aDsgfQorICAgIGdldCBsZXZlbENvdW50KCkgeyByZXR1cm4gdGhpcy5fbGV2ZWxDb3VudDsgfQor
ICAgIGdldCBsYXllckNvdW50KCkgeyByZXR1cm4gdGhpcy5fbGF5ZXJDb3VudDsgfQorICAgIGdl
dCBpbm5lclR5cGUoKSB7IHJldHVybiB0aGlzLl9pbm5lclR5cGU7IH0KKyAgICBnZXQgZGF0YSgp
IHsgcmV0dXJuIHRoaXMuX2RhdGE7IH0KKworICAgIGVsZW1lbnRDaGVja2VkKGxheWVyLCBsZXZl
bCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIGlmIChsYXllciA8IDAgfHwgbGF5ZXIgPj0gdGhp
cy5sYXllckNvdW50CisgICAgICAgICAgICB8fCBsZXZlbCA8IDAgfHwgbGV2ZWwgPj0gdGhpcy5s
ZXZlbENvdW50CisgICAgICAgICAgICB8fCBrIDwgMCB8fCBrID49IHRoaXMuZGVwdGgKKyAgICAg
ICAgICAgIHx8IGogPCAwIHx8IGogPj0gdGhpcy5oZWlnaHQKKyAgICAgICAgICAgIHx8IGkgPCAw
IHx8IGkgPj0gdGhpcy53aWR0aCkKKyAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAg
ICAgIHJldHVybiB0aGlzLmVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKTsKKyAgICB9CisK
KyAgICBzZXRFbGVtZW50Q2hlY2tlZChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAg
IHsKKyAgICAgICAgaWYgKGxheWVyIDwgMCB8fCBsYXllciA+PSB0aGlzLmxheWVyQ291bnQKKyAg
ICAgICAgICAgIHx8IGxldmVsIDwgMCB8fCBsZXZlbCA+PSB0aGlzLmxldmVsQ291bnQKKyAgICAg
ICAgICAgIHx8IGsgPCAwIHx8IGsgPj0gdGhpcy5kZXB0aAorICAgICAgICAgICAgfHwgaiA8IDAg
fHwgaiA+PSB0aGlzLmhlaWdodAorICAgICAgICAgICAgfHwgaSA8IDAgfHwgaSA+PSB0aGlzLndp
ZHRoKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB0aGlzLnNldEVsZW1lbnQo
bGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KK30KKworY2xhc3MgVGV4dHVyZTFEIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0
b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5
IG9mIG1pcG1hcHMuCisgICAgICAgIC8vIFRoZSBmaXJzdCBtaXBtYXAgaXMgYW4gYXJyYXkgb2Yg
ZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2FsYXIgb3IgYW4g
YXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCBtdXN0IGJlIGEgcG93
ZXItb2YtdHdvLgorICAgICAgICAvLyBFYWNoIG1pcG1hcCBpcyBoYWxmLXNpemUgb2YgdGhlIHBy
ZXZpb3VzIHNpemUuCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDE7CisgICAgICAgIGxldCB3
aWR0aCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gMTsKKyAgICAgICAg
bGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSBkYXRhLmxlbmd0aDsKKyAg
ICAgICAgbGV0IGxheWVyQ291bnQgPSAxOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRo
LCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEp
OworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVy
biB0aGlzLmRhdGFbbGV2ZWxdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxl
dmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZGVwdGhBdExldmVs
KGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChs
YXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xl
dmVsXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwg
dmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbbGV2ZWxdW2ldID0gdmFsdWU7CisgICAg
fQorfQorCitjbGFzcyBUZXh0dXJlMURBcnJheSBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0
cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBh
cnJheSBvZiAxRCB0ZXh0dXJlcy4KKyAgICAgICAgLy8gQWxsIHRleHR1cmVzIG11c3QgaGF2ZSB0
aGUgc2FtZSB3aWR0aCBhbmQgbnVtYmVyIG9mIG1pcG1hcHMuCisKKyAgICAgICAgbGV0IGRpbWVu
c2lvbiA9IDE7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAgICAg
ICBsZXQgaGVpZ2h0ID0gMTsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxl
dmVsQ291bnQgPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSBkYXRh
Lmxlbmd0aDsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwg
bGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3
aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdW2xl
dmVsXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7
CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBr
LCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2ld
OworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkK
KyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2ldID0gdmFsdWU7CisgICAg
fQorfQorCitjbGFzcyBUZXh0dXJlMkQgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rv
cihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkg
b2YgbWlwbWFwcy4KKyAgICAgICAgLy8gVGhlIGZpcnN0IG1pcG1hcCBpcyBhIHJlY3Rhbmd1bGFy
IGFycmF5IG9mIHJvd3MsIHdoZXJlIGVhY2ggcm93IGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLgor
ICAgICAgICAvLyBFYWNoIGVsZW1lbnQgbWF5IGJlIGEgc2NhbGFyIG9yIGFuIGFycmF5IG9mIDIt
NCBzY2FsYXJzLgorICAgICAgICAvLyBUaGUgd2lkdGggYW5kIGhlaWdodCBtdXN0IGJlIHBvd2Vy
cy1vZi10d28uCisgICAgICAgIC8vIEVhY2ggbWlwbWFwIGlzIGhhbGYtd2lkdGggYW5kIGhhbGYt
aGVpZ2h0IG9mIHRoZSBwcmV2aW91cyBzaXplLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAy
OworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhl
aWdodCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBs
ZXQgbGV2ZWxDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IDE7
CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291
bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExl
dmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1bMF0ubGVu
Z3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICBy
ZXR1cm4gdGhpcy5kYXRhW2xldmVsXS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVs
KGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChs
YXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xl
dmVsXVtqXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwg
aSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbbGV2ZWxdW2pdW2ldID0gdmFsdWU7
CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlMkRBcnJheSBleHRlbmRzIFRleHR1cmUgeworICAg
IGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBp
cyBhbiBhcnJheSBvZiAyRCB0ZXh0dXJlcy4KKyAgICAgICAgLy8gQWxsIHRleHR1cmVzIG11c3Qg
aGF2ZSB0aGUgc2FtZSB3aWR0aCwgaGVpZ2h0IGFuZCBudW1iZXIgb2YgbWlwbWFwcy4KKworICAg
ICAgICBsZXQgZGltZW5zaW9uID0gMjsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXVsw
XS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAg
ICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSBkYXRhWzBdLmxlbmd0
aDsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgc3VwZXIo
ZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwg
aW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAg
eworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdW2xldmVsXVswXS5sZW5ndGg7CisgICAgfQor
CisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRh
dGFbMF1bbGV2ZWxdLmxlbmd0aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisg
ICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZl
bCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGF5ZXJdW2xldmVs
XVtqXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwg
dmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtqXVtpXSA9IHZh
bHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTNEIGV4dGVuZHMgVGV4dHVyZSB7CisgICAg
Y29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlz
IGFuIGFycmF5IG9mIG1pcG1hcHMuCisgICAgICAgIC8vIFRoZSBmaXJzdCBtaXBtYXAgaXMgYW4g
YXJyYXkgb2YgZGVwdGggc2xpY2VzLCBlYWNoIGRlcHRoIHNsaWNlIGlzIGFuIGFycmF5IG9mIHJv
d3MsIGFuZCBlYWNoIHJvdyBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFj
aCBlbGVtZW50IG1heSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAg
ICAgICAgLy8gVGhlIHdpZHRoLCBoZWlnaHQsIGFuZCBkZXB0aCBtdXN0IGJlIHBvd2Vycy1vZi10
d28uCisgICAgICAgIC8vIEVhY2ggbWlwbWFwIGlzIGhhbGYtd2lkdGgsIGhhbGYtaGVpZ2h0LCBh
bmQgaGFsZi1kZXB0aCBvZiB0aGUgcHJldmlvdXMgc2l6ZS4KKworICAgICAgICBsZXQgZGltZW5z
aW9uID0gMzsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXVswXS5sZW5ndGg7CisgICAg
ICAgIGxldCBoZWlnaHQgPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGRlcHRoID0g
ZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YS5sZW5ndGg7Cisg
ICAgICAgIGxldCBsYXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0
aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRh
KTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1
cm4gdGhpcy5kYXRhW2xldmVsXVswXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRM
ZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdWzBdLmxl
bmd0aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICBy
ZXR1cm4gdGhpcy5kYXRhW2xldmVsXS5sZW5ndGg7CisgICAgfQorCisgICAgZWxlbWVudChsYXll
ciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVs
XVtrXVtqXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwg
aSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbbGV2ZWxdW2tdW2pdW2ldID0gdmFs
dWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlQ3ViZSBleHRlbmRzIFRleHR1cmUgeworICAg
IGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBp
cyBhbiBhcnJheSBvZiA2IDJEIHRleHR1cmVzLgorICAgICAgICAvLyBBbGwgdGV4dHVyZXMgbXVz
dCBoYXZlIHRoZSBzYW1lIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBhbmQgbnVtYmVyIG9mIG1pcG1h
cHMuCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0aCA9IGRh
dGFbMF1bMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXVswXS5sZW5n
dGg7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0
YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7CisgICAg
ICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxh
eWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxl
dmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF1bMF0ubGVuZ3Ro
OworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1
cm4gdGhpcy5kYXRhWzBdW2xldmVsXS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVs
KGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChs
YXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xh
eWVyXVtsZXZlbF1bal1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWws
IGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1b
al1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUxRFJXIGV4dGVuZHMgVGV4
dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAg
Ly8gImRhdGEiIGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBFYWNoIGVsZW1l
bnQgbWF5IGJlIGEgc2NhbGFyIG9yIGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgorICAgICAgICAv
LyBUaGUgd2lkdGggbXVzdCBiZSBhIHBvd2VyLW9mLXR3by4KKworICAgICAgICBsZXQgZGltZW5z
aW9uID0gMTsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBo
ZWlnaHQgPSAxOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3Vu
dCA9IDE7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5z
aW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJU
eXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpcy5kYXRhLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVs
KGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZGVwdGhBdExl
dmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVu
dChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRh
W2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1
ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xh
c3MgVGV4dHVyZTFEQXJyYXlSVyBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlu
bmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiAx
RCBSVyB0ZXh0dXJlcy4KKyAgICAgICAgLy8gQWxsIHRleHR1cmVzIG11c3QgaGF2ZSB0aGUgc2Ft
ZSBzaXplLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAxOworICAgICAgICBsZXQgd2lkdGgg
PSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IDE7CisgICAgICAgIGxldCBk
ZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gMTsKKyAgICAgICAgbGV0IGxheWVy
Q291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVp
Z2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAg
ICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhp
cy5kYXRhWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2
ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xheWVyXVtpXTsK
KyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisg
ICAgeworICAgICAgICB0aGlzLmRhdGFbbGF5ZXJdW2ldID0gdmFsdWU7CisgICAgfQorfQorCitj
bGFzcyBUZXh0dXJlMkRSVyBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVy
VHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhIHJlY3Rhbmd1bGFyIGFy
cmF5IG9mIHJvd3MsIHdoZXJlIGVhY2ggcm93IGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLgorICAg
ICAgICAvLyBFYWNoIGVsZW1lbnQgbWF5IGJlIGEgc2NhbGFyIG9yIGFuIGFycmF5IG9mIDItNCBz
Y2FsYXJzLgorICAgICAgICAvLyBUaGUgd2lkdGggYW5kIGhlaWdodCBtdXN0IGJlIHBvd2Vycy1v
Zi10d28uCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0aCA9
IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YS5sZW5ndGg7CisgICAg
ICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gMTsKKyAgICAgICAg
bGV0IGxheWVyQ291bnQgPSAxOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWln
aHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAg
IH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
LmRhdGFbMF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAg
eworICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmxlbmd0aDsKKyAgICB9CisKKyAgICBkZXB0aEF0
TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVt
ZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRh
dGFbal1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGks
IHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2pdW2ldID0gdmFsdWU7CisgICAgfQor
fQorCitjbGFzcyBUZXh0dXJlMkRBcnJheVJXIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3Ry
dWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFy
cmF5IG9mIDJEIFJXIHRleHR1cmVzLgorICAgICAgICAvLyBBbGwgdGV4dHVyZXMgbXVzdCBoYXZl
IHRoZSBzYW1lIHdpZHRoIGFuZCBoZWlnaHQuCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDI7
CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVp
Z2h0ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxl
dCBsZXZlbENvdW50ID0gMTsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSBkYXRhLmxlbmd0aDsK
KyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3Vu
dCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2
ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdWzBdLmxlbmd0aDsK
KyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMuZGF0YVswXS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2
ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xheWVyXVtqXVtp
XTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUp
CisgICAgeworICAgICAgICB0aGlzLmRhdGFbbGF5ZXJdW2pdW2ldID0gdmFsdWU7CisgICAgfQor
fQorCitjbGFzcyBUZXh0dXJlM0RSVyBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9y
KGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBv
ZiBkZXB0aCBzbGljZXMsIGVhY2ggZGVwdGggc2xpY2UgaXMgYW4gYXJyYXkgb2Ygcm93cywgYW5k
IGVhY2ggcm93IGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBFYWNoIGVsZW1l
bnQgbWF5IGJlIGEgc2NhbGFyIG9yIGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgorICAgICAgICAv
LyBUaGUgd2lkdGgsIGhlaWdodCwgYW5kIGRlcHRoIG11c3QgYmUgcG93ZXJzLW9mLXR3by4KKwor
ICAgICAgICBsZXQgZGltZW5zaW9uID0gMzsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVsw
XS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAg
bGV0IGRlcHRoID0gZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gMTsKKyAg
ICAgICAgbGV0IGxheWVyQ291bnQgPSAxOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRo
LCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEp
OworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVy
biB0aGlzLmRhdGFbMF1bMF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2
ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdLmxlbmd0aDsKKyAgICB9CisK
KyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRh
Lmxlbmd0aDsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAg
ICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFba11bal1baV07CisgICAgfQorCisgICAgc2V0
RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhp
cy5kYXRhW2tdW2pdW2ldID0gdmFsdWU7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanMgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlT3BlcmF0aW9ucy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTExMjc4
MjM0YjVlZGNkOTcxOWU3YWNmYjgwNmM5YWI2YzBiM2I0Ci0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanMKQEAgLTAsMCAr
MSw1NTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworInVz
ZSBzdHJpY3QiOworCitmdW5jdGlvbiBkZXB0aENvbXBhcmVPcGVyYXRpb24oZHJlZiwgZCwgY29t
cGFyZUZ1bmN0aW9uKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS4zLjQKKyAg
ICBzd2l0Y2ggKGNvbXBhcmVGdW5jdGlvbikgeworICAgICAgICBjYXNlICJuZXZlciI6CisgICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgY2FzZSAibGVzcyI6CisgICAgICAgICAgICByZXR1
cm4gZHJlZiA8IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAiZXF1YWwiOgorICAgICAgICAgICAg
cmV0dXJuIGRyZWYgPT0gZCA/IDEgOiAwOworICAgICAgICBjYXNlICJsZXNzRXF1YWwiOgorICAg
ICAgICAgICAgcmV0dXJuIGRyZWYgPD0gZCA/IDEgOiAwOworICAgICAgICBjYXNlICJncmVhdGVy
IjoKKyAgICAgICAgICAgIHJldHVybiBkcmVmID4gZCA/IDEgOiAwOworICAgICAgICBjYXNlICJu
b3RFcXVhbCI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiAhPSBkID8gMSA6IDA7CisgICAgICAg
IGNhc2UgImdyZWF0ZXJFcXVhbCI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiA+PSBkID8gMSA6
IDA7CisgICAgICAgIGNhc2UgImFsd2F5cyI6CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBkZXB0aCBj
b21wYXJpc29uIGZ1bmN0aW9uIik7CisgICAgfQorfQorCitmdW5jdGlvbiBjb252ZXJzaW9uVG9S
R0JBKHZhbHVlKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS4zLjUKKyAgICBp
ZiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gW107Cisg
ICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyArK2kpCisgICAgICAgICAg
ICByZXN1bHQucHVzaCh2YWx1ZVtpXSk7CisgICAgICAgIHdoaWxlIChyZXN1bHQubGVuZ3RoICE9
IDQpCisgICAgICAgICAgICByZXN1bHQucHVzaChyZXN1bHQubGVuZ3RoID09IDMgPyAxIDogMCk7
CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfSBlbHNlCisgICAgICAgIHJldHVybiBbdmFs
dWUsIDAsIDAsIDFdOworfQorCitmdW5jdGlvbiBwcm9qZWN0aW9uT3BlcmF0aW9uKHMsIHQsIHIs
IGRyZWYsIHEpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuMQorICAgIHJl
dHVybiBbcyAvIHEsIHQgLyBxLCByIC8gcSwgZHJlZiAhPSB1bmRlZmluZWQgPyBkcmVmIC8gcSA6
IHVuZGVmaW5lZF07Cit9CisKK2Z1bmN0aW9uIGN1YmVNYXBGYWNlU2VsZWN0aW9uKHMsIHQsIHIs
IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWSwgcGFydGlh
bFJ5V2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUnpXaXRo
UmVzcGVjdFRvWCwgcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1kpCit7CisgICAgLy8gVnVsa2FuIDEu
MS44MyBzZWN0aW9uIDE1LjYuNAorICAgIGxldCByeCA9IHM7CisgICAgbGV0IHJ5ID0gdDsKKyAg
ICBsZXQgcnogPSByOworICAgIGxldCB3aW5uZXIgPSAwOworICAgIGlmIChNYXRoLmFicyhyeikg
Pj0gTWF0aC5hYnMocnkpICYmIE1hdGguYWJzKHJ6KSA+PSBNYXRoLmFicyhyeCkpCisgICAgICAg
IHdpbm5lciA9IDI7CisgICAgZWxzZSBpZiAoTWF0aC5hYnMocnkpID49IE1hdGguYWJzKHJ4KSAm
JiBNYXRoLmFicyhyeSkgPj0gTWF0aC5hYnMocnopKQorICAgICAgICB3aW5uZXIgPSAxOworCisg
ICAgbGV0IGxheWVyTnVtYmVyOworICAgIGxldCBzYzsKKyAgICBsZXQgdGM7CisgICAgbGV0IHJj
OworICAgIGxldCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWDsKKyAgICBsZXQgcGFydGlhbFNjV2l0
aFJlc3BlY3RUb1k7CisgICAgbGV0IHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YOworICAgIGxldCBw
YXJ0aWFsVGNXaXRoUmVzcGVjdFRvWTsKKyAgICBsZXQgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1g7
CisgICAgbGV0IHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZOworICAgIGlmICh3aW5uZXIgPT0gMCAm
JiByeCA+PSAwKSB7CisgICAgICAgIGxheWVyTnVtYmVyID0gMDsKKyAgICAgICAgc2MgPSAtcno7
CisgICAgICAgIHRjID0gLXJ5OworICAgICAgICByYyA9IHJ4OworICAgICAgICBwYXJ0aWFsU2NX
aXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlh
bFNjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBh
cnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAg
ICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAg
ICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsK
KyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRv
WTsKKyAgICB9IGVsc2UgaWYgKHdpbm5lciA9PSAwKSB7CisgICAgICAgIGxheWVyTnVtYmVyID0g
MTsKKyAgICAgICAgc2MgPSByejsKKyAgICAgICAgdGMgPSAtcnk7CisgICAgICAgIHJjID0gcng7
CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RU
b1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ6V2l0aFJlc3Bl
Y3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhS
ZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlX
aXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlh
bFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0gLXBh
cnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxzZSBpZiAod2lubmVyID09IDEgJiYgcnkg
Pj0gMCkgeworICAgICAgICBsYXllck51bWJlciA9IDI7CisgICAgICAgIHNjID0gcng7CisgICAg
ICAgIHRjID0gLXJ6OworICAgICAgICByYyA9IHJ5OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVz
cGVjdFRvWCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRo
UmVzcGVjdFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNX
aXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFs
VGNXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0
aWFsUmNXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAgICBw
YXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgIH0g
ZWxzZSBpZiAod2lubmVyID09IDEpIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSAzOworICAgICAg
ICBzYyA9IHJ4OworICAgICAgICB0YyA9IC1yejsKKyAgICAgICAgcmMgPSByeTsKKyAgICAgICAg
cGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsKKyAgICAg
ICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAg
ICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7
CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0
VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVz
cGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0
aFJlc3BlY3RUb1k7CisgICAgfSBlbHNlIGlmICh3aW5uZXIgPT0gMiAmJiByeiA+PSAwKSB7Cisg
ICAgICAgIGxheWVyTnVtYmVyID0gNDsKKyAgICAgICAgc2MgPSByeDsKKyAgICAgICAgdGMgPSAt
cnk7CisgICAgICAgIHJjID0gcno7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0g
cGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9Z
ID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0
VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVz
cGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0
aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJj
V2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBsYXllck51bWJlciA9IDU7CisgICAgICAgIHNjID0gLXJ4OworICAgICAgICB0YyA9
IC1yeTsKKyAgICAgICAgcmMgPSByejsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1gg
PSAtcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0
VG9ZID0gLXBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVz
cGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0
aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxS
Y1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0
aWFsUmNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICB9Cisg
ICAgcmV0dXJuIFtsYXllck51bWJlciwgc2MsIHRjLCByYywgcGFydGlhbFNjV2l0aFJlc3BlY3RU
b1gsIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCwgcGFy
dGlhbFRjV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUmNX
aXRoUmVzcGVjdFRvWV0KK30KKworZnVuY3Rpb24gY3ViZU1hcENvb3JkaW5hdGVUcmFuc2Zvcm1h
dGlvbihzYywgcmMpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuNQorICAg
IGxldCBzRmFjZSA9ICgxIC8gMikgKiBzYyAvIE1hdGguYWJzKHJjKSArICgxIC8gMik7CisgICAg
bGV0IHRGYWNlID0gKDEgLyAyKSAqIHRjIC8gTWF0aC5hYnMocmMpICsgKDEgLyAyKTsKKyAgICBy
ZXR1cm4gW3NGYWNlLCB0RmFjZV07Cit9CisKK2Z1bmN0aW9uIGN1YmVNYXBEZXJpdmF0aXZlVHJh
bnNmb3JtYXRpb24oc2MsIHRjLCByYywgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxT
Y1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRjV2l0aFJl
c3BlY3RUb1ksIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRv
WSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi42CisgICAgbGV0IHBhcnRp
YWxTRmFjZVdpdGhSZXNwZWN0VG9YID0gKDEgLyAyKSAqICgoTWF0aC5hYnMocmMpICogcGFydGlh
bFNjV2l0aFJlc3BlY3RUb1ggLSBzYyAqIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YKSAvIE1hdGgu
cG93KHJjLCAyKSk7CisgICAgbGV0IHBhcnRpYWxTRmFjZVdpdGhSZXNwZWN0VG9ZID0gKDEgLyAy
KSAqICgoTWF0aC5hYnMocmMpICogcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgLSBzYyAqIHBhcnRp
YWxSY1dpdGhSZXNwZWN0VG9ZKSAvIE1hdGgucG93KHJjLCAyKSk7CisgICAgbGV0IHBhcnRpYWxU
RmFjZVdpdGhSZXNwZWN0VG9YID0gKDEgLyAyKSAqICgoTWF0aC5hYnMocmMpICogcGFydGlhbFRj
V2l0aFJlc3BlY3RUb1ggLSB0YyAqIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YKSAvIE1hdGgucG93
KHJjLCAyKSk7CisgICAgbGV0IHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0VG9ZID0gKDEgLyAyKSAq
ICgoTWF0aC5hYnMocmMpICogcGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgLSB0YyAqIHBhcnRpYWxS
Y1dpdGhSZXNwZWN0VG9ZKSAvIE1hdGgucG93KHJjLCAyKSk7CisgICAgcmV0dXJuIFtwYXJ0aWFs
U0ZhY2VXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxU
RmFjZVdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRvWV07Cit9CisKK2Z1
bmN0aW9uIHNjYWxlRmFjdG9yT3BlcmF0aW9uKGRldmljZU1heEFuaXNvdHJvcHksIHdpZHRoLCBo
ZWlnaHQsIGRlcHRoLCBzYW1wbGVyTWF4QW5pc290cm9weSwgcGFydGlhbFNXaXRoUmVzcGVjdFRv
WCwgcGFydGlhbFRXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCwgcGFydGlh
bFNXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJXaXRoUmVz
cGVjdFRvWSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi43CisgICAgbGV0
IG11eCA9IE1hdGguYWJzKHBhcnRpYWxTV2l0aFJlc3BlY3RUb1gpICogd2lkdGg7CisgICAgbGV0
IG12eCA9IE1hdGguYWJzKHBhcnRpYWxUV2l0aFJlc3BlY3RUb1gpICogaGVpZ2h0OworICAgIGxl
dCBtd3ggPSBNYXRoLmFicyhwYXJ0aWFsUldpdGhSZXNwZWN0VG9YKSAqIGRlcHRoOworICAgIGxl
dCBtdXkgPSBNYXRoLmFicyhwYXJ0aWFsU1dpdGhSZXNwZWN0VG9ZKSAqIHdpZHRoOworICAgIGxl
dCBtdnkgPSBNYXRoLmFicyhwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZKSAqIGhlaWdodDsKKyAgICBs
ZXQgbXd5ID0gTWF0aC5hYnMocGFydGlhbFJXaXRoUmVzcGVjdFRvWSkgKiBkZXB0aDsKKworICAg
IGxldCBmeCA9IE1hdGguc3FydCgyKSAqIChtdXggKyBtdnggKyBtd3gpOworICAgIGxldCBmeSA9
IE1hdGguc3FydCgyKSAqIChtdXkgKyBtdnkgKyBtd3kpOworCisgICAgbGV0IHJob1ggPSBmeDsK
KyAgICBsZXQgcmhvWSA9IGZ5OworICAgIGxldCByaG9NYXggPSBNYXRoLm1heChyaG9YLCByaG9Z
KTsKKyAgICBsZXQgcmhvTWluID0gTWF0aC5taW4ocmhvWCwgcmhvWSk7CisKKyAgICBsZXQgbWF4
QW5pc28gPSBNYXRoLm1pbihzYW1wbGVyTWF4QW5pc290cm9weSwgZGV2aWNlTWF4QW5pc290cm9w
eSk7CisKKyAgICBsZXQgZXRhOworICAgIGlmIChyaG9NYXggPT0gMCAmJiByaG9NaW4gPT0gMCkK
KyAgICAgICAgZXRhID0gMTsKKyAgICBlbHNlIGlmIChyaG9NaW4gPT0gMCkKKyAgICAgICAgZXRh
ID0gbWF4QW5pc287CisgICAgZWxzZQorICAgICAgICBldGEgPSBNYXRoLm1pbihyaG9NYXggLyBy
aG9NaW4sIG1heEFuaXNvKTsKKworICAgIGxldCBOID0gTWF0aC5jZWlsKGV0YSk7CisgICAgcmV0
dXJuIFtyaG9NYXgsIHJob01pbiwgZXRhLCBOXTsKK30KKworZnVuY3Rpb24gbGV2ZWxPZkRldGFp
bE9wZXJhdGlvbihkZXZpY2VNYXhTYW1wbGVyTG9kQmlhcywgbG9kRnJvbUZ1bmN0aW9uT3BlcmFu
ZCwgbG9kTWluRnJvbUZ1bmN0aW9uT3BlcmFuZCwgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIHNh
bXBsZXJCaWFzLCBzYW1wbGVyTG9kTWluLCBzYW1wbGVyTG9hZE1heCwgcmhvTWF4LCBldGEpCit7
CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuNworICAgIGlmIChiaWFzRnJvbUZ1
bmN0aW9uT3BlcmFuZCA9PSB1bmRlZmluZWQpCisgICAgICAgIGJpYXNGcm9tRnVuY3Rpb25PcGVy
YW5kID0gMDsKKworICAgIGxldCBsYW1iZGFCYXNlID0gbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCAh
PSB1bmRlZmluZWQgPyBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kIDogTWF0aC5sb2cyKHJob01heCAv
IGV0YSk7CisgICAgbGV0IGxhbWJkYVByaW1lID0gbGFtYmRhQmFzZSArIE1hdGgubWluKE1hdGgu
bWF4KHNhbXBsZXJCaWFzICsgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIC1kZXZpY2VNYXhTYW1w
bGVyTG9kQmlhcyksIGRldmljZU1heFNhbXBsZXJMb2RCaWFzKTsKKyAgICBsZXQgbG9kTWluID0g
TWF0aC5tYXgoc2FtcGxlckxvZE1pbiwgbG9kTWluRnJvbUZ1bmN0aW9uT3BlcmFuZCk7CisgICAg
bGV0IGxvZE1heCA9IHNhbXBsZXJMb2FkTWF4OworICAgIGxldCBsYW1iZGE7CisgICAgaWYgKGxh
bWJkYVByaW1lID4gbG9kTWF4KQorICAgICAgICBsYW1iZGEgPSBsb2RNYXg7CisgICAgZWxzZSBp
ZiAobG9kTWluIDw9IGxhbWJkYVByaW1lICYmIGxhbWJkYVByaW1lIDw9IGxvZE1heCkKKyAgICAg
ICAgbGFtYmRhID0gbGFtYmRhUHJpbWU7CisgICAgZWxzZSBpZiAobGFtYmRhUHJpbWUgPCBsb2RN
aW4pCisgICAgICAgIGxhbWJkYSA9IGxvZE1pbjsKKyAgICBlbHNlCisgICAgICAgIHRocm93IG5l
dyBFcnJvcigibG9kTWluID49IGxvZE1heCIpOworICAgIHJldHVybiBsYW1iZGE7Cit9CisKK2Z1
bmN0aW9uIGltYWdlTGV2ZWxTZWxlY3Rpb24oYmFzZU1pcExldmVsLCBsZXZlbENvdW50LCBtaXBt
YXBNb2RlLCBsYW1iZGEpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuNwor
ICAgIGZ1bmN0aW9uIG5lYXJlc3QoZFByaW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE1hdGgu
Y2VpbChkUHJpbWUgKyAwLjUpIC0gMTsKKyAgICB9CisKKyAgICBsZXQgcSA9IGxldmVsQ291bnQg
LSAxOworICAgIGxldCBkUHJpbWUgPSBiYXNlTWlwTGV2ZWwgKyBNYXRoLm1pbihNYXRoLm1heChs
YW1iZGEsIDApLCBxKTsKKyAgICBsZXQgZGw7CisgICAgaWYgKG1pcG1hcE1vZGUgPT0gIm5lYXJl
c3QiKQorICAgICAgICBkbCA9IG5lYXJlc3QoZFByaW1lKTsKKyAgICBlbHNlCisgICAgICAgIGRs
ID0gZFByaW1lOworICAgIGlmIChtaXBtYXBNb2RlID09ICJuZWFyZXN0IikKKyAgICAgICAgcmV0
dXJuIGRsOworICAgIGVsc2UgeworICAgICAgICBsZXQgZEhpID0gTWF0aC5mbG9vcihkbCk7Cisg
ICAgICAgIGxldCBkTG93ID0gTWF0aC5taW4oZEhpICsgMSwgcSk7CisgICAgICAgIGxldCBkZWx0
YSA9IGRsIC0gZEhpOworICAgICAgICByZXR1cm4gW2RIaSwgZExvdywgZGVsdGFdOworICAgIH0K
K30KKworZnVuY3Rpb24gc3RycWFUb1VWV0FUcmFuc2Zvcm1hdGlvbihzLCB0LCByLCB3aWR0aCwg
aGVpZ2h0LCBkZXB0aCkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi44Cisg
ICAgbGV0IHUgPSBzICogd2lkdGg7CisgICAgbGV0IHYgPSB0ICogaGVpZ2h0OworICAgIGxldCB3
ID0gciAqIGRlcHRoOworICAgIHJldHVybiBbdSwgdiwgd107Cit9CisKK2Z1bmN0aW9uIHV2d2FU
b0lKS0xOVHJhbnNmb3JtYXRpb25BbmRBcnJheUxheWVyU2VsZWN0aW9uKGxheWVyQ291bnQsIGJh
c2VBcnJheUxheWVyLCBmaWx0ZXIsIHUsIHYsIHcsIGEsIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUsp
Cit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjcuMQorCisgICAgaWYgKGRlbHRh
SSA9PSB1bmRlZmluZWQpCisgICAgICAgIGRlbHRhSSA9IDA7CisgICAgaWYgKGRlbHRhSiA9PSB1
bmRlZmluZWQpCisgICAgICAgIGRlbHRhSiA9IDA7CisgICAgaWYgKGRlbHRhSyA9PSB1bmRlZmlu
ZWQpCisgICAgICAgIGRlbHRhSyA9IDA7CisKKyAgICBmdW5jdGlvbiBybmUoYSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBNYXRoLmZsb29yKGEgKyAwLjUpOworICAgIH0KKyAgICBsZXQgbCA9IE1h
dGgubWluKE1hdGgubWF4KHJuZShhKSwgMCksIGxheWVyQ291bnQgLSAxKSArIGJhc2VBcnJheUxh
eWVyOworICAgIGxldCBpOworICAgIGxldCBqOworICAgIGxldCBrOworICAgIGlmIChmaWx0ZXIg
PT0gIm5lYXJlc3QiKSB7CisgICAgICAgIGkgPSBNYXRoLmZsb29yKHUpOworICAgICAgICBqID0g
TWF0aC5mbG9vcih2KTsKKyAgICAgICAgayA9IE1hdGguZmxvb3Iodyk7CisgICAgICAgIAorICAg
ICAgICBpICs9IGRlbHRhSTsKKyAgICAgICAgaiArPSBkZWx0YUo7CisgICAgICAgIGsgKz0gZGVs
dGFLOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIFtpLCBqLCBrLCBsXTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBpZiAoZmlsdGVyICE9ICJsaW5lYXIiKQorICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJVbmtub3duIGZpbHRlciIpOworICAgICAgICBsZXQgaTAgPSBNYXRoLmZsb29yKHUg
LSAwLjUpOworICAgICAgICBsZXQgaTEgPSBpMCArIDE7CisgICAgICAgIGxldCBqMCA9IE1hdGgu
Zmxvb3IodiAtIDAuNSk7CisgICAgICAgIGxldCBqMSA9IGowICsgMTsKKyAgICAgICAgbGV0IGsw
ID0gTWF0aC5mbG9vcih3IC0gMC41KTsKKyAgICAgICAgbGV0IGsxID0gazAgKyAxOworICAgICAg
ICBsZXQgYWxwaGEgPSAodSAtIDAuNSkgLSBpMDsKKyAgICAgICAgbGV0IGJldGEgPSAodiAtIDAu
NSkgLSBqMDsKKyAgICAgICAgbGV0IGdhbW1hID0gKHcgLSAwLjUpIC0gazA7CisgICAgICAgIAor
ICAgICAgICBpMCArPSBkZWx0YUk7CisgICAgICAgIGkxICs9IGRlbHRhSTsKKyAgICAgICAgajAg
Kz0gZGVsdGFKOworICAgICAgICBqMSArPSBkZWx0YUo7CisgICAgICAgIGswICs9IGRlbHRhSzsK
KyAgICAgICAgazEgKz0gZGVsdGFLOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIFtpMCwgaTEs
IGowLCBqMSwgazAsIGsxLCBsLCBhbHBoYSwgYmV0YSwgZ2FtbWFdOworICAgIH0KK30KKworZnVu
Y3Rpb24gaW50ZWdlclRleGVsQ29vcmRpbmF0ZU9wZXJhdGlvbnMoYmFzZU1pcExldmVsLCBsZXZl
bENvdW50LCBsZXZlbEJhc2UsIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQpCit7CisgICAgLy8gVnVs
a2FuIDEuMS44MyBzZWN0aW9uIDE1LjgKKyAgICBsZXQgZCA9IGxldmVsQmFzZSArIGxvZEZyb21G
dW5jdGlvbk9wZXJhbmQ7CisgICAgaWYgKGQgPCBiYXNlTWlwTGV2ZWwgfHwgZCA+PSBiYXNlTWlw
TGV2ZWwgKyBsZXZlbENvdW50KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNlbGVjdGVkIGxl
dmVsIGRvZXMgbm90IGxpZSBpbnNpZGUgdGhlIGltYWdlIik7CisgICAgcmV0dXJuIGQ7Cit9CisK
K2Z1bmN0aW9uIHdyYXBwaW5nT3BlcmF0aW9uKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBhZGRyZXNz
TW9kZVUsIGFkZHJlc3NNb2RlViwgYWRkcmVzc01vZGVXLCBpLCBqLCBrKQoreworICAgIC8vIFZ1
bGthbiAxLjEuODMgc2VjdGlvbiAxNS45LjEKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGN1YmUg
bWFwIGhhbmRsaW5nCisgICAgZnVuY3Rpb24gdHJhbnNmb3JtKGFkZHJlc3NNb2RlLCBzaXplLCBp
KQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gbWlycm9yKG4pIHsKKyAgICAgICAgICAgIGlmIChu
ID49IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIG47CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgcmV0dXJuIC0oMSArIG4pOworICAgICAgICB9CisgICAgICAgIHN3aXRjaCAo
YWRkcmVzc01vZGUpIHsKKyAgICAgICAgICAgIGNhc2UgImNsYW1wVG9FZGdlIjoKKyAgICAgICAg
ICAgICAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoaSwgMCksIHNpemUgLSAxKTsKKyAgICAg
ICAgICAgIGNhc2UgInJlcGVhdCI6CisgICAgICAgICAgICAgICAgcmV0dXJuIGkgJSBzaXplOwor
ICAgICAgICAgICAgY2FzZSAibWlycm9yUmVwZWF0IjoKKyAgICAgICAgICAgICAgICByZXR1cm4g
KHNpemUgLSAxKSAtIG1pcnJvcigoaSAlICgyICogc2l6ZSkpIC0gc2l6ZSk7CisgICAgICAgICAg
ICBjYXNlICJjbGFtcFRvQm9yZGVyQ29sb3IiOgorICAgICAgICAgICAgICAgIHJldHVybiBNYXRo
Lm1pbihNYXRoLm1heChpLCAtMSksIHNpemUpOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gYWRkcmVzcyBtb2RlIik7CisgICAg
ICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFt0cmFuc2Zvcm0oYWRkcmVzc01vZGVVLCB3aWR0aCwg
aSksIHRyYW5zZm9ybShhZGRyZXNzTW9kZVYsIGhlaWdodCwgaiksIHRyYW5zZm9ybShhZGRyZXNz
TW9kZVcsIGRlcHRoLCBrKV07Cit9CisKK2Z1bmN0aW9uIHRleGVsR2F0aGVyaW5nKCkKK3sKKyAg
ICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOS4yCisgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0aGlzCisgICAgLypsZXQgdGF1UiA9IDsKKyAgICBsZXQgdGF1RyA9IDsKKyAgICBsZXQgdGF1
QiA9IDsKKyAgICBsZXQgdGF1QSA9IDsqLworfQorCitmdW5jdGlvbiB0ZXhlbEZpbHRlcmluZygK
KyAgICBkZXZpY2VNYXhBbmlzb3Ryb3B5LAorICAgIGRldmljZU1heFNhbXBsZXJMb2RCaWFzLAor
ICAgIGJhc2VNaXBMZXZlbCwKKyAgICBiYXNlQXJyYXlMYXllciwKKyAgICB0ZXh0dXJlLAorICAg
IHNhbXBsZXIsCisgICAgc2FtcGxlckJpYXMsCisgICAgcywgdCwgciwgYSwKKyAgICBkZWx0YUks
IGRlbHRhSiwgZGVsdGFLLAorICAgIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgbG9kTWlu
RnJvbUZ1bmN0aW9uT3BlcmFuZCwKKyAgICBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwKKyAgICBk
ZHgsIGRkeSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOS4zCisKKyAgICAv
LyBUaGUgc3BlYyB1c2VzIGRpZmZlcmVudCBuYW1lcyB0aGFuIFdlYkdQVSBkb2VzLgorICAgIGxl
dCBhZGRyZXNzTW9kZVUgPSBzYW1wbGVyLnJBZGRyZXNzTW9kZTsKKyAgICBsZXQgYWRkcmVzc01v
ZGVWID0gc2FtcGxlci5zQWRkcmVzc01vZGU7CisgICAgbGV0IGFkZHJlc3NNb2RlVyA9IHNhbXBs
ZXIudEFkZHJlc3NNb2RlOworCisgICAgLy8gRklYTUU6IE1ha2UgdGhpcyB3b3JrIHdpdGggY3Vi
ZW1hcHMKKyAgICBsZXQgcGFydGlhbFNXaXRoUmVzcGVjdFRvWCA9IDA7CisgICAgbGV0IHBhcnRp
YWxUV2l0aFJlc3BlY3RUb1ggPSAwOworICAgIGxldCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9YID0g
MDsKKyAgICBpZiAoZGR4ICE9IHVuZGVmaW5lZCkgeworICAgICAgICBwYXJ0aWFsU1dpdGhSZXNw
ZWN0VG9YID0gZGR4WzBdOworICAgICAgICBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YID0gZGR4WzFd
OworICAgICAgICBwYXJ0aWFsUldpdGhSZXNwZWN0VG9YID0gZGR4WzJdOworICAgIH0KKyAgICBs
ZXQgcGFydGlhbFNXaXRoUmVzcGVjdFRvWSA9IDA7CisgICAgbGV0IHBhcnRpYWxUV2l0aFJlc3Bl
Y3RUb1kgPSAwOworICAgIGxldCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9ZID0gMDsKKyAgICBpZiAo
ZGR5ICE9IHVuZGVmaW5lZCkgeworICAgICAgICBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9ZID0gZGR5
WzBdOworICAgICAgICBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZID0gZGR5WzFdOworICAgICAgICBw
YXJ0aWFsUldpdGhSZXNwZWN0VG9ZID0gZGR5WzJdOworICAgIH0KKyAgICBsZXQgW3Job01heCwg
cmhvTWluLCBldGEsIE5dID0gc2NhbGVGYWN0b3JPcGVyYXRpb24oZGV2aWNlTWF4QW5pc290cm9w
eSwgdGV4dHVyZS53aWR0aCwgdGV4dHVyZS5oZWlnaHQsIHRleHR1cmUuZGVwdGgsIHNhbXBsZXIu
bWF4QW5pc290cm9weSwgcGFydGlhbFNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRXaXRoUmVzcGVj
dFRvWCwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNXaXRoUmVzcGVjdFRvWSwgcGFy
dGlhbFRXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWSk7CisgICAgbGV0IGxh
bWJkYSA9IGxldmVsT2ZEZXRhaWxPcGVyYXRpb24oZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMsIGxv
ZEZyb21GdW5jdGlvbk9wZXJhbmQsIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQsIGJpYXNGcm9t
RnVuY3Rpb25PcGVyYW5kLCBzYW1wbGVyQmlhcywgc2FtcGxlci5sb2RNaW5DbGFtcCwgc2FtcGxl
ci5sb2RNYXhDbGFtcCwgcmhvTWF4LCBldGEpOworCisgICAgbGV0IGZpbHRlcjsKKyAgICBpZiAo
bGFtYmRhIDw9IDApCisgICAgICAgIGZpbHRlciA9IHNhbXBsZXIubWFnRmlsdGVyOworICAgIGVs
c2UKKyAgICAgICAgZmlsdGVyID0gc2FtcGxlci5taW5GaWx0ZXI7CisKKyAgICBmdW5jdGlvbiBj
b21wdXRlVGF1KGxldmVsKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gcmVkdWNlKC4uLnZhbHVl
cykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggJSAyICE9IDApCisg
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJEb24ndCBoYXZlIGEgd2VpZ2h0IGNvcnJl
c3BvbmRpbmcgdG8gZWFjaCB2YWx1ZSIpOworICAgICAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGgg
PCAyKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRG9uJ3QgaGF2ZSBlbm91Z2gg
dGhpbmdzIHRvIGNhbGN1bGF0ZSBhbiBhdmVyYWdlIik7CisgICAgICAgICAgICBsZXQgc3VtOwor
ICAgICAgICAgICAgaWYgKHZhbHVlc1sxXSBpbnN0YW5jZW9mIEFycmF5KSB7CisgICAgICAgICAg
ICAgICAgc3VtID0gW107CisgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1
ZXNbMV0ubGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgICAgIHN1bS5wdXNoKDApOworICAg
ICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgc3VtID0gMDsKKyAgICAgICAgICAgIGZv
ciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aCAvIDI7ICsraSkgeworICAgICAgICAgICAg
ICAgIGxldCB3ZWlnaHQgPSB2YWx1ZXNbMiAqIGldOworICAgICAgICAgICAgICAgIGxldCBjb2xv
ciA9IHZhbHVlc1syICogaSArIDFdOworICAgICAgICAgICAgICAgIGlmIChjb2xvciBpbnN0YW5j
ZW9mIEFycmF5KSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29s
b3IubGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgICAgICAgICBzdW1baV0gKz0gd2VpZ2h0
ICogY29sb3JbaV07CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAg
IHN1bSArPSB3ZWlnaHQgKiBjb2xvcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVy
biBzdW07CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhY2Nlc3NDb2xvcih3aWR0aCwg
aGVpZ2h0LCBkZXB0aCwgbCwgaSwgaiwgaykKKyAgICAgICAgeworICAgICAgICAgICAgZnVuY3Rp
b24gc2hvdWxkQmVCb3JkZXIodmFsdWUsIG1heCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICBpZiAodmFsdWUgPCAtMSB8fCB2YWx1ZSA+IG1heCkKKyAgICAgICAgICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJPdXQtb2YtYm91bmRzIHRleHR1cmUgcmVhZCIpOworICAgICAgICAg
ICAgICAgIHJldHVybiB2YWx1ZSA9PSAtMSB8fCB2YWx1ZSA9PSBtYXg7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGxldCBbd3JhcHBlZEksIHdyYXBwZWRKLCB3cmFwcGVkS10gPSB3cmFw
cGluZ09wZXJhdGlvbih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgYWRkcmVzc01vZGVVLCBhZGRyZXNz
TW9kZVYsIGFkZHJlc3NNb2RlVywgaSwgaiwgaykKKyAgICAgICAgICAgIGlmIChzaG91bGRCZUJv
cmRlcih3cmFwcGVkSSwgd2lkdGgpIHx8IHNob3VsZEJlQm9yZGVyKHdyYXBwZWRKLCBoZWlnaHQp
IHx8IHNob3VsZEJlQm9yZGVyKHdyYXBwZWRLLCBkZXB0aCkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIHNhbXBsZXIuY2FsY3VsYXRlQm9yZGVyQ29sb3IodGV4dHVyZS5pbm5lclR5cGUpOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0dXJlLmVsZW1lbnQobCwg
bGV2ZWwsIGssIGosIGkpOworICAgICAgICB9CisKKyAgICAgICAgbGV0IFt1LCB2LCB3XSA9IHN0
cnFhVG9VVldBVHJhbnNmb3JtYXRpb24ocywgdCwgciwgdGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2
ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChs
ZXZlbCkpOworICAgICAgICBpZiAoZmlsdGVyID09ICJuZWFyZXN0IikgeworICAgICAgICAgICAg
bGV0IFtpLCBqLCBrLCBsXSA9IHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25BbmRBcnJheUxheWVy
U2VsZWN0aW9uKHRleHR1cmUubGF5ZXJDb3VudCwgYmFzZUFycmF5TGF5ZXIsIGZpbHRlciwgdSwg
diwgdywgYSwgZGVsdGFJLCBkZWx0YUosIGRlbHRhSyk7CisgICAgICAgICAgICByZXR1cm4gYWNj
ZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2
ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGksIGosIGspOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGZpbHRlciAhPSAibGluZWFyIikKKyAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZmlsdGVyIik7CisgICAgICAgICAg
ICBbaTAsIGkxLCBqMCwgajEsIGswLCBrMSwgbCwgYWxwaGEsIGJldGEsIGdhbW1hXSA9IHV2d2FU
b0lKS0xOVHJhbnNmb3JtYXRpb25BbmRBcnJheUxheWVyU2VsZWN0aW9uKHRleHR1cmUubGF5ZXJD
b3VudCwgYmFzZUFycmF5TGF5ZXIsIGZpbHRlciwgdSwgdiwgdywgYSwgZGVsdGFJLCBkZWx0YUos
IGRlbHRhSyk7CisgICAgICAgICAgICBsZXQgY29sb3IwMDAgPSBhY2Nlc3NDb2xvcih0ZXh0dXJl
LndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1
cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTAsIGowLCBrMCk7CisgICAgICAgICAgICBsZXQg
Y29sb3IxMDAgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1
cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwg
aTEsIGowLCBrMCk7CisgICAgICAgICAgICBsZXQgY29sb3IwMTAgPSBhY2Nlc3NDb2xvcih0ZXh0
dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRl
eHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTAsIGoxLCBrMCk7CisgICAgICAgICAgICBs
ZXQgY29sb3IxMTAgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRl
eHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwg
bCwgaTEsIGoxLCBrMCk7CisgICAgICAgICAgICBsZXQgY29sb3IwMDEgPSBhY2Nlc3NDb2xvcih0
ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCks
IHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTAsIGowLCBrMSk7CisgICAgICAgICAg
ICBsZXQgY29sb3IxMDEgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCks
IHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVs
KSwgbCwgaTEsIGowLCBrMSk7CisgICAgICAgICAgICBsZXQgY29sb3IwMTEgPSBhY2Nlc3NDb2xv
cih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZl
bCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTAsIGoxLCBrMSk7CisgICAgICAg
ICAgICBsZXQgY29sb3IxMTEgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZl
bCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxl
dmVsKSwgbCwgaTEsIGoxLCBrMSk7CisgICAgICAgICAgICBzd2l0Y2ggKHRleHR1cmUuZGltZW5z
aW9uKSB7CisgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICBsZXQg
Y29sb3IwID0gY29sb3IwMTE7CisgICAgICAgICAgICAgICAgICAgIGxldCBjb2xvcjEgPSBjb2xv
cjExMTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZHVjZSgxIC0gYWxwaGEsIGNvbG9y
MCwgYWxwaGEsIGNvbG9yMSk7CisgICAgICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAg
ICAgICAgICBsZXQgY29sb3IwMCA9IGNvbG9yMDAxOworICAgICAgICAgICAgICAgICAgICBsZXQg
Y29sb3IxMCA9IGNvbG9yMTAxOworICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IwMSA9IGNv
bG9yMDExOworICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IxMSA9IGNvbG9yMTExOworICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gcmVkdWNlKCgxIC0gYWxwaGEpICogKDEgLSBiZXRhKSwg
Y29sb3IwMCwgYWxwaGEgKiAoMSAtIGJldGEpLCBjb2xvcjEwLCAoMSAtIGFscGhhKSAqIGJldGEs
IGNvbG9yMDEsIGFscGhhICogYmV0YSwgY29sb3IxMSk7CisgICAgICAgICAgICAgICAgY2FzZSAz
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVkdWNlKAorICAgICAgICAgICAgICAgICAg
ICAgICAgKDEgLSBhbHBoYSkgKiAoMSAtIGJldGEpICogKDEgLSBnYW1tYSksIGNvbG9yMDAwLAor
ICAgICAgICAgICAgICAgICAgICAgICAgYWxwaGEgKiAoMSAtIGJldGEpICogKDEgLSBnYW1tYSks
IGNvbG9yMTAwLAorICAgICAgICAgICAgICAgICAgICAgICAgKDEgLSBhbHBoYSkgKiBiZXRhICog
KDEgLSBnYW1tYSksIGNvbG9yMDEwLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxwaGEgKiBi
ZXRhICogKDEgLSBnYW1tYSksIGNvbG9yMTEwLAorICAgICAgICAgICAgICAgICAgICAgICAgKDEg
LSBhbHBoYSkgKiAoMSAtIGJldGEpICogZ2FtbWEsIGNvbG9yMDAxLAorICAgICAgICAgICAgICAg
ICAgICAgICAgYWxwaGEgKiAoMSAtIGJldGEpICogZ2FtbWEsIGNvbG9yMTAxLAorICAgICAgICAg
ICAgICAgICAgICAgICAgKDEgLSBhbHBoYSkgKiBiZXRhICogZ2FtbWEsIGNvbG9yMDExLAorICAg
ICAgICAgICAgICAgICAgICAgICAgYWxwaGEgKiBiZXRhICogZ2FtbWEsIGNvbG9yMTExKTsKKyAg
ICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIlVua25vd24gZGltZW5zaW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBpZiAoc2FtcGxlci5taXBGaWx0ZXIgPT0gIm5lYXJlc3QiKSB7CisgICAgICAgIGxl
dCBpbWFnZUxldmVsID0gaW1hZ2VMZXZlbFNlbGVjdGlvbihiYXNlTWlwTGV2ZWwsIHRleHR1cmUu
bGV2ZWxDb3VudCwgc2FtcGxlci5taXBGaWx0ZXIsIGxhbWJkYSk7CisgICAgICAgIHJldHVybiBj
b21wdXRlVGF1KGltYWdlTGV2ZWwpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChzYW1wbGVy
Lm1pcEZpbHRlciAhPSAibGluZWFyIikKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5r
bm93biBmaWx0ZXIiKTsKKyAgICAgICAgbGV0IFtkSGksIGRMb3csIGRlbHRhXSA9IGltYWdlTGV2
ZWxTZWxlY3Rpb24oYmFzZU1pcExldmVsLCB0ZXh0dXJlLmxldmVsQ291bnQsIHNhbXBsZXIubWlw
RmlsdGVyLCBsYW1iZGEpOworICAgICAgICByZXR1cm4gcmVkdWNlKDEgLSBkZWx0YSwgY29tcHV0
ZVRhdShkSGkpLCBkZWx0YSwgY29tcHV0ZVRhdShkTG8pKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9u
IHNhbXBsZVRleHR1cmUodGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRlbHRhLCBiaWFzRnJv
bUZ1bmN0aW9uT3BlcmFuZCwgZGR4LCBkZHksIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsIGRyZWYp
Cit7CisgICAgbGV0IHMgPSBsb2NhdGlvblswXTsKKyAgICBsZXQgdCA9IGxvY2F0aW9uWzFdOwor
ICAgIGxldCByID0gbG9jYXRpb25bMl07CisgICAgbGV0IHEgPSBsb2NhdGlvblszXTsKKyAgICBs
ZXQgYSA9IGxvY2F0aW9uWzRdOworCisgICAgbGV0IGRlbHRhSSA9IHVuZGVmaW5lZDsKKyAgICBs
ZXQgZGVsdGFKID0gdW5kZWZpbmVkOworICAgIGxldCBkZWx0YUsgPSB1bmRlZmluZWQ7CisgICAg
aWYgKGRlbHRhICE9IHVuZGVmaW5lZCkgeworICAgICAgICBkZWx0YUkgPSBkZWx0YVswXTsKKyAg
ICAgICAgZGVsdGFKID0gZGVsdGFbMV07CisgICAgICAgIGRlbHRhSyA9IGRlbHRhWzJdOworICAg
IH0KKworICAgIFtzLCB0LCByLCBkcmVmXSA9IHByb2plY3Rpb25PcGVyYXRpb24ocywgdCwgciwg
ZHJlZiwgcSk7CisgICAgbGV0IHJlc3VsdCA9IHRleGVsRmlsdGVyaW5nKAorICAgICAgICBOdW1i
ZXIuTUFYX1ZBTFVFLAorICAgICAgICBOdW1iZXIuTUFYX1ZBTFVFLAorICAgICAgICAwLAorICAg
ICAgICAwLAorICAgICAgICB0ZXh0dXJlLAorICAgICAgICBzYW1wbGVyLAorICAgICAgICAwLAor
ICAgICAgICBzLCB0LCByLCBhLAorICAgICAgICBkZWx0YUksIGRlbHRhSiwgZGVsdGFLLAorICAg
ICAgICBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgICAgICAtTnVtYmVyLk1BWF9WQUxVRSwK
KyAgICAgICAgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgICAgIGRkeCwgZGR5KTsKKyAg
ICBpZiAoZHJlZiAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9m
IEFycmF5KQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJEZXB0aCBjb21wYXJpc29uIG5v
dCBzdXBwb3J0ZWQgb24gbXVsdGljaGFubmVsIHRleHR1cmVzIik7CisgICAgICAgIHJlc3VsdCA9
IGRlcHRoQ29tcGFyZU9wZXJhdGlvbihkcmVmLCByZXN1bHQsIHNhbXBsZXIuY29tcGFyZUZ1bmN0
aW9uKTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAvLyBGSVhNRTogRmlndXJlIG91
dCB3aGF0IHRvIGRvIHdpdGggYW5pc290cm9weQorICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IGhv
dyB0byBkbyBtdWx0aXNhbXBsaW5nLgorICAgIC8vIEZJWE1FOiBDYXN0IHRoZSByZXN1bHQgYmFj
ayB0byB0aGUgY29ycmVjdCB0eXBlLgorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvaW5kZXguaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2lu
ZGV4Lmh0bWwKaW5kZXggNjVhODY0MTFiM2U3NzBiNTU3YjQxYWNjN2U0MTRkZWY0MjQwMzAxMy4u
NDNiZTdhY2UyY2IzNzhhNWI4MWVlYWM2YWFmMWEyOWRmODFiYmMzNiAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbAorKysgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCkBAIC0xMTUsNiArMTE1LDcgQEAKIDxzY3JpcHQg
c3JjPSJSZXR1cm4uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJldHVybkNoZWNrZXIuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJldHVybkV4Y2VwdGlvbi5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iU2FtcGxlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3RhbmRhcmRM
aWJyYXJ5LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTdGF0ZW1lbnRDbG9uZXIuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IlN0cnVjdExheW91dEJ1aWxkZXIuanMiPjwvc2NyaXB0PgpA
QCAtMTI3LDYgKzEyOCw4IEBACiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rv
ck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRGVmYXVsdENv
bnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRlcm5hcnlFeHBy
ZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUZXh0dXJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJUZXh0dXJlT3BlcmF0aW9ucy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iVHJhcFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348717</attachid>
            <date>2018-09-01 14:03:27 -0700</date>
            <delta_ts>2018-09-01 15:18:44 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188940-20180901140326.patch</filename>
            <type>text/plain</type>
            <size>187586</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTc5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2Q4OThkNDE0Y2U2OGY4MWEyM2UzYmQyMTU2Zjc1ZDNl
MjMwZTkzOC4uMTBkZjgxMTUzMDMyZWM5NDI0MmNmMTZiZGMxZGY4NDdjZTRhMTRkMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
OSBAQAorMjAxOC0wOC0zMSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRleHR1cmUgdHlwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNp
Y3MuanM6CisgICAgICAgIChJbnRyaW5zaWNzLik6CisgICAgICAgIChJbnRyaW5zaWNzLmNoZWNr
RmFsc2UpOgorICAgICAgICAoSW50cmluc2ljcy5ib3hWZWN0b3IpOgorICAgICAgICAoSW50cmlu
c2ljcy51bmJveFZlY3Rvcik6CisgICAgICAgIChJbnRyaW5zaWNzKToKKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qczoKKyAgICAgICAgKGxldC5zdGFuZGFyZExpYnJh
cnkpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAobWFrZVNhbXBs
ZXIpOgorICAgICAgICAobWFrZTFEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMURUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMkRUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTNEVGV4dHVyZSk6CisgICAgICAgIChtYWtlVGV4dHVyZUN1YmUp
OgorICAgICAgICAobWFrZVJXMURUZXh0dXJlKToKKyAgICAgICAgKG1ha2VSVzFEVGV4dHVyZUFy
cmF5KToKKyAgICAgICAgKG1ha2VSVzJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlUlcyRFRleHR1
cmVBcnJheSk6CisgICAgICAgIChtYWtlUlczRFRleHR1cmUpOgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1RleHR1cmUuanM6IEFkZGVkLgorICAgICAgICAoVGV4dHVyZSk6Cisg
ICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQgZGltZW5zaW9uKToKKyAgICAgICAgKFRleHR1
cmUucHJvdG90eXBlLmdldCB3aWR0aCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aGVpZ2h0KToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkZXB0aCk6CisgICAgICAg
IChUZXh0dXJlLnByb3RvdHlwZS5nZXQgbGV2ZWxDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnBy
b3RvdHlwZS5nZXQgbGF5ZXJDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aW5uZXJUeXBlKToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkYXRhKToKKyAgICAg
ICAgKFRleHR1cmUucHJvdG90eXBlLmVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUu
cHJvdG90eXBlLnNldEVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUxRCk6CisgICAg
ICAgIChUZXh0dXJlMUQucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJl
MUQucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlw
ZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlwZS5lbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUxRC5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0
dXJlMURBcnJheSk6CisgICAgICAgIChUZXh0dXJlMURBcnJheS5wcm90b3R5cGUud2lkdGhBdExl
dmVsKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToK
KyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTFEQXJyYXkucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTFE
QXJyYXkucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEKToKKyAgICAg
ICAgKFRleHR1cmUyRC5wcm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUy
RC5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBl
LmRlcHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBlLmVsZW1lbnQpOgor
ICAgICAgICAoVGV4dHVyZTJELnByb3RvdHlwZS5zZXRFbGVtZW50KToKKyAgICAgICAgKFRleHR1
cmUyREFycmF5KToKKyAgICAgICAgKFRleHR1cmUyREFycmF5LnByb3RvdHlwZS53aWR0aEF0TGV2
ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgor
ICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMkRBcnJheS5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMkRB
cnJheS5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlM0QpOgorICAgICAg
ICAoVGV4dHVyZTNELnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTNE
LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUuZWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0QucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVy
ZUN1YmUpOgorICAgICAgICAoVGV4dHVyZUN1YmUucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6Cisg
ICAgICAgIChUZXh0dXJlQ3ViZS5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlQ3ViZS5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmVDdWJl
LnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmVDdWJlLnByb3RvdHlwZS5zZXRF
bGVtZW50KToKKyAgICAgICAgKFRleHR1cmUxRFJXKToKKyAgICAgICAgKFRleHR1cmUxRFJXLnBy
b3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmhl
aWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmRlcHRoQXRMZXZl
bCk6CisgICAgICAgIChUZXh0dXJlMURSVy5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChU
ZXh0dXJlMURSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMURBcnJh
eVJXKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6
CisgICAgICAgIChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAg
ICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUx
REFycmF5UlcucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEUlcpOgor
ICAgICAgICAoVGV4dHVyZTJEUlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlMkRSVy5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkRS
Vy5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlw
ZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlwZS5zZXRFbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUyREFycmF5UlcpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5w
cm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90
eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90eXBlLmVsZW1l
bnQpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0RSVyk6CisgICAgICAgIChUZXh0dXJlM0RSVy5wcm90b3R5cGUud2lk
dGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVs
KToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTNEUlcucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTNEUlcu
cHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1RleHR1cmVPcGVyYXRpb25zLmpzOiBBZGRlZC4KKyAgICAgICAgKGRlcHRoQ29tcGFyZU9wZXJh
dGlvbik6CisgICAgICAgIChjb252ZXJzaW9uVG9SR0JBKToKKyAgICAgICAgKHByb2plY3Rpb25P
cGVyYXRpb24pOgorICAgICAgICAoY3ViZU1hcEZhY2VTZWxlY3Rpb24pOgorICAgICAgICAoY3Vi
ZU1hcENvb3JkaW5hdGVUcmFuc2Zvcm1hdGlvbik6CisgICAgICAgIChjdWJlTWFwRGVyaXZhdGl2
ZVRyYW5zZm9ybWF0aW9uKToKKyAgICAgICAgKHNjYWxlRmFjdG9yT3BlcmF0aW9uKToKKyAgICAg
ICAgKGxldmVsT2ZEZXRhaWxPcGVyYXRpb24pOgorICAgICAgICAobmVhcmVzdCk6CisgICAgICAg
IChpbWFnZUxldmVsU2VsZWN0aW9uKToKKyAgICAgICAgKHN0cnFhVG9VVldBVHJhbnNmb3JtYXRp
b24pOgorICAgICAgICAocm5lKToKKyAgICAgICAgKHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25B
bmRBcnJheUxheWVyU2VsZWN0aW9uKToKKyAgICAgICAgKGludGVnZXJUZXhlbENvb3JkaW5hdGVP
cGVyYXRpb25zKToKKyAgICAgICAgKG1pcnJvcik6CisgICAgICAgICh0cmFuc2Zvcm0pOgorICAg
ICAgICAod3JhcHBpbmdPcGVyYXRpb24pOgorICAgICAgICAodGV4ZWxHYXRoZXJpbmcpOgorICAg
ICAgICAoY29tcHV0ZVRhdS5yZWR1Y2UpOgorICAgICAgICAoY29tcHV0ZVRhdS5zaG91bGRCZUJv
cmRlcik6CisgICAgICAgIChjb21wdXRlVGF1LmFjY2Vzc0NvbG9yKToKKyAgICAgICAgKGNvbXB1
dGVUYXUpOgorICAgICAgICAodGV4ZWxGaWx0ZXJpbmcpOgorICAgICAgICAoc2FtcGxlVGV4dHVy
ZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAx
OC0wOC0zMSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgYWRkIGFuIGFsdGVybmF0ZSBlbWFpbCBmb3IgQWRpdHlhIEtlZXJ0aGkuCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKaW5kZXggOWMyYTM3MTUwYzFlOTc2YjkyNmNm
YmVlMjM0Mzc1MjBhOGRlNGE0Ny4uZGJjNjU3ODllNmEzMjRhZDcyZjJiMGUzYTBjYzc2MmY3ZjUy
NGRjNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCisr
KyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwpAQCAtMTM4LDYgKzEzOCw3
IEBAIGxvYWQoIlJlc29sdmVUeXBlRGVmcy5qcyIpOwogbG9hZCgiUmV0dXJuLmpzIik7CiBsb2Fk
KCJSZXR1cm5DaGVja2VyLmpzIik7CiBsb2FkKCJSZXR1cm5FeGNlcHRpb24uanMiKTsKK2xvYWQo
IlNhbXBsZXIuanMiKTsKIGxvYWQoIlN0YW5kYXJkTGlicmFyeS5qcyIpOwogbG9hZCgiU3RhdGVt
ZW50Q2xvbmVyLmpzIik7CiBsb2FkKCJTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIik7CkBAIC0xNTAs
NiArMTUxLDggQEAgbG9hZCgiU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyIpOwogbG9hZCgi
U3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIik7CiBsb2FkKCJTeW50aGVzaXpl
RGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiKTsKIGxvYWQoIlRlcm5hcnlFeHByZXNzaW9u
LmpzIik7Citsb2FkKCJUZXh0dXJlLmpzIik7Citsb2FkKCJUZXh0dXJlT3BlcmF0aW9ucy5qcyIp
OwogbG9hZCgiVHJhcFN0YXRlbWVudC5qcyIpOwogbG9hZCgiVHlwZURlZi5qcyIpOwogbG9hZCgi
VHlwZURlZlJlc29sdmVyLmpzIik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9JbnRyaW5zaWNzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50
cmluc2ljcy5qcwppbmRleCBiMDA0MDY3ZjVlYmZiM2E4YjRiZDk4ZTQzN2E4YzA3NjhiZTI2ZjFl
Li5iZTc4NDAwNDM0ZTM3ZTM5MTczOWY1NWJmNzY0ZjRlYWFmY2JjMjM1IDEwMDY0NAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMKQEAgLTMzMCw3ICszMzAsOCBAQCBj
bGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiBzYW1wbGVyIiwK
ICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAgICAgICAgICAgIHRoaXMuc2FtcGxlciA9IHR5
cGU7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBwdXQgaGVy
ZS4KKyAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgIHR5cGUu
cG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zm
c2V0LCB7fSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICBmb3IgKGxldCB0ZXh0dXJlVHlw
ZSBvZiBbIlRleHR1cmUxRCIsICJSV1RleHR1cmUxRCIsICJUZXh0dXJlMURBcnJheSIsICJSV1Rl
eHR1cmUxREFycmF5IiwgIlRleHR1cmUyRCIsICJSV1RleHR1cmUyRCIsICJUZXh0dXJlMkRBcnJh
eSIsICJSV1RleHR1cmUyREFycmF5IiwgIlRleHR1cmUzRCIsICJSV1RleHR1cmUzRCIsICJUZXh0
dXJlQ3ViZSJdKSB7CkBAIC0zMzksMTIgKzM0MCwxNiBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlwZUFy
Z3VtZW50fT5gLAogICAgICAgICAgICAgICAgICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAg
ICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gXSA9IHR5cGU7
CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAg
ICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4g
YnVmZmVyLnNldChvZmZzZXQsIHt9KTsKICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAg
ICAgICAgICAgZm9yIChsZXQgaSA9IDI7IGkgPD0gNDsgKytpKSB7CiAgICAgICAgICAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVk
ZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9JHtpfT5gLAogICAgICAgICAgICAgICAg
ICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0
ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9JHtpfT5gXSA9IHR5cGU7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIu
c2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQpAQCAtMzU2LDYgKzM2MSw4IEBAIGNsYXNzIEludHJpbnNp
Y3MgewogICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08
JHt0eXBlQXJndW1lbnR9PmAsCiAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAg
ICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmBd
ID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAg
ICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zm
c2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAgICAgICAgICB9KTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtOTE0LDYgKzkyMSw3NDIgQEAgY2xhc3MgSW50
cmluc2ljcyB7CiAKICAgICAgICAgZm9yIChsZXQgc2V0dGVyIG9mIEJ1aWx0aW5NYXRyaXhTZXR0
ZXIuZnVuY3Rpb25zKCkpCiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KHNldHRlci50b1N0cmlu
ZygpLCBmdW5jID0+IHNldHRlci5pbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsKKwor
ICAgICAgICBmdW5jdGlvbiBjaGVja1VuZGVmaW5lZChvcmlnaW4sIGV4cGxhbmF0aW9uLCB2YWx1
ZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkKKyAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBv
dXQgb2YgYm91bmRzIik7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKwor
ICAgICAgICBmdW5jdGlvbiBjaGVja0ZhbHNlKG9yaWdpbiwgZXhwbGFuYXRpb24sIHZhbHVlKQor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAodmFsdWUgPT0gZmFsc2UpCisgICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltTdG9yZV0iLCAiVGV4dHVyZSBzdG9yZSBvdXQgb2Yg
Ym91bmRzIik7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBib3hWZWN0b3IoYSkKKyAg
ICAgICAgeworICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBBcnJheSkgeworICAgICAgICAg
ICAgICAgIGxldCByZXN1bHQgPSBuZXcgRVB0cihuZXcgRUJ1ZmZlcihhLmxlbmd0aCksIDApOwor
ICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkKKyAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0LnNldChpLCBhW2ldKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIEVQ
dHIuYm94KGEpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdW5ib3hWZWN0b3IoYSwg
bGVuZ3RoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAobGVuZ3RoICE9ICIiKSB7CisgICAg
ICAgICAgICAgICAgbGVuZ3RoID0gTnVtYmVyLnBhcnNlSW50KGxlbmd0aCk7CisgICAgICAgICAg
ICAgICAgbGV0IHJlc3VsdCA9IFtdOworICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBp
IDwgbGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGEuZ2V0KGkp
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGEubG9hZFZhbHVlKCk7CisgICAgICAgIH0KKworICAgICAg
ICBmb3IgKGxldCB0eXBlIG9mIFsidWNoYXIiLCAidXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJz
aG9ydCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICBmb3IgKHZhciBs
ZW5ndGhWYXJpYWJsZSBvZiBbYGAsIGAyYCwgYDNgLCBgNGBdKSB7CisgICAgICAgICAgICAgICAg
bGV0IGxlbmd0aCA9IGxlbmd0aFZhcmlhYmxlOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUo
VGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0
aW9uLmxvYWRWYWx1ZSgpLCAwLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0
aH0gU2FtcGxlKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0IGxvY2F0
aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24ubG9hZFZhbHVlKCksIDAsIDAsIDEsIDBd
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5s
b2FkVmFsdWUoKSwgMCwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRl
eHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRl
eHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hl
Y2tlZCgwLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IExvYWQoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LGludDIgbG9jYXRpb24s
aW50IG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxv
Y2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91
bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQo
MSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5sb2FkVmFsdWUoKSkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdl
dERpbWVuc2lvbnMoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWlu
dCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBudW1iZXJPZkxl
dmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5s
b2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBs
ZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQg
Pj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93
IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0
YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
d2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJ
RCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIs
ZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIDAsIDAsIDEsIGxvY2F0aW9uLmdldCgx
KV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVU
ZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9u
QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMURBcnJheTwk
e3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQgb2Zmc2V0KWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
b2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5
ID0gW2xvY2F0aW9uLmdldCgwKSwgMCwgMCwgMSwgbG9jYXRpb24uZ2V0KDEpXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQubG9hZFZhbHVlKCks
IDAsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2Ft
cGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMURBcnJh
eTwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUg
cmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChs
b2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgbG9jYXRpb24uZ2V0KDApKSkp
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9Pixp
bnQzIGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24g
KFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJl
YWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9j
YXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSArIG9m
ZnNldC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEQXJyYXk8JHt0
eXBlfSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhy
ZWFkIEVsZW1lbnRzLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBlbGVtZW50cywgbnVt
YmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRl
eHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElE
ID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBu
b25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2
ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRl
eHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1
ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRp
b24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVs
dGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5s
b2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJh
eSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+
LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1
ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIs
ZmxvYXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9j
YXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQo
MSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2Ft
cGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQo
VGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0
MiBERFgsZmxvYXQyIEREWSlgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0
KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkg
PSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkp
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlR3JhZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4s
c2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwg
MSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5n
ZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBk
ZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEp
LCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBs
ZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRp
b25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkQ8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
bG9kXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5s
b2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVm
aW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEPCR7dHlwZX0ke2xl
bmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IExPRCxpbnQyIG9mZnNldClgLAor
ICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24s
IGxvZCwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlv
bkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDAp
LCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ym94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIo
VGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJl
ZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwK
KyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyR3JlZW4oVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3Ro
fT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0k
e2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJE
PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVu
Z3RofT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
b3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJv
dW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0
KDIpLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IExvYWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LGludDMgbG9jYXRpb24saW50MiBv
ZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlv
biwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIs
IHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDIpLCAw
LCBsb2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQuZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZz
ZXQuZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3Ro
fT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1
aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBudW1iZXJPZkxldmVsc10pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2Fk
VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4Lmxl
dmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJh
cEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBs
ZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0Lmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHRBdExldmVsKG1pcElEKSksIDEp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9t
KEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMkRB
cnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24u
Z2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1
cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5n
dGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBv
ZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94
VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFs
dWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJp
YXMoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24sZmxvYXQgQmlhcylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9h
ZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgYmlhcy5sb2FkVmFsdWUoKSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3Ro
fSBTYW1wbGVCaWFzKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwg
b2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIGJpYXMubG9hZFZhbHVlKCksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0g
U2FtcGxlR3JhZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBERFkpYCwKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeV0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQo
MCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwg
MF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQo
MCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
b3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRW
YWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRk
eUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlR3Jh
ZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bixmbG9hdDIgRERYLGZsb2F0MiBERFksaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeSwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBk
ZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkg
PSBbZGR5LmdldCgwKSwgZGR5LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJl
KHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXks
IGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEQXJyYXk8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9k
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVy
ZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxvZC5sb2FkVmFs
dWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkRB
cnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0Qs
aW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uLCBsb2QsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVs
dGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgp
LCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVu
Z3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0
dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQy
IG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEQXJyYXk8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00
IEdhdGhlclJlZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVl
bihUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVu
Z3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRB
cnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNl
dClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkRBcnJheTwke3R5
cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2Fk
KFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGludDQgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9h
ZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVs
ZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIpLCAwLCBsb2NhdGlv
bi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVy
ZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4saW50NCBsb2NhdGlvbixpbnQyIG9mZnNldClgLAor
ICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1Vu
ZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5s
b2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMyksIGxvY2F0aW9uLmdldCgy
KSwgMCwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApICsg
b2Zmc2V0LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTJEQXJyYXk8JHt0eXBl
fSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFk
IEhlaWdodCx1aW50KiB0aHJlYWQgRWxlbWVudHMsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxz
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lk
dGgsIGhlaWdodCwgZWxlbWVudHMsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3VudCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXREaW1l
bnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUi
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lndp
ZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVt
ZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBT
YW1wbGUoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9
IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUzRDwke3R5cGV9
JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNl
dF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFts
b2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0
KDApLCBvZmZzZXQuZ2V0KDEpLCBvZmZzZXQuZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUo
KSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IExvYWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LGludDQgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZp
bmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRW
YWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIp
LCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExv
YWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LGludDQgbG9jYXRpb24saW50MyBvZmZzZXQp
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hl
Y2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1
cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDMpLCBsb2NhdGlv
bi5nZXQoMikgKyBvZmZzZXQuZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQuZ2V0KDEp
LCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZzZXQuZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhU
ZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lk
dGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRGVwdGgsdWludCogdGhyZWFkIE51
bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBt
aXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3Vu
dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Io
IltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9m
IHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aC5sb2FkVmFsdWUo
KS5jb3B5RnJvbShFUHRyLmJveCh0ZXguZGVwdGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXguaGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVs
KG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxz
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgY3ViZW1hcCBzYW1wbGluZworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxl
QmlhcyhUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBGSVhNRTogSW1wbGVtZW50IGN1YmVtYXAgc2FtcGxpbmcKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBs
ZUdyYWQoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24sZmxvYXQzIEREWCxmbG9hdDMgRERZKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBjdWJlbWFwIHNhbXBsaW5nCisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2RdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBjdWJlbWFwIHNhbXBsaW5nCisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVu
Z3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVu
KFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJl
Q3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9p
ZCBHZXREaW1lbnNpb25zKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2
ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIE51
bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBt
aXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sYXllckNvdW50ICE9IDYpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ3ViZSB0ZXh0dXJlIGRv
ZXNuJ3QgaGF2ZSA2IGZhY2VzIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1p
cElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25l
eGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZl
bChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJX
VGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQqIHRocmVhZCBXaWR0aClgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGhdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4dHVy
ZS5sb2FkVmFsdWUoKS53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUxRDwk
e3R5cGV9JHtsZW5ndGh9PixmbG9hdCogdGhyZWFkIFdpZHRoKWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXh0dXJlLmxvYWRWYWx1
ZSgpLndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVyZTFEPCR7dHlwZX0k
e2xlbmd0aH0+LGludCBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9m
IGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgMCwgMCwgMCwg
bG9jYXRpb24ubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUxRDwke3R5cGV9JHts
ZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0dXJlIHdyaXRlIG91
dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKDAsIDAs
IDAsIDAsIGxvY2F0aW9uLmxvYWRWYWx1ZSgpLCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkp
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKwor
ICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+
LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBlbGVtZW50c10pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
ZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0
RGltZW5zaW9ucyhSV1RleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGZsb2F0KiB0aHJl
YWQgV2lkdGgsdWludCogdGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxh
eWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExv
YWQoUldUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQyIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgi
W0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUo
KS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMSksIDAsIDAsIDAsIGxvY2F0aW9uLmdldCgw
KSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sJHt0eXBl
fSR7bGVuZ3RofSx1aW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGVja0ZhbHNlKCJbU3RvcmVdIiwgIlRleHR1cmUgd3JpdGUgb3V0IG9mIGJvdW5kcyIs
IHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDEpLCAw
LCAwLCAwLCBsb2NhdGlvbi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVlLCBsZW5ndGgpKSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
dm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQqIHRo
cmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVy
ZTJEPCR7dHlwZX0ke2xlbmd0aH0+LGZsb2F0KiB0aHJlYWQgV2lkdGgsZmxvYXQqIHRocmVhZCBI
ZWlnaHQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBo
ZWlnaHRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUu
bG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgp
LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4s
aW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIs
IHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgMCwgMCwgbG9jYXRpb24uZ2V0
KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUyRDwke3R5cGV9JHts
ZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBv
dXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tlZCgwLCAw
LCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0b3IodmFsdWUs
IGxlbmd0aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9
JHtsZW5ndGh9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0
aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2
b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixmbG9h
dCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0LGZsb2F0KiB0aHJlYWQgRWxlbWVu
dHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWln
aHQsIGVsZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0
ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRz
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIu
Ym94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IExvYWQoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9u
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVm
aW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2Fk
VmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMiksIDAsIDAsIGxvY2F0aW9uLmdl
dCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMkRBcnJheTwke3R5
cGV9JHtsZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQzIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3
cml0ZSBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tl
ZChsb2NhdGlvbi5nZXQoMiksIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDAp
LCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1Rl
eHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFk
IEhlaWdodCx1aW50KiB0aHJlYWQgRGVwdGgpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGRlcHRoXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRlcHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5kZXB0
aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5j
b3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
dm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LGZsb2F0KiB0
aHJlYWQgV2lkdGgsZmxvYXQqIHRocmVhZCBIZWlnaHQsZmxvYXQqIHRocmVhZCBEZXB0aClgLAor
ICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZGVw
dGhdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9h
ZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGgubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4LmRlcHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAx
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJv
bShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoUldUZXh0dXJl
M0Q8JHt0eXBlfSR7bGVuZ3RofT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJl
IHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQo
MCwgMCwgbG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0
aH0sdWludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hl
Y2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0dXJlIHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJl
LmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKDAsIDAsIGxvY2F0aW9uLmdldCgyKSwgbG9j
YXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVlLCBsZW5ndGgp
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQogCiAgICAgYWRkKHRoaW5nKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbCBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKaW5kZXggNzhkMDA4ZjgzNWY5ZTljMjM0
ZWYyZGY2ZDZkZWVhM2Y3NDI2Y2U2NS4uMmVhMWQ5NGUwZmNhNWM3M2QzOGJiZWI2YTgzNzU0MGYz
MGJhYTI0OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYu
aHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCkBAIC0x
MjEsNiArMTIxLDcgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJSZXR1cm4uanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJSZXR1cm5DaGVja2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iUmV0dXJuRXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
U2FtcGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlN0YW5kYXJkTGlicmFyeS5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlN0YXRlbWVudENsb25lci5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IlN0cnVjdExheW91dEJ1aWxkZXIuanMiPjwvc2NyaXB0PgpA
QCAtMTMzLDYgKzEzNCw4IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlD
b25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3ludGhl
c2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iVGVybmFyeUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJU
ZXh0dXJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUcmFwU3RhdGVtZW50LmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TYW1wbGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU2FtcGxlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZmNhOTljNjUyNGNhZGNjOTYwMjQwYTRkOTMy
MWZlNzlkNWJkNGU5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU2FtcGxlci5qcwpAQCAtMCwwICsxLDE2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisidXNlIHN0cmljdCI7CisKK2NsYXNzIFNhbXBsZXIgewor
ICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpCisgICAgeworICAgICAgICBpZiAob3B0aW9ucy5yQWRk
cmVzc01vZGUgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fckFkZHJlc3NNb2RlID0g
ImNsYW1wVG9FZGdlIjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fckFkZHJlc3NN
b2RlID0gb3B0aW9ucy5yQWRkcmVzc01vZGU7CisgICAgICAgIGlmIChvcHRpb25zLnNBZGRyZXNz
TW9kZSA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9zQWRkcmVzc01vZGUgPSAiY2xh
bXBUb0VkZ2UiOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9zQWRkcmVzc01vZGUg
PSBvcHRpb25zLnNBZGRyZXNzTW9kZTsKKyAgICAgICAgaWYgKG9wdGlvbnMudEFkZHJlc3NNb2Rl
ID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX3RBZGRyZXNzTW9kZSA9ICJjbGFtcFRv
RWRnZSI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX3RBZGRyZXNzTW9kZSA9IG9w
dGlvbnMudEFkZHJlc3NNb2RlOworICAgICAgICBpZiAob3B0aW9ucy5taW5GaWx0ZXIgPT0gdW5k
ZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fbWluRmlsdGVyID0gIm5lYXJlc3QiOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICB0aGlzLl9taW5GaWx0ZXIgPSBvcHRpb25zLm1pbkZpbHRlcjsK
KyAgICAgICAgaWYgKG9wdGlvbnMubWFnRmlsdGVyID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAg
IHRoaXMuX21hZ0ZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
dGhpcy5fbWFnRmlsdGVyID0gb3B0aW9ucy5tYWdGaWx0ZXI7CisgICAgICAgIGlmIChvcHRpb25z
Lm1pcEZpbHRlciA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9taXBGaWx0ZXIgPSAi
bmVhcmVzdCI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX21pcEZpbHRlciA9IG9w
dGlvbnMubWlwRmlsdGVyOworICAgICAgICBpZiAob3B0aW9ucy5sb2RNaW5DbGFtcCA9PSB1bmRl
ZmluZWQpCisgICAgICAgICAgICB0aGlzLl9sb2RNaW5DbGFtcCA9IC1OdW1iZXIuTUFYX1ZBTFVF
OworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9sb2RNaW5DbGFtcCA9IG9wdGlvbnMu
bG9kTWluQ2xhbXA7CisgICAgICAgIGlmIChvcHRpb25zLmxvZE1heENsYW1wID09IHVuZGVmaW5l
ZCkKKyAgICAgICAgICAgIHRoaXMuX2xvZE1heENsYW1wID0gTnVtYmVyLk1BWF9WQUxVRTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fbG9kTWF4Q2xhbXAgPSBvcHRpb25zLmxvZE1h
eENsYW1wOworICAgICAgICBpZiAob3B0aW9ucy5tYXhBbmlzb3Ryb3B5ID09IHVuZGVmaW5lZCkK
KyAgICAgICAgICAgIHRoaXMuX21heEFuaXNvdHJvcHkgPSAxOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICB0aGlzLl9tYXhBbmlzb3Ryb3B5ID0gb3B0aW9ucy5tYXhBbmlzb3Ryb3B5OworICAg
ICAgICBpZiAob3B0aW9ucy5jb21wYXJlRnVuY3Rpb24gPT0gdW5kZWZpbmVkKQorICAgICAgICAg
ICAgdGhpcy5fY29tcGFyZUZ1bmN0aW9uID0gIm5ldmVyIjsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgdGhpcy5fY29tcGFyZUZ1bmN0aW9uID0gb3B0aW9ucy5jb21wYXJlRnVuY3Rpb247Cisg
ICAgICAgIGlmIChvcHRpb25zLmJvcmRlckNvbG9yID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAg
IHRoaXMuX2JvcmRlckNvbG9yID0gInRyYW5zcGFyZW50QmxhY2siOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICB0aGlzLl9ib3JkZXJDb2xvciA9IG9wdGlvbnMuYm9yZGVyQ29sb3I7CisgICAg
fQorICAgIAorICAgIGdldCByQWRkcmVzc01vZGUoKSB7IHJldHVybiB0aGlzLl9yQWRkcmVzc01v
ZGU7IH0KKyAgICBnZXQgc0FkZHJlc3NNb2RlKCkgeyByZXR1cm4gdGhpcy5fc0FkZHJlc3NNb2Rl
OyB9CisgICAgZ2V0IHRBZGRyZXNzTW9kZSgpIHsgcmV0dXJuIHRoaXMuX3RBZGRyZXNzTW9kZTsg
fQorICAgIGdldCBtaW5GaWx0ZXIoKSB7IHJldHVybiB0aGlzLl9taW5GaWx0ZXI7IH0KKyAgICBn
ZXQgbWFnRmlsdGVyKCkgeyByZXR1cm4gdGhpcy5fbWFnRmlsdGVyOyB9CisgICAgZ2V0IG1pcEZp
bHRlcigpIHsgcmV0dXJuIHRoaXMuX21pcEZpbHRlcjsgfQorICAgIGdldCBsb2RNaW5DbGFtcCgp
IHsgcmV0dXJuIHRoaXMuX2xvZE1pbkNsYW1wOyB9CisgICAgZ2V0IGxvZE1heENsYW1wKCkgeyBy
ZXR1cm4gdGhpcy5fbG9kTWF4Q2xhbXA7IH0KKyAgICBnZXQgbWF4QW5pc290cm9weSgpIHsgcmV0
dXJuIHRoaXMuX21heEFuaXNvdHJvcHk7IH0KKyAgICBnZXQgY29tcGFyZUZ1bmN0aW9uKCkgeyBy
ZXR1cm4gdGhpcy5fY29tcGFyZUZ1bmN0aW9uOyB9CisgICAgZ2V0IGJvcmRlckNvbG9yKCkgeyBy
ZXR1cm4gdGhpcy5fYm9yZGVyQ29sb3I7IH0KKworICAgIGNhbGN1bGF0ZUJvcmRlckNvbG9yKGlu
bmVyVHlwZSkKKyAgICB7CisgICAgICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS4zLjMK
KyAgICAgICAgZnVuY3Rpb24gY29tcHV0ZVZhbHVlcygpIHsKKyAgICAgICAgICAgIHN3aXRjaCAo
aW5uZXJUeXBlKSB7CisgICAgICAgICAgICAgICAgY2FzZSAidWNoYXIiOgorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFx
dWVXaGl0ZTogMHhGRn07CisgICAgICAgICAgICAgICAgY2FzZSAidXNob3J0IjoKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazogMCwg
b3BhcXVlV2hpdGU6IDB4RkZGRn07CisgICAgICAgICAgICAgICAgY2FzZSAidWludCI6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6
IDAsIG9wYXF1ZVdoaXRlOiAweEZGRkZGRkZGfTsKKyAgICAgICAgICAgICAgICBjYXNlICJjaGFy
IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAwLCBvcGFx
dWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDB4N0Z9OworICAgICAgICAgICAgICAgIGNhc2UgInNo
b3J0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAwLCBv
cGFxdWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDB4N0ZGRn07CisgICAgICAgICAgICAgICAgY2Fz
ZSAiaW50IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAw
LCBvcGFxdWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDB4N0ZGRkZGRkZ9OworICAgICAgICAgICAg
ICAgIGNhc2UgImhhbGYiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50
QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMX07CisgICAgICAgICAgICAg
ICAgY2FzZSAiZmxvYXQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50
QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMX07CisgICAgICAgICAgICAg
ICAgY2FzZSAidWNoYXIyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVu
dEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHhGRiwg
MHhGRl19OworICAgICAgICAgICAgICAgIGNhc2UgInVzaG9ydDIiOgorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAw
XSwgb3BhcXVlV2hpdGU6IFsweEZGRkYsIDB4RkZGRl19OworICAgICAgICAgICAgICAgIGNhc2Ug
InVpbnQyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBb
MCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHhGRkZGRkZGRiwgMHhG
RkZGRkZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgImNoYXIyIjoKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwg
MF0sIG9wYXF1ZVdoaXRlOiBbMHg3RiwgMHg3Rl19OworICAgICAgICAgICAgICAgIGNhc2UgInNo
b3J0MiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAs
IDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4N0ZGRiwgMHg3RkZGXX07
CisgICAgICAgICAgICAgICAgY2FzZSAiaW50MiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVy
biB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVX
aGl0ZTogWzB4N0ZGRkZGRkYsIDB4N0ZGRkZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJo
YWxmMiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAs
IDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzEsIDFdfTsKKyAgICAgICAg
ICAgICAgICBjYXNlICJmbG9hdDIiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5z
cGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsx
LCAxXX07CisgICAgICAgICAgICAgICAgY2FzZSAidWNoYXIzIjoKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwg
MCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHhGRiwgMHhGRiwgMHhGRl19OworICAgICAgICAgICAgICAg
IGNhc2UgInVzaG9ydDMiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50
QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsw
eEZGRkYsIDB4RkZGRiwgMHhGRkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAidWludDMiOgor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwXSwg
b3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsweEZGRkZGRkZGLCAweEZGRkZG
RkZGLCAweEZGRkZGRkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAiY2hhcjMiOgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVl
QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsweDdGLCAweDdGLCAweDdGXX07CisgICAg
ICAgICAgICAgICAgY2FzZSAic2hvcnQzIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0
cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1
ZVdoaXRlOiBbMHg3RkZGLCAweDdGRkYsIDB4N0ZGRl19OworICAgICAgICAgICAgICAgIGNhc2Ug
ImludDMiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFsw
LCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsweDdGRkZGRkZG
LCAweDdGRkZGRkZGLCAweDdGRkZGRkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAiaGFsZjMi
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAw
XSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsxLCAxLCAxXX07CisgICAg
ICAgICAgICAgICAgY2FzZSAiZmxvYXQzIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0
cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1
ZVdoaXRlOiBbMSwgMSwgMV19OworICAgICAgICAgICAgICAgIGNhc2UgInVjaGFyNCI6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBv
cGFxdWVCbGFjazogWzAsIDAsIDAsIDB4RkZdLCBvcGFxdWVXaGl0ZTogWzB4RkYsIDB4RkYsIDB4
RkYsIDB4RkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1c2hvcnQ0IjoKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJs
YWNrOiBbMCwgMCwgMCwgMHhGRkZGXSwgb3BhcXVlV2hpdGU6IFsweEZGRkYsIDB4RkZGRiwgMHhG
RkZGLCAweEZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1aW50NCI6CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBvcGFxdWVC
bGFjazogWzAsIDAsIDAsIDB4RkZGRkZGRkZdLCBvcGFxdWVXaGl0ZTogWzB4RkZGRkZGRkYsIDB4
RkZGRkZGRkYsIDB4RkZGRkZGRkYsIDB4RkZGRkZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNl
ICJjaGFyNCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazog
WzAsIDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDAsIDB4N0ZdLCBvcGFxdWVXaGl0ZTog
WzB4N0YsIDB4N0YsIDB4N0YsIDB4N0ZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJzaG9ydDQi
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAw
LCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAweDdGRkZdLCBvcGFxdWVXaGl0ZTogWzB4N0ZG
RiwgMHg3RkZGLCAweDdGRkYsIDB4N0ZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgImludDQi
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAw
LCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAweDdGRkZGRkZGXSwgb3BhcXVlV2hpdGU6IFsw
eDdGRkZGRkZGLCAweDdGRkZGRkZGLCAweDdGRkZGRkZGLCAweDdGRkZGRkZGXX07CisgICAgICAg
ICAgICAgICAgY2FzZSAiaGFsZjQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5z
cGFyZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAxXSwgb3Bh
cXVlV2hpdGU6IFsxLCAxLCAxLCAxXX07CisgICAgICAgICAgICAgICAgY2FzZSAiZmxvYXQ0IjoK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwg
MF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMV0sIG9wYXF1ZVdoaXRlOiBbMSwgMSwgMSwgMV19
OworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigiVW5rbm93biB0ZXh0dXJlIGlubmVyIHR5cGUiKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4gY29tcHV0ZVZhbHVlcygpW3RoaXMuYm9yZGVyQ29sb3Jd
OworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0
YW5kYXJkTGlicmFyeS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJk
TGlicmFyeS5qcwppbmRleCAzZGQ0ZmVlMTg2MDBkNWNkMmE4OTVhZDVhNDc5NzIxZGE3Nzg4Y2Mx
Li5kYmE5OWIxZWY5YjM0ZmZiMTk5YzY0OGU0MzdmOGU5NDY0MGY2NTExIDEwMDY0NAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCkBAIC01Nyw3ICs1
Nyw3IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgIH0KICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSB0eXBlZGVmIHNhbXBsZXI7YCk7CiAgICAgICAgIGZvciAodmFy
IHR5cGUgb2YgW2BUZXh0dXJlMURgLCBgUldUZXh0dXJlMURgLCBgVGV4dHVyZTFEQXJyYXlgLCBg
UldUZXh0dXJlMURBcnJheWAsIGBUZXh0dXJlMkRgLCBgUldUZXh0dXJlMkRgLCBgVGV4dHVyZTJE
QXJyYXlgLCBgUldUZXh0dXJlMkRBcnJheWAsIGBUZXh0dXJlM0RgLCBgUldUZXh0dXJlM0RgLCBg
VGV4dHVyZUN1YmVgXSkgewotICAgICAgICAgICAgZm9yICh2YXIgdHlwZUFyZ3VtZW50QmFzZSBv
ZiBbYGJvb2xgLCBgdWNoYXJgLCBgdXNob3J0YCwgYHVpbnRgLCBgY2hhcmAsIGBzaG9ydGAsIGBp
bnRgLCBgaGFsZmAsIGBmbG9hdGBdKSB7CisgICAgICAgICAgICBmb3IgKHZhciB0eXBlQXJndW1l
bnRCYXNlIG9mIFtgdWNoYXJgLCBgdXNob3J0YCwgYHVpbnRgLCBgY2hhcmAsIGBzaG9ydGAsIGBp
bnRgLCBgaGFsZmAsIGBmbG9hdGBdKSB7CiAgICAgICAgICAgICAgICAgZm9yICh2YXIgc2l6ZSBv
ZiBbYGAsIGAyYCwgYDNgLCBgNGBdKSB7CiAgICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgdHlwZWRlZiAke3R5cGV9PCR7dHlwZUFyZ3VtZW50QmFzZX0ke3NpemV9PjtgKTsKICAgICAg
ICAgICAgICAgICB9CkBAIC0xODk3LDcgKzE4OTcsOCBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0g
KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEludGVybG9ja2Vk
Q29tcGFyZUV4Y2hhbmdlKHRocmVhZCBhdG9taWNfJHt0eXBlfSosICR7dHlwZX0sICR7dHlwZX0s
IHRocmVhZCAke3R5cGV9Kik7YCk7CiAgICAgICAgIH0KICAgICAgICAgcHJpbnQoKTsKLSAgICAg
ICAgCisgICAgICAgICovCisKICAgICAgICAgZm9yICh2YXIgdHlwZSBvZiBbYHVjaGFyYCwgYHVz
aG9ydGAsIGB1aW50YCwgYGNoYXJgLCBgc2hvcnRgLCBgaW50YCwgYGhhbGZgLCBgZmxvYXRgXSkg
ewogICAgICAgICAgICAgZm9yICh2YXIgbGVuZ3RoIG9mIFtgYCwgYDJgLCBgM2AsIGA0YF0pIHsK
ICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRl
eHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pO2ApOwpA
QCAtMTk1OCwxNiArMTk1OSw2IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7
CiAgICAgICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2Ft
cGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2Ft
cGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+
LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxl
ciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+
LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2Ft
cGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlM0Q8JHt0eXBlfSR7bGVu
Z3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3Ro
fT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwotICAgICAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlM0Q8JHt0eXBl
fSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUzRDwke3R5cGV9JHts
ZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7Ci0gICAg
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlM0Q8
JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlM0Q8JHt0
eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2Ap
OwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRl
eHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PiwgaW50NCBsb2NhdGlvbik7YCk7CiAgICAgICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTNEPCR7dHlw
ZX0ke2xlbmd0aH0+LCBpbnQ0IGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7CiAgICAgICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTNEPCR7dHlwZX0k
e2xlbmd0aH0+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50
KiBIZWlnaHQsIHRocmVhZCB1aW50KiBEZXB0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxz
KTtgKTsKQEAgLTIwMTAsNyArMjAwMSw4IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQotICAgICAgICAKKworICAgICAgICAvKgogICAgICAgICBmb3IgKHZhciB0eXBlIG9mIFtgaGFs
ZmAsIGBmbG9hdGBdKSB7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxl
KFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwog
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyRDwk
e3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKaW5kZXggNjA3YTY5NTMyNTNkYTcyN2Ix
ZGUzNzY3OGVjMzg4YjRmYTI0MDQwNS4uNWQzMjhjNzZjZjM0NDA2MDhmYjNjYTkwZjBlYjAwMzAy
ZWI3YzM3YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5o
dG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbApAQCAtMTE1
LDYgKzExNSw3IEBACiA8c2NyaXB0IHNyYz0iUmV0dXJuLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJSZXR1cm5DaGVja2VyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZXR1cm5FeGNl
cHRpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlNhbXBsZXIuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IlN0YW5kYXJkTGlicmFyeS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
U3RhdGVtZW50Q2xvbmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTdHJ1Y3RMYXlvdXRC
dWlsZGVyLmpzIj48L3NjcmlwdD4KQEAgLTEyNyw2ICsxMjgsOCBAQAogPHNjcmlwdCBzcmM9IlN5
bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
VGV4dHVyZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNv
bHZlci5qcyI+PC9zY3JpcHQ+CkBAIC0xNTIsNyArMTU1LDcgQEAKIDxzY3JpcHQ+CiBmdW5jdGlv
biBkb1Rlc3RJbkJyb3dzZXIoKQogewotICAgIHZhciB0ZXN0ZXIgPSBkb1Rlc3QoLy4qLyk7Cisg
ICAgdmFyIHRlc3RlciA9IGRvVGVzdCgvdGV4dHVyZVNhbXBsZS8pOwogICAgIHZhciBsYXN0VGlt
ZTsKICAgICBmdW5jdGlvbiBuZXh0KCkKICAgICB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
VGVzdC5qcwppbmRleCA0YTExYzE4NTg1OTk3NzhmZjM5MWIwNGYyNjM1YzViNzEwMDVkZjdmLi5h
YTg5Y2FjMThiOGIyNTJiNGNhNDY4ZGYzNjBiNDdkNzY0OTUzNDQ4IDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1Rlc3QuanMKQEAgLTk0LDYgKzk0LDEwOCBAQCBmdW5jdGlvbiBtYWtlRW51
bShwcm9ncmFtLCBlbnVtTmFtZSwgdmFsdWUpCiAgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KGVu
dW1UeXBlLCBlbnVtTWVtYmVyLnZhbHVlLnVuaWZ5Tm9kZS52YWx1ZUZvclNlbGVjdGVkVHlwZSk7
CiB9CiAKK2Z1bmN0aW9uIG1ha2VTYW1wbGVyKHByb2dyYW0sIG9wdGlvbnMpCit7CisgICAgLy8g
ZW51bSBXZWJHUFVBZGRyZXNzTW9kZSB7CisgICAgLy8gICAgICJjbGFtcFRvRWRnZSIsCisgICAg
Ly8gICAgICJyZXBlYXQiLAorICAgIC8vICAgICAibWlycm9yUmVwZWF0IiwKKyAgICAvLyAgICAg
ImNsYW1wVG9Cb3JkZXJDb2xvciIKKyAgICAvLyB9CisgICAgLy8KKyAgICAvLyBlbnVtIFdlYkdQ
VUZpbHRlck1vZGUgeworICAgIC8vICAgICAibmVhcmVzdCIsCisgICAgLy8gICAgICJsaW5lYXIi
CisgICAgLy8gfQorICAgIC8vCisgICAgLy8gZW51bSBXZWJHUFVDb21wYXJlRnVuY3Rpb24gewor
ICAgIC8vICAgICAibmV2ZXIiLAorICAgIC8vICAgICAibGVzcyIsCisgICAgLy8gICAgICJlcXVh
bCIsCisgICAgLy8gICAgICJsZXNzRXF1YWwiLAorICAgIC8vICAgICAiZ3JlYXRlciIsCisgICAg
Ly8gICAgICJub3RFcXVhbCIsCisgICAgLy8gICAgICJncmVhdGVyRXF1YWwiLAorICAgIC8vICAg
ICAiYWx3YXlzIgorICAgIC8vIH0KKyAgICAvLworICAgIC8vIGVudW0gV2ViR1BVQm9yZGVyQ29s
b3IgeworICAgIC8vICAgICAidHJhbnNwYXJlbnRCbGFjayIsCisgICAgLy8gICAgICJvcGFxdWVC
bGFjayIsCisgICAgLy8gICAgICJvcGFxdWVXaGl0ZSIKKyAgICAvLyB9CisgICAgLy8KKyAgICAv
LyBkaWN0aW9uYXJ5IFdlYkdQVVNhbXBsZXJEZXNjcmlwdG9yIHsKKyAgICAvLyAgICAgV2ViR1BV
ZGRyZXNzTW9kZSByQWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgIC8vICAgICBXZWJH
UFVkZHJlc3NNb2RlIHNBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAgLy8gICAgIFdl
YkdQVWRkcmVzc01vZGUgdEFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICAvLyAgICAg
V2ViR1BVRmlsdGVyTW9kZUVudW0gbWFnRmlsdGVyID0gIm5lYXJlc3QiOworICAgIC8vICAgICBX
ZWJHUFVGaWx0ZXJNb2RlRW51bSBtaW5GaWx0ZXIgPSAibmVhcmVzdCI7CisgICAgLy8gICAgIFdl
YkdQVUZpbHRlck1vZGVFbnVtIG1pcG1hcEZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICAvLyAgICAg
ZmxvYXQgbG9kTWluQ2xhbXAgPSAwOworICAgIC8vICAgICBmbG9hdCBsb2RNYXhDbGFtcCA9IE51
bWJlci5NQVhfVkFMVUU7CisgICAgLy8gICAgIHVuc2lnbmVkIGxvbmcgbWF4QW5pc290cm9weSA9
IDE7CisgICAgLy8gICAgIFdlYkdQVUNvbXBhcmVGdW5jdGlvbiBjb21wYXJlRnVuY3Rpb24gPSAi
bmV2ZXIiOworICAgIC8vICAgICBXZWJHUFVCb3JkZXJDb2xvciBib3JkZXJDb2xvciA9ICJ0cmFu
c3BhcmVudEJsYWNrIjsKKyAgICAvLyB9OworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9n
cmFtLmludHJpbnNpY3Muc2FtcGxlciwgbmV3IFNhbXBsZXIob3B0aW9ucykpOworfQorCitmdW5j
dGlvbiBtYWtlMURUZXh0dXJlKHByb2dyYW0sIG1pcG1hcHMsIGVsZW1lbnRUeXBlKQoreworICAg
IHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmUxRDwke2Vs
ZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUxRChlbGVtZW50VHlwZSwgbWlwbWFwcykpOworfQor
CitmdW5jdGlvbiBtYWtlMURUZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBl
KQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1
cmUxREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTFEQXJyYXkoZWxlbWVudFR5
cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UyRFRleHR1cmUocHJvZ3JhbSwgbWlwbWFw
cywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50
cmluc2ljc1tgVGV4dHVyZTJEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTJEKGVsZW1l
bnRUeXBlLCBtaXBtYXBzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UyRFRleHR1cmVBcnJheShwcm9n
cmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHBy
b2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZTJEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBU
ZXh0dXJlMkRBcnJheShlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24gbWFrZTNE
VGV4dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlw
ZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlM0Q8JHtlbGVtZW50VHlwZX0+
YF0sIG5ldyBUZXh0dXJlM0QoZWxlbWVudFR5cGUsIG1pcG1hcHMpKTsKK30KKworZnVuY3Rpb24g
bWFrZVRleHR1cmVDdWJlKHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1
cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlQ3ViZTwke2VsZW1l
bnRUeXBlfT5gXSwgbmV3IFRleHR1cmVDdWJlKGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQorCitm
dW5jdGlvbiBtYWtlUlcxRFRleHR1cmUocHJvZ3JhbSwgZWxlbWVudHMsIGVsZW1lbnRUeXBlKQor
eworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVy
ZTFEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTFEUlcoZWxlbWVudFR5cGUsIGVsZW1l
bnRzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzFEVGV4dHVyZUFycmF5KHByb2dyYW0sIGFycmF5
LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRy
aW5zaWNzW2BSV1RleHR1cmUxREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTFE
QXJyYXlSVyhlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24gbWFrZVJXMkRUZXh0
dXJlKHByb2dyYW0sIHJvd3MsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVl
LmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTJEPCR7ZWxlbWVudFR5cGV9PmBdLCBu
ZXcgVGV4dHVyZTJEUlcoZWxlbWVudFR5cGUsIHJvd3MpKTsKK30KKworZnVuY3Rpb24gbWFrZVJX
MkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVy
biBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTJEQXJyYXk8JHtl
bGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlMkRBcnJheVJXKGVsZW1lbnRUeXBlLCBhcnJheSkp
OworfQorCitmdW5jdGlvbiBtYWtlUlczRFRleHR1cmUocHJvZ3JhbSwgZGVwdGhTbGljZXMsIGVs
ZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNp
Y3NbYFJXVGV4dHVyZTNEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTNEUlcoZWxlbWVu
dFR5cGUsIGRlcHRoU2xpY2VzKSk7Cit9CisKIGZ1bmN0aW9uIGNoZWNrTnVtYmVyKHByb2dyYW0s
IHJlc3VsdCwgZXhwZWN0ZWQpCiB7CiAgICAgaWYgKCFyZXN1bHQudHlwZS51bmlmeU5vZGUuaXNO
dW1iZXIpCkBAIC01NTgyLDcgKzU2ODQsNzk3IEBAIHRlc3RzLmFycmF5SW5kZXggPSBmdW5jdGlv
bigpIHsKICAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5
SW5kZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAyKSBd
KSwgMyk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJh
eUluZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCkg
XSksIDQpOwogICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYXJy
YXlJbmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEp
IF0pLCA1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFy
cmF5SW5kZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAy
KSBdKSwgNik7ICAgIAorICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiYXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dy
YW0sIDIpIF0pLCA2KTsKK30KKworZnVuY3Rpb24gY3JlYXRlVGV4dHVyZXNGb3JUZXN0aW5nKHBy
b2dyYW0pCit7CisgICAgbGV0IHRleHR1cmUxRCA9IG1ha2UxRFRleHR1cmUocHJvZ3JhbSwgW1sx
LCA3LCAxNCwgNzldLCBbMTMsIDE2XSwgWzE1XV0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJl
MURBcnJheSA9IG1ha2UxRFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1sxLCA3LCAxNCwgNzldLCBb
MTMsIDE2XSwgWzE1XV0sIFtbMTYsIDE3LCAxOCwgMTldLCBbMjAsIDIxXSwgWzIyXV1dLCAiZmxv
YXQiKTsKKyAgICBsZXQgdGV4dHVyZTJEID0gbWFrZTJEVGV4dHVyZShwcm9ncmFtLCBbCisgICAg
ICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAx
MywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRd
LAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtb
MzMsIDM0LCAzNSwgMzZdLAorICAgICAgICBbMzcsIDM4LCAzOSwgNDBdXSwKKyAgICAgICAgW1s0
MSwgNDJdXQorICAgIF0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlMkRBcnJheSA9IG1ha2Uy
RFRleHR1cmVBcnJheShwcm9ncmFtLCBbWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcs
IDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBb
MTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4
LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2XSwKKyAgICAgICAg
WzM3LCAzOCwgMzksIDQwXV0sCisgICAgICAgIFtbNDEsIDQyXV0KKyAgICBdLCBbCisgICAgICAg
IFtbNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwgNDksIDUwXSwKKyAgICAgICAgWzUxLCA1MiwgNTMs
IDU0LCA1NSwgNTYsIDU3LCA1OF0sCisgICAgICAgIFs1OSwgNjAsIDYxLCA2MiwgNjMsIDY0LCA2
NSwgNjZdLAorICAgICAgICBbNjcsIDY4LCA2OSwgNzAsIDcxLCA3MiwgNzMsIDc0XV0sCisgICAg
ICAgIFtbNzUsIDc2LCA3NywgNzhdLAorICAgICAgICBbNzksIDgwLCA4MSwgODJdXSwKKyAgICAg
ICAgW1s4MywgODRdXQorICAgIF1dLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZTNEID0gbWFr
ZTNEVGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAgIFtbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhd
LAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcs
IDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAy
OSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0
MF0sCisgICAgICAgIFs0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDhdLAorICAgICAgICBb
NDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2XSwKKyAgICAgICAgWzU3LCA1OCwgNTksIDYw
LCA2MSwgNjIsIDYzLCA2NF1dXSwKKyAgICAgICAgW1tbNjUsIDY2LCA2NywgNjhdLAorICAgICAg
ICBbNjksIDcwLCA3MSwgNzJdXV0KKyAgICBdLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZUN1
YmUgPSBtYWtlVGV4dHVyZUN1YmUocHJvZ3JhbSwgW1sKKyAgICAgICAgW1sxLCAyXSwKKyAgICAg
ICAgWzMsIDRdLAorICAgICAgICBbNSwgNl0sCisgICAgICAgIFs3LCA4XV0sCisgICAgICAgIFtb
OV0sCisgICAgICAgIFsxMF1dLAorICAgIF0sIFsKKyAgICAgICAgW1sxMSwgMTJdLAorICAgICAg
ICBbMTMsIDE0XSwKKyAgICAgICAgWzE1LCAxNl0sCisgICAgICAgIFsxNywgMThdXSwKKyAgICAg
ICAgW1sxOV0sCisgICAgICAgIFsyMF1dLAorICAgIF0sIFsKKyAgICAgICAgW1syMSwgMjJdLAor
ICAgICAgICBbMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNl0sCisgICAgICAgIFsyNywgMjhdXSwK
KyAgICAgICAgW1syOV0sCisgICAgICAgIFszMF1dLAorICAgIF0sIFsKKyAgICAgICAgW1szMSwg
MzJdLAorICAgICAgICBbMzMsIDM0XSwKKyAgICAgICAgWzM1LCAzNl0sCisgICAgICAgIFszNywg
MzhdXSwKKyAgICAgICAgW1szOV0sCisgICAgICAgIFs0MF1dLAorICAgIF0sIFsKKyAgICAgICAg
W1s0MSwgNDJdLAorICAgICAgICBbNDMsIDQ0XSwKKyAgICAgICAgWzQ1LCA0Nl0sCisgICAgICAg
IFs0NywgNDhdXSwKKyAgICAgICAgW1s0OV0sCisgICAgICAgIFs1MF1dLAorICAgIF0sIFsKKyAg
ICAgICAgW1s1MSwgNTJdLAorICAgICAgICBbNTMsIDU0XSwKKyAgICAgICAgWzU1LCA1Nl0sCisg
ICAgICAgIFs1NywgNThdXSwKKyAgICAgICAgW1s1OV0sCisgICAgICAgIFs2MF1dLAorICAgIF1d
LCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlMUQgPSBtYWtlUlcxRFRleHR1cmUocHJvZ3Jh
bSwgWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJl
MURBcnJheSA9IG1ha2VSVzFEVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbMSwgMiwgMywgNCwgNSwg
NiwgNywgOF0sIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sIFsxNywgMTgsIDE5LCAy
MCwgMjEsIDIyLCAyMywgMjRdXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4dHVyZTJEID0gbWFr
ZVJXMkRUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAgICAgWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhd
LAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcs
IDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAy
OSwgMzAsIDMxLCAzMl1dLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlMkRBcnJheSA9IG1h
a2VSVzJEVGV4dHVyZUFycmF5KHByb2dyYW0sIFsKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2
LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAg
ICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3
LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNiwgMzcsIDM4
LCAzOSwgNDBdLAorICAgICAgICBbNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4XSwKKyAg
ICAgICAgWzQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1Nl0sCisgICAgICAgIFs1NywgNTgs
IDU5LCA2MCwgNjEsIDYyLCA2MywgNjRdXV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmUz
RCA9IG1ha2VSVzNEVGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwg
NiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAg
ICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAy
NywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzYsIDM3LCAz
OCwgMzksIDQwXSwKKyAgICAgICAgWzQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OF0sCisg
ICAgICAgIFs0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTZdLAorICAgICAgICBbNTcsIDU4
LCA1OSwgNjAsIDYxLCA2MiwgNjMsIDY0XV1dLCAiZmxvYXQiKTsKKyAgICByZXR1cm4gW3RleHR1
cmUxRCwgdGV4dHVyZTFEQXJyYXksIHRleHR1cmUyRCwgdGV4dHVyZTJEQXJyYXksIHRleHR1cmUz
RCwgdGV4dHVyZUN1YmUsIHJ3VGV4dHVyZTFELCByd1RleHR1cmUxREFycmF5LCByd1RleHR1cmUy
RCwgcndUZXh0dXJlMkRBcnJheSwgcndUZXh0dXJlM0RdOworfQorCit0ZXN0cy50ZXh0dXJlRGlt
ZW5zaW9ucyA9IGZ1bmN0aW9uKCkgeworICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKKyAgICAg
ICAgdWludCBmb28xKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWlu
dCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBH
ZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAg
ICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIoVGV4dHVy
ZTFEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAg
ICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgMCwgJndpZHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJl
ck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMyhUZXh0dXJlMURBcnJheTxm
bG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVp
bnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAg
ICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZlbGVtZW50cywgJm51bWJlck9m
TGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1
aW50IGZvbzQoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVp
bnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBu
dW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndp
ZHRoLCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gZWxl
bWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb281KFRleHR1cmUxREFycmF5PGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBl
bGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBH
ZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZl
bHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAg
ICAgIHVpbnQgZm9vNihUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVp
bnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVt
YmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0
aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzcoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7
CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAg
ICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0
ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAg
ICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vOChUZXh0dXJlMkQ8
ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1
aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAg
ICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2
ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAg
ICAgICB1aW50IGZvbzkoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAg
ICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVp
bnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAg
ICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cywg
Jm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQor
ICAgICAgICB1aW50IGZvbzEwKFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAg
ICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAg
ICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAg
ICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVu
dHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAg
ICB9CisgICAgICAgIHVpbnQgZm9vMTEoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsK
KyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAg
ICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZl
bGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50czsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzEyKFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0
dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7
CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxl
dmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVp
Z2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVt
YmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xMyhUZXh0dXJlM0Q8Zmxv
YXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50
IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICB1aW50IG51bWJl
ck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgs
ICZoZWlnaHQsICZkZXB0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3
aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE0KFRleHR1cmUzRDxmbG9hdD4gdGV4
dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0
OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZl
bHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdo
dCwgJmRlcHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE1KFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkg
eworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAg
ICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7Cisg
ICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmRl
cHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGRlcHRoOworICAgICAg
ICB9CisgICAgICAgIHVpbnQgZm9vMTYoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAg
ICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAg
ICB1aW50IGRlcHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAg
ICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgsICZu
dW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb28xNyhUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSkgewor
ICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAg
ICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4
dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAg
cmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTgoVGV4dHVyZUN1YmU8
ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1
aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAg
ICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2
ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWlu
dCBmb28xOShUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3
aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJP
ZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAm
aGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2
ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjAoUldUZXh0dXJlMUQ8ZmxvYXQ+IHRl
eHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICBHZXREaW1lbnNp
b25zKHRleHR1cmUsICZ3aWR0aCk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAg
IH0KKyAgICAgICAgdWludCBmb28yMShSV1RleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7
CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAg
ICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmZWxlbWVudHMpOworICAg
ICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjIoUldU
ZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsK
KyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRl
eHR1cmUsICZ3aWR0aCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50czsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIzKFJXVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJl
KSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7Cisg
ICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCk7CisgICAg
ICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yNChSV1Rl
eHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAg
ICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAm
d2lkdGgsICZoZWlnaHQpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQor
ICAgICAgICB1aW50IGZvbzI1KFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAg
ICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAg
ICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3
aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAg
ICAgICAgfQorICAgICAgICB1aW50IGZvbzI2KFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1
cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsK
KyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRl
eHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBo
ZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yNyhSV1RleHR1cmUyREFycmF5PGZs
b2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWlu
dCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGlt
ZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cyk7CisgICAgICAgICAg
ICByZXR1cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yOChSV1RleHR1
cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAg
ICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIEdl
dERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgpOworICAgICAgICAg
ICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjkoUldUZXh0dXJl
M0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAg
ICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICBHZXRE
aW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoKTsKKyAgICAgICAgICAg
IHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28zMChSV1RleHR1cmUz
RDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAg
IHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIEdldERp
bWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgpOworICAgICAgICAgICAg
cmV0dXJuIGRlcHRoOworICAgICAgICB9CisgICAgYCk7CisgICAgbGV0IFt0ZXh0dXJlMUQsIHRl
eHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1
cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4
dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNEXSA9IGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9n
cmFtKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
IiwgW3RleHR1cmUxRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRF0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5XSksIDQpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4
dHVyZTFEQXJyYXldKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMURBcnJheV0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRF0pLCA4KTsKKyAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1
cmUyRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb284IiwgW3RleHR1cmUyRF0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUyREFycmF5XSksIDgpOworICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUyREFy
cmF5XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzExIiwgW3RleHR1cmUyREFycmF5XSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1cmUyREFycmF5XSksIDMpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3RleHR1
cmUzRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNCIsIFt0ZXh0dXJlM0RdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTNEXSksIDIpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUzRF0pLCAy
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIs
IFt0ZXh0dXJlQ3ViZV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlQ3ViZV0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlQ3ViZV0pLCAyKTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFty
d1RleHR1cmUxRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmUxREFycmF5XSksIDgpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3J3VGV4dHVyZTFEQXJyYXld
KSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjMiLCBbcndUZXh0dXJlMkRdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjQiLCBbcndUZXh0dXJlMkRdKSwgNCk7CisgICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjUiLCBbcndUZXh0dXJlMkRBcnJh
eV0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yNiIsIFtyd1RleHR1cmUyREFycmF5XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI3IiwgW3J3VGV4dHVyZTJEQXJyYXldKSwgMik7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjgiLCBbcndU
ZXh0dXJlM0RdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjkiLCBbcndUZXh0dXJlM0RdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzAiLCBbcndUZXh0dXJlM0RdKSwgMik7Cit9CisK
K3Rlc3RzLnRleHR1cmVMb2FkID0gZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1By
ZXAoYAorICAgICAgICBmbG9hdCBmb28xKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSwgaW50IGxv
Y2F0aW9uLCBpbnQgbWlwbWFwKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBp
bnQyKGxvY2F0aW9uLCBtaXBtYXApKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28yKFRl
eHR1cmUxRDxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQgbWlwbWFwLCBpbnQgb2Zm
c2V0KSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGxvY2F0aW9uLCBt
aXBtYXApLCBvZmZzZXQpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzMoVGV4dHVyZTFE
QXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50IG1pcG1hcCwgaW50IGxheWVy
KSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKGxvY2F0aW9uLCBtaXBt
YXAsIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNChUZXh0dXJlMURBcnJh
eTxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQgbWlwbWFwLCBpbnQgbGF5ZXIsIGlu
dCBvZmZzZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMobG9jYXRp
b24sIG1pcG1hcCwgbGF5ZXIpLCBvZmZzZXQpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZv
bzUoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXApIHsK
KyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgbWlwbWFwKSk7Cisg
ICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNihUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIGlu
dCB4LCBpbnQgeSwgaW50IG1pcG1hcCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAg
ICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIG1pcG1hcCksIGludDIob2Zm
c2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzcoVGV4dHVyZTJE
QXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCwgaW50IGxheWVy
KSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgsIHksIG1pcG1hcCwg
bGF5ZXIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb284KFRleHR1cmUyREFycmF5PGZs
b2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXAsIGludCBsYXllciwgaW50IG9m
ZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBp
bnQ0KHgsIHksIG1pcG1hcCwgbGF5ZXIpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb285KFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgs
IGludCB5LCBpbnQgeiwgaW50IG1pcG1hcCkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4
dHVyZSwgaW50NCh4LCB5LCB6LCBtaXBtYXApKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBm
b28xMChUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IHosIGludCBt
aXBtYXAsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSwgaW50IG9mZnNldFopIHsKKyAgICAgICAg
ICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDQoeCwgeSwgeiwgbWlwbWFwKSwgaW50MyhvZmZz
ZXRYLCBvZmZzZXRZLCBvZmZzZXRaKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTEo
UldUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbikgeworICAgICAgICAgICAg
cmV0dXJuIExvYWQodGV4dHVyZSwgbG9jYXRpb24pOworICAgICAgICB9CisgICAgICAgIGZsb2F0
IGZvbzEyKFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50
IGxheWVyKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGxvY2F0aW9u
LCBsYXllcikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzEzKFJXVGV4dHVyZTJEPGZs
b2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHkpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRl
eHR1cmUsIGludDIoeCwgeSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE0KFJXVGV4
dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IGxheWVyKSB7Cisg
ICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIGxheWVyKSk7CisgICAg
ICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTUoUldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIGlu
dCB4LCBpbnQgeSwgaW50IHopIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGlu
dDMoeCwgeSwgeikpOworICAgICAgICB9CisgICAgYCk7CisgICAgbGV0IFt0ZXh0dXJlMUQsIHRl
eHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1
cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4
dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNEXSA9IGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9n
cmFtKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MSIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMiIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAxKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFt0
ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMTMpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxNik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE3KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCAyMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMjEpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIC0xKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEp
XSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNyk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBb
dGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDE2KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJl
MURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAyMSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDIwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBb
dGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0
ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzOCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1
cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAx
MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYi
LCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTcpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1
cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAz
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYi
LCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMzQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzcpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3Rl
eHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEp
XSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAzNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzgpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQzKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0NCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDUyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCA3NSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgNzYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDc5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA4MCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMTgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDExKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM4KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAzNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAt
MSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAtMSldKSwgMzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQ0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgNDUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDUzKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCA1Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNjApOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCA2MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNzYpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDgwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3Nyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgODEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDgwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgNzYpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDgxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgNzcpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3Rl
eHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBb
dGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMzKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA0MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDQyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNjUpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUz
RCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA2Nik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDY5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgNzApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEw
IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4
dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNE
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
MTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTgpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0
ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDIpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJl
M0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgLTEpXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIs
IFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0
dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDMpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0Qs
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNTApOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDY2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDY5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDY3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDcwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDcwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2NSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwg
W3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3MSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1
cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNjYpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUx
RCwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDMpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1Rl
eHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAzKV0pLCA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQo
cHJvZ3JhbSwgNCldKSwgNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDYp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIs
IFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCA2KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1h
a2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4
dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEy
IiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
NiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgOSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVy
ZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIs
IFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAxMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
NCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJh
eSwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4
dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
MTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDIpXSksIDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAyKV0pLCAxOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIwKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURB
cnJheSwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3
VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMild
KSwgMjIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHBy
b2dyYW0sIDIpXSksIDIzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA3KSwg
bWFrZUludChwcm9ncmFtLCAyKV0pLCAyNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMyk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtl
SW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwg
bWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA1KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJl
MkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4
dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFty
d1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA4
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMi
LCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAxMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDQpLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
NSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9n
cmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTcpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxOCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4
dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBb
cndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwg
MjApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAy
KV0pLCAyMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dy
YW0sIDIpXSksIDIyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQo
cHJvZ3JhbSwgMildKSwgMjMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFr
ZUludChwcm9ncmFtLCAyKV0pLCAyNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjYpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyNyk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtl
SW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI4KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1
cmUyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAzMCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3
VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDMx
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMi
LCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMyld
KSwgMzIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQxKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCA0Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1
cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDIp
OworfQorCit0ZXN0cy50ZXh0dXJlU3RvcmUgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3Jh
bSA9IGRvUHJlcChgCisgICAgICAgIGZsb2F0IGZvbzEoUldUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1
cmUsIHVpbnQgbG9jYXRpb24sIGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICBTdG9yZSh0ZXh0
dXJlLCB2YWx1ZSwgbG9jYXRpb24pOworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwg
aW50KGxvY2F0aW9uKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMihSV1RleHR1cmUx
REFycmF5PGZsb2F0PiB0ZXh0dXJlLCB1aW50IGxvY2F0aW9uLCB1aW50IGxheWVyLCBmbG9hdCB2
YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4dHVyZSwgdmFsdWUsIHVpbnQyKGxvY2F0aW9u
LCBsYXllcikpOworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MihpbnQobG9j
YXRpb24pLCBpbnQobGF5ZXIpKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMyhSV1Rl
eHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgdWludCB4LCB1aW50IHksIGZsb2F0IHZhbHVlKSB7Cisg
ICAgICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDIoeCwgeSkpOworICAgICAgICAg
ICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MihpbnQoeCksIGludCh5KSkpOworICAgICAgICB9
CisgICAgICAgIGZsb2F0IGZvbzQoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgdWlu
dCB4LCB1aW50IHksIHVpbnQgbGF5ZXIsIGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICBTdG9y
ZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDMoeCwgeSwgbGF5ZXIpKTsKKyAgICAgICAgICAgIHJldHVy
biBMb2FkKHRleHR1cmUsIGludDMoaW50KHgpLCBpbnQoeSksIGludChsYXllcikpKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb281KFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCB1aW50
IHgsIHVpbnQgeSwgdWludCB6LCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4
dHVyZSwgdmFsdWUsIHVpbnQzKHgsIHksIHopKTsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRl
eHR1cmUsIGludDMoaW50KHgpLCBpbnQoeSksIGludCh6KSkpOworICAgICAgICB9CisgICAgYCk7
CisgICAgbGV0IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRleHR1cmUy
REFycmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0dXJlMURB
cnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNEXSA9IGNyZWF0
ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9ncmFtKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VV
aW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVy
ZTFELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIs
IFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCA1KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJv
Z3JhbSwgNiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1h
a2VVaW50KHByb2dyYW0sIDcpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4
dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVy
ZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChw
cm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFE
QXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9n
cmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJy
YXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFt
LCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIi
LCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXks
IG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA1
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBb
cndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1h
a2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndU
ZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDIp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VV
aW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0
dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50
KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVp
bnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJl
MURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFt
LCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMi
LCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1h
a2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVy
ZTJELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDcp
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFty
d1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9n
cmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVp
bnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQs
IG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4
dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIs
IFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDIp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChw
cm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9n
cmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFr
ZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVp
bnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJl
MkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNyks
IG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3
VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dy
YW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0s
IDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWlu
dChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChw
cm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwg
bWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0
dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBt
YWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXks
IG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1h
a2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VV
aW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50
KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0s
IDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7Cit9CisKK3Rlc3RzLnRleHR1cmVTYW1wbGUgPSBmdW5jdGlvbigp
IHsKKyAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCisgICAgICAgIGZsb2F0IGZvbzEoVGV4dHVy
ZTFEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IGxvY2F0aW9uKSB7CisgICAgICAg
ICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGxvY2F0aW9uKTsKKyAgICAgICAgfQorICAg
IGApOworICAgIGxldCBbdGV4dHVyZTFELCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0ZXh0
dXJlMkRBcnJheSwgdGV4dHVyZTNELCB0ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVy
ZTFEQXJyYXksIHJ3VGV4dHVyZTJELCByd1RleHR1cmUyREFycmF5LCByd1RleHR1cmUzRF0gPSBj
cmVhdGVUZXh0dXJlc0ZvclRlc3RpbmcocHJvZ3JhbSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjM3NSldKSwgNyk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjQzNzUpXSksIDcp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge30pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41NjI1KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7fSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjYyNSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuMzc1KV0pLCA3
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIs
IFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjQzNzUpXSksICgzICogNyArIDEgKiAxNCkgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0
dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpXSksICg3ICsgMTQpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
NjI1KV0pLCAoMSAqIDcgKyAzICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC42MjUpXSks
IDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
LCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjM3NSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC40Mzc1KV0pLCAoMyAqIDcgKyAxICogMTQpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAi
Y2xhbXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoNyArIDE0
KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNTYyNSldKSwgKDEgKiA3ICsgMyAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9C
b3JkZXJDb2xvciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNjI1KV0pLCAxNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2Rl
OiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuMzc1KV0pLCA3KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJl
MUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01v
ZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC40Mzc1KV0pLCAoMyAqIDcg
KyAxICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSArIDAuNSldKSwgKDcgKyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxICsgMC41NjI1KV0pLCAoMSAqIDcgKyAzICogMTQpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2Rl
OiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuNjI1KV0pLCAxNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVy
ZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NN
b2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuMzc1KV0pLCA3KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0
dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVz
c01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC40Mzc1KV0pLCAoMyAq
IDcgKyAxICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMiArIDAuNSldKSwgKDcgKyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAyICsgMC41NjI1KV0pLCAoMSAqIDcgKyAzICogMTQpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVy
ZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NN
b2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuNjI1KV0pLCAxNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4
dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJl
c3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuNjI1KV0p
LCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
LCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsg
MC41NjI1KV0pLCAoMyAqIDcgKyAxICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuNSldKSwgKDcgKyAxNCkgLyAyKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJl
MUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01v
ZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC40Mzc1KV0pLCAo
MSAqIDcgKyAzICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSArIDAuMzc1KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuMzc1KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JS
ZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC40Mzc1KV0pLCAoMyAqIDcgKyAxICog
MTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MiArIDAuNSldKSwgKDcgKyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAyICsgMC41NjI1KV0pLCAoMSAqIDcgKyAzICogMTQpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4
dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJl
c3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuNjI1KV0p
LCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTAuMzc1KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
LjM3NSldKSwgNzkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIC0wLjM3NSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMS4zNzUpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3Jk
ZXJDb2xvciIsIGJvcmRlckNvbG9yOiAib3BhcXVlQmxhY2sifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAtMC4zNzUpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciIsIGJvcmRlckNv
bG9yOiAib3BhcXVlQmxhY2sifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxLjM3NSldKSwgMCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4
dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJl
c3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIiwgYm9yZGVyQ29sb3I6ICJvcGFxdWVXaGl0ZSJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0wLjM3NSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0Jv
cmRlckNvbG9yIiwgYm9yZGVyQ29sb3I6ICJvcGFxdWVXaGl0ZSJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEuMzc1KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IiLCBib3JkZXJD
b2xvcjogIm9wYXF1ZVdoaXRlIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDc5ICsgMSkg
LyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
LCBsb2RNaW5DbGFtcDogMX0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTMgKyAxNikg
LyAyKTsKKyAgICAvLyBUZXN0IG1pcG1hcCBmaWx0ZXJpbmcsIG1heExPRGNsYW1wLCBtYXhBbmlz
bywgc2FtcGxpbmcgb2Zmc2V0IGFyZ3VtZW50cywgb3RoZXIgZGltZW5zaW9uYWxpdGllcywgYW5k
IG90aGVyIGlubmVyIHR5cGVzLCBkZXB0aCB0ZXh0dXJlcywgYW5kIGRlcHRoIGNvbXBhcmUgZnVu
Y3Rpb25zCiB9CiAKIG9rVG9UZXN0ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1RleHR1cmUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UZXh0dXJlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkNmUwNWFjODE3ODc4OWE2NWYzMDBiMTAwMDg2MTYw
ODI0NWRmOGIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UZXh0dXJlLmpzCkBAIC0wLDAgKzEsNTM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKyJ1c2Ugc3RyaWN0IjsKKworY2xhc3MgVGV4dHVyZSB7CisgICAg
Y29uc3RydWN0b3IoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwg
bGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgdGhpcy5fZGltZW5z
aW9uID0gZGltZW5zaW9uOworICAgICAgICB0aGlzLl93aWR0aCA9IHdpZHRoOworICAgICAgICB0
aGlzLl9oZWlnaHQgPSBoZWlnaHQ7CisgICAgICAgIHRoaXMuX2RlcHRoID0gZGVwdGg7CisgICAg
ICAgIHRoaXMuX2xldmVsQ291bnQgPSBsZXZlbENvdW50OworICAgICAgICB0aGlzLl9sYXllckNv
dW50ID0gbGF5ZXJDb3VudDsKKyAgICAgICAgdGhpcy5faW5uZXJUeXBlID0gaW5uZXJUeXBlOwor
ICAgICAgICB0aGlzLl9kYXRhID0gZGF0YTsKKyAgICB9CisKKyAgICBnZXQgZGltZW5zaW9uKCkg
eyByZXR1cm4gdGhpcy5fZGltZW5zaW9uOyB9CisgICAgZ2V0IHdpZHRoKCkgeyByZXR1cm4gdGhp
cy5fd2lkdGg7IH0KKyAgICBnZXQgaGVpZ2h0KCkgeyByZXR1cm4gdGhpcy5faGVpZ2h0OyB9Cisg
ICAgZ2V0IGRlcHRoKCkgeyByZXR1cm4gdGhpcy5fZGVwdGg7IH0KKyAgICBnZXQgbGV2ZWxDb3Vu
dCgpIHsgcmV0dXJuIHRoaXMuX2xldmVsQ291bnQ7IH0KKyAgICBnZXQgbGF5ZXJDb3VudCgpIHsg
cmV0dXJuIHRoaXMuX2xheWVyQ291bnQ7IH0KKyAgICBnZXQgaW5uZXJUeXBlKCkgeyByZXR1cm4g
dGhpcy5faW5uZXJUeXBlOyB9CisgICAgZ2V0IGRhdGEoKSB7IHJldHVybiB0aGlzLl9kYXRhOyB9
CisKKyAgICBlbGVtZW50Q2hlY2tlZChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAg
ICAgICBpZiAobGF5ZXIgPCAwIHx8IGxheWVyID49IHRoaXMubGF5ZXJDb3VudAorICAgICAgICAg
ICAgfHwgbGV2ZWwgPCAwIHx8IGxldmVsID49IHRoaXMubGV2ZWxDb3VudAorICAgICAgICAgICAg
fHwgayA8IDAgfHwgayA+PSB0aGlzLmRlcHRoCisgICAgICAgICAgICB8fCBqIDwgMCB8fCBqID49
IHRoaXMuaGVpZ2h0CisgICAgICAgICAgICB8fCBpIDwgMCB8fCBpID49IHRoaXMud2lkdGgpCisg
ICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50
KGxheWVyLCBsZXZlbCwgaywgaiwgaSk7CisgICAgfQorCisgICAgc2V0RWxlbWVudENoZWNrZWQo
bGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmIChsYXllciA8
IDAgfHwgbGF5ZXIgPj0gdGhpcy5sYXllckNvdW50CisgICAgICAgICAgICB8fCBsZXZlbCA8IDAg
fHwgbGV2ZWwgPj0gdGhpcy5sZXZlbENvdW50CisgICAgICAgICAgICB8fCBrIDwgMCB8fCBrID49
IHRoaXMuZGVwdGgKKyAgICAgICAgICAgIHx8IGogPCAwIHx8IGogPj0gdGhpcy5oZWlnaHQKKyAg
ICAgICAgICAgIHx8IGkgPCAwIHx8IGkgPj0gdGhpcy53aWR0aCkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgdGhpcy5zZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwg
dmFsdWUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUx
RCBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAg
ICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiBtaXBtYXBzLgorICAgICAgICAv
LyBUaGUgZmlyc3QgbWlwbWFwIGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBF
YWNoIGVsZW1lbnQgbWF5IGJlIGEgc2NhbGFyIG9yIGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgor
ICAgICAgICAvLyBUaGUgd2lkdGggbXVzdCBiZSBhIHBvd2VyLW9mLXR3by4KKyAgICAgICAgLy8g
RWFjaCBtaXBtYXAgaXMgaGFsZi1zaXplIG9mIHRoZSBwcmV2aW91cyBzaXplLgorCisgICAgICAg
IGxldCBkaW1lbnNpb24gPSAxOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdLmxlbmd0aDsK
KyAgICAgICAgbGV0IGhlaWdodCA9IDE7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAg
IGxldCBsZXZlbENvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBsYXllckNvdW50ID0g
MTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxD
b3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0
TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXS5sZW5n
dGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJl
dHVybiAxOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAg
IHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1baV07CisgICAgfQorCisgICAg
c2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAg
dGhpcy5kYXRhW2xldmVsXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTFE
QXJyYXkgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEp
CisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgMUQgdGV4dHVyZXMuCisg
ICAgICAgIC8vIEFsbCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNhbWUgd2lkdGggYW5kIG51bWJl
ciBvZiBtaXBtYXBzLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAxOworICAgICAgICBsZXQg
d2lkdGggPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IDE7CisgICAg
ICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YVswXS5sZW5n
dGg7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIHN1cGVy
KGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQs
IGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKwor
ICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9
CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAg
ICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVt
ZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRh
dGFbbGF5ZXJdW2xldmVsXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTJE
IGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAg
IHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIG1pcG1hcHMuCisgICAgICAgIC8v
IFRoZSBmaXJzdCBtaXBtYXAgaXMgYSByZWN0YW5ndWxhciBhcnJheSBvZiByb3dzLCB3aGVyZSBl
YWNoIHJvdyBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50
IG1heSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8g
VGhlIHdpZHRoIGFuZCBoZWlnaHQgbXVzdCBiZSBwb3dlcnMtb2YtdHdvLgorICAgICAgICAvLyBF
YWNoIG1pcG1hcCBpcyBoYWxmLXdpZHRoIGFuZCBoYWxmLWhlaWdodCBvZiB0aGUgcHJldmlvdXMg
c2l6ZS4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMjsKKyAgICAgICAgbGV0IHdpZHRoID0g
ZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRhWzBdLmxlbmd0aDsK
KyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSBkYXRhLmxl
bmd0aDsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSAxOworICAgICAgICBzdXBlcihkaW1lbnNp
b24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5
cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWln
aHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF0u
bGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAg
IHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1bal1baV07CisgICAgfQorCisg
ICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAg
ICAgdGhpcy5kYXRhW2xldmVsXVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4
dHVyZTJEQXJyYXkgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUs
IGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgMkQgdGV4dHVy
ZXMuCisgICAgICAgIC8vIEFsbCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNhbWUgd2lkdGgsIGhl
aWdodCBhbmQgbnVtYmVyIG9mIG1pcG1hcHMuCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDI7
CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQg
aGVpZ2h0ID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAg
ICAgIGxldCBsZXZlbENvdW50ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBsYXllckNv
dW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdo
dCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAg
fQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
ZGF0YVswXVtsZXZlbF1bMF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2
ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdW2xldmVsXS5sZW5ndGg7Cisg
ICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7
CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1bal1baV07CisgICAgfQorCisgICAg
c2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAg
dGhpcy5kYXRhW2xheWVyXVtsZXZlbF1bal1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNz
IFRleHR1cmUzRCBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwg
ZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiBtaXBtYXBzLgor
ICAgICAgICAvLyBUaGUgZmlyc3QgbWlwbWFwIGlzIGFuIGFycmF5IG9mIGRlcHRoIHNsaWNlcywg
ZWFjaCBkZXB0aCBzbGljZSBpcyBhbiBhcnJheSBvZiByb3dzLCBhbmQgZWFjaCByb3cgaXMgYW4g
YXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2Fs
YXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCwgaGVp
Z2h0LCBhbmQgZGVwdGggbXVzdCBiZSBwb3dlcnMtb2YtdHdvLgorICAgICAgICAvLyBFYWNoIG1p
cG1hcCBpcyBoYWxmLXdpZHRoLCBoYWxmLWhlaWdodCwgYW5kIGhhbGYtZGVwdGggb2YgdGhlIHBy
ZXZpb3VzIHNpemUuCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDM7CisgICAgICAgIGxldCB3
aWR0aCA9IGRhdGFbMF1bMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVsw
XVswXS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0aCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAg
ICBsZXQgbGV2ZWxDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9
IDE7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVs
Q291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhB
dExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1bMF1b
MF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgZGVw
dGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF0u
bGVuZ3RoOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1ba11bal1baV07CisgICAgfQorCisg
ICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAg
ICAgdGhpcy5kYXRhW2xldmVsXVtrXVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3Mg
VGV4dHVyZUN1YmUgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUs
IGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgNiAyRCB0ZXh0
dXJlcy4KKyAgICAgICAgLy8gQWxsIHRleHR1cmVzIG11c3QgaGF2ZSB0aGUgc2FtZSB3aWR0aCwg
aGVpZ2h0LCBkZXB0aCwgYW5kIG51bWJlciBvZiBtaXBtYXBzLgorCisgICAgICAgIGxldCBkaW1l
bnNpb24gPSAyOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdWzBdLmxlbmd0aDsKKyAg
ICAgICAgbGV0IGhlaWdodCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGgg
PSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBs
ZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdp
ZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRh
dGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB0aGlzLmRhdGFbMF1bbGV2ZWxdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRB
dExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF0u
bGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAg
IHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2pdW2ldOworICAg
IH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7
CisgICAgICAgIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2pdW2ldID0gdmFsdWU7CisgICAgfQor
fQorCitjbGFzcyBUZXh0dXJlMURSVyBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9y
KGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBv
ZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBhIHNjYWxhciBvciBh
biBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRoIG11c3QgYmUgYSBw
b3dlci1vZi10d28uCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDE7CisgICAgICAgIGxldCB3
aWR0aCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gMTsKKyAgICAgICAgbGV0
IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSAxOworICAgICAgICBsZXQgbGF5
ZXJDb3VudCA9IDE7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVw
dGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisg
ICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5s
ZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAg
IHJldHVybiAxOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAg
ICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBp
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtpXTsKKyAgICB9CisKKyAgICBzZXRF
bGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlz
LmRhdGFbaV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUxREFycmF5UlcgZXh0
ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgewor
ICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgMUQgUlcgdGV4dHVyZXMuCisgICAgICAg
IC8vIEFsbCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNhbWUgc2l6ZS4KKworICAgICAgICBsZXQg
ZGltZW5zaW9uID0gMTsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXS5sZW5ndGg7CisgICAg
ICAgIGxldCBoZWlnaHQgPSAxOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQg
bGV2ZWxDb3VudCA9IDE7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7Cisg
ICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQs
IGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVs
KGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXS5sZW5ndGg7CisgICAg
fQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOwor
ICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAx
OworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsYXllcl1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVu
dChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRh
W2xheWVyXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTJEUlcgZXh0ZW5k
cyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAg
ICAgICAvLyAiZGF0YSIgaXMgYSByZWN0YW5ndWxhciBhcnJheSBvZiByb3dzLCB3aGVyZSBlYWNo
IHJvdyBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1h
eSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhl
IHdpZHRoIGFuZCBoZWlnaHQgbXVzdCBiZSBwb3dlcnMtb2YtdHdvLgorCisgICAgICAgIGxldCBk
aW1lbnNpb24gPSAyOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAg
ICAgbGV0IGhlaWdodCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAg
ICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gMTsKKyAg
ICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwg
bGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwo
bGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdLmxlbmd0aDsKKyAgICB9
CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
ZGF0YS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGos
IGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2pdW2ldOworICAgIH0KKworICAg
IHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAg
IHRoaXMuZGF0YVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTJEQXJy
YXlSVyBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkK
KyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiAyRCBSVyB0ZXh0dXJlcy4K
KyAgICAgICAgLy8gQWxsIHRleHR1cmVzIG11c3QgaGF2ZSB0aGUgc2FtZSB3aWR0aCBhbmQgaGVp
Z2h0LgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAyOworICAgICAgICBsZXQgd2lkdGggPSBk
YXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRhdGFbMF0ubGVuZ3RoOwor
ICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7CisgICAg
ICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIHN1cGVyKGRpbWVuc2lv
biwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlw
ZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuZGF0YVswXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRM
ZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF0ubGVuZ3RoOwor
ICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAx
OworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsYXllcl1bal1baV07CisgICAgfQorCisgICAgc2V0RWxl
bWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5k
YXRhW2xheWVyXVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTNEUlcg
ZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAg
eworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgZGVwdGggc2xpY2VzLCBlYWNoIGRl
cHRoIHNsaWNlIGlzIGFuIGFycmF5IG9mIHJvd3MsIGFuZCBlYWNoIHJvdyBpcyBhbiBhcnJheSBv
ZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBhIHNjYWxhciBvciBh
biBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRoLCBoZWlnaHQsIGFu
ZCBkZXB0aCBtdXN0IGJlIHBvd2Vycy1vZi10d28uCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9
IDM7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQg
aGVpZ2h0ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0aCA9IGRhdGEubGVuZ3Ro
OworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7CisgICAgICAgIGxldCBsYXllckNvdW50ID0g
MTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxD
b3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0
TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdWzBdLmxlbmd0
aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHRoaXMuZGF0YVswXS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVs
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5sZW5ndGg7CisgICAgfQorCisgICAg
ZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhp
cy5kYXRhW2tdW2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBr
LCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtrXVtqXVtpXSA9IHZhbHVl
OworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rl
eHR1cmVPcGVyYXRpb25zLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVy
ZU9wZXJhdGlvbnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzQ3OWU2OWIxZDJkYTQ5M2JmNWQ3Yzg3YWNiNTA0
Y2QxODgxYmJhMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1RleHR1cmVPcGVyYXRpb25zLmpzCkBAIC0wLDAgKzEsNTU2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyJ1c2Ugc3RyaWN0IjsKKworZnVuY3Rpb24g
ZGVwdGhDb21wYXJlT3BlcmF0aW9uKGRyZWYsIGQsIGNvbXBhcmVGdW5jdGlvbikKK3sKKyAgICAv
LyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuMy40CisgICAgc3dpdGNoIChjb21wYXJlRnVuY3Rp
b24pIHsKKyAgICAgICAgY2FzZSAibmV2ZXIiOgorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAg
ICAgIGNhc2UgImxlc3MiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYgPCBkID8gMSA6IDA7Cisg
ICAgICAgIGNhc2UgImVxdWFsIjoKKyAgICAgICAgICAgIHJldHVybiBkcmVmID09IGQgPyAxIDog
MDsKKyAgICAgICAgY2FzZSAibGVzc0VxdWFsIjoKKyAgICAgICAgICAgIHJldHVybiBkcmVmIDw9
IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAiZ3JlYXRlciI6CisgICAgICAgICAgICByZXR1cm4g
ZHJlZiA+IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAibm90RXF1YWwiOgorICAgICAgICAgICAg
cmV0dXJuIGRyZWYgIT0gZCA/IDEgOiAwOworICAgICAgICBjYXNlICJncmVhdGVyRXF1YWwiOgor
ICAgICAgICAgICAgcmV0dXJuIGRyZWYgPj0gZCA/IDEgOiAwOworICAgICAgICBjYXNlICJhbHdh
eXMiOgorICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZGVwdGggY29tcGFyaXNvbiBmdW5jdGlvbiIpOwor
ICAgIH0KK30KKworZnVuY3Rpb24gY29udmVyc2lvblRvUkdCQSh2YWx1ZSkKK3sKKyAgICAvLyBW
dWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuMy41CisgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJy
YXkpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IFtdOworICAgICAgICBmb3IgKGxldCBpID0gMDsg
aSA8IHZhbHVlLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgcmVzdWx0LnB1c2godmFsdWVbaV0p
OworICAgICAgICB3aGlsZSAocmVzdWx0Lmxlbmd0aCAhPSA0KQorICAgICAgICAgICAgcmVzdWx0
LnB1c2gocmVzdWx0Lmxlbmd0aCA9PSAzID8gMSA6IDApOworICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgIH0gZWxzZQorICAgICAgICByZXR1cm4gW3ZhbHVlLCAwLCAwLCAxXTsKK30KKworZnVu
Y3Rpb24gcHJvamVjdGlvbk9wZXJhdGlvbihzLCB0LCByLCBkcmVmLCBxKQoreworICAgIC8vIFZ1
bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjEKKyAgICByZXR1cm4gW3MgLyBxLCB0IC8gcSwgciAv
IHEsIGRyZWYgIT0gdW5kZWZpbmVkID8gZHJlZiAvIHEgOiB1bmRlZmluZWRdOworfQorCitmdW5j
dGlvbiBjdWJlTWFwRmFjZVNlbGVjdGlvbihzLCB0LCByLCBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRv
WCwgcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YLCBwYXJ0
aWFsUnlXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSeldp
dGhSZXNwZWN0VG9ZKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjQKKyAg
ICBsZXQgcnggPSBzOworICAgIGxldCByeSA9IHQ7CisgICAgbGV0IHJ6ID0gcjsKKyAgICBsZXQg
d2lubmVyID0gMDsKKyAgICBpZiAoTWF0aC5hYnMocnopID49IE1hdGguYWJzKHJ5KSAmJiBNYXRo
LmFicyhyeikgPj0gTWF0aC5hYnMocngpKQorICAgICAgICB3aW5uZXIgPSAyOworICAgIGVsc2Ug
aWYgKE1hdGguYWJzKHJ5KSA+PSBNYXRoLmFicyhyeCkgJiYgTWF0aC5hYnMocnkpID49IE1hdGgu
YWJzKHJ6KSkKKyAgICAgICAgd2lubmVyID0gMTsKKworICAgIGxldCBsYXllck51bWJlcjsKKyAg
ICBsZXQgc2M7CisgICAgbGV0IHRjOworICAgIGxldCByYzsKKyAgICBsZXQgcGFydGlhbFNjV2l0
aFJlc3BlY3RUb1g7CisgICAgbGV0IHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZOworICAgIGxldCBw
YXJ0aWFsVGNXaXRoUmVzcGVjdFRvWDsKKyAgICBsZXQgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1k7
CisgICAgbGV0IHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YOworICAgIGxldCBwYXJ0aWFsUmNXaXRo
UmVzcGVjdFRvWTsKKyAgICBpZiAod2lubmVyID09IDAgJiYgcnggPj0gMCkgeworICAgICAgICBs
YXllck51bWJlciA9IDA7CisgICAgICAgIHNjID0gLXJ6OworICAgICAgICB0YyA9IC1yeTsKKyAg
ICAgICAgcmMgPSByeDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlh
bFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0gLXBh
cnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCA9
IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RU
b1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNw
ZWN0VG9YID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhS
ZXNwZWN0VG9ZID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgfSBlbHNlIGlmICh3aW5u
ZXIgPT0gMCkgeworICAgICAgICBsYXllck51bWJlciA9IDE7CisgICAgICAgIHNjID0gcno7Cisg
ICAgICAgIHRjID0gLXJ5OworICAgICAgICByYyA9IHJ4OworICAgICAgICBwYXJ0aWFsU2NXaXRo
UmVzcGVjdFRvWCA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NX
aXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFs
VGNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFy
dGlhbFRjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgICAg
IHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAg
ICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWTsK
KyAgICB9IGVsc2UgaWYgKHdpbm5lciA9PSAxICYmIHJ5ID49IDApIHsKKyAgICAgICAgbGF5ZXJO
dW1iZXIgPSAyOworICAgICAgICBzYyA9IHJ4OworICAgICAgICB0YyA9IC1yejsKKyAgICAgICAg
cmMgPSByeTsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnhXaXRo
UmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnhX
aXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFs
UnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0
aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSBw
YXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kg
PSBwYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICB9IGVsc2UgaWYgKHdpbm5lciA9PSAxKSB7
CisgICAgICAgIGxheWVyTnVtYmVyID0gMzsKKyAgICAgICAgc2MgPSByeDsKKyAgICAgICAgdGMg
PSAtcno7CisgICAgICAgIHJjID0gcnk7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9Y
ID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0
VG9ZID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNw
ZWN0VG9YID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRo
UmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJj
V2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRp
YWxSY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxz
ZSBpZiAod2lubmVyID09IDIgJiYgcnogPj0gMCkgeworICAgICAgICBsYXllck51bWJlciA9IDQ7
CisgICAgICAgIHNjID0gcng7CisgICAgICAgIHRjID0gLXJ5OworICAgICAgICByYyA9IHJ6Owor
ICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9Y
OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0
VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVz
cGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0
aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ6
V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlh
bFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSA1
OworICAgICAgICBzYyA9IC1yeDsKKyAgICAgICAgdGMgPSAtcnk7CisgICAgICAgIHJjID0gcno7
CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeFdpdGhSZXNwZWN0
VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnhXaXRoUmVz
cGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0
aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxS
eVdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0
aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSAt
cGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgfQorICAgIHJldHVybiBbbGF5ZXJOdW1iZXIs
IHNjLCB0YywgcmMsIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU2NXaXRoUmVzcGVj
dFRvWSwgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZLCBw
YXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ldCit9CisKK2Z1
bmN0aW9uIGN1YmVNYXBDb29yZGluYXRlVHJhbnNmb3JtYXRpb24oc2MsIHJjKQoreworICAgIC8v
IFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjUKKyAgICBsZXQgc0ZhY2UgPSAoMSAvIDIpICog
c2MgLyBNYXRoLmFicyhyYykgKyAoMSAvIDIpOworICAgIGxldCB0RmFjZSA9ICgxIC8gMikgKiB0
YyAvIE1hdGguYWJzKHJjKSArICgxIC8gMik7CisgICAgcmV0dXJuIFtzRmFjZSwgdEZhY2VdOwor
fQorCitmdW5jdGlvbiBjdWJlTWFwRGVyaXZhdGl2ZVRyYW5zZm9ybWF0aW9uKHNjLCB0YywgcmMs
IHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSwgcGFydGlh
bFRjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUmNXaXRo
UmVzcGVjdFRvWCwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kpCit7CisgICAgLy8gVnVsa2FuIDEu
MS44MyBzZWN0aW9uIDE1LjYuNgorICAgIGxldCBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWCA9
ICgxIC8gMikgKiAoKE1hdGguYWJzKHJjKSAqIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YIC0gc2Mg
KiBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCkgLyBNYXRoLnBvdyhyYywgMikpOworICAgIGxldCBw
YXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWSA9ICgxIC8gMikgKiAoKE1hdGguYWJzKHJjKSAqIHBh
cnRpYWxTY1dpdGhSZXNwZWN0VG9ZIC0gc2MgKiBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSkgLyBN
YXRoLnBvdyhyYywgMikpOworICAgIGxldCBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRvWCA9ICgx
IC8gMikgKiAoKE1hdGguYWJzKHJjKSAqIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YIC0gdGMgKiBw
YXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCkgLyBNYXRoLnBvdyhyYywgMikpOworICAgIGxldCBwYXJ0
aWFsVEZhY2VXaXRoUmVzcGVjdFRvWSA9ICgxIC8gMikgKiAoKE1hdGguYWJzKHJjKSAqIHBhcnRp
YWxUY1dpdGhSZXNwZWN0VG9ZIC0gdGMgKiBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSkgLyBNYXRo
LnBvdyhyYywgMikpOworICAgIHJldHVybiBbcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1gsIHBh
cnRpYWxTRmFjZVdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRvWCwgcGFy
dGlhbFRGYWNlV2l0aFJlc3BlY3RUb1ldOworfQorCitmdW5jdGlvbiBzY2FsZUZhY3Rvck9wZXJh
dGlvbihkZXZpY2VNYXhBbmlzb3Ryb3B5LCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgc2FtcGxlck1h
eEFuaXNvdHJvcHksIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxUV2l0aFJlc3BlY3RU
b1gsIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1ksIHBhcnRp
YWxUV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kpCit7CisgICAgLy8gVnVs
a2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuNworICAgIGxldCBtdXggPSBNYXRoLmFicyhwYXJ0aWFs
U1dpdGhSZXNwZWN0VG9YKSAqIHdpZHRoOworICAgIGxldCBtdnggPSBNYXRoLmFicyhwYXJ0aWFs
VFdpdGhSZXNwZWN0VG9YKSAqIGhlaWdodDsKKyAgICBsZXQgbXd4ID0gTWF0aC5hYnMocGFydGlh
bFJXaXRoUmVzcGVjdFRvWCkgKiBkZXB0aDsKKyAgICBsZXQgbXV5ID0gTWF0aC5hYnMocGFydGlh
bFNXaXRoUmVzcGVjdFRvWSkgKiB3aWR0aDsKKyAgICBsZXQgbXZ5ID0gTWF0aC5hYnMocGFydGlh
bFRXaXRoUmVzcGVjdFRvWSkgKiBoZWlnaHQ7CisgICAgbGV0IG13eSA9IE1hdGguYWJzKHBhcnRp
YWxSV2l0aFJlc3BlY3RUb1kpICogZGVwdGg7CisKKyAgICBsZXQgZnggPSBNYXRoLnNxcnQoMikg
KiAobXV4ICsgbXZ4ICsgbXd4KTsKKyAgICBsZXQgZnkgPSBNYXRoLnNxcnQoMikgKiAobXV5ICsg
bXZ5ICsgbXd5KTsKKworICAgIGxldCByaG9YID0gZng7CisgICAgbGV0IHJob1kgPSBmeTsKKyAg
ICBsZXQgcmhvTWF4ID0gTWF0aC5tYXgocmhvWCwgcmhvWSk7CisgICAgbGV0IHJob01pbiA9IE1h
dGgubWluKHJob1gsIHJob1kpOworCisgICAgbGV0IG1heEFuaXNvID0gTWF0aC5taW4oc2FtcGxl
ck1heEFuaXNvdHJvcHksIGRldmljZU1heEFuaXNvdHJvcHkpOworCisgICAgbGV0IGV0YTsKKyAg
ICBpZiAocmhvTWF4ID09IDAgJiYgcmhvTWluID09IDApCisgICAgICAgIGV0YSA9IDE7CisgICAg
ZWxzZSBpZiAocmhvTWluID09IDApCisgICAgICAgIGV0YSA9IG1heEFuaXNvOworICAgIGVsc2UK
KyAgICAgICAgZXRhID0gTWF0aC5taW4ocmhvTWF4IC8gcmhvTWluLCBtYXhBbmlzbyk7CisKKyAg
ICBsZXQgTiA9IE1hdGguY2VpbChldGEpOworICAgIHJldHVybiBbcmhvTWF4LCByaG9NaW4sIGV0
YSwgTl07Cit9CisKK2Z1bmN0aW9uIGxldmVsT2ZEZXRhaWxPcGVyYXRpb24oZGV2aWNlTWF4U2Ft
cGxlckxvZEJpYXMsIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsIGxvZE1pbkZyb21GdW5jdGlvbk9w
ZXJhbmQsIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLCBzYW1wbGVyQmlhcywgc2FtcGxlckxvZE1p
biwgc2FtcGxlckxvYWRNYXgsIHJob01heCwgZXRhKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMg
c2VjdGlvbiAxNS42LjcKKyAgICBpZiAoYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQgPT0gdW5kZWZp
bmVkKQorICAgICAgICBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCA9IDA7CisKKyAgICBsZXQgbGFt
YmRhQmFzZSA9IGxvZEZyb21GdW5jdGlvbk9wZXJhbmQgIT0gdW5kZWZpbmVkID8gbG9kRnJvbUZ1
bmN0aW9uT3BlcmFuZCA6IE1hdGgubG9nMihyaG9NYXggLyBldGEpOworICAgIGxldCBsYW1iZGFQ
cmltZSA9IGxhbWJkYUJhc2UgKyBNYXRoLm1pbihNYXRoLm1heChzYW1wbGVyQmlhcyArIGJpYXNG
cm9tRnVuY3Rpb25PcGVyYW5kLCAtZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMpLCBkZXZpY2VNYXhT
YW1wbGVyTG9kQmlhcyk7CisgICAgbGV0IGxvZE1pbiA9IE1hdGgubWF4KHNhbXBsZXJMb2RNaW4s
IGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQpOworICAgIGxldCBsb2RNYXggPSBzYW1wbGVyTG9h
ZE1heDsKKyAgICBsZXQgbGFtYmRhOworICAgIGlmIChsYW1iZGFQcmltZSA+IGxvZE1heCkKKyAg
ICAgICAgbGFtYmRhID0gbG9kTWF4OworICAgIGVsc2UgaWYgKGxvZE1pbiA8PSBsYW1iZGFQcmlt
ZSAmJiBsYW1iZGFQcmltZSA8PSBsb2RNYXgpCisgICAgICAgIGxhbWJkYSA9IGxhbWJkYVByaW1l
OworICAgIGVsc2UgaWYgKGxhbWJkYVByaW1lIDwgbG9kTWluKQorICAgICAgICBsYW1iZGEgPSBs
b2RNaW47CisgICAgZWxzZQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImxvZE1pbiA+PSBsb2RN
YXgiKTsKKyAgICByZXR1cm4gbGFtYmRhOworfQorCitmdW5jdGlvbiBpbWFnZUxldmVsU2VsZWN0
aW9uKGJhc2VNaXBMZXZlbCwgbGV2ZWxDb3VudCwgbWlwbWFwTW9kZSwgbGFtYmRhKQoreworICAg
IC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjcKKyAgICBmdW5jdGlvbiBuZWFyZXN0KGRQ
cmltZSkKKyAgICB7CisgICAgICAgIHJldHVybiBNYXRoLmNlaWwoZFByaW1lICsgMC41KSAtIDE7
CisgICAgfQorCisgICAgbGV0IHEgPSBsZXZlbENvdW50IC0gMTsKKyAgICBsZXQgZFByaW1lID0g
YmFzZU1pcExldmVsICsgTWF0aC5taW4oTWF0aC5tYXgobGFtYmRhLCAwKSwgcSk7CisgICAgbGV0
IGRsOworICAgIGlmIChtaXBtYXBNb2RlID09ICJuZWFyZXN0IikKKyAgICAgICAgZGwgPSBuZWFy
ZXN0KGRQcmltZSk7CisgICAgZWxzZQorICAgICAgICBkbCA9IGRQcmltZTsKKyAgICBpZiAobWlw
bWFwTW9kZSA9PSAibmVhcmVzdCIpCisgICAgICAgIHJldHVybiBkbDsKKyAgICBlbHNlIHsKKyAg
ICAgICAgbGV0IGRIaSA9IE1hdGguZmxvb3IoZGwpOworICAgICAgICBsZXQgZExvdyA9IE1hdGgu
bWluKGRIaSArIDEsIHEpOworICAgICAgICBsZXQgZGVsdGEgPSBkbCAtIGRIaTsKKyAgICAgICAg
cmV0dXJuIFtkSGksIGRMb3csIGRlbHRhXTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHN0cnFhVG9V
VldBVHJhbnNmb3JtYXRpb24ocywgdCwgciwgd2lkdGgsIGhlaWdodCwgZGVwdGgpCit7CisgICAg
Ly8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuOAorICAgIGxldCB1ID0gcyAqIHdpZHRoOwor
ICAgIGxldCB2ID0gdCAqIGhlaWdodDsKKyAgICBsZXQgdyA9IHIgKiBkZXB0aDsKKyAgICByZXR1
cm4gW3UsIHYsIHddOworfQorCitmdW5jdGlvbiB1dndhVG9JSktMTlRyYW5zZm9ybWF0aW9uQW5k
QXJyYXlMYXllclNlbGVjdGlvbihsYXllckNvdW50LCBiYXNlQXJyYXlMYXllciwgZmlsdGVyLCB1
LCB2LCB3LCBhLCBkZWx0YUksIGRlbHRhSiwgZGVsdGFLKQoreworICAgIC8vIFZ1bGthbiAxLjEu
ODMgc2VjdGlvbiAxNS43LjEKKworICAgIGlmIChkZWx0YUkgPT0gdW5kZWZpbmVkKQorICAgICAg
ICBkZWx0YUkgPSAwOworICAgIGlmIChkZWx0YUogPT0gdW5kZWZpbmVkKQorICAgICAgICBkZWx0
YUogPSAwOworICAgIGlmIChkZWx0YUsgPT0gdW5kZWZpbmVkKQorICAgICAgICBkZWx0YUsgPSAw
OworCisgICAgZnVuY3Rpb24gcm5lKGEpCisgICAgeworICAgICAgICByZXR1cm4gTWF0aC5mbG9v
cihhICsgMC41KTsKKyAgICB9CisgICAgbGV0IGwgPSBNYXRoLm1pbihNYXRoLm1heChybmUoYSks
IDApLCBsYXllckNvdW50IC0gMSkgKyBiYXNlQXJyYXlMYXllcjsKKyAgICBsZXQgaTsKKyAgICBs
ZXQgajsKKyAgICBsZXQgazsKKyAgICBpZiAoZmlsdGVyID09ICJuZWFyZXN0IikgeworICAgICAg
ICBpID0gTWF0aC5mbG9vcih1KTsKKyAgICAgICAgaiA9IE1hdGguZmxvb3Iodik7CisgICAgICAg
IGsgPSBNYXRoLmZsb29yKHcpOworICAgICAgICAKKyAgICAgICAgaSArPSBkZWx0YUk7CisgICAg
ICAgIGogKz0gZGVsdGFKOworICAgICAgICBrICs9IGRlbHRhSzsKKyAgICAgICAgCisgICAgICAg
IHJldHVybiBbaSwgaiwgaywgbF07CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGZpbHRlciAh
PSAibGluZWFyIikKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBmaWx0ZXIi
KTsKKyAgICAgICAgbGV0IGkwID0gTWF0aC5mbG9vcih1IC0gMC41KTsKKyAgICAgICAgbGV0IGkx
ID0gaTAgKyAxOworICAgICAgICBsZXQgajAgPSBNYXRoLmZsb29yKHYgLSAwLjUpOworICAgICAg
ICBsZXQgajEgPSBqMCArIDE7CisgICAgICAgIGxldCBrMCA9IE1hdGguZmxvb3IodyAtIDAuNSk7
CisgICAgICAgIGxldCBrMSA9IGswICsgMTsKKyAgICAgICAgbGV0IGFscGhhID0gKHUgLSAwLjUp
IC0gaTA7CisgICAgICAgIGxldCBiZXRhID0gKHYgLSAwLjUpIC0gajA7CisgICAgICAgIGxldCBn
YW1tYSA9ICh3IC0gMC41KSAtIGswOworICAgICAgICAKKyAgICAgICAgaTAgKz0gZGVsdGFJOwor
ICAgICAgICBpMSArPSBkZWx0YUk7CisgICAgICAgIGowICs9IGRlbHRhSjsKKyAgICAgICAgajEg
Kz0gZGVsdGFKOworICAgICAgICBrMCArPSBkZWx0YUs7CisgICAgICAgIGsxICs9IGRlbHRhSzsK
KyAgICAgICAgCisgICAgICAgIHJldHVybiBbaTAsIGkxLCBqMCwgajEsIGswLCBrMSwgbCwgYWxw
aGEsIGJldGEsIGdhbW1hXTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGludGVnZXJUZXhlbENvb3Jk
aW5hdGVPcGVyYXRpb25zKGJhc2VNaXBMZXZlbCwgbGV2ZWxDb3VudCwgbGV2ZWxCYXNlLCBsb2RG
cm9tRnVuY3Rpb25PcGVyYW5kKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS44
CisgICAgbGV0IGQgPSBsZXZlbEJhc2UgKyBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kOworICAgIGlm
IChkIDwgYmFzZU1pcExldmVsIHx8IGQgPj0gYmFzZU1pcExldmVsICsgbGV2ZWxDb3VudCkKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJTZWxlY3RlZCBsZXZlbCBkb2VzIG5vdCBsaWUgaW5zaWRl
IHRoZSBpbWFnZSIpOworICAgIHJldHVybiBkOworfQorCitmdW5jdGlvbiB3cmFwcGluZ09wZXJh
dGlvbih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgYWRkcmVzc01vZGVVLCBhZGRyZXNzTW9kZVYsIGFk
ZHJlc3NNb2RlVywgaSwgaiwgaykKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUu
OS4xCisgICAgLy8gRklYTUU6IEltcGxlbWVudCBjdWJlIG1hcCBoYW5kbGluZworICAgIGZ1bmN0
aW9uIHRyYW5zZm9ybShhZGRyZXNzTW9kZSwgc2l6ZSwgaSkKKyAgICB7CisgICAgICAgIGZ1bmN0
aW9uIG1pcnJvcihuKSB7CisgICAgICAgICAgICBpZiAobiA+PSAwKQorICAgICAgICAgICAgICAg
IHJldHVybiBuOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiAtKDEg
KyBuKTsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKGFkZHJlc3NNb2RlKSB7CisgICAgICAg
ICAgICBjYXNlICJjbGFtcFRvRWRnZSI6CisgICAgICAgICAgICAgICAgcmV0dXJuIE1hdGgubWlu
KE1hdGgubWF4KGksIDApLCBzaXplIC0gMSk7CisgICAgICAgICAgICBjYXNlICJyZXBlYXQiOgor
ICAgICAgICAgICAgICAgIHJldHVybiBpICUgc2l6ZTsKKyAgICAgICAgICAgIGNhc2UgIm1pcnJv
clJlcGVhdCI6CisgICAgICAgICAgICAgICAgcmV0dXJuIChzaXplIC0gMSkgLSBtaXJyb3IoKGkg
JSAoMiAqIHNpemUpKSAtIHNpemUpOworICAgICAgICAgICAgY2FzZSAiY2xhbXBUb0JvcmRlckNv
bG9yIjoKKyAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoaSwgLTEpLCBz
aXplKTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJVbmtub3duIGFkZHJlc3MgbW9kZSIpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVy
biBbdHJhbnNmb3JtKGFkZHJlc3NNb2RlVSwgd2lkdGgsIGkpLCB0cmFuc2Zvcm0oYWRkcmVzc01v
ZGVWLCBoZWlnaHQsIGopLCB0cmFuc2Zvcm0oYWRkcmVzc01vZGVXLCBkZXB0aCwgayldOworfQor
CitmdW5jdGlvbiB0ZXhlbEdhdGhlcmluZygpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0
aW9uIDE1LjkuMgorICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcworICAgIC8qbGV0IHRhdVIg
PSA7CisgICAgbGV0IHRhdUcgPSA7CisgICAgbGV0IHRhdUIgPSA7CisgICAgbGV0IHRhdUEgPSA7
Ki8KK30KKworZnVuY3Rpb24gdGV4ZWxGaWx0ZXJpbmcoCisgICAgZGV2aWNlTWF4QW5pc290cm9w
eSwKKyAgICBkZXZpY2VNYXhTYW1wbGVyTG9kQmlhcywKKyAgICBiYXNlTWlwTGV2ZWwsCisgICAg
YmFzZUFycmF5TGF5ZXIsCisgICAgdGV4dHVyZSwKKyAgICBzYW1wbGVyLAorICAgIHNhbXBsZXJC
aWFzLAorICAgIHMsIHQsIHIsIGEsCisgICAgZGVsdGFJLCBkZWx0YUosIGRlbHRhSywKKyAgICBs
b2RGcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQsCisg
ICAgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgZGR4LCBkZHkpCit7CisgICAgLy8gVnVs
a2FuIDEuMS44MyBzZWN0aW9uIDE1LjkuMworCisgICAgLy8gVGhlIHNwZWMgdXNlcyBkaWZmZXJl
bnQgbmFtZXMgdGhhbiBXZWJHUFUgZG9lcy4KKyAgICBsZXQgYWRkcmVzc01vZGVVID0gc2FtcGxl
ci5yQWRkcmVzc01vZGU7CisgICAgbGV0IGFkZHJlc3NNb2RlViA9IHNhbXBsZXIuc0FkZHJlc3NN
b2RlOworICAgIGxldCBhZGRyZXNzTW9kZVcgPSBzYW1wbGVyLnRBZGRyZXNzTW9kZTsKKworICAg
IC8vIEZJWE1FOiBNYWtlIHRoaXMgd29yayB3aXRoIGN1YmVtYXBzCisgICAgbGV0IHBhcnRpYWxT
V2l0aFJlc3BlY3RUb1ggPSAwOworICAgIGxldCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YID0gMDsK
KyAgICBsZXQgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCA9IDA7CisgICAgaWYgKGRkeCAhPSB1bmRl
ZmluZWQpIHsKKyAgICAgICAgcGFydGlhbFNXaXRoUmVzcGVjdFRvWCA9IGRkeFswXTsKKyAgICAg
ICAgcGFydGlhbFRXaXRoUmVzcGVjdFRvWCA9IGRkeFsxXTsKKyAgICAgICAgcGFydGlhbFJXaXRo
UmVzcGVjdFRvWCA9IGRkeFsyXTsKKyAgICB9CisgICAgbGV0IHBhcnRpYWxTV2l0aFJlc3BlY3RU
b1kgPSAwOworICAgIGxldCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZID0gMDsKKyAgICBsZXQgcGFy
dGlhbFJXaXRoUmVzcGVjdFRvWSA9IDA7CisgICAgaWYgKGRkeSAhPSB1bmRlZmluZWQpIHsKKyAg
ICAgICAgcGFydGlhbFNXaXRoUmVzcGVjdFRvWSA9IGRkeVswXTsKKyAgICAgICAgcGFydGlhbFRX
aXRoUmVzcGVjdFRvWSA9IGRkeVsxXTsKKyAgICAgICAgcGFydGlhbFJXaXRoUmVzcGVjdFRvWSA9
IGRkeVsyXTsKKyAgICB9CisgICAgbGV0IFtyaG9NYXgsIHJob01pbiwgZXRhLCBOXSA9IHNjYWxl
RmFjdG9yT3BlcmF0aW9uKGRldmljZU1heEFuaXNvdHJvcHksIHRleHR1cmUud2lkdGgsIHRleHR1
cmUuaGVpZ2h0LCB0ZXh0dXJlLmRlcHRoLCBzYW1wbGVyLm1heEFuaXNvdHJvcHksIHBhcnRpYWxT
V2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSV2l0aFJlc3Bl
Y3RUb1gsIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1ksIHBh
cnRpYWxSV2l0aFJlc3BlY3RUb1kpOworICAgIGxldCBsYW1iZGEgPSBsZXZlbE9mRGV0YWlsT3Bl
cmF0aW9uKGRldmljZU1heFNhbXBsZXJMb2RCaWFzLCBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLCBs
b2RNaW5Gcm9tRnVuY3Rpb25PcGVyYW5kLCBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwgc2FtcGxl
ckJpYXMsIHNhbXBsZXIubG9kTWluQ2xhbXAsIHNhbXBsZXIubG9kTWF4Q2xhbXAsIHJob01heCwg
ZXRhKTsKKworICAgIGxldCBmaWx0ZXI7CisgICAgaWYgKGxhbWJkYSA8PSAwKQorICAgICAgICBm
aWx0ZXIgPSBzYW1wbGVyLm1hZ0ZpbHRlcjsKKyAgICBlbHNlCisgICAgICAgIGZpbHRlciA9IHNh
bXBsZXIubWluRmlsdGVyOworCisgICAgZnVuY3Rpb24gY29tcHV0ZVRhdShsZXZlbCkKKyAgICB7
CisgICAgICAgIGZ1bmN0aW9uIHJlZHVjZSguLi52YWx1ZXMpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGlmICh2YWx1ZXMubGVuZ3RoICUgMiAhPSAwKQorICAgICAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigiRG9uJ3QgaGF2ZSBhIHdlaWdodCBjb3JyZXNwb25kaW5nIHRvIGVhY2ggdmFsdWUi
KTsKKyAgICAgICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoIDwgMikKKyAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIkRvbid0IGhhdmUgZW5vdWdoIHRoaW5ncyB0byBjYWxjdWxhdGUgYW4g
YXZlcmFnZSIpOworICAgICAgICAgICAgbGV0IHN1bTsKKyAgICAgICAgICAgIGlmICh2YWx1ZXNb
MV0gaW5zdGFuY2VvZiBBcnJheSkgeworICAgICAgICAgICAgICAgIHN1bSA9IFtdOworICAgICAg
ICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzWzFdLmxlbmd0aDsgKytpKQorICAg
ICAgICAgICAgICAgICAgICBzdW0ucHVzaCgwKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgICAgIHN1bSA9IDA7CisgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVl
cy5sZW5ndGggLyAyOyArK2kpIHsKKyAgICAgICAgICAgICAgICBsZXQgd2VpZ2h0ID0gdmFsdWVz
WzIgKiBpXTsKKyAgICAgICAgICAgICAgICBsZXQgY29sb3IgPSB2YWx1ZXNbMiAqIGkgKyAxXTsK
KyAgICAgICAgICAgICAgICBpZiAoY29sb3IgaW5zdGFuY2VvZiBBcnJheSkgeworICAgICAgICAg
ICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbG9yLmxlbmd0aDsgKytpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgc3VtW2ldICs9IHdlaWdodCAqIGNvbG9yW2ldOworICAgICAgICAg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBzdW0gKz0gd2VpZ2h0ICogY29sb3I7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gc3VtOworICAgICAgICB9CisKKyAg
ICAgICAgZnVuY3Rpb24gYWNjZXNzQ29sb3Iod2lkdGgsIGhlaWdodCwgZGVwdGgsIGwsIGksIGos
IGspCisgICAgICAgIHsKKyAgICAgICAgICAgIGZ1bmN0aW9uIHNob3VsZEJlQm9yZGVyKHZhbHVl
LCBtYXgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlIDwgLTEgfHwg
dmFsdWUgPiBtYXgpCisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiT3V0LW9m
LWJvdW5kcyB0ZXh0dXJlIHJlYWQiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPT0g
LTEgfHwgdmFsdWUgPT0gbWF4OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsZXQgW3dy
YXBwZWRJLCB3cmFwcGVkSiwgd3JhcHBlZEtdID0gd3JhcHBpbmdPcGVyYXRpb24od2lkdGgsIGhl
aWdodCwgZGVwdGgsIGFkZHJlc3NNb2RlVSwgYWRkcmVzc01vZGVWLCBhZGRyZXNzTW9kZVcsIGks
IGosIGspCisgICAgICAgICAgICBpZiAoc2hvdWxkQmVCb3JkZXIod3JhcHBlZEksIHdpZHRoKSB8
fCBzaG91bGRCZUJvcmRlcih3cmFwcGVkSiwgaGVpZ2h0KSB8fCBzaG91bGRCZUJvcmRlcih3cmFw
cGVkSywgZGVwdGgpKQorICAgICAgICAgICAgICAgIHJldHVybiBzYW1wbGVyLmNhbGN1bGF0ZUJv
cmRlckNvbG9yKHRleHR1cmUuaW5uZXJUeXBlKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdGV4dHVyZS5lbGVtZW50KGwsIGxldmVsLCB3cmFwcGVkSywgd3JhcHBl
ZEosIHdyYXBwZWRJKTsKKyAgICAgICAgfQorCisgICAgICAgIGxldCBbdSwgdiwgd10gPSBzdHJx
YVRvVVZXQVRyYW5zZm9ybWF0aW9uKHMsIHQsIHIsIHRleHR1cmUud2lkdGhBdExldmVsKGxldmVs
KSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2
ZWwpKTsKKyAgICAgICAgaWYgKGZpbHRlciA9PSAibmVhcmVzdCIpIHsKKyAgICAgICAgICAgIGxl
dCBbaSwgaiwgaywgbF0gPSB1dndhVG9JSktMTlRyYW5zZm9ybWF0aW9uQW5kQXJyYXlMYXllclNl
bGVjdGlvbih0ZXh0dXJlLmxheWVyQ291bnQsIGJhc2VBcnJheUxheWVyLCBmaWx0ZXIsIHUsIHYs
IHcsIGEsIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUspOworICAgICAgICAgICAgcmV0dXJuIGFjY2Vz
c0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVs
KGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpLCBqLCBrKTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChmaWx0ZXIgIT0gImxpbmVhciIpCisgICAgICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGZpbHRlciIpOworICAgICAgICAgICAg
bGV0IFtpMCwgaTEsIGowLCBqMSwgazAsIGsxLCBsLCBhbHBoYSwgYmV0YSwgZ2FtbWFdID0gdXZ3
YVRvSUpLTE5UcmFuc2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJTZWxlY3Rpb24odGV4dHVyZS5sYXll
ckNvdW50LCBiYXNlQXJyYXlMYXllciwgZmlsdGVyLCB1LCB2LCB3LCBhLCBkZWx0YUksIGRlbHRh
SiwgZGVsdGFLKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjAwMCA9IGFjY2Vzc0NvbG9yKHRleHR1
cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4
dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMCwgajAsIGswKTsKKyAgICAgICAgICAgIGxl
dCBjb2xvcjEwMCA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4
dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBs
LCBpMSwgajAsIGswKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjAxMCA9IGFjY2Vzc0NvbG9yKHRl
eHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwg
dGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMCwgajEsIGswKTsKKyAgICAgICAgICAg
IGxldCBjb2xvcjExMCA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwg
dGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwp
LCBsLCBpMSwgajEsIGswKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjAwMSA9IGFjY2Vzc0NvbG9y
KHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVs
KSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMCwgajAsIGsxKTsKKyAgICAgICAg
ICAgIGxldCBjb2xvcjEwMSA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVs
KSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2
ZWwpLCBsLCBpMSwgajAsIGsxKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjAxMSA9IGFjY2Vzc0Nv
bG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxl
dmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMCwgajEsIGsxKTsKKyAgICAg
ICAgICAgIGxldCBjb2xvcjExMSA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxl
dmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwo
bGV2ZWwpLCBsLCBpMSwgajEsIGsxKTsKKyAgICAgICAgICAgIHN3aXRjaCAodGV4dHVyZS5kaW1l
bnNpb24pIHsKKyAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgIGxl
dCBjb2xvcjAgPSBjb2xvcjAxMTsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMSA9IGNv
bG9yMTExOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVkdWNlKDEgLSBhbHBoYSwgY29s
b3IwLCBhbHBoYSwgY29sb3IxKTsKKyAgICAgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAg
ICAgICAgICAgIGxldCBjb2xvcjAwID0gY29sb3IwMDE7CisgICAgICAgICAgICAgICAgICAgIGxl
dCBjb2xvcjEwID0gY29sb3IxMDE7CisgICAgICAgICAgICAgICAgICAgIGxldCBjb2xvcjAxID0g
Y29sb3IwMTE7CisgICAgICAgICAgICAgICAgICAgIGxldCBjb2xvcjExID0gY29sb3IxMTE7Cisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiByZWR1Y2UoKDEgLSBhbHBoYSkgKiAoMSAtIGJldGEp
LCBjb2xvcjAwLCBhbHBoYSAqICgxIC0gYmV0YSksIGNvbG9yMTAsICgxIC0gYWxwaGEpICogYmV0
YSwgY29sb3IwMSwgYWxwaGEgKiBiZXRhLCBjb2xvcjExKTsKKyAgICAgICAgICAgICAgICBjYXNl
IDM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWR1Y2UoCisgICAgICAgICAgICAgICAg
ICAgICAgICAoMSAtIGFscGhhKSAqICgxIC0gYmV0YSkgKiAoMSAtIGdhbW1hKSwgY29sb3IwMDAs
CisgICAgICAgICAgICAgICAgICAgICAgICBhbHBoYSAqICgxIC0gYmV0YSkgKiAoMSAtIGdhbW1h
KSwgY29sb3IxMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAoMSAtIGFscGhhKSAqIGJldGEg
KiAoMSAtIGdhbW1hKSwgY29sb3IwMTAsCisgICAgICAgICAgICAgICAgICAgICAgICBhbHBoYSAq
IGJldGEgKiAoMSAtIGdhbW1hKSwgY29sb3IxMTAsCisgICAgICAgICAgICAgICAgICAgICAgICAo
MSAtIGFscGhhKSAqICgxIC0gYmV0YSkgKiBnYW1tYSwgY29sb3IwMDEsCisgICAgICAgICAgICAg
ICAgICAgICAgICBhbHBoYSAqICgxIC0gYmV0YSkgKiBnYW1tYSwgY29sb3IxMDEsCisgICAgICAg
ICAgICAgICAgICAgICAgICAoMSAtIGFscGhhKSAqIGJldGEgKiBnYW1tYSwgY29sb3IwMTEsCisg
ICAgICAgICAgICAgICAgICAgICAgICBhbHBoYSAqIGJldGEgKiBnYW1tYSwgY29sb3IxMTEpOwor
ICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBF
cnJvcigiVW5rbm93biBkaW1lbnNpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
IH0KKworICAgIGlmIChzYW1wbGVyLm1pcEZpbHRlciA9PSAibmVhcmVzdCIpIHsKKyAgICAgICAg
bGV0IGltYWdlTGV2ZWwgPSBpbWFnZUxldmVsU2VsZWN0aW9uKGJhc2VNaXBMZXZlbCwgdGV4dHVy
ZS5sZXZlbENvdW50LCBzYW1wbGVyLm1pcEZpbHRlciwgbGFtYmRhKTsKKyAgICAgICAgcmV0dXJu
IGNvbXB1dGVUYXUoaW1hZ2VMZXZlbCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHNhbXBs
ZXIubWlwRmlsdGVyICE9ICJsaW5lYXIiKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJV
bmtub3duIGZpbHRlciIpOworICAgICAgICBsZXQgW2RIaSwgZExvdywgZGVsdGFdID0gaW1hZ2VM
ZXZlbFNlbGVjdGlvbihiYXNlTWlwTGV2ZWwsIHRleHR1cmUubGV2ZWxDb3VudCwgc2FtcGxlci5t
aXBGaWx0ZXIsIGxhbWJkYSk7CisgICAgICAgIHJldHVybiByZWR1Y2UoMSAtIGRlbHRhLCBjb21w
dXRlVGF1KGRIaSksIGRlbHRhLCBjb21wdXRlVGF1KGRMbykpOworICAgIH0KK30KKworZnVuY3Rp
b24gc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGVsdGEsIGJpYXNG
cm9tRnVuY3Rpb25PcGVyYW5kLCBkZHgsIGRkeSwgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwgZHJl
ZikKK3sKKyAgICBsZXQgcyA9IGxvY2F0aW9uWzBdOworICAgIGxldCB0ID0gbG9jYXRpb25bMV07
CisgICAgbGV0IHIgPSBsb2NhdGlvblsyXTsKKyAgICBsZXQgcSA9IGxvY2F0aW9uWzNdOworICAg
IGxldCBhID0gbG9jYXRpb25bNF07CisKKyAgICBsZXQgZGVsdGFJID0gdW5kZWZpbmVkOworICAg
IGxldCBkZWx0YUogPSB1bmRlZmluZWQ7CisgICAgbGV0IGRlbHRhSyA9IHVuZGVmaW5lZDsKKyAg
ICBpZiAoZGVsdGEgIT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGRlbHRhSSA9IGRlbHRhWzBdOwor
ICAgICAgICBkZWx0YUogPSBkZWx0YVsxXTsKKyAgICAgICAgZGVsdGFLID0gZGVsdGFbMl07Cisg
ICAgfQorCisgICAgW3MsIHQsIHIsIGRyZWZdID0gcHJvamVjdGlvbk9wZXJhdGlvbihzLCB0LCBy
LCBkcmVmLCBxKTsKKyAgICBsZXQgcmVzdWx0ID0gdGV4ZWxGaWx0ZXJpbmcoCisgICAgICAgIE51
bWJlci5NQVhfVkFMVUUsCisgICAgICAgIE51bWJlci5NQVhfVkFMVUUsCisgICAgICAgIDAsCisg
ICAgICAgIDAsCisgICAgICAgIHRleHR1cmUsCisgICAgICAgIHNhbXBsZXIsCisgICAgICAgIDAs
CisgICAgICAgIHMsIHQsIHIsIGEsCisgICAgICAgIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUssCisg
ICAgICAgIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgICAgIC1OdW1iZXIuTUFYX1ZBTFVF
LAorICAgICAgICBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwKKyAgICAgICAgZGR4LCBkZHkpOwor
ICAgIGlmIChkcmVmICE9IHVuZGVmaW5lZCkgeworICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNl
b2YgQXJyYXkpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkRlcHRoIGNvbXBhcmlzb24g
bm90IHN1cHBvcnRlZCBvbiBtdWx0aWNoYW5uZWwgdGV4dHVyZXMiKTsKKyAgICAgICAgcmVzdWx0
ID0gZGVwdGhDb21wYXJlT3BlcmF0aW9uKGRyZWYsIHJlc3VsdCwgc2FtcGxlci5jb21wYXJlRnVu
Y3Rpb24pOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworICAgIC8vIEZJWE1FOiBGaWd1cmUg
b3V0IHdoYXQgdG8gZG8gd2l0aCBhbmlzb3Ryb3B5CisgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQg
aG93IHRvIGRvIG11bHRpc2FtcGxpbmcuCisgICAgLy8gRklYTUU6IENhc3QgdGhlIHJlc3VsdCBi
YWNrIHRvIHRoZSBjb3JyZWN0IHR5cGUuCit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
aW5kZXguaHRtbAppbmRleCA2NWE4NjQxMWIzZTc3MGI1NTdiNDFhY2M3ZTQxNGRlZjQyNDAzMDEz
Li40M2JlN2FjZTJjYjM3OGE1YjgxZWVhYzZhYWYxYTI5ZGY4MWJiYzM2IDEwMDY0NAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCisrKyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKQEAgLTExNSw2ICsxMTUsNyBAQAogPHNjcmlw
dCBzcmM9IlJldHVybi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUmV0dXJuQ2hlY2tlci5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUmV0dXJuRXhjZXB0aW9uLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJTYW1wbGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTdGFuZGFy
ZExpYnJhcnkuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN0YXRlbWVudENsb25lci5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3RydWN0TGF5b3V0QnVpbGRlci5qcyI+PC9zY3JpcHQ+
CkBAIC0xMjcsNiArMTI4LDggQEAKIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplQ29weUNvbnN0cnVj
dG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVEZWZhdWx0
Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVGVybmFyeUV4
cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlRleHR1cmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9IlRleHR1cmVPcGVyYXRpb25zLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJUcmFwU3RhdGVtZW50LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348718</attachid>
            <date>2018-09-01 15:18:48 -0700</date>
            <delta_ts>2018-09-01 18:13:30 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188940-20180901151847.patch</filename>
            <type>text/plain</type>
            <size>197281</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTc5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2Q4OThkNDE0Y2U2OGY4MWEyM2UzYmQyMTU2Zjc1ZDNl
MjMwZTkzOC4uMTBkZjgxMTUzMDMyZWM5NDI0MmNmMTZiZGMxZGY4NDdjZTRhMTRkMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
OSBAQAorMjAxOC0wOC0zMSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRleHR1cmUgdHlwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNp
Y3MuanM6CisgICAgICAgIChJbnRyaW5zaWNzLik6CisgICAgICAgIChJbnRyaW5zaWNzLmNoZWNr
RmFsc2UpOgorICAgICAgICAoSW50cmluc2ljcy5ib3hWZWN0b3IpOgorICAgICAgICAoSW50cmlu
c2ljcy51bmJveFZlY3Rvcik6CisgICAgICAgIChJbnRyaW5zaWNzKToKKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qczoKKyAgICAgICAgKGxldC5zdGFuZGFyZExpYnJh
cnkpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAobWFrZVNhbXBs
ZXIpOgorICAgICAgICAobWFrZTFEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMURUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMkRUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTNEVGV4dHVyZSk6CisgICAgICAgIChtYWtlVGV4dHVyZUN1YmUp
OgorICAgICAgICAobWFrZVJXMURUZXh0dXJlKToKKyAgICAgICAgKG1ha2VSVzFEVGV4dHVyZUFy
cmF5KToKKyAgICAgICAgKG1ha2VSVzJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlUlcyRFRleHR1
cmVBcnJheSk6CisgICAgICAgIChtYWtlUlczRFRleHR1cmUpOgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1RleHR1cmUuanM6IEFkZGVkLgorICAgICAgICAoVGV4dHVyZSk6Cisg
ICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQgZGltZW5zaW9uKToKKyAgICAgICAgKFRleHR1
cmUucHJvdG90eXBlLmdldCB3aWR0aCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aGVpZ2h0KToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkZXB0aCk6CisgICAgICAg
IChUZXh0dXJlLnByb3RvdHlwZS5nZXQgbGV2ZWxDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnBy
b3RvdHlwZS5nZXQgbGF5ZXJDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aW5uZXJUeXBlKToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkYXRhKToKKyAgICAg
ICAgKFRleHR1cmUucHJvdG90eXBlLmVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUu
cHJvdG90eXBlLnNldEVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUxRCk6CisgICAg
ICAgIChUZXh0dXJlMUQucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJl
MUQucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlw
ZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlwZS5lbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUxRC5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0
dXJlMURBcnJheSk6CisgICAgICAgIChUZXh0dXJlMURBcnJheS5wcm90b3R5cGUud2lkdGhBdExl
dmVsKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToK
KyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTFEQXJyYXkucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTFE
QXJyYXkucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEKToKKyAgICAg
ICAgKFRleHR1cmUyRC5wcm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUy
RC5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBl
LmRlcHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBlLmVsZW1lbnQpOgor
ICAgICAgICAoVGV4dHVyZTJELnByb3RvdHlwZS5zZXRFbGVtZW50KToKKyAgICAgICAgKFRleHR1
cmUyREFycmF5KToKKyAgICAgICAgKFRleHR1cmUyREFycmF5LnByb3RvdHlwZS53aWR0aEF0TGV2
ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgor
ICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMkRBcnJheS5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMkRB
cnJheS5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlM0QpOgorICAgICAg
ICAoVGV4dHVyZTNELnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTNE
LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUuZWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0QucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVy
ZUN1YmUpOgorICAgICAgICAoVGV4dHVyZUN1YmUucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6Cisg
ICAgICAgIChUZXh0dXJlQ3ViZS5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlQ3ViZS5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmVDdWJl
LnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmVDdWJlLnByb3RvdHlwZS5zZXRF
bGVtZW50KToKKyAgICAgICAgKFRleHR1cmUxRFJXKToKKyAgICAgICAgKFRleHR1cmUxRFJXLnBy
b3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmhl
aWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmRlcHRoQXRMZXZl
bCk6CisgICAgICAgIChUZXh0dXJlMURSVy5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChU
ZXh0dXJlMURSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMURBcnJh
eVJXKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6
CisgICAgICAgIChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAg
ICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUx
REFycmF5UlcucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEUlcpOgor
ICAgICAgICAoVGV4dHVyZTJEUlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlMkRSVy5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkRS
Vy5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlw
ZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlwZS5zZXRFbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUyREFycmF5UlcpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5w
cm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90
eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90eXBlLmVsZW1l
bnQpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0RSVyk6CisgICAgICAgIChUZXh0dXJlM0RSVy5wcm90b3R5cGUud2lk
dGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVs
KToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTNEUlcucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTNEUlcu
cHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1RleHR1cmVPcGVyYXRpb25zLmpzOiBBZGRlZC4KKyAgICAgICAgKGRlcHRoQ29tcGFyZU9wZXJh
dGlvbik6CisgICAgICAgIChjb252ZXJzaW9uVG9SR0JBKToKKyAgICAgICAgKHByb2plY3Rpb25P
cGVyYXRpb24pOgorICAgICAgICAoY3ViZU1hcEZhY2VTZWxlY3Rpb24pOgorICAgICAgICAoY3Vi
ZU1hcENvb3JkaW5hdGVUcmFuc2Zvcm1hdGlvbik6CisgICAgICAgIChjdWJlTWFwRGVyaXZhdGl2
ZVRyYW5zZm9ybWF0aW9uKToKKyAgICAgICAgKHNjYWxlRmFjdG9yT3BlcmF0aW9uKToKKyAgICAg
ICAgKGxldmVsT2ZEZXRhaWxPcGVyYXRpb24pOgorICAgICAgICAobmVhcmVzdCk6CisgICAgICAg
IChpbWFnZUxldmVsU2VsZWN0aW9uKToKKyAgICAgICAgKHN0cnFhVG9VVldBVHJhbnNmb3JtYXRp
b24pOgorICAgICAgICAocm5lKToKKyAgICAgICAgKHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25B
bmRBcnJheUxheWVyU2VsZWN0aW9uKToKKyAgICAgICAgKGludGVnZXJUZXhlbENvb3JkaW5hdGVP
cGVyYXRpb25zKToKKyAgICAgICAgKG1pcnJvcik6CisgICAgICAgICh0cmFuc2Zvcm0pOgorICAg
ICAgICAod3JhcHBpbmdPcGVyYXRpb24pOgorICAgICAgICAodGV4ZWxHYXRoZXJpbmcpOgorICAg
ICAgICAoY29tcHV0ZVRhdS5yZWR1Y2UpOgorICAgICAgICAoY29tcHV0ZVRhdS5zaG91bGRCZUJv
cmRlcik6CisgICAgICAgIChjb21wdXRlVGF1LmFjY2Vzc0NvbG9yKToKKyAgICAgICAgKGNvbXB1
dGVUYXUpOgorICAgICAgICAodGV4ZWxGaWx0ZXJpbmcpOgorICAgICAgICAoc2FtcGxlVGV4dHVy
ZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAx
OC0wOC0zMSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgYWRkIGFuIGFsdGVybmF0ZSBlbWFpbCBmb3IgQWRpdHlhIEtlZXJ0aGkuCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKaW5kZXggOWMyYTM3MTUwYzFlOTc2YjkyNmNm
YmVlMjM0Mzc1MjBhOGRlNGE0Ny4uZGJjNjU3ODllNmEzMjRhZDcyZjJiMGUzYTBjYzc2MmY3ZjUy
NGRjNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCisr
KyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwpAQCAtMTM4LDYgKzEzOCw3
IEBAIGxvYWQoIlJlc29sdmVUeXBlRGVmcy5qcyIpOwogbG9hZCgiUmV0dXJuLmpzIik7CiBsb2Fk
KCJSZXR1cm5DaGVja2VyLmpzIik7CiBsb2FkKCJSZXR1cm5FeGNlcHRpb24uanMiKTsKK2xvYWQo
IlNhbXBsZXIuanMiKTsKIGxvYWQoIlN0YW5kYXJkTGlicmFyeS5qcyIpOwogbG9hZCgiU3RhdGVt
ZW50Q2xvbmVyLmpzIik7CiBsb2FkKCJTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIik7CkBAIC0xNTAs
NiArMTUxLDggQEAgbG9hZCgiU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyIpOwogbG9hZCgi
U3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIik7CiBsb2FkKCJTeW50aGVzaXpl
RGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiKTsKIGxvYWQoIlRlcm5hcnlFeHByZXNzaW9u
LmpzIik7Citsb2FkKCJUZXh0dXJlLmpzIik7Citsb2FkKCJUZXh0dXJlT3BlcmF0aW9ucy5qcyIp
OwogbG9hZCgiVHJhcFN0YXRlbWVudC5qcyIpOwogbG9hZCgiVHlwZURlZi5qcyIpOwogbG9hZCgi
VHlwZURlZlJlc29sdmVyLmpzIik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9JbnRyaW5zaWNzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50
cmluc2ljcy5qcwppbmRleCBiMDA0MDY3ZjVlYmZiM2E4YjRiZDk4ZTQzN2E4YzA3NjhiZTI2ZjFl
Li5iZTc4NDAwNDM0ZTM3ZTM5MTczOWY1NWJmNzY0ZjRlYWFmY2JjMjM1IDEwMDY0NAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMKQEAgLTMzMCw3ICszMzAsOCBAQCBj
bGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiBzYW1wbGVyIiwK
ICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAgICAgICAgICAgIHRoaXMuc2FtcGxlciA9IHR5
cGU7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBwdXQgaGVy
ZS4KKyAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgIHR5cGUu
cG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zm
c2V0LCB7fSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICBmb3IgKGxldCB0ZXh0dXJlVHlw
ZSBvZiBbIlRleHR1cmUxRCIsICJSV1RleHR1cmUxRCIsICJUZXh0dXJlMURBcnJheSIsICJSV1Rl
eHR1cmUxREFycmF5IiwgIlRleHR1cmUyRCIsICJSV1RleHR1cmUyRCIsICJUZXh0dXJlMkRBcnJh
eSIsICJSV1RleHR1cmUyREFycmF5IiwgIlRleHR1cmUzRCIsICJSV1RleHR1cmUzRCIsICJUZXh0
dXJlQ3ViZSJdKSB7CkBAIC0zMzksMTIgKzM0MCwxNiBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlwZUFy
Z3VtZW50fT5gLAogICAgICAgICAgICAgICAgICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAg
ICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gXSA9IHR5cGU7
CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAg
ICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4g
YnVmZmVyLnNldChvZmZzZXQsIHt9KTsKICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAg
ICAgICAgICAgZm9yIChsZXQgaSA9IDI7IGkgPD0gNDsgKytpKSB7CiAgICAgICAgICAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVk
ZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9JHtpfT5gLAogICAgICAgICAgICAgICAg
ICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0
ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9JHtpfT5gXSA9IHR5cGU7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIu
c2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQpAQCAtMzU2LDYgKzM2MSw4IEBAIGNsYXNzIEludHJpbnNp
Y3MgewogICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08
JHt0eXBlQXJndW1lbnR9PmAsCiAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAg
ICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmBd
ID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAg
ICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zm
c2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAgICAgICAgICB9KTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtOTE0LDYgKzkyMSw3NDIgQEAgY2xhc3MgSW50
cmluc2ljcyB7CiAKICAgICAgICAgZm9yIChsZXQgc2V0dGVyIG9mIEJ1aWx0aW5NYXRyaXhTZXR0
ZXIuZnVuY3Rpb25zKCkpCiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KHNldHRlci50b1N0cmlu
ZygpLCBmdW5jID0+IHNldHRlci5pbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsKKwor
ICAgICAgICBmdW5jdGlvbiBjaGVja1VuZGVmaW5lZChvcmlnaW4sIGV4cGxhbmF0aW9uLCB2YWx1
ZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkKKyAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBv
dXQgb2YgYm91bmRzIik7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKwor
ICAgICAgICBmdW5jdGlvbiBjaGVja0ZhbHNlKG9yaWdpbiwgZXhwbGFuYXRpb24sIHZhbHVlKQor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAodmFsdWUgPT0gZmFsc2UpCisgICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltTdG9yZV0iLCAiVGV4dHVyZSBzdG9yZSBvdXQgb2Yg
Ym91bmRzIik7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBib3hWZWN0b3IoYSkKKyAg
ICAgICAgeworICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBBcnJheSkgeworICAgICAgICAg
ICAgICAgIGxldCByZXN1bHQgPSBuZXcgRVB0cihuZXcgRUJ1ZmZlcihhLmxlbmd0aCksIDApOwor
ICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkKKyAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0LnNldChpLCBhW2ldKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIEVQ
dHIuYm94KGEpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdW5ib3hWZWN0b3IoYSwg
bGVuZ3RoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAobGVuZ3RoICE9ICIiKSB7CisgICAg
ICAgICAgICAgICAgbGVuZ3RoID0gTnVtYmVyLnBhcnNlSW50KGxlbmd0aCk7CisgICAgICAgICAg
ICAgICAgbGV0IHJlc3VsdCA9IFtdOworICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBp
IDwgbGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGEuZ2V0KGkp
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGEubG9hZFZhbHVlKCk7CisgICAgICAgIH0KKworICAgICAg
ICBmb3IgKGxldCB0eXBlIG9mIFsidWNoYXIiLCAidXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJz
aG9ydCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICBmb3IgKHZhciBs
ZW5ndGhWYXJpYWJsZSBvZiBbYGAsIGAyYCwgYDNgLCBgNGBdKSB7CisgICAgICAgICAgICAgICAg
bGV0IGxlbmd0aCA9IGxlbmd0aFZhcmlhYmxlOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUo
VGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0
aW9uLmxvYWRWYWx1ZSgpLCAwLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0
aH0gU2FtcGxlKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0IGxvY2F0
aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24ubG9hZFZhbHVlKCksIDAsIDAsIDEsIDBd
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5s
b2FkVmFsdWUoKSwgMCwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRl
eHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRl
eHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hl
Y2tlZCgwLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IExvYWQoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LGludDIgbG9jYXRpb24s
aW50IG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxv
Y2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91
bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQo
MSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5sb2FkVmFsdWUoKSkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdl
dERpbWVuc2lvbnMoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWlu
dCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBudW1iZXJPZkxl
dmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5s
b2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBs
ZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQg
Pj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93
IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0
YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
d2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJ
RCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIs
ZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIDAsIDAsIDEsIGxvY2F0aW9uLmdldCgx
KV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVU
ZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9u
QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMURBcnJheTwk
e3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQgb2Zmc2V0KWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
b2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5
ID0gW2xvY2F0aW9uLmdldCgwKSwgMCwgMCwgMSwgbG9jYXRpb24uZ2V0KDEpXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQubG9hZFZhbHVlKCks
IDAsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2Ft
cGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMURBcnJh
eTwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUg
cmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChs
b2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgbG9jYXRpb24uZ2V0KDApKSkp
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9Pixp
bnQzIGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24g
KFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJl
YWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9j
YXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSArIG9m
ZnNldC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEQXJyYXk8JHt0
eXBlfSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhy
ZWFkIEVsZW1lbnRzLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBlbGVtZW50cywgbnVt
YmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRl
eHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElE
ID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBu
b25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2
ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRl
eHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1
ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRp
b24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVs
dGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5s
b2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJh
eSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+
LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1
ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIs
ZmxvYXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9j
YXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQo
MSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2Ft
cGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQo
VGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0
MiBERFgsZmxvYXQyIEREWSlgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0
KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkg
PSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkp
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlR3JhZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4s
c2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwg
MSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5n
ZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBk
ZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEp
LCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBs
ZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRp
b25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkQ8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
bG9kXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5s
b2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVm
aW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEPCR7dHlwZX0ke2xl
bmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IExPRCxpbnQyIG9mZnNldClgLAor
ICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24s
IGxvZCwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlv
bkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDAp
LCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ym94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIo
VGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJl
ZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwK
KyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyR3JlZW4oVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3Ro
fT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0k
e2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJE
PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVu
Z3RofT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
b3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJv
dW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0
KDIpLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IExvYWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LGludDMgbG9jYXRpb24saW50MiBv
ZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlv
biwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIs
IHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDIpLCAw
LCBsb2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQuZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZz
ZXQuZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3Ro
fT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1
aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBudW1iZXJPZkxldmVsc10pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2Fk
VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4Lmxl
dmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJh
cEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBs
ZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0Lmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHRBdExldmVsKG1pcElEKSksIDEp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9t
KEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMkRB
cnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24u
Z2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1
cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5n
dGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBv
ZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94
VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFs
dWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJp
YXMoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24sZmxvYXQgQmlhcylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9h
ZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgYmlhcy5sb2FkVmFsdWUoKSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3Ro
fSBTYW1wbGVCaWFzKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwg
b2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIGJpYXMubG9hZFZhbHVlKCksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0g
U2FtcGxlR3JhZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBERFkpYCwKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeV0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQo
MCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwg
MF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQo
MCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
b3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRW
YWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRk
eUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlR3Jh
ZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bixmbG9hdDIgRERYLGZsb2F0MiBERFksaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeSwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBk
ZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkg
PSBbZGR5LmdldCgwKSwgZGR5LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJl
KHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXks
IGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEQXJyYXk8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9k
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVy
ZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxvZC5sb2FkVmFs
dWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkRB
cnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0Qs
aW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uLCBsb2QsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVs
dGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgp
LCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVu
Z3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0
dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQy
IG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEQXJyYXk8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00
IEdhdGhlclJlZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVl
bihUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVu
Z3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRB
cnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNl
dClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkRBcnJheTwke3R5
cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2Fk
KFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGludDQgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9h
ZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVs
ZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIpLCAwLCBsb2NhdGlv
bi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVy
ZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4saW50NCBsb2NhdGlvbixpbnQyIG9mZnNldClgLAor
ICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1Vu
ZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5s
b2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMyksIGxvY2F0aW9uLmdldCgy
KSwgMCwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApICsg
b2Zmc2V0LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTJEQXJyYXk8JHt0eXBl
fSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFk
IEhlaWdodCx1aW50KiB0aHJlYWQgRWxlbWVudHMsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxz
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lk
dGgsIGhlaWdodCwgZWxlbWVudHMsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3VudCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXREaW1l
bnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUi
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lndp
ZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVt
ZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBT
YW1wbGUoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9
IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUzRDwke3R5cGV9
JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNl
dF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFts
b2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0
KDApLCBvZmZzZXQuZ2V0KDEpLCBvZmZzZXQuZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUo
KSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IExvYWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LGludDQgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZp
bmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRW
YWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIp
LCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExv
YWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LGludDQgbG9jYXRpb24saW50MyBvZmZzZXQp
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hl
Y2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1
cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDMpLCBsb2NhdGlv
bi5nZXQoMikgKyBvZmZzZXQuZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQuZ2V0KDEp
LCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZzZXQuZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhU
ZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lk
dGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRGVwdGgsdWludCogdGhyZWFkIE51
bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBt
aXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3Vu
dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Io
IltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9m
IHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aC5sb2FkVmFsdWUo
KS5jb3B5RnJvbShFUHRyLmJveCh0ZXguZGVwdGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXguaGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVs
KG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxz
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgY3ViZW1hcCBzYW1wbGluZworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxl
QmlhcyhUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBGSVhNRTogSW1wbGVtZW50IGN1YmVtYXAgc2FtcGxpbmcKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBs
ZUdyYWQoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24sZmxvYXQzIEREWCxmbG9hdDMgRERZKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBjdWJlbWFwIHNhbXBsaW5nCisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2RdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBjdWJlbWFwIHNhbXBsaW5nCisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVu
Z3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVu
KFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJl
Q3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9p
ZCBHZXREaW1lbnNpb25zKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2
ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIE51
bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBt
aXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sYXllckNvdW50ICE9IDYpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ3ViZSB0ZXh0dXJlIGRv
ZXNuJ3QgaGF2ZSA2IGZhY2VzIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1p
cElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25l
eGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZl
bChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJX
VGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQqIHRocmVhZCBXaWR0aClgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGhdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4dHVy
ZS5sb2FkVmFsdWUoKS53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUxRDwk
e3R5cGV9JHtsZW5ndGh9PixmbG9hdCogdGhyZWFkIFdpZHRoKWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXh0dXJlLmxvYWRWYWx1
ZSgpLndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVyZTFEPCR7dHlwZX0k
e2xlbmd0aH0+LGludCBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9m
IGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgMCwgMCwgMCwg
bG9jYXRpb24ubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUxRDwke3R5cGV9JHts
ZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0dXJlIHdyaXRlIG91
dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKDAsIDAs
IDAsIDAsIGxvY2F0aW9uLmxvYWRWYWx1ZSgpLCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkp
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKwor
ICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+
LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBlbGVtZW50c10pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
ZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0
RGltZW5zaW9ucyhSV1RleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGZsb2F0KiB0aHJl
YWQgV2lkdGgsdWludCogdGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxh
eWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExv
YWQoUldUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQyIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgi
W0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUo
KS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMSksIDAsIDAsIDAsIGxvY2F0aW9uLmdldCgw
KSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sJHt0eXBl
fSR7bGVuZ3RofSx1aW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGVja0ZhbHNlKCJbU3RvcmVdIiwgIlRleHR1cmUgd3JpdGUgb3V0IG9mIGJvdW5kcyIs
IHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDEpLCAw
LCAwLCAwLCBsb2NhdGlvbi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVlLCBsZW5ndGgpKSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
dm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQqIHRo
cmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVy
ZTJEPCR7dHlwZX0ke2xlbmd0aH0+LGZsb2F0KiB0aHJlYWQgV2lkdGgsZmxvYXQqIHRocmVhZCBI
ZWlnaHQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBo
ZWlnaHRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUu
bG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgp
LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4s
aW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIs
IHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgMCwgMCwgbG9jYXRpb24uZ2V0
KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUyRDwke3R5cGV9JHts
ZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBv
dXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tlZCgwLCAw
LCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0b3IodmFsdWUs
IGxlbmd0aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9
JHtsZW5ndGh9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0
aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2
b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixmbG9h
dCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0LGZsb2F0KiB0aHJlYWQgRWxlbWVu
dHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWln
aHQsIGVsZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0
ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRz
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIu
Ym94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IExvYWQoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9u
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVm
aW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2Fk
VmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMiksIDAsIDAsIGxvY2F0aW9uLmdl
dCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMkRBcnJheTwke3R5
cGV9JHtsZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQzIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3
cml0ZSBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tl
ZChsb2NhdGlvbi5nZXQoMiksIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDAp
LCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1Rl
eHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFk
IEhlaWdodCx1aW50KiB0aHJlYWQgRGVwdGgpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGRlcHRoXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRlcHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5kZXB0
aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5j
b3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
dm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LGZsb2F0KiB0
aHJlYWQgV2lkdGgsZmxvYXQqIHRocmVhZCBIZWlnaHQsZmxvYXQqIHRocmVhZCBEZXB0aClgLAor
ICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZGVw
dGhdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9h
ZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGgubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4LmRlcHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAx
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJv
bShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoUldUZXh0dXJl
M0Q8JHt0eXBlfSR7bGVuZ3RofT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJl
IHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQo
MCwgMCwgbG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0
aH0sdWludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hl
Y2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0dXJlIHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJl
LmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKDAsIDAsIGxvY2F0aW9uLmdldCgyKSwgbG9j
YXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVlLCBsZW5ndGgp
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQogCiAgICAgYWRkKHRoaW5nKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbCBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKaW5kZXggNzhkMDA4ZjgzNWY5ZTljMjM0
ZWYyZGY2ZDZkZWVhM2Y3NDI2Y2U2NS4uMmVhMWQ5NGUwZmNhNWM3M2QzOGJiZWI2YTgzNzU0MGYz
MGJhYTI0OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYu
aHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCkBAIC0x
MjEsNiArMTIxLDcgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJSZXR1cm4uanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJSZXR1cm5DaGVja2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iUmV0dXJuRXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
U2FtcGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlN0YW5kYXJkTGlicmFyeS5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlN0YXRlbWVudENsb25lci5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IlN0cnVjdExheW91dEJ1aWxkZXIuanMiPjwvc2NyaXB0PgpA
QCAtMTMzLDYgKzEzNCw4IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlD
b25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3ludGhl
c2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iVGVybmFyeUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJU
ZXh0dXJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUcmFwU3RhdGVtZW50LmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TYW1wbGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU2FtcGxlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZmNhOTljNjUyNGNhZGNjOTYwMjQwYTRkOTMy
MWZlNzlkNWJkNGU5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU2FtcGxlci5qcwpAQCAtMCwwICsxLDE2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisidXNlIHN0cmljdCI7CisKK2NsYXNzIFNhbXBsZXIgewor
ICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpCisgICAgeworICAgICAgICBpZiAob3B0aW9ucy5yQWRk
cmVzc01vZGUgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fckFkZHJlc3NNb2RlID0g
ImNsYW1wVG9FZGdlIjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fckFkZHJlc3NN
b2RlID0gb3B0aW9ucy5yQWRkcmVzc01vZGU7CisgICAgICAgIGlmIChvcHRpb25zLnNBZGRyZXNz
TW9kZSA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9zQWRkcmVzc01vZGUgPSAiY2xh
bXBUb0VkZ2UiOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9zQWRkcmVzc01vZGUg
PSBvcHRpb25zLnNBZGRyZXNzTW9kZTsKKyAgICAgICAgaWYgKG9wdGlvbnMudEFkZHJlc3NNb2Rl
ID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX3RBZGRyZXNzTW9kZSA9ICJjbGFtcFRv
RWRnZSI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX3RBZGRyZXNzTW9kZSA9IG9w
dGlvbnMudEFkZHJlc3NNb2RlOworICAgICAgICBpZiAob3B0aW9ucy5taW5GaWx0ZXIgPT0gdW5k
ZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fbWluRmlsdGVyID0gIm5lYXJlc3QiOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICB0aGlzLl9taW5GaWx0ZXIgPSBvcHRpb25zLm1pbkZpbHRlcjsK
KyAgICAgICAgaWYgKG9wdGlvbnMubWFnRmlsdGVyID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAg
IHRoaXMuX21hZ0ZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
dGhpcy5fbWFnRmlsdGVyID0gb3B0aW9ucy5tYWdGaWx0ZXI7CisgICAgICAgIGlmIChvcHRpb25z
Lm1pcEZpbHRlciA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9taXBGaWx0ZXIgPSAi
bmVhcmVzdCI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX21pcEZpbHRlciA9IG9w
dGlvbnMubWlwRmlsdGVyOworICAgICAgICBpZiAob3B0aW9ucy5sb2RNaW5DbGFtcCA9PSB1bmRl
ZmluZWQpCisgICAgICAgICAgICB0aGlzLl9sb2RNaW5DbGFtcCA9IC1OdW1iZXIuTUFYX1ZBTFVF
OworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9sb2RNaW5DbGFtcCA9IG9wdGlvbnMu
bG9kTWluQ2xhbXA7CisgICAgICAgIGlmIChvcHRpb25zLmxvZE1heENsYW1wID09IHVuZGVmaW5l
ZCkKKyAgICAgICAgICAgIHRoaXMuX2xvZE1heENsYW1wID0gTnVtYmVyLk1BWF9WQUxVRTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fbG9kTWF4Q2xhbXAgPSBvcHRpb25zLmxvZE1h
eENsYW1wOworICAgICAgICBpZiAob3B0aW9ucy5tYXhBbmlzb3Ryb3B5ID09IHVuZGVmaW5lZCkK
KyAgICAgICAgICAgIHRoaXMuX21heEFuaXNvdHJvcHkgPSAxOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICB0aGlzLl9tYXhBbmlzb3Ryb3B5ID0gb3B0aW9ucy5tYXhBbmlzb3Ryb3B5OworICAg
ICAgICBpZiAob3B0aW9ucy5jb21wYXJlRnVuY3Rpb24gPT0gdW5kZWZpbmVkKQorICAgICAgICAg
ICAgdGhpcy5fY29tcGFyZUZ1bmN0aW9uID0gIm5ldmVyIjsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgdGhpcy5fY29tcGFyZUZ1bmN0aW9uID0gb3B0aW9ucy5jb21wYXJlRnVuY3Rpb247Cisg
ICAgICAgIGlmIChvcHRpb25zLmJvcmRlckNvbG9yID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAg
IHRoaXMuX2JvcmRlckNvbG9yID0gInRyYW5zcGFyZW50QmxhY2siOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICB0aGlzLl9ib3JkZXJDb2xvciA9IG9wdGlvbnMuYm9yZGVyQ29sb3I7CisgICAg
fQorICAgIAorICAgIGdldCByQWRkcmVzc01vZGUoKSB7IHJldHVybiB0aGlzLl9yQWRkcmVzc01v
ZGU7IH0KKyAgICBnZXQgc0FkZHJlc3NNb2RlKCkgeyByZXR1cm4gdGhpcy5fc0FkZHJlc3NNb2Rl
OyB9CisgICAgZ2V0IHRBZGRyZXNzTW9kZSgpIHsgcmV0dXJuIHRoaXMuX3RBZGRyZXNzTW9kZTsg
fQorICAgIGdldCBtaW5GaWx0ZXIoKSB7IHJldHVybiB0aGlzLl9taW5GaWx0ZXI7IH0KKyAgICBn
ZXQgbWFnRmlsdGVyKCkgeyByZXR1cm4gdGhpcy5fbWFnRmlsdGVyOyB9CisgICAgZ2V0IG1pcEZp
bHRlcigpIHsgcmV0dXJuIHRoaXMuX21pcEZpbHRlcjsgfQorICAgIGdldCBsb2RNaW5DbGFtcCgp
IHsgcmV0dXJuIHRoaXMuX2xvZE1pbkNsYW1wOyB9CisgICAgZ2V0IGxvZE1heENsYW1wKCkgeyBy
ZXR1cm4gdGhpcy5fbG9kTWF4Q2xhbXA7IH0KKyAgICBnZXQgbWF4QW5pc290cm9weSgpIHsgcmV0
dXJuIHRoaXMuX21heEFuaXNvdHJvcHk7IH0KKyAgICBnZXQgY29tcGFyZUZ1bmN0aW9uKCkgeyBy
ZXR1cm4gdGhpcy5fY29tcGFyZUZ1bmN0aW9uOyB9CisgICAgZ2V0IGJvcmRlckNvbG9yKCkgeyBy
ZXR1cm4gdGhpcy5fYm9yZGVyQ29sb3I7IH0KKworICAgIGNhbGN1bGF0ZUJvcmRlckNvbG9yKGlu
bmVyVHlwZSkKKyAgICB7CisgICAgICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS4zLjMK
KyAgICAgICAgZnVuY3Rpb24gY29tcHV0ZVZhbHVlcygpIHsKKyAgICAgICAgICAgIHN3aXRjaCAo
aW5uZXJUeXBlKSB7CisgICAgICAgICAgICAgICAgY2FzZSAidWNoYXIiOgorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFx
dWVXaGl0ZTogMHhGRn07CisgICAgICAgICAgICAgICAgY2FzZSAidXNob3J0IjoKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazogMCwg
b3BhcXVlV2hpdGU6IDB4RkZGRn07CisgICAgICAgICAgICAgICAgY2FzZSAidWludCI6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6
IDAsIG9wYXF1ZVdoaXRlOiAweEZGRkZGRkZGfTsKKyAgICAgICAgICAgICAgICBjYXNlICJjaGFy
IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAwLCBvcGFx
dWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDB4N0Z9OworICAgICAgICAgICAgICAgIGNhc2UgInNo
b3J0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAwLCBv
cGFxdWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDB4N0ZGRn07CisgICAgICAgICAgICAgICAgY2Fz
ZSAiaW50IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAw
LCBvcGFxdWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDB4N0ZGRkZGRkZ9OworICAgICAgICAgICAg
ICAgIGNhc2UgImhhbGYiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50
QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMX07CisgICAgICAgICAgICAg
ICAgY2FzZSAiZmxvYXQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50
QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMX07CisgICAgICAgICAgICAg
ICAgY2FzZSAidWNoYXIyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVu
dEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHhGRiwg
MHhGRl19OworICAgICAgICAgICAgICAgIGNhc2UgInVzaG9ydDIiOgorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAw
XSwgb3BhcXVlV2hpdGU6IFsweEZGRkYsIDB4RkZGRl19OworICAgICAgICAgICAgICAgIGNhc2Ug
InVpbnQyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBb
MCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHhGRkZGRkZGRiwgMHhG
RkZGRkZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgImNoYXIyIjoKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwg
MF0sIG9wYXF1ZVdoaXRlOiBbMHg3RiwgMHg3Rl19OworICAgICAgICAgICAgICAgIGNhc2UgInNo
b3J0MiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAs
IDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4N0ZGRiwgMHg3RkZGXX07
CisgICAgICAgICAgICAgICAgY2FzZSAiaW50MiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVy
biB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVX
aGl0ZTogWzB4N0ZGRkZGRkYsIDB4N0ZGRkZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJo
YWxmMiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAs
IDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzEsIDFdfTsKKyAgICAgICAg
ICAgICAgICBjYXNlICJmbG9hdDIiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5z
cGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsx
LCAxXX07CisgICAgICAgICAgICAgICAgY2FzZSAidWNoYXIzIjoKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwg
MCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHhGRiwgMHhGRiwgMHhGRl19OworICAgICAgICAgICAgICAg
IGNhc2UgInVzaG9ydDMiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50
QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsw
eEZGRkYsIDB4RkZGRiwgMHhGRkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAidWludDMiOgor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwXSwg
b3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsweEZGRkZGRkZGLCAweEZGRkZG
RkZGLCAweEZGRkZGRkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAiY2hhcjMiOgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVl
QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsweDdGLCAweDdGLCAweDdGXX07CisgICAg
ICAgICAgICAgICAgY2FzZSAic2hvcnQzIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0
cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1
ZVdoaXRlOiBbMHg3RkZGLCAweDdGRkYsIDB4N0ZGRl19OworICAgICAgICAgICAgICAgIGNhc2Ug
ImludDMiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFsw
LCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsweDdGRkZGRkZG
LCAweDdGRkZGRkZGLCAweDdGRkZGRkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAiaGFsZjMi
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAw
XSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsxLCAxLCAxXX07CisgICAg
ICAgICAgICAgICAgY2FzZSAiZmxvYXQzIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0
cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1
ZVdoaXRlOiBbMSwgMSwgMV19OworICAgICAgICAgICAgICAgIGNhc2UgInVjaGFyNCI6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBv
cGFxdWVCbGFjazogWzAsIDAsIDAsIDB4RkZdLCBvcGFxdWVXaGl0ZTogWzB4RkYsIDB4RkYsIDB4
RkYsIDB4RkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1c2hvcnQ0IjoKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJs
YWNrOiBbMCwgMCwgMCwgMHhGRkZGXSwgb3BhcXVlV2hpdGU6IFsweEZGRkYsIDB4RkZGRiwgMHhG
RkZGLCAweEZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1aW50NCI6CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBvcGFxdWVC
bGFjazogWzAsIDAsIDAsIDB4RkZGRkZGRkZdLCBvcGFxdWVXaGl0ZTogWzB4RkZGRkZGRkYsIDB4
RkZGRkZGRkYsIDB4RkZGRkZGRkYsIDB4RkZGRkZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNl
ICJjaGFyNCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazog
WzAsIDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDAsIDB4N0ZdLCBvcGFxdWVXaGl0ZTog
WzB4N0YsIDB4N0YsIDB4N0YsIDB4N0ZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJzaG9ydDQi
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAw
LCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAweDdGRkZdLCBvcGFxdWVXaGl0ZTogWzB4N0ZG
RiwgMHg3RkZGLCAweDdGRkYsIDB4N0ZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgImludDQi
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAw
LCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAweDdGRkZGRkZGXSwgb3BhcXVlV2hpdGU6IFsw
eDdGRkZGRkZGLCAweDdGRkZGRkZGLCAweDdGRkZGRkZGLCAweDdGRkZGRkZGXX07CisgICAgICAg
ICAgICAgICAgY2FzZSAiaGFsZjQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5z
cGFyZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAxXSwgb3Bh
cXVlV2hpdGU6IFsxLCAxLCAxLCAxXX07CisgICAgICAgICAgICAgICAgY2FzZSAiZmxvYXQ0IjoK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwg
MF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMV0sIG9wYXF1ZVdoaXRlOiBbMSwgMSwgMSwgMV19
OworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigiVW5rbm93biB0ZXh0dXJlIGlubmVyIHR5cGUiKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4gY29tcHV0ZVZhbHVlcygpW3RoaXMuYm9yZGVyQ29sb3Jd
OworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0
YW5kYXJkTGlicmFyeS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJk
TGlicmFyeS5qcwppbmRleCAzZGQ0ZmVlMTg2MDBkNWNkMmE4OTVhZDVhNDc5NzIxZGE3Nzg4Y2Mx
Li5kYmE5OWIxZWY5YjM0ZmZiMTk5YzY0OGU0MzdmOGU5NDY0MGY2NTExIDEwMDY0NAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCkBAIC01Nyw3ICs1
Nyw3IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgIH0KICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSB0eXBlZGVmIHNhbXBsZXI7YCk7CiAgICAgICAgIGZvciAodmFy
IHR5cGUgb2YgW2BUZXh0dXJlMURgLCBgUldUZXh0dXJlMURgLCBgVGV4dHVyZTFEQXJyYXlgLCBg
UldUZXh0dXJlMURBcnJheWAsIGBUZXh0dXJlMkRgLCBgUldUZXh0dXJlMkRgLCBgVGV4dHVyZTJE
QXJyYXlgLCBgUldUZXh0dXJlMkRBcnJheWAsIGBUZXh0dXJlM0RgLCBgUldUZXh0dXJlM0RgLCBg
VGV4dHVyZUN1YmVgXSkgewotICAgICAgICAgICAgZm9yICh2YXIgdHlwZUFyZ3VtZW50QmFzZSBv
ZiBbYGJvb2xgLCBgdWNoYXJgLCBgdXNob3J0YCwgYHVpbnRgLCBgY2hhcmAsIGBzaG9ydGAsIGBp
bnRgLCBgaGFsZmAsIGBmbG9hdGBdKSB7CisgICAgICAgICAgICBmb3IgKHZhciB0eXBlQXJndW1l
bnRCYXNlIG9mIFtgdWNoYXJgLCBgdXNob3J0YCwgYHVpbnRgLCBgY2hhcmAsIGBzaG9ydGAsIGBp
bnRgLCBgaGFsZmAsIGBmbG9hdGBdKSB7CiAgICAgICAgICAgICAgICAgZm9yICh2YXIgc2l6ZSBv
ZiBbYGAsIGAyYCwgYDNgLCBgNGBdKSB7CiAgICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgdHlwZWRlZiAke3R5cGV9PCR7dHlwZUFyZ3VtZW50QmFzZX0ke3NpemV9PjtgKTsKICAgICAg
ICAgICAgICAgICB9CkBAIC0xODk3LDcgKzE4OTcsOCBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0g
KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEludGVybG9ja2Vk
Q29tcGFyZUV4Y2hhbmdlKHRocmVhZCBhdG9taWNfJHt0eXBlfSosICR7dHlwZX0sICR7dHlwZX0s
IHRocmVhZCAke3R5cGV9Kik7YCk7CiAgICAgICAgIH0KICAgICAgICAgcHJpbnQoKTsKLSAgICAg
ICAgCisgICAgICAgICovCisKICAgICAgICAgZm9yICh2YXIgdHlwZSBvZiBbYHVjaGFyYCwgYHVz
aG9ydGAsIGB1aW50YCwgYGNoYXJgLCBgc2hvcnRgLCBgaW50YCwgYGhhbGZgLCBgZmxvYXRgXSkg
ewogICAgICAgICAgICAgZm9yICh2YXIgbGVuZ3RoIG9mIFtgYCwgYDJgLCBgM2AsIGA0YF0pIHsK
ICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRl
eHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pO2ApOwpA
QCAtMTk1OCwxNiArMTk1OSw2IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7
CiAgICAgICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2Ft
cGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2Ft
cGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+
LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxl
ciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+
LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2Ft
cGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlM0Q8JHt0eXBlfSR7bGVu
Z3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3Ro
fT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwotICAgICAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlM0Q8JHt0eXBl
fSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUzRDwke3R5cGV9JHts
ZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7Ci0gICAg
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlM0Q8
JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlM0Q8JHt0
eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2Ap
OwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRl
eHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PiwgaW50NCBsb2NhdGlvbik7YCk7CiAgICAgICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTNEPCR7dHlw
ZX0ke2xlbmd0aH0+LCBpbnQ0IGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7CiAgICAgICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTNEPCR7dHlwZX0k
e2xlbmd0aH0+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50
KiBIZWlnaHQsIHRocmVhZCB1aW50KiBEZXB0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxz
KTtgKTsKQEAgLTIwMTAsNyArMjAwMSw4IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQotICAgICAgICAKKworICAgICAgICAvKgogICAgICAgICBmb3IgKHZhciB0eXBlIG9mIFtgaGFs
ZmAsIGBmbG9hdGBdKSB7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxl
KFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwog
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyRDwk
e3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKaW5kZXggNjA3YTY5NTMyNTNkYTcyN2Ix
ZGUzNzY3OGVjMzg4YjRmYTI0MDQwNS4uNWQzMjhjNzZjZjM0NDA2MDhmYjNjYTkwZjBlYjAwMzAy
ZWI3YzM3YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5o
dG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbApAQCAtMTE1
LDYgKzExNSw3IEBACiA8c2NyaXB0IHNyYz0iUmV0dXJuLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJSZXR1cm5DaGVja2VyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZXR1cm5FeGNl
cHRpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlNhbXBsZXIuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IlN0YW5kYXJkTGlicmFyeS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
U3RhdGVtZW50Q2xvbmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTdHJ1Y3RMYXlvdXRC
dWlsZGVyLmpzIj48L3NjcmlwdD4KQEAgLTEyNyw2ICsxMjgsOCBAQAogPHNjcmlwdCBzcmM9IlN5
bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
VGV4dHVyZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNv
bHZlci5qcyI+PC9zY3JpcHQ+CkBAIC0xNTIsNyArMTU1LDcgQEAKIDxzY3JpcHQ+CiBmdW5jdGlv
biBkb1Rlc3RJbkJyb3dzZXIoKQogewotICAgIHZhciB0ZXN0ZXIgPSBkb1Rlc3QoLy4qLyk7Cisg
ICAgdmFyIHRlc3RlciA9IGRvVGVzdCgvdGV4dHVyZVNhbXBsZS8pOwogICAgIHZhciBsYXN0VGlt
ZTsKICAgICBmdW5jdGlvbiBuZXh0KCkKICAgICB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
VGVzdC5qcwppbmRleCA0YTExYzE4NTg1OTk3NzhmZjM5MWIwNGYyNjM1YzViNzEwMDVkZjdmLi5i
NmIyYTVhMjdmNTY0MzdlZjI1OTZjNzhmNWQ4YThjNzZjMjNiN2Q0IDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1Rlc3QuanMKQEAgLTk0LDYgKzk0LDEwOCBAQCBmdW5jdGlvbiBtYWtlRW51
bShwcm9ncmFtLCBlbnVtTmFtZSwgdmFsdWUpCiAgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KGVu
dW1UeXBlLCBlbnVtTWVtYmVyLnZhbHVlLnVuaWZ5Tm9kZS52YWx1ZUZvclNlbGVjdGVkVHlwZSk7
CiB9CiAKK2Z1bmN0aW9uIG1ha2VTYW1wbGVyKHByb2dyYW0sIG9wdGlvbnMpCit7CisgICAgLy8g
ZW51bSBXZWJHUFVBZGRyZXNzTW9kZSB7CisgICAgLy8gICAgICJjbGFtcFRvRWRnZSIsCisgICAg
Ly8gICAgICJyZXBlYXQiLAorICAgIC8vICAgICAibWlycm9yUmVwZWF0IiwKKyAgICAvLyAgICAg
ImNsYW1wVG9Cb3JkZXJDb2xvciIKKyAgICAvLyB9CisgICAgLy8KKyAgICAvLyBlbnVtIFdlYkdQ
VUZpbHRlck1vZGUgeworICAgIC8vICAgICAibmVhcmVzdCIsCisgICAgLy8gICAgICJsaW5lYXIi
CisgICAgLy8gfQorICAgIC8vCisgICAgLy8gZW51bSBXZWJHUFVDb21wYXJlRnVuY3Rpb24gewor
ICAgIC8vICAgICAibmV2ZXIiLAorICAgIC8vICAgICAibGVzcyIsCisgICAgLy8gICAgICJlcXVh
bCIsCisgICAgLy8gICAgICJsZXNzRXF1YWwiLAorICAgIC8vICAgICAiZ3JlYXRlciIsCisgICAg
Ly8gICAgICJub3RFcXVhbCIsCisgICAgLy8gICAgICJncmVhdGVyRXF1YWwiLAorICAgIC8vICAg
ICAiYWx3YXlzIgorICAgIC8vIH0KKyAgICAvLworICAgIC8vIGVudW0gV2ViR1BVQm9yZGVyQ29s
b3IgeworICAgIC8vICAgICAidHJhbnNwYXJlbnRCbGFjayIsCisgICAgLy8gICAgICJvcGFxdWVC
bGFjayIsCisgICAgLy8gICAgICJvcGFxdWVXaGl0ZSIKKyAgICAvLyB9CisgICAgLy8KKyAgICAv
LyBkaWN0aW9uYXJ5IFdlYkdQVVNhbXBsZXJEZXNjcmlwdG9yIHsKKyAgICAvLyAgICAgV2ViR1BV
ZGRyZXNzTW9kZSByQWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgIC8vICAgICBXZWJH
UFVkZHJlc3NNb2RlIHNBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAgLy8gICAgIFdl
YkdQVWRkcmVzc01vZGUgdEFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICAvLyAgICAg
V2ViR1BVRmlsdGVyTW9kZUVudW0gbWFnRmlsdGVyID0gIm5lYXJlc3QiOworICAgIC8vICAgICBX
ZWJHUFVGaWx0ZXJNb2RlRW51bSBtaW5GaWx0ZXIgPSAibmVhcmVzdCI7CisgICAgLy8gICAgIFdl
YkdQVUZpbHRlck1vZGVFbnVtIG1pcG1hcEZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICAvLyAgICAg
ZmxvYXQgbG9kTWluQ2xhbXAgPSAwOworICAgIC8vICAgICBmbG9hdCBsb2RNYXhDbGFtcCA9IE51
bWJlci5NQVhfVkFMVUU7CisgICAgLy8gICAgIHVuc2lnbmVkIGxvbmcgbWF4QW5pc290cm9weSA9
IDE7CisgICAgLy8gICAgIFdlYkdQVUNvbXBhcmVGdW5jdGlvbiBjb21wYXJlRnVuY3Rpb24gPSAi
bmV2ZXIiOworICAgIC8vICAgICBXZWJHUFVCb3JkZXJDb2xvciBib3JkZXJDb2xvciA9ICJ0cmFu
c3BhcmVudEJsYWNrIjsKKyAgICAvLyB9OworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9n
cmFtLmludHJpbnNpY3Muc2FtcGxlciwgbmV3IFNhbXBsZXIob3B0aW9ucykpOworfQorCitmdW5j
dGlvbiBtYWtlMURUZXh0dXJlKHByb2dyYW0sIG1pcG1hcHMsIGVsZW1lbnRUeXBlKQoreworICAg
IHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmUxRDwke2Vs
ZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUxRChlbGVtZW50VHlwZSwgbWlwbWFwcykpOworfQor
CitmdW5jdGlvbiBtYWtlMURUZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBl
KQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1
cmUxREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTFEQXJyYXkoZWxlbWVudFR5
cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UyRFRleHR1cmUocHJvZ3JhbSwgbWlwbWFw
cywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50
cmluc2ljc1tgVGV4dHVyZTJEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTJEKGVsZW1l
bnRUeXBlLCBtaXBtYXBzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UyRFRleHR1cmVBcnJheShwcm9n
cmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHBy
b2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZTJEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBU
ZXh0dXJlMkRBcnJheShlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24gbWFrZTNE
VGV4dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlw
ZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlM0Q8JHtlbGVtZW50VHlwZX0+
YF0sIG5ldyBUZXh0dXJlM0QoZWxlbWVudFR5cGUsIG1pcG1hcHMpKTsKK30KKworZnVuY3Rpb24g
bWFrZVRleHR1cmVDdWJlKHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1
cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlQ3ViZTwke2VsZW1l
bnRUeXBlfT5gXSwgbmV3IFRleHR1cmVDdWJlKGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQorCitm
dW5jdGlvbiBtYWtlUlcxRFRleHR1cmUocHJvZ3JhbSwgZWxlbWVudHMsIGVsZW1lbnRUeXBlKQor
eworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVy
ZTFEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTFEUlcoZWxlbWVudFR5cGUsIGVsZW1l
bnRzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzFEVGV4dHVyZUFycmF5KHByb2dyYW0sIGFycmF5
LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRy
aW5zaWNzW2BSV1RleHR1cmUxREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTFE
QXJyYXlSVyhlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24gbWFrZVJXMkRUZXh0
dXJlKHByb2dyYW0sIHJvd3MsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVl
LmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTJEPCR7ZWxlbWVudFR5cGV9PmBdLCBu
ZXcgVGV4dHVyZTJEUlcoZWxlbWVudFR5cGUsIHJvd3MpKTsKK30KKworZnVuY3Rpb24gbWFrZVJX
MkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVy
biBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTJEQXJyYXk8JHtl
bGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlMkRBcnJheVJXKGVsZW1lbnRUeXBlLCBhcnJheSkp
OworfQorCitmdW5jdGlvbiBtYWtlUlczRFRleHR1cmUocHJvZ3JhbSwgZGVwdGhTbGljZXMsIGVs
ZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNp
Y3NbYFJXVGV4dHVyZTNEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTNEUlcoZWxlbWVu
dFR5cGUsIGRlcHRoU2xpY2VzKSk7Cit9CisKIGZ1bmN0aW9uIGNoZWNrTnVtYmVyKHByb2dyYW0s
IHJlc3VsdCwgZXhwZWN0ZWQpCiB7CiAgICAgaWYgKCFyZXN1bHQudHlwZS51bmlmeU5vZGUuaXNO
dW1iZXIpCkBAIC01NTgyLDcgKzU2ODQsODg2IEBAIHRlc3RzLmFycmF5SW5kZXggPSBmdW5jdGlv
bigpIHsKICAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5
SW5kZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAyKSBd
KSwgMyk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJh
eUluZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCkg
XSksIDQpOwogICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYXJy
YXlJbmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEp
IF0pLCA1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFy
cmF5SW5kZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAy
KSBdKSwgNik7ICAgIAorICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiYXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dy
YW0sIDIpIF0pLCA2KTsKK30KKworZnVuY3Rpb24gY3JlYXRlVGV4dHVyZXNGb3JUZXN0aW5nKHBy
b2dyYW0pCit7CisgICAgbGV0IHRleHR1cmUxRCA9IG1ha2UxRFRleHR1cmUocHJvZ3JhbSwgW1sx
LCA3LCAxNCwgNzldLCBbMTMsIDE2XSwgWzE1XV0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJl
MURBcnJheSA9IG1ha2UxRFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1sxLCA3LCAxNCwgNzldLCBb
MTMsIDE2XSwgWzE1XV0sIFtbMTYsIDE3LCAxOCwgMTldLCBbMjAsIDIxXSwgWzIyXV1dLCAiZmxv
YXQiKTsKKyAgICBsZXQgdGV4dHVyZTJEID0gbWFrZTJEVGV4dHVyZShwcm9ncmFtLCBbCisgICAg
ICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAx
MywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRd
LAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtb
MzMsIDM0LCAzNSwgMzZdLAorICAgICAgICBbMzcsIDM4LCAzOSwgNDBdXSwKKyAgICAgICAgW1s0
MSwgNDJdXQorICAgIF0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlMkRBcnJheSA9IG1ha2Uy
RFRleHR1cmVBcnJheShwcm9ncmFtLCBbWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcs
IDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBb
MTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4
LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2XSwKKyAgICAgICAg
WzM3LCAzOCwgMzksIDQwXV0sCisgICAgICAgIFtbNDEsIDQyXV0KKyAgICBdLCBbCisgICAgICAg
IFtbNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwgNDksIDUwXSwKKyAgICAgICAgWzUxLCA1MiwgNTMs
IDU0LCA1NSwgNTYsIDU3LCA1OF0sCisgICAgICAgIFs1OSwgNjAsIDYxLCA2MiwgNjMsIDY0LCA2
NSwgNjZdLAorICAgICAgICBbNjcsIDY4LCA2OSwgNzAsIDcxLCA3MiwgNzMsIDc0XV0sCisgICAg
ICAgIFtbNzUsIDc2LCA3NywgNzhdLAorICAgICAgICBbNzksIDgwLCA4MSwgODJdXSwKKyAgICAg
ICAgW1s4MywgODRdXQorICAgIF1dLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZTNEID0gbWFr
ZTNEVGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAgIFtbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhd
LAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcs
IDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAy
OSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0
MF0sCisgICAgICAgIFs0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDhdLAorICAgICAgICBb
NDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2XSwKKyAgICAgICAgWzU3LCA1OCwgNTksIDYw
LCA2MSwgNjIsIDYzLCA2NF1dXSwKKyAgICAgICAgW1tbNjUsIDY2LCA2NywgNjhdLAorICAgICAg
ICBbNjksIDcwLCA3MSwgNzJdXV0KKyAgICBdLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZUN1
YmUgPSBtYWtlVGV4dHVyZUN1YmUocHJvZ3JhbSwgW1sKKyAgICAgICAgW1sxLCAyXSwKKyAgICAg
ICAgWzMsIDRdLAorICAgICAgICBbNSwgNl0sCisgICAgICAgIFs3LCA4XV0sCisgICAgICAgIFtb
OV0sCisgICAgICAgIFsxMF1dLAorICAgIF0sIFsKKyAgICAgICAgW1sxMSwgMTJdLAorICAgICAg
ICBbMTMsIDE0XSwKKyAgICAgICAgWzE1LCAxNl0sCisgICAgICAgIFsxNywgMThdXSwKKyAgICAg
ICAgW1sxOV0sCisgICAgICAgIFsyMF1dLAorICAgIF0sIFsKKyAgICAgICAgW1syMSwgMjJdLAor
ICAgICAgICBbMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNl0sCisgICAgICAgIFsyNywgMjhdXSwK
KyAgICAgICAgW1syOV0sCisgICAgICAgIFszMF1dLAorICAgIF0sIFsKKyAgICAgICAgW1szMSwg
MzJdLAorICAgICAgICBbMzMsIDM0XSwKKyAgICAgICAgWzM1LCAzNl0sCisgICAgICAgIFszNywg
MzhdXSwKKyAgICAgICAgW1szOV0sCisgICAgICAgIFs0MF1dLAorICAgIF0sIFsKKyAgICAgICAg
W1s0MSwgNDJdLAorICAgICAgICBbNDMsIDQ0XSwKKyAgICAgICAgWzQ1LCA0Nl0sCisgICAgICAg
IFs0NywgNDhdXSwKKyAgICAgICAgW1s0OV0sCisgICAgICAgIFs1MF1dLAorICAgIF0sIFsKKyAg
ICAgICAgW1s1MSwgNTJdLAorICAgICAgICBbNTMsIDU0XSwKKyAgICAgICAgWzU1LCA1Nl0sCisg
ICAgICAgIFs1NywgNThdXSwKKyAgICAgICAgW1s1OV0sCisgICAgICAgIFs2MF1dLAorICAgIF1d
LCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlMUQgPSBtYWtlUlcxRFRleHR1cmUocHJvZ3Jh
bSwgWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJl
MURBcnJheSA9IG1ha2VSVzFEVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbMSwgMiwgMywgNCwgNSwg
NiwgNywgOF0sIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sIFsxNywgMTgsIDE5LCAy
MCwgMjEsIDIyLCAyMywgMjRdXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4dHVyZTJEID0gbWFr
ZVJXMkRUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAgICAgWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhd
LAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcs
IDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAy
OSwgMzAsIDMxLCAzMl1dLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlMkRBcnJheSA9IG1h
a2VSVzJEVGV4dHVyZUFycmF5KHByb2dyYW0sIFsKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2
LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAg
ICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3
LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNiwgMzcsIDM4
LCAzOSwgNDBdLAorICAgICAgICBbNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4XSwKKyAg
ICAgICAgWzQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1Nl0sCisgICAgICAgIFs1NywgNTgs
IDU5LCA2MCwgNjEsIDYyLCA2MywgNjRdXV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmUz
RCA9IG1ha2VSVzNEVGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwg
NiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAg
ICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAy
NywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzYsIDM3LCAz
OCwgMzksIDQwXSwKKyAgICAgICAgWzQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OF0sCisg
ICAgICAgIFs0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTZdLAorICAgICAgICBbNTcsIDU4
LCA1OSwgNjAsIDYxLCA2MiwgNjMsIDY0XV1dLCAiZmxvYXQiKTsKKyAgICByZXR1cm4gW3RleHR1
cmUxRCwgdGV4dHVyZTFEQXJyYXksIHRleHR1cmUyRCwgdGV4dHVyZTJEQXJyYXksIHRleHR1cmUz
RCwgdGV4dHVyZUN1YmUsIHJ3VGV4dHVyZTFELCByd1RleHR1cmUxREFycmF5LCByd1RleHR1cmUy
RCwgcndUZXh0dXJlMkRBcnJheSwgcndUZXh0dXJlM0RdOworfQorCit0ZXN0cy50ZXh0dXJlRGlt
ZW5zaW9ucyA9IGZ1bmN0aW9uKCkgeworICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKKyAgICAg
ICAgdWludCBmb28xKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWlu
dCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBH
ZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAg
ICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIoVGV4dHVy
ZTFEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAg
ICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgMCwgJndpZHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJl
ck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMyhUZXh0dXJlMURBcnJheTxm
bG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVp
bnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAg
ICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZlbGVtZW50cywgJm51bWJlck9m
TGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1
aW50IGZvbzQoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVp
bnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBu
dW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndp
ZHRoLCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gZWxl
bWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb281KFRleHR1cmUxREFycmF5PGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBl
bGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBH
ZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZl
bHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAg
ICAgIHVpbnQgZm9vNihUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVp
bnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVt
YmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0
aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzcoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7
CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAg
ICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0
ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAg
ICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vOChUZXh0dXJlMkQ8
ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1
aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAg
ICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2
ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAg
ICAgICB1aW50IGZvbzkoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAg
ICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVp
bnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAg
ICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cywg
Jm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQor
ICAgICAgICB1aW50IGZvbzEwKFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAg
ICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAg
ICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAg
ICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVu
dHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAg
ICB9CisgICAgICAgIHVpbnQgZm9vMTEoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsK
KyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAg
ICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZl
bGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50czsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzEyKFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0
dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7
CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxl
dmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVp
Z2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVt
YmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xMyhUZXh0dXJlM0Q8Zmxv
YXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50
IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICB1aW50IG51bWJl
ck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgs
ICZoZWlnaHQsICZkZXB0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3
aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE0KFRleHR1cmUzRDxmbG9hdD4gdGV4
dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0
OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZl
bHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdo
dCwgJmRlcHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE1KFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkg
eworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAg
ICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7Cisg
ICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmRl
cHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGRlcHRoOworICAgICAg
ICB9CisgICAgICAgIHVpbnQgZm9vMTYoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAg
ICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAg
ICB1aW50IGRlcHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAg
ICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgsICZu
dW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb28xNyhUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSkgewor
ICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAg
ICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4
dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAg
cmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTgoVGV4dHVyZUN1YmU8
ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1
aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAg
ICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2
ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWlu
dCBmb28xOShUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3
aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJP
ZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAm
aGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2
ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjAoUldUZXh0dXJlMUQ8ZmxvYXQ+IHRl
eHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICBHZXREaW1lbnNp
b25zKHRleHR1cmUsICZ3aWR0aCk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAg
IH0KKyAgICAgICAgdWludCBmb28yMShSV1RleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7
CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAg
ICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmZWxlbWVudHMpOworICAg
ICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjIoUldU
ZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsK
KyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRl
eHR1cmUsICZ3aWR0aCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50czsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIzKFJXVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJl
KSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7Cisg
ICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCk7CisgICAg
ICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yNChSV1Rl
eHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAg
ICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAm
d2lkdGgsICZoZWlnaHQpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQor
ICAgICAgICB1aW50IGZvbzI1KFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAg
ICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAg
ICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3
aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAg
ICAgICAgfQorICAgICAgICB1aW50IGZvbzI2KFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1
cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsK
KyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRl
eHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBo
ZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yNyhSV1RleHR1cmUyREFycmF5PGZs
b2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWlu
dCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGlt
ZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cyk7CisgICAgICAgICAg
ICByZXR1cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yOChSV1RleHR1
cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAg
ICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIEdl
dERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgpOworICAgICAgICAg
ICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjkoUldUZXh0dXJl
M0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAg
ICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICBHZXRE
aW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoKTsKKyAgICAgICAgICAg
IHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28zMChSV1RleHR1cmUz
RDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAg
IHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIEdldERp
bWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgpOworICAgICAgICAgICAg
cmV0dXJuIGRlcHRoOworICAgICAgICB9CisgICAgYCk7CisgICAgbGV0IFt0ZXh0dXJlMUQsIHRl
eHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1
cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4
dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNEXSA9IGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9n
cmFtKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
IiwgW3RleHR1cmUxRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRF0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5XSksIDQpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4
dHVyZTFEQXJyYXldKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMURBcnJheV0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRF0pLCA4KTsKKyAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1
cmUyRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb284IiwgW3RleHR1cmUyRF0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUyREFycmF5XSksIDgpOworICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUyREFy
cmF5XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzExIiwgW3RleHR1cmUyREFycmF5XSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1cmUyREFycmF5XSksIDMpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3RleHR1
cmUzRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNCIsIFt0ZXh0dXJlM0RdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTNEXSksIDIpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUzRF0pLCAy
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIs
IFt0ZXh0dXJlQ3ViZV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlQ3ViZV0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlQ3ViZV0pLCAyKTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFty
d1RleHR1cmUxRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmUxREFycmF5XSksIDgpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3J3VGV4dHVyZTFEQXJyYXld
KSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjMiLCBbcndUZXh0dXJlMkRdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjQiLCBbcndUZXh0dXJlMkRdKSwgNCk7CisgICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjUiLCBbcndUZXh0dXJlMkRBcnJh
eV0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yNiIsIFtyd1RleHR1cmUyREFycmF5XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI3IiwgW3J3VGV4dHVyZTJEQXJyYXldKSwgMik7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjgiLCBbcndU
ZXh0dXJlM0RdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjkiLCBbcndUZXh0dXJlM0RdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzAiLCBbcndUZXh0dXJlM0RdKSwgMik7Cit9CisK
K3Rlc3RzLnRleHR1cmVMb2FkID0gZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1By
ZXAoYAorICAgICAgICBmbG9hdCBmb28xKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSwgaW50IGxv
Y2F0aW9uLCBpbnQgbWlwbWFwKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBp
bnQyKGxvY2F0aW9uLCBtaXBtYXApKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28yKFRl
eHR1cmUxRDxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQgbWlwbWFwLCBpbnQgb2Zm
c2V0KSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGxvY2F0aW9uLCBt
aXBtYXApLCBvZmZzZXQpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzMoVGV4dHVyZTFE
QXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50IG1pcG1hcCwgaW50IGxheWVy
KSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKGxvY2F0aW9uLCBtaXBt
YXAsIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNChUZXh0dXJlMURBcnJh
eTxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQgbWlwbWFwLCBpbnQgbGF5ZXIsIGlu
dCBvZmZzZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMobG9jYXRp
b24sIG1pcG1hcCwgbGF5ZXIpLCBvZmZzZXQpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZv
bzUoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXApIHsK
KyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgbWlwbWFwKSk7Cisg
ICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNihUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIGlu
dCB4LCBpbnQgeSwgaW50IG1pcG1hcCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAg
ICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIG1pcG1hcCksIGludDIob2Zm
c2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzcoVGV4dHVyZTJE
QXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCwgaW50IGxheWVy
KSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgsIHksIG1pcG1hcCwg
bGF5ZXIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb284KFRleHR1cmUyREFycmF5PGZs
b2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXAsIGludCBsYXllciwgaW50IG9m
ZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBp
bnQ0KHgsIHksIG1pcG1hcCwgbGF5ZXIpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb285KFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgs
IGludCB5LCBpbnQgeiwgaW50IG1pcG1hcCkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4
dHVyZSwgaW50NCh4LCB5LCB6LCBtaXBtYXApKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBm
b28xMChUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IHosIGludCBt
aXBtYXAsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSwgaW50IG9mZnNldFopIHsKKyAgICAgICAg
ICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDQoeCwgeSwgeiwgbWlwbWFwKSwgaW50MyhvZmZz
ZXRYLCBvZmZzZXRZLCBvZmZzZXRaKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTEo
UldUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbikgeworICAgICAgICAgICAg
cmV0dXJuIExvYWQodGV4dHVyZSwgbG9jYXRpb24pOworICAgICAgICB9CisgICAgICAgIGZsb2F0
IGZvbzEyKFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50
IGxheWVyKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGxvY2F0aW9u
LCBsYXllcikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzEzKFJXVGV4dHVyZTJEPGZs
b2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHkpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRl
eHR1cmUsIGludDIoeCwgeSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE0KFJXVGV4
dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IGxheWVyKSB7Cisg
ICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIGxheWVyKSk7CisgICAg
ICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTUoUldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIGlu
dCB4LCBpbnQgeSwgaW50IHopIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGlu
dDMoeCwgeSwgeikpOworICAgICAgICB9CisgICAgYCk7CisgICAgbGV0IFt0ZXh0dXJlMUQsIHRl
eHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1
cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4
dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNEXSA9IGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9n
cmFtKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MSIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMiIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAxKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFt0
ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMTMpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxNik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE3KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCAyMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMjEpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIC0xKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEp
XSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNyk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBb
dGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDE2KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJl
MURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAyMSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDIwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBb
dGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0
ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzOCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1
cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAx
MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYi
LCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTcpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1
cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAz
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYi
LCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMzQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzcpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3Rl
eHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEp
XSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAzNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzgpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQzKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0NCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDUyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCA3NSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgNzYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDc5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA4MCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMTgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDExKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM4KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAzNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAt
MSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAtMSldKSwgMzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQ0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgNDUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDUzKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCA1Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNjApOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCA2MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNzYpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDgwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3Nyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgODEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDgwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgNzYpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDgxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgNzcpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3Rl
eHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBb
dGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMzKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA0MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDQyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNjUpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUz
RCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA2Nik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDY5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgNzApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEw
IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4
dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNE
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
MTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTgpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0
ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDIpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJl
M0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgLTEpXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIs
IFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0
dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDMpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0Qs
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNTApOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDY2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDY5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDY3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDcwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDcwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2NSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwg
W3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3MSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1
cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNjYpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUx
RCwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDMpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1Rl
eHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAzKV0pLCA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQo
cHJvZ3JhbSwgNCldKSwgNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDYp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIs
IFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCA2KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1h
a2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4
dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEy
IiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
NiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgOSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVy
ZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIs
IFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAxMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
NCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJh
eSwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4
dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
MTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDIpXSksIDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAyKV0pLCAxOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIwKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURB
cnJheSwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3
VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMild
KSwgMjIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHBy
b2dyYW0sIDIpXSksIDIzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA3KSwg
bWFrZUludChwcm9ncmFtLCAyKV0pLCAyNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMyk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtl
SW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwg
bWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA1KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJl
MkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4
dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFty
d1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA4
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMi
LCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAxMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDQpLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
NSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9n
cmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTcpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxOCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4
dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBb
cndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwg
MjApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAy
KV0pLCAyMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dy
YW0sIDIpXSksIDIyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQo
cHJvZ3JhbSwgMildKSwgMjMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFr
ZUludChwcm9ncmFtLCAyKV0pLCAyNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjYpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyNyk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtl
SW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI4KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1
cmUyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAzMCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3
VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDMx
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMi
LCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMyld
KSwgMzIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQxKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCA0Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1
cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDIp
OworfQorCit0ZXN0cy50ZXh0dXJlU3RvcmUgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3Jh
bSA9IGRvUHJlcChgCisgICAgICAgIGZsb2F0IGZvbzEoUldUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1
cmUsIHVpbnQgbG9jYXRpb24sIGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICBTdG9yZSh0ZXh0
dXJlLCB2YWx1ZSwgbG9jYXRpb24pOworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwg
aW50KGxvY2F0aW9uKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMihSV1RleHR1cmUx
REFycmF5PGZsb2F0PiB0ZXh0dXJlLCB1aW50IGxvY2F0aW9uLCB1aW50IGxheWVyLCBmbG9hdCB2
YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4dHVyZSwgdmFsdWUsIHVpbnQyKGxvY2F0aW9u
LCBsYXllcikpOworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MihpbnQobG9j
YXRpb24pLCBpbnQobGF5ZXIpKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMyhSV1Rl
eHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgdWludCB4LCB1aW50IHksIGZsb2F0IHZhbHVlKSB7Cisg
ICAgICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDIoeCwgeSkpOworICAgICAgICAg
ICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MihpbnQoeCksIGludCh5KSkpOworICAgICAgICB9
CisgICAgICAgIGZsb2F0IGZvbzQoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgdWlu
dCB4LCB1aW50IHksIHVpbnQgbGF5ZXIsIGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICBTdG9y
ZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDMoeCwgeSwgbGF5ZXIpKTsKKyAgICAgICAgICAgIHJldHVy
biBMb2FkKHRleHR1cmUsIGludDMoaW50KHgpLCBpbnQoeSksIGludChsYXllcikpKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb281KFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCB1aW50
IHgsIHVpbnQgeSwgdWludCB6LCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4
dHVyZSwgdmFsdWUsIHVpbnQzKHgsIHksIHopKTsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRl
eHR1cmUsIGludDMoaW50KHgpLCBpbnQoeSksIGludCh6KSkpOworICAgICAgICB9CisgICAgYCk7
CisgICAgbGV0IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRleHR1cmUy
REFycmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0dXJlMURB
cnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNEXSA9IGNyZWF0
ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9ncmFtKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VV
aW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVy
ZTFELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIs
IFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCA1KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJv
Z3JhbSwgNiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1h
a2VVaW50KHByb2dyYW0sIDcpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4
dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVy
ZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChw
cm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFE
QXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9n
cmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJy
YXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFt
LCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIi
LCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXks
IG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA1
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBb
cndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1h
a2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndU
ZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDIp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VV
aW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0
dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50
KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVp
bnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJl
MURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFt
LCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMi
LCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1h
a2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVy
ZTJELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDcp
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFty
d1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9n
cmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVp
bnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQs
IG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4
dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIs
IFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDIp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChw
cm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9n
cmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFr
ZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVp
bnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJl
MkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNyks
IG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3
VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dy
YW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0s
IDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWlu
dChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChw
cm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwg
bWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0
dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBt
YWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXks
IG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1h
a2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VV
aW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50
KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0s
IDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7Cit9CisKK3Rlc3RzLnRleHR1cmVTYW1wbGUgPSBmdW5jdGlvbigp
IHsKKyAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCisgICAgICAgIGZsb2F0IGZvbzEoVGV4dHVy
ZTFEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IGxvY2F0aW9uKSB7CisgICAgICAg
ICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGxvY2F0aW9uKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmb28yKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9h
dCBsb2NhdGlvbiwgaW50IG9mZnNldCkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0
dXJlLCBzLCBsb2NhdGlvbiwgb2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28z
KFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0
IGxheWVyKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Mih4
LCBsYXllcikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQoVGV4dHVyZTFEQXJyYXk8
ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgbGF5ZXIsIGludCBvZmZz
ZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQyKHgsIGxh
eWVyKSwgb2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb281KFRleHR1cmUyRDxm
bG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5KSB7CisgICAgICAgICAg
ICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSk7CisgICAgICAgIH0KKyAg
ICAgICAgZmxvYXQgZm9vNihUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxv
YXQgeCwgZmxvYXQgeSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICBy
ZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgaW50MihvZmZzZXRYLCBvZmZz
ZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNyhUZXh0dXJlMkRBcnJheTxmbG9h
dD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllcikgewor
ICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIp
KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb284KFRleHR1cmUyREFycmF5PGZsb2F0PiB0
ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBpbnQgb2Zm
c2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwg
cywgZmxvYXQzKHgsIHksIGxheWVyKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAg
IH0KKyAgICAgICAgZmxvYXQgZm9vOShUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIg
cywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBs
ZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0
IGZvbzEwKFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9h
dCB5LCBmbG9hdCB6LCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFksIGludCBvZmZzZXRaKSB7Cisg
ICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSwgaW50
MyhvZmZzZXRYLCBvZmZzZXRZLCBvZmZzZXRaKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQg
Zm9vMTEoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxv
YXQgeSwgZmxvYXQgeikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBm
bG9hdDMoeCwgeSwgeikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzEyKFRleHR1cmUy
RDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBCaWFz
KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwg
eSksIEJpYXMpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzEzKFRleHR1cmUyRDxmbG9h
dD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBCaWFzLCBpbnQg
b2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFzKHRl
eHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgQmlhcywgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7Cisg
ICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTQoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBz
YW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0
IGRkeTAsIGZsb2F0IGRkeTEpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVHcmFkKHRleHR1
cmUsIHMsIGZsb2F0Mih4LCB5KSwgZmxvYXQyKGRkeDAsIGRkeDEpLCBmbG9hdDIoZGR5MCwgZGR5
MSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE1KFRleHR1cmUyRDxmbG9hdD4gdGV4
dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBkZHgwLCBmbG9hdCBkZHgx
LCBmbG9hdCBkZHkwLCBmbG9hdCBkZHkxLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAg
ICAgICAgICAgIHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgZmxv
YXQyKGRkeDAsIGRkeDEpLCBmbG9hdDIoZGR5MCwgZGR5MSksIGludDIob2Zmc2V0WCwgb2Zmc2V0
WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE2KFRleHR1cmUyRDxmbG9hdD4gdGV4
dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBMT0QpIHsKKyAgICAgICAg
ICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIExPRCk7Cisg
ICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTcoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBz
YW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IExPRCwgaW50IG9mZnNldFgsIGludCBv
ZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxv
YXQyKHgsIHkpLCBMT0QsIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAg
ICAgIGZsb2F0IGZvbzE4KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMs
IGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBCaWFzKSB7CisgICAgICAgICAg
ICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBCaWFz
KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xOShUZXh0dXJlMkRBcnJheTxmbG9hdD4g
dGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQg
QmlhcywgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2Ft
cGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBCaWFzLCBpbnQyKG9mZnNl
dFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28yMChUZXh0dXJlMkRB
cnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBs
YXllciwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSkgewor
ICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxh
eWVyKSwgZmxvYXQyKGRkeDAsIGRkeDEpLCBmbG9hdDIoZGR5MCwgZGR5MSkpOworICAgICAgICB9
CisgICAgICAgIGZsb2F0IGZvbzIxKFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1w
bGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBkZHgwLCBmbG9hdCBk
ZHgxLCBmbG9hdCBkZHkwLCBmbG9hdCBkZHkxLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsK
KyAgICAgICAgICAgIHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBs
YXllciksIGZsb2F0MihkZHgwLCBkZHgxKSwgZmxvYXQyKGRkeTAsIGRkeTEpLCBpbnQyKG9mZnNl
dFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28yMihUZXh0dXJlMkRB
cnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBs
YXllciwgZmxvYXQgTE9EKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVy
ZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgTE9EKTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb28yMyhUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4
LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgTE9ELCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNl
dFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDMo
eCwgeSwgbGF5ZXIpLCBMT0QsIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9Cisg
ICAgYCk7CisgICAgbGV0IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRl
eHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0
dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNEXSA9
IGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9ncmFtKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHt9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuMzc1KV0pLCA3KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHt9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNDM3NSldKSwg
Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEi
LCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7fSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjU2MjUpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHt9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNjI1KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC4zNzUpXSks
IDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
IiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNDM3NSldKSwgKDMgKiA3ICsgMSAqIDE0KSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3Rl
eHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDcgKyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjU2MjUpXSksICgxICogNyArIDMgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjYyNSld
KSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuMzc1KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjQzNzUpXSksICgzICogNyArIDEgKiAxNCkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6
ICJjbGFtcFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICg3ICsg
MTQpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41NjI1KV0pLCAoMSAqIDcgKyAzICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBU
b0JvcmRlckNvbG9yIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC42MjUpXSksIDE0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJl
MUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01v
ZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC4zNzUpXSksIDcpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1
cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNz
TW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjQzNzUpXSksICgzICog
NyArIDEgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxICsgMC41KV0pLCAoNyArIDE0KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEgKyAwLjU2MjUpXSksICgxICogNyArIDMgKiAxNCkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJl
MUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01v
ZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC42MjUpXSksIDE0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0
dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVz
c01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC4zNzUpXSksIDcpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3Rl
eHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRy
ZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjQzNzUpXSksICgz
ICogNyArIDEgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAyICsgMC41KV0pLCAoNyArIDE0KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDIgKyAwLjU2MjUpXSksICgxICogNyArIDMgKiAxNCkgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0
dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVz
c01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC42MjUpXSksIDE0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0
ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRk
cmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC42MjUp
XSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEg
KyAwLjU2MjUpXSksICgzICogNyArIDEgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBl
YXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC41KV0pLCAoNyArIDE0KSAvIDIpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1
cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNz
TW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjQzNzUpXSks
ICgxICogNyArIDMgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxICsgMC4zNzUpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC4zNzUpXSksIDcpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJv
clJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjQzNzUpXSksICgzICogNyArIDEg
KiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAyICsgMC41KV0pLCAoNyArIDE0KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjU2MjUpXSksICgxICogNyArIDMgKiAxNCkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0
ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRk
cmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC42MjUp
XSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMC4zNzUpXSksIDEpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEuMzc1KV0pLCA3OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgLTAuMzc1KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3Ii
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAxLjM3NSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0Jv
cmRlckNvbG9yIiwgYm9yZGVyQ29sb3I6ICJvcGFxdWVCbGFjayJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIC0wLjM3NSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIiwgYm9yZGVy
Q29sb3I6ICJvcGFxdWVCbGFjayJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEuMzc1KV0pLCAwKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0
ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRk
cmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IiLCBib3JkZXJDb2xvcjogIm9wYXF1ZVdoaXRl
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTAuMzc1KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRv
Qm9yZGVyQ29sb3IiLCBib3JkZXJDb2xvcjogIm9wYXF1ZVdoaXRlIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMS4zNzUpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciIsIGJvcmRl
ckNvbG9yOiAib3BhcXVlV2hpdGUifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNzkgKyAx
KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciIsIGxvZE1pbkNsYW1wOiAxfSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMyArIDE2
KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDE0
ICsgNzkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCldKSwgKDcgKyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKV0pLCAoMTcgKyAxOCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMTQg
KyA3OSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMTggKyAxOSkgLyAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
XSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgNiAvIDgpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJl
MkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4
dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAy
MSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSAr
IDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDYyICsgNjMgKyA3MCArIDcxKSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1
cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEgKyA0NCArIDQ1ICsgNTIgKyA1MykgLyA4
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIs
IFt0ZXh0dXJlM0QsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMyArIDE0ICsgMjEgKyAyMiArIDQ1ICsgNDYgKyA1
MyArIDU0KSAvIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2
IC8gOCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgyMCArIDIxICsgMjggKyAyOSArIDUy
ICsgNTMgKyA2MCArIDYxKSAvIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNSAvIDgpXSksICgxMiArIDEzICsgMjAg
KyAyMSArICg0NCArIDQ1ICsgNTIgKyA1MykgKiAzKSAvIDE2KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICgxMyArIDE0ICsgMjEgKyAyMiArIDQ1ICsgNDYgKyA1MyArIDU0KSAvIDgpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0
dXJlM0QsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgKDIwICsgMjEgKyAyOCArIDI5ICsgNTIgKyA1MyArIDYwICsg
NjEpIC8gOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC4yNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDQ0ICsgNDUgKyA1MiArIDUzKSAv
IDQpOworICAgIC8vIFRlc3QgbWlwbWFwIGZpbHRlcmluZywgbWF4TE9EY2xhbXAsIG1heEFuaXNv
LCBhbmQgb3RoZXIgaW5uZXIgdHlwZXMsIGRlcHRoIHRleHR1cmVzLCBhbmQgZGVwdGggY29tcGFy
ZSBmdW5jdGlvbnMKIH0KIAogb2tUb1Rlc3QgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1RleHR1cmUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQ2ZTA1YWM4MTc4Nzg5YTY1ZjMwMGIxMDAw
ODYxNjA4MjQ1ZGY4YgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1RleHR1cmUuanMKQEAgLTAsMCArMSw1MzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworInVzZSBzdHJpY3QiOworCitjbGFzcyBUZXh0dXJlIHsK
KyAgICBjb25zdHJ1Y3RvcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENv
dW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICB0aGlzLl9k
aW1lbnNpb24gPSBkaW1lbnNpb247CisgICAgICAgIHRoaXMuX3dpZHRoID0gd2lkdGg7CisgICAg
ICAgIHRoaXMuX2hlaWdodCA9IGhlaWdodDsKKyAgICAgICAgdGhpcy5fZGVwdGggPSBkZXB0aDsK
KyAgICAgICAgdGhpcy5fbGV2ZWxDb3VudCA9IGxldmVsQ291bnQ7CisgICAgICAgIHRoaXMuX2xh
eWVyQ291bnQgPSBsYXllckNvdW50OworICAgICAgICB0aGlzLl9pbm5lclR5cGUgPSBpbm5lclR5
cGU7CisgICAgICAgIHRoaXMuX2RhdGEgPSBkYXRhOworICAgIH0KKworICAgIGdldCBkaW1lbnNp
b24oKSB7IHJldHVybiB0aGlzLl9kaW1lbnNpb247IH0KKyAgICBnZXQgd2lkdGgoKSB7IHJldHVy
biB0aGlzLl93aWR0aDsgfQorICAgIGdldCBoZWlnaHQoKSB7IHJldHVybiB0aGlzLl9oZWlnaHQ7
IH0KKyAgICBnZXQgZGVwdGgoKSB7IHJldHVybiB0aGlzLl9kZXB0aDsgfQorICAgIGdldCBsZXZl
bENvdW50KCkgeyByZXR1cm4gdGhpcy5fbGV2ZWxDb3VudDsgfQorICAgIGdldCBsYXllckNvdW50
KCkgeyByZXR1cm4gdGhpcy5fbGF5ZXJDb3VudDsgfQorICAgIGdldCBpbm5lclR5cGUoKSB7IHJl
dHVybiB0aGlzLl9pbm5lclR5cGU7IH0KKyAgICBnZXQgZGF0YSgpIHsgcmV0dXJuIHRoaXMuX2Rh
dGE7IH0KKworICAgIGVsZW1lbnRDaGVja2VkKGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7
CisgICAgICAgIGlmIChsYXllciA8IDAgfHwgbGF5ZXIgPj0gdGhpcy5sYXllckNvdW50CisgICAg
ICAgICAgICB8fCBsZXZlbCA8IDAgfHwgbGV2ZWwgPj0gdGhpcy5sZXZlbENvdW50CisgICAgICAg
ICAgICB8fCBrIDwgMCB8fCBrID49IHRoaXMuZGVwdGgKKyAgICAgICAgICAgIHx8IGogPCAwIHx8
IGogPj0gdGhpcy5oZWlnaHQKKyAgICAgICAgICAgIHx8IGkgPCAwIHx8IGkgPj0gdGhpcy53aWR0
aCkKKyAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICAgIHJldHVybiB0aGlzLmVs
ZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50Q2hl
Y2tlZChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKGxh
eWVyIDwgMCB8fCBsYXllciA+PSB0aGlzLmxheWVyQ291bnQKKyAgICAgICAgICAgIHx8IGxldmVs
IDwgMCB8fCBsZXZlbCA+PSB0aGlzLmxldmVsQ291bnQKKyAgICAgICAgICAgIHx8IGsgPCAwIHx8
IGsgPj0gdGhpcy5kZXB0aAorICAgICAgICAgICAgfHwgaiA8IDAgfHwgaiA+PSB0aGlzLmhlaWdo
dAorICAgICAgICAgICAgfHwgaSA8IDAgfHwgaSA+PSB0aGlzLndpZHRoKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICB0aGlzLnNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBq
LCBpLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK30KKworY2xhc3MgVGV4
dHVyZTFEIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRh
KQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIG1pcG1hcHMuCisgICAg
ICAgIC8vIFRoZSBmaXJzdCBtaXBtYXAgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAg
IC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2FsYXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxh
cnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCBtdXN0IGJlIGEgcG93ZXItb2YtdHdvLgorICAgICAg
ICAvLyBFYWNoIG1pcG1hcCBpcyBoYWxmLXNpemUgb2YgdGhlIHByZXZpb3VzIHNpemUuCisKKyAg
ICAgICAgbGV0IGRpbWVuc2lvbiA9IDE7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF0ubGVu
Z3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gMTsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAg
ICAgICAgbGV0IGxldmVsQ291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgbGV0IGxheWVyQ291
bnQgPSAxOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBs
ZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdp
ZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxd
Lmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGos
IGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXVtpXTsKKyAgICB9CisK
KyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAg
ICAgICB0aGlzLmRhdGFbbGV2ZWxdW2ldID0gdmFsdWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0
dXJlMURBcnJheSBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwg
ZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiAxRCB0ZXh0dXJl
cy4KKyAgICAgICAgLy8gQWxsIHRleHR1cmVzIG11c3QgaGF2ZSB0aGUgc2FtZSB3aWR0aCBhbmQg
bnVtYmVyIG9mIG1pcG1hcHMuCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDE7CisgICAgICAg
IGxldCB3aWR0aCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gMTsK
KyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSBkYXRhWzBd
Lmxlbmd0aDsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAg
c3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJD
b3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwp
CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdW2xldmVsXS5sZW5ndGg7CisgICAg
fQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOwor
ICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAx
OworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2ldOworICAgIH0KKworICAgIHNl
dEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRo
aXMuZGF0YVtsYXllcl1bbGV2ZWxdW2ldID0gdmFsdWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0
dXJlMkQgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEp
CisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgbWlwbWFwcy4KKyAgICAg
ICAgLy8gVGhlIGZpcnN0IG1pcG1hcCBpcyBhIHJlY3Rhbmd1bGFyIGFycmF5IG9mIHJvd3MsIHdo
ZXJlIGVhY2ggcm93IGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBFYWNoIGVs
ZW1lbnQgbWF5IGJlIGEgc2NhbGFyIG9yIGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgorICAgICAg
ICAvLyBUaGUgd2lkdGggYW5kIGhlaWdodCBtdXN0IGJlIHBvd2Vycy1vZi10d28uCisgICAgICAg
IC8vIEVhY2ggbWlwbWFwIGlzIGhhbGYtd2lkdGggYW5kIGhhbGYtaGVpZ2h0IG9mIHRoZSBwcmV2
aW91cyBzaXplLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAyOworICAgICAgICBsZXQgd2lk
dGggPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRhdGFbMF0ubGVu
Z3RoOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRh
dGEubGVuZ3RoOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IDE7CisgICAgICAgIHN1cGVyKGRp
bWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlu
bmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1bMF0ubGVuZ3RoOworICAgIH0KKworICAg
IGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xl
dmVsXS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGos
IGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXVtqXVtpXTsKKyAgICB9
CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgewor
ICAgICAgICB0aGlzLmRhdGFbbGV2ZWxdW2pdW2ldID0gdmFsdWU7CisgICAgfQorfQorCitjbGFz
cyBUZXh0dXJlMkRBcnJheSBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVy
VHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiAyRCB0
ZXh0dXJlcy4KKyAgICAgICAgLy8gQWxsIHRleHR1cmVzIG11c3QgaGF2ZSB0aGUgc2FtZSB3aWR0
aCwgaGVpZ2h0IGFuZCBudW1iZXIgb2YgbWlwbWFwcy4KKworICAgICAgICBsZXQgZGltZW5zaW9u
ID0gMjsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXVswXS5sZW5ndGg7CisgICAgICAg
IGxldCBoZWlnaHQgPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsK
KyAgICAgICAgbGV0IGxldmVsQ291bnQgPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGxh
eWVyQ291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwg
aGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsK
KyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5kYXRhWzBdW2xldmVsXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZl
bChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bbGV2ZWxdLmxlbmd0
aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1
cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtqXVtpXTsKKyAgICB9CisK
KyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAg
ICAgICB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30KKwor
Y2xhc3MgVGV4dHVyZTNEIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJU
eXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIG1pcG1h
cHMuCisgICAgICAgIC8vIFRoZSBmaXJzdCBtaXBtYXAgaXMgYW4gYXJyYXkgb2YgZGVwdGggc2xp
Y2VzLCBlYWNoIGRlcHRoIHNsaWNlIGlzIGFuIGFycmF5IG9mIHJvd3MsIGFuZCBlYWNoIHJvdyBp
cyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBh
IHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRo
LCBoZWlnaHQsIGFuZCBkZXB0aCBtdXN0IGJlIHBvd2Vycy1vZi10d28uCisgICAgICAgIC8vIEVh
Y2ggbWlwbWFwIGlzIGhhbGYtd2lkdGgsIGhhbGYtaGVpZ2h0LCBhbmQgaGFsZi1kZXB0aCBvZiB0
aGUgcHJldmlvdXMgc2l6ZS4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMzsKKyAgICAgICAg
bGV0IHdpZHRoID0gZGF0YVswXVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSBk
YXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGRlcHRoID0gZGF0YVswXS5sZW5ndGg7Cisg
ICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBsYXllckNv
dW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwg
bGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3
aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVs
XVswXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAg
ICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xl
dmVsXS5sZW5ndGg7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkp
CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXVtrXVtqXVtpXTsKKyAgICB9
CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgewor
ICAgICAgICB0aGlzLmRhdGFbbGV2ZWxdW2tdW2pdW2ldID0gdmFsdWU7CisgICAgfQorfQorCitj
bGFzcyBUZXh0dXJlQ3ViZSBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVy
VHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiA2IDJE
IHRleHR1cmVzLgorICAgICAgICAvLyBBbGwgdGV4dHVyZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHdp
ZHRoLCBoZWlnaHQsIGRlcHRoLCBhbmQgbnVtYmVyIG9mIG1pcG1hcHMuCisKKyAgICAgICAgbGV0
IGRpbWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF1bMF0ubGVuZ3Ro
OworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBk
ZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YVswXS5sZW5ndGg7CisgICAg
ICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIHN1cGVyKGRpbWVuc2lv
biwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlw
ZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF1bMF0ubGVuZ3RoOworICAgIH0KKworICAgIGhl
aWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdW2xl
dmVsXS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGos
IGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1bal1baV07
CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQor
ICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1bal1baV0gPSB2YWx1ZTsKKyAg
ICB9Cit9CisKK2NsYXNzIFRleHR1cmUxRFJXIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3Ry
dWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFy
cmF5IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBFYWNoIGVsZW1lbnQgbWF5IGJlIGEgc2NhbGFy
IG9yIGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgorICAgICAgICAvLyBUaGUgd2lkdGggbXVzdCBi
ZSBhIHBvd2VyLW9mLXR3by4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMTsKKyAgICAgICAg
bGV0IHdpZHRoID0gZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSAxOworICAgICAg
ICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7CisgICAgICAgIGxl
dCBsYXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0
LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9
CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5k
YXRhLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGss
IGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2ldOworICAgIH0KKworICAg
IHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAg
IHRoaXMuZGF0YVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTFEQXJyYXlS
VyBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAg
ICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiAxRCBSVyB0ZXh0dXJlcy4KKyAg
ICAgICAgLy8gQWxsIHRleHR1cmVzIG11c3QgaGF2ZSB0aGUgc2FtZSBzaXplLgorCisgICAgICAg
IGxldCBkaW1lbnNpb24gPSAxOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdLmxlbmd0aDsK
KyAgICAgICAgbGV0IGhlaWdodCA9IDE7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAg
IGxldCBsZXZlbENvdW50ID0gMTsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSBkYXRhLmxlbmd0
aDsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxD
b3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0
TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdLmxlbmd0aDsK
KyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IDE7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAg
eworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xheWVyXVtpXTsKKyAgICB9CisKKyAgICBzZXRF
bGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlz
LmRhdGFbbGF5ZXJdW2ldID0gdmFsdWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlMkRSVyBl
eHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7
CisgICAgICAgIC8vICJkYXRhIiBpcyBhIHJlY3Rhbmd1bGFyIGFycmF5IG9mIHJvd3MsIHdoZXJl
IGVhY2ggcm93IGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBFYWNoIGVsZW1l
bnQgbWF5IGJlIGEgc2NhbGFyIG9yIGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgorICAgICAgICAv
LyBUaGUgd2lkdGggYW5kIGhlaWdodCBtdXN0IGJlIHBvd2Vycy1vZi10d28uCisKKyAgICAgICAg
bGV0IGRpbWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF0ubGVuZ3RoOwor
ICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0aCA9IDE7
CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gMTsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSAx
OworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENv
dW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRM
ZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF0ubGVuZ3RoOwor
ICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5kYXRhLmxlbmd0aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAg
eworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwg
aywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbal1baV07CisgICAgfQor
CisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAg
ICAgICAgdGhpcy5kYXRhW2pdW2ldID0gdmFsdWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJl
MkRBcnJheVJXIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBk
YXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIDJEIFJXIHRleHR1
cmVzLgorICAgICAgICAvLyBBbGwgdGV4dHVyZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHdpZHRoIGFu
ZCBoZWlnaHQuCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0
aCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXS5sZW5n
dGg7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gMTsK
KyAgICAgICAgbGV0IGxheWVyQ291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgc3VwZXIoZGlt
ZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5u
ZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgewor
ICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWln
aHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXS5sZW5n
dGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAg
eworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xheWVyXVtqXVtpXTsKKyAgICB9CisKKyAgICBz
ZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0
aGlzLmRhdGFbbGF5ZXJdW2pdW2ldID0gdmFsdWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJl
M0RSVyBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkK
KyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiBkZXB0aCBzbGljZXMsIGVh
Y2ggZGVwdGggc2xpY2UgaXMgYW4gYXJyYXkgb2Ygcm93cywgYW5kIGVhY2ggcm93IGlzIGFuIGFy
cmF5IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBFYWNoIGVsZW1lbnQgbWF5IGJlIGEgc2NhbGFy
IG9yIGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgorICAgICAgICAvLyBUaGUgd2lkdGgsIGhlaWdo
dCwgYW5kIGRlcHRoIG11c3QgYmUgcG93ZXJzLW9mLXR3by4KKworICAgICAgICBsZXQgZGltZW5z
aW9uID0gMzsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAg
IGxldCBoZWlnaHQgPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGRlcHRoID0gZGF0YS5s
ZW5ndGg7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gMTsKKyAgICAgICAgbGV0IGxheWVyQ291
bnQgPSAxOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBs
ZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdp
ZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bMF0u
bGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5kYXRhWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwo
bGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmxlbmd0aDsKKyAgICB9CisK
KyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVy
biB0aGlzLmRhdGFba11bal1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2
ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2tdW2pdW2ldID0g
dmFsdWU7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVGV4dHVyZU9wZXJhdGlvbnMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9U
ZXh0dXJlT3BlcmF0aW9ucy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDc5ZTY5YjFkMmRhNDkzYmY1ZDdjODdh
Y2I1MDRjZDE4ODFiYmEwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanMKQEAgLTAsMCArMSw1NTYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworInVzZSBzdHJpY3QiOworCitmdW5j
dGlvbiBkZXB0aENvbXBhcmVPcGVyYXRpb24oZHJlZiwgZCwgY29tcGFyZUZ1bmN0aW9uKQorewor
ICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS4zLjQKKyAgICBzd2l0Y2ggKGNvbXBhcmVG
dW5jdGlvbikgeworICAgICAgICBjYXNlICJuZXZlciI6CisgICAgICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgY2FzZSAibGVzcyI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiA8IGQgPyAxIDog
MDsKKyAgICAgICAgY2FzZSAiZXF1YWwiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYgPT0gZCA/
IDEgOiAwOworICAgICAgICBjYXNlICJsZXNzRXF1YWwiOgorICAgICAgICAgICAgcmV0dXJuIGRy
ZWYgPD0gZCA/IDEgOiAwOworICAgICAgICBjYXNlICJncmVhdGVyIjoKKyAgICAgICAgICAgIHJl
dHVybiBkcmVmID4gZCA/IDEgOiAwOworICAgICAgICBjYXNlICJub3RFcXVhbCI6CisgICAgICAg
ICAgICByZXR1cm4gZHJlZiAhPSBkID8gMSA6IDA7CisgICAgICAgIGNhc2UgImdyZWF0ZXJFcXVh
bCI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiA+PSBkID8gMSA6IDA7CisgICAgICAgIGNhc2Ug
ImFsd2F5cyI6CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBkZXB0aCBjb21wYXJpc29uIGZ1bmN0aW9u
Iik7CisgICAgfQorfQorCitmdW5jdGlvbiBjb252ZXJzaW9uVG9SR0JBKHZhbHVlKQoreworICAg
IC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS4zLjUKKyAgICBpZiAodmFsdWUgaW5zdGFuY2Vv
ZiBBcnJheSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gW107CisgICAgICAgIGZvciAobGV0IGkg
PSAwOyBpIDwgdmFsdWUubGVuZ3RoOyArK2kpCisgICAgICAgICAgICByZXN1bHQucHVzaCh2YWx1
ZVtpXSk7CisgICAgICAgIHdoaWxlIChyZXN1bHQubGVuZ3RoICE9IDQpCisgICAgICAgICAgICBy
ZXN1bHQucHVzaChyZXN1bHQubGVuZ3RoID09IDMgPyAxIDogMCk7CisgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgfSBlbHNlCisgICAgICAgIHJldHVybiBbdmFsdWUsIDAsIDAsIDFdOworfQor
CitmdW5jdGlvbiBwcm9qZWN0aW9uT3BlcmF0aW9uKHMsIHQsIHIsIGRyZWYsIHEpCit7CisgICAg
Ly8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuMQorICAgIHJldHVybiBbcyAvIHEsIHQgLyBx
LCByIC8gcSwgZHJlZiAhPSB1bmRlZmluZWQgPyBkcmVmIC8gcSA6IHVuZGVmaW5lZF07Cit9CisK
K2Z1bmN0aW9uIGN1YmVNYXBGYWNlU2VsZWN0aW9uKHMsIHQsIHIsIHBhcnRpYWxSeFdpdGhSZXNw
ZWN0VG9YLCBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1gs
IHBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWCwgcGFydGlh
bFJ6V2l0aFJlc3BlY3RUb1kpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYu
NAorICAgIGxldCByeCA9IHM7CisgICAgbGV0IHJ5ID0gdDsKKyAgICBsZXQgcnogPSByOworICAg
IGxldCB3aW5uZXIgPSAwOworICAgIGlmIChNYXRoLmFicyhyeikgPj0gTWF0aC5hYnMocnkpICYm
IE1hdGguYWJzKHJ6KSA+PSBNYXRoLmFicyhyeCkpCisgICAgICAgIHdpbm5lciA9IDI7CisgICAg
ZWxzZSBpZiAoTWF0aC5hYnMocnkpID49IE1hdGguYWJzKHJ4KSAmJiBNYXRoLmFicyhyeSkgPj0g
TWF0aC5hYnMocnopKQorICAgICAgICB3aW5uZXIgPSAxOworCisgICAgbGV0IGxheWVyTnVtYmVy
OworICAgIGxldCBzYzsKKyAgICBsZXQgdGM7CisgICAgbGV0IHJjOworICAgIGxldCBwYXJ0aWFs
U2NXaXRoUmVzcGVjdFRvWDsKKyAgICBsZXQgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1k7CisgICAg
bGV0IHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YOworICAgIGxldCBwYXJ0aWFsVGNXaXRoUmVzcGVj
dFRvWTsKKyAgICBsZXQgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1g7CisgICAgbGV0IHBhcnRpYWxS
Y1dpdGhSZXNwZWN0VG9ZOworICAgIGlmICh3aW5uZXIgPT0gMCAmJiByeCA+PSAwKSB7CisgICAg
ICAgIGxheWVyTnVtYmVyID0gMDsKKyAgICAgICAgc2MgPSAtcno7CisgICAgICAgIHRjID0gLXJ5
OworICAgICAgICByYyA9IHJ4OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IC1w
YXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kg
PSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0
VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVz
cGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0
aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJj
V2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAgICB9IGVsc2UgaWYg
KHdpbm5lciA9PSAwKSB7CisgICAgICAgIGxheWVyTnVtYmVyID0gMTsKKyAgICAgICAgc2MgPSBy
ejsKKyAgICAgICAgdGMgPSAtcnk7CisgICAgICAgIHJjID0gcng7CisgICAgICAgIHBhcnRpYWxT
Y1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRp
YWxTY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBh
cnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAg
ICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAg
ICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7
CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeFdpdGhSZXNwZWN0
VG9ZOworICAgIH0gZWxzZSBpZiAod2lubmVyID09IDEgJiYgcnkgPj0gMCkgeworICAgICAgICBs
YXllck51bWJlciA9IDI7CisgICAgICAgIHNjID0gcng7CisgICAgICAgIHRjID0gLXJ6OworICAg
ICAgICByYyA9IHJ5OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxS
eFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9IHBhcnRp
YWxSeFdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCA9IHBh
cnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9
IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRv
WCA9IHBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVj
dFRvWSA9IHBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxzZSBpZiAod2lubmVyID09
IDEpIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSAzOworICAgICAgICBzYyA9IHJ4OworICAgICAg
ICB0YyA9IC1yejsKKyAgICAgICAgcmMgPSByeTsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3Bl
Y3RUb1ggPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJl
c3BlY3RUb1kgPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0
aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxU
Y1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0
aWFsUmNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAg
cGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAg
fSBlbHNlIGlmICh3aW5uZXIgPT0gMiAmJiByeiA+PSAwKSB7CisgICAgICAgIGxheWVyTnVtYmVy
ID0gNDsKKyAgICAgICAgc2MgPSByeDsKKyAgICAgICAgdGMgPSAtcnk7CisgICAgICAgIHJjID0g
cno7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ4V2l0aFJlc3Bl
Y3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ4V2l0aFJl
c3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdp
dGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFs
UnlXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0
aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSBw
YXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICB9IGVsc2UgeworICAgICAgICBsYXllck51bWJl
ciA9IDU7CisgICAgICAgIHNjID0gLXJ4OworICAgICAgICB0YyA9IC1yeTsKKyAgICAgICAgcmMg
PSByejsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ4V2l0aFJl
c3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeFdp
dGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFs
UnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgPSAtcGFy
dGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YID0g
LXBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRv
WSA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICB9CisgICAgcmV0dXJuIFtsYXllck51
bWJlciwgc2MsIHRjLCByYywgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTY1dpdGhS
ZXNwZWN0VG9ZLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRjV2l0aFJlc3BlY3RU
b1ksIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWV0KK30K
KworZnVuY3Rpb24gY3ViZU1hcENvb3JkaW5hdGVUcmFuc2Zvcm1hdGlvbihzYywgcmMpCit7Cisg
ICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuNQorICAgIGxldCBzRmFjZSA9ICgxIC8g
MikgKiBzYyAvIE1hdGguYWJzKHJjKSArICgxIC8gMik7CisgICAgbGV0IHRGYWNlID0gKDEgLyAy
KSAqIHRjIC8gTWF0aC5hYnMocmMpICsgKDEgLyAyKTsKKyAgICByZXR1cm4gW3NGYWNlLCB0RmFj
ZV07Cit9CisKK2Z1bmN0aW9uIGN1YmVNYXBEZXJpdmF0aXZlVHJhbnNmb3JtYXRpb24oc2MsIHRj
LCByYywgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZLCBw
YXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxS
Y1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSkKK3sKKyAgICAvLyBWdWxr
YW4gMS4xLjgzIHNlY3Rpb24gMTUuNi42CisgICAgbGV0IHBhcnRpYWxTRmFjZVdpdGhSZXNwZWN0
VG9YID0gKDEgLyAyKSAqICgoTWF0aC5hYnMocmMpICogcGFydGlhbFNjV2l0aFJlc3BlY3RUb1gg
LSBzYyAqIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YKSAvIE1hdGgucG93KHJjLCAyKSk7CisgICAg
bGV0IHBhcnRpYWxTRmFjZVdpdGhSZXNwZWN0VG9ZID0gKDEgLyAyKSAqICgoTWF0aC5hYnMocmMp
ICogcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgLSBzYyAqIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9Z
KSAvIE1hdGgucG93KHJjLCAyKSk7CisgICAgbGV0IHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0VG9Y
ID0gKDEgLyAyKSAqICgoTWF0aC5hYnMocmMpICogcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggLSB0
YyAqIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YKSAvIE1hdGgucG93KHJjLCAyKSk7CisgICAgbGV0
IHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0VG9ZID0gKDEgLyAyKSAqICgoTWF0aC5hYnMocmMpICog
cGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgLSB0YyAqIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZKSAv
IE1hdGgucG93KHJjLCAyKSk7CisgICAgcmV0dXJuIFtwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRv
WCwgcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0VG9Y
LCBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRvWV07Cit9CisKK2Z1bmN0aW9uIHNjYWxlRmFjdG9y
T3BlcmF0aW9uKGRldmljZU1heEFuaXNvdHJvcHksIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBzYW1w
bGVyTWF4QW5pc290cm9weSwgcGFydGlhbFNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRXaXRoUmVz
cGVjdFRvWCwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNXaXRoUmVzcGVjdFRvWSwg
cGFydGlhbFRXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWSkKK3sKKyAgICAv
LyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi43CisgICAgbGV0IG11eCA9IE1hdGguYWJzKHBh
cnRpYWxTV2l0aFJlc3BlY3RUb1gpICogd2lkdGg7CisgICAgbGV0IG12eCA9IE1hdGguYWJzKHBh
cnRpYWxUV2l0aFJlc3BlY3RUb1gpICogaGVpZ2h0OworICAgIGxldCBtd3ggPSBNYXRoLmFicyhw
YXJ0aWFsUldpdGhSZXNwZWN0VG9YKSAqIGRlcHRoOworICAgIGxldCBtdXkgPSBNYXRoLmFicyhw
YXJ0aWFsU1dpdGhSZXNwZWN0VG9ZKSAqIHdpZHRoOworICAgIGxldCBtdnkgPSBNYXRoLmFicyhw
YXJ0aWFsVFdpdGhSZXNwZWN0VG9ZKSAqIGhlaWdodDsKKyAgICBsZXQgbXd5ID0gTWF0aC5hYnMo
cGFydGlhbFJXaXRoUmVzcGVjdFRvWSkgKiBkZXB0aDsKKworICAgIGxldCBmeCA9IE1hdGguc3Fy
dCgyKSAqIChtdXggKyBtdnggKyBtd3gpOworICAgIGxldCBmeSA9IE1hdGguc3FydCgyKSAqICht
dXkgKyBtdnkgKyBtd3kpOworCisgICAgbGV0IHJob1ggPSBmeDsKKyAgICBsZXQgcmhvWSA9IGZ5
OworICAgIGxldCByaG9NYXggPSBNYXRoLm1heChyaG9YLCByaG9ZKTsKKyAgICBsZXQgcmhvTWlu
ID0gTWF0aC5taW4ocmhvWCwgcmhvWSk7CisKKyAgICBsZXQgbWF4QW5pc28gPSBNYXRoLm1pbihz
YW1wbGVyTWF4QW5pc290cm9weSwgZGV2aWNlTWF4QW5pc290cm9weSk7CisKKyAgICBsZXQgZXRh
OworICAgIGlmIChyaG9NYXggPT0gMCAmJiByaG9NaW4gPT0gMCkKKyAgICAgICAgZXRhID0gMTsK
KyAgICBlbHNlIGlmIChyaG9NaW4gPT0gMCkKKyAgICAgICAgZXRhID0gbWF4QW5pc287CisgICAg
ZWxzZQorICAgICAgICBldGEgPSBNYXRoLm1pbihyaG9NYXggLyByaG9NaW4sIG1heEFuaXNvKTsK
KworICAgIGxldCBOID0gTWF0aC5jZWlsKGV0YSk7CisgICAgcmV0dXJuIFtyaG9NYXgsIHJob01p
biwgZXRhLCBOXTsKK30KKworZnVuY3Rpb24gbGV2ZWxPZkRldGFpbE9wZXJhdGlvbihkZXZpY2VN
YXhTYW1wbGVyTG9kQmlhcywgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwgbG9kTWluRnJvbUZ1bmN0
aW9uT3BlcmFuZCwgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIHNhbXBsZXJCaWFzLCBzYW1wbGVy
TG9kTWluLCBzYW1wbGVyTG9hZE1heCwgcmhvTWF4LCBldGEpCit7CisgICAgLy8gVnVsa2FuIDEu
MS44MyBzZWN0aW9uIDE1LjYuNworICAgIGlmIChiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCA9PSB1
bmRlZmluZWQpCisgICAgICAgIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kID0gMDsKKworICAgIGxl
dCBsYW1iZGFCYXNlID0gbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCAhPSB1bmRlZmluZWQgPyBsb2RG
cm9tRnVuY3Rpb25PcGVyYW5kIDogTWF0aC5sb2cyKHJob01heCAvIGV0YSk7CisgICAgbGV0IGxh
bWJkYVByaW1lID0gbGFtYmRhQmFzZSArIE1hdGgubWluKE1hdGgubWF4KHNhbXBsZXJCaWFzICsg
Ymlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIC1kZXZpY2VNYXhTYW1wbGVyTG9kQmlhcyksIGRldmlj
ZU1heFNhbXBsZXJMb2RCaWFzKTsKKyAgICBsZXQgbG9kTWluID0gTWF0aC5tYXgoc2FtcGxlckxv
ZE1pbiwgbG9kTWluRnJvbUZ1bmN0aW9uT3BlcmFuZCk7CisgICAgbGV0IGxvZE1heCA9IHNhbXBs
ZXJMb2FkTWF4OworICAgIGxldCBsYW1iZGE7CisgICAgaWYgKGxhbWJkYVByaW1lID4gbG9kTWF4
KQorICAgICAgICBsYW1iZGEgPSBsb2RNYXg7CisgICAgZWxzZSBpZiAobG9kTWluIDw9IGxhbWJk
YVByaW1lICYmIGxhbWJkYVByaW1lIDw9IGxvZE1heCkKKyAgICAgICAgbGFtYmRhID0gbGFtYmRh
UHJpbWU7CisgICAgZWxzZSBpZiAobGFtYmRhUHJpbWUgPCBsb2RNaW4pCisgICAgICAgIGxhbWJk
YSA9IGxvZE1pbjsKKyAgICBlbHNlCisgICAgICAgIHRocm93IG5ldyBFcnJvcigibG9kTWluID49
IGxvZE1heCIpOworICAgIHJldHVybiBsYW1iZGE7Cit9CisKK2Z1bmN0aW9uIGltYWdlTGV2ZWxT
ZWxlY3Rpb24oYmFzZU1pcExldmVsLCBsZXZlbENvdW50LCBtaXBtYXBNb2RlLCBsYW1iZGEpCit7
CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuNworICAgIGZ1bmN0aW9uIG5lYXJl
c3QoZFByaW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE1hdGguY2VpbChkUHJpbWUgKyAwLjUp
IC0gMTsKKyAgICB9CisKKyAgICBsZXQgcSA9IGxldmVsQ291bnQgLSAxOworICAgIGxldCBkUHJp
bWUgPSBiYXNlTWlwTGV2ZWwgKyBNYXRoLm1pbihNYXRoLm1heChsYW1iZGEsIDApLCBxKTsKKyAg
ICBsZXQgZGw7CisgICAgaWYgKG1pcG1hcE1vZGUgPT0gIm5lYXJlc3QiKQorICAgICAgICBkbCA9
IG5lYXJlc3QoZFByaW1lKTsKKyAgICBlbHNlCisgICAgICAgIGRsID0gZFByaW1lOworICAgIGlm
IChtaXBtYXBNb2RlID09ICJuZWFyZXN0IikKKyAgICAgICAgcmV0dXJuIGRsOworICAgIGVsc2Ug
eworICAgICAgICBsZXQgZEhpID0gTWF0aC5mbG9vcihkbCk7CisgICAgICAgIGxldCBkTG93ID0g
TWF0aC5taW4oZEhpICsgMSwgcSk7CisgICAgICAgIGxldCBkZWx0YSA9IGRsIC0gZEhpOworICAg
ICAgICByZXR1cm4gW2RIaSwgZExvdywgZGVsdGFdOworICAgIH0KK30KKworZnVuY3Rpb24gc3Ry
cWFUb1VWV0FUcmFuc2Zvcm1hdGlvbihzLCB0LCByLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCkKK3sK
KyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi44CisgICAgbGV0IHUgPSBzICogd2lk
dGg7CisgICAgbGV0IHYgPSB0ICogaGVpZ2h0OworICAgIGxldCB3ID0gciAqIGRlcHRoOworICAg
IHJldHVybiBbdSwgdiwgd107Cit9CisKK2Z1bmN0aW9uIHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRp
b25BbmRBcnJheUxheWVyU2VsZWN0aW9uKGxheWVyQ291bnQsIGJhc2VBcnJheUxheWVyLCBmaWx0
ZXIsIHUsIHYsIHcsIGEsIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUspCit7CisgICAgLy8gVnVsa2Fu
IDEuMS44MyBzZWN0aW9uIDE1LjcuMQorCisgICAgaWYgKGRlbHRhSSA9PSB1bmRlZmluZWQpCisg
ICAgICAgIGRlbHRhSSA9IDA7CisgICAgaWYgKGRlbHRhSiA9PSB1bmRlZmluZWQpCisgICAgICAg
IGRlbHRhSiA9IDA7CisgICAgaWYgKGRlbHRhSyA9PSB1bmRlZmluZWQpCisgICAgICAgIGRlbHRh
SyA9IDA7CisKKyAgICBmdW5jdGlvbiBybmUoYSkKKyAgICB7CisgICAgICAgIHJldHVybiBNYXRo
LmZsb29yKGEgKyAwLjUpOworICAgIH0KKyAgICBsZXQgbCA9IE1hdGgubWluKE1hdGgubWF4KHJu
ZShhKSwgMCksIGxheWVyQ291bnQgLSAxKSArIGJhc2VBcnJheUxheWVyOworICAgIGxldCBpOwor
ICAgIGxldCBqOworICAgIGxldCBrOworICAgIGlmIChmaWx0ZXIgPT0gIm5lYXJlc3QiKSB7Cisg
ICAgICAgIGkgPSBNYXRoLmZsb29yKHUpOworICAgICAgICBqID0gTWF0aC5mbG9vcih2KTsKKyAg
ICAgICAgayA9IE1hdGguZmxvb3Iodyk7CisgICAgICAgIAorICAgICAgICBpICs9IGRlbHRhSTsK
KyAgICAgICAgaiArPSBkZWx0YUo7CisgICAgICAgIGsgKz0gZGVsdGFLOworICAgICAgICAKKyAg
ICAgICAgcmV0dXJuIFtpLCBqLCBrLCBsXTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoZmls
dGVyICE9ICJsaW5lYXIiKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGZp
bHRlciIpOworICAgICAgICBsZXQgaTAgPSBNYXRoLmZsb29yKHUgLSAwLjUpOworICAgICAgICBs
ZXQgaTEgPSBpMCArIDE7CisgICAgICAgIGxldCBqMCA9IE1hdGguZmxvb3IodiAtIDAuNSk7Cisg
ICAgICAgIGxldCBqMSA9IGowICsgMTsKKyAgICAgICAgbGV0IGswID0gTWF0aC5mbG9vcih3IC0g
MC41KTsKKyAgICAgICAgbGV0IGsxID0gazAgKyAxOworICAgICAgICBsZXQgYWxwaGEgPSAodSAt
IDAuNSkgLSBpMDsKKyAgICAgICAgbGV0IGJldGEgPSAodiAtIDAuNSkgLSBqMDsKKyAgICAgICAg
bGV0IGdhbW1hID0gKHcgLSAwLjUpIC0gazA7CisgICAgICAgIAorICAgICAgICBpMCArPSBkZWx0
YUk7CisgICAgICAgIGkxICs9IGRlbHRhSTsKKyAgICAgICAgajAgKz0gZGVsdGFKOworICAgICAg
ICBqMSArPSBkZWx0YUo7CisgICAgICAgIGswICs9IGRlbHRhSzsKKyAgICAgICAgazEgKz0gZGVs
dGFLOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIFtpMCwgaTEsIGowLCBqMSwgazAsIGsxLCBs
LCBhbHBoYSwgYmV0YSwgZ2FtbWFdOworICAgIH0KK30KKworZnVuY3Rpb24gaW50ZWdlclRleGVs
Q29vcmRpbmF0ZU9wZXJhdGlvbnMoYmFzZU1pcExldmVsLCBsZXZlbENvdW50LCBsZXZlbEJhc2Us
IGxvZEZyb21GdW5jdGlvbk9wZXJhbmQpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9u
IDE1LjgKKyAgICBsZXQgZCA9IGxldmVsQmFzZSArIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQ7Cisg
ICAgaWYgKGQgPCBiYXNlTWlwTGV2ZWwgfHwgZCA+PSBiYXNlTWlwTGV2ZWwgKyBsZXZlbENvdW50
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNlbGVjdGVkIGxldmVsIGRvZXMgbm90IGxpZSBp
bnNpZGUgdGhlIGltYWdlIik7CisgICAgcmV0dXJuIGQ7Cit9CisKK2Z1bmN0aW9uIHdyYXBwaW5n
T3BlcmF0aW9uKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBhZGRyZXNzTW9kZVUsIGFkZHJlc3NNb2Rl
ViwgYWRkcmVzc01vZGVXLCBpLCBqLCBrKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlv
biAxNS45LjEKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGN1YmUgbWFwIGhhbmRsaW5nCisgICAg
ZnVuY3Rpb24gdHJhbnNmb3JtKGFkZHJlc3NNb2RlLCBzaXplLCBpKQorICAgIHsKKyAgICAgICAg
ZnVuY3Rpb24gbWlycm9yKG4pIHsKKyAgICAgICAgICAgIGlmIChuID49IDApCisgICAgICAgICAg
ICAgICAgcmV0dXJuIG47CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJu
IC0oMSArIG4pOworICAgICAgICB9CisgICAgICAgIHN3aXRjaCAoYWRkcmVzc01vZGUpIHsKKyAg
ICAgICAgICAgIGNhc2UgImNsYW1wVG9FZGdlIjoKKyAgICAgICAgICAgICAgICByZXR1cm4gTWF0
aC5taW4oTWF0aC5tYXgoaSwgMCksIHNpemUgLSAxKTsKKyAgICAgICAgICAgIGNhc2UgInJlcGVh
dCI6CisgICAgICAgICAgICAgICAgcmV0dXJuIGkgJSBzaXplOworICAgICAgICAgICAgY2FzZSAi
bWlycm9yUmVwZWF0IjoKKyAgICAgICAgICAgICAgICByZXR1cm4gKHNpemUgLSAxKSAtIG1pcnJv
cigoaSAlICgyICogc2l6ZSkpIC0gc2l6ZSk7CisgICAgICAgICAgICBjYXNlICJjbGFtcFRvQm9y
ZGVyQ29sb3IiOgorICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1heChpLCAt
MSksIHNpemUpOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIlVua25vd24gYWRkcmVzcyBtb2RlIik7CisgICAgICAgIH0KKyAgICB9CisgICAg
cmV0dXJuIFt0cmFuc2Zvcm0oYWRkcmVzc01vZGVVLCB3aWR0aCwgaSksIHRyYW5zZm9ybShhZGRy
ZXNzTW9kZVYsIGhlaWdodCwgaiksIHRyYW5zZm9ybShhZGRyZXNzTW9kZVcsIGRlcHRoLCBrKV07
Cit9CisKK2Z1bmN0aW9uIHRleGVsR2F0aGVyaW5nKCkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgz
IHNlY3Rpb24gMTUuOS4yCisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzCisgICAgLypsZXQg
dGF1UiA9IDsKKyAgICBsZXQgdGF1RyA9IDsKKyAgICBsZXQgdGF1QiA9IDsKKyAgICBsZXQgdGF1
QSA9IDsqLworfQorCitmdW5jdGlvbiB0ZXhlbEZpbHRlcmluZygKKyAgICBkZXZpY2VNYXhBbmlz
b3Ryb3B5LAorICAgIGRldmljZU1heFNhbXBsZXJMb2RCaWFzLAorICAgIGJhc2VNaXBMZXZlbCwK
KyAgICBiYXNlQXJyYXlMYXllciwKKyAgICB0ZXh0dXJlLAorICAgIHNhbXBsZXIsCisgICAgc2Ft
cGxlckJpYXMsCisgICAgcywgdCwgciwgYSwKKyAgICBkZWx0YUksIGRlbHRhSiwgZGVsdGFLLAor
ICAgIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgbG9kTWluRnJvbUZ1bmN0aW9uT3BlcmFu
ZCwKKyAgICBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwKKyAgICBkZHgsIGRkeSkKK3sKKyAgICAv
LyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOS4zCisKKyAgICAvLyBUaGUgc3BlYyB1c2VzIGRp
ZmZlcmVudCBuYW1lcyB0aGFuIFdlYkdQVSBkb2VzLgorICAgIGxldCBhZGRyZXNzTW9kZVUgPSBz
YW1wbGVyLnJBZGRyZXNzTW9kZTsKKyAgICBsZXQgYWRkcmVzc01vZGVWID0gc2FtcGxlci5zQWRk
cmVzc01vZGU7CisgICAgbGV0IGFkZHJlc3NNb2RlVyA9IHNhbXBsZXIudEFkZHJlc3NNb2RlOwor
CisgICAgLy8gRklYTUU6IE1ha2UgdGhpcyB3b3JrIHdpdGggY3ViZW1hcHMKKyAgICBsZXQgcGFy
dGlhbFNXaXRoUmVzcGVjdFRvWCA9IDA7CisgICAgbGV0IHBhcnRpYWxUV2l0aFJlc3BlY3RUb1gg
PSAwOworICAgIGxldCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9YID0gMDsKKyAgICBpZiAoZGR4ICE9
IHVuZGVmaW5lZCkgeworICAgICAgICBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9YID0gZGR4WzBdOwor
ICAgICAgICBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YID0gZGR4WzFdOworICAgICAgICBwYXJ0aWFs
UldpdGhSZXNwZWN0VG9YID0gZGR4WzJdOworICAgIH0KKyAgICBsZXQgcGFydGlhbFNXaXRoUmVz
cGVjdFRvWSA9IDA7CisgICAgbGV0IHBhcnRpYWxUV2l0aFJlc3BlY3RUb1kgPSAwOworICAgIGxl
dCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9ZID0gMDsKKyAgICBpZiAoZGR5ICE9IHVuZGVmaW5lZCkg
eworICAgICAgICBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9ZID0gZGR5WzBdOworICAgICAgICBwYXJ0
aWFsVFdpdGhSZXNwZWN0VG9ZID0gZGR5WzFdOworICAgICAgICBwYXJ0aWFsUldpdGhSZXNwZWN0
VG9ZID0gZGR5WzJdOworICAgIH0KKyAgICBsZXQgW3Job01heCwgcmhvTWluLCBldGEsIE5dID0g
c2NhbGVGYWN0b3JPcGVyYXRpb24oZGV2aWNlTWF4QW5pc290cm9weSwgdGV4dHVyZS53aWR0aCwg
dGV4dHVyZS5oZWlnaHQsIHRleHR1cmUuZGVwdGgsIHNhbXBsZXIubWF4QW5pc290cm9weSwgcGFy
dGlhbFNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJXaXRo
UmVzcGVjdFRvWCwgcGFydGlhbFNXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRXaXRoUmVzcGVjdFRv
WSwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWSk7CisgICAgbGV0IGxhbWJkYSA9IGxldmVsT2ZEZXRh
aWxPcGVyYXRpb24oZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMsIGxvZEZyb21GdW5jdGlvbk9wZXJh
bmQsIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQsIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLCBz
YW1wbGVyQmlhcywgc2FtcGxlci5sb2RNaW5DbGFtcCwgc2FtcGxlci5sb2RNYXhDbGFtcCwgcmhv
TWF4LCBldGEpOworCisgICAgbGV0IGZpbHRlcjsKKyAgICBpZiAobGFtYmRhIDw9IDApCisgICAg
ICAgIGZpbHRlciA9IHNhbXBsZXIubWFnRmlsdGVyOworICAgIGVsc2UKKyAgICAgICAgZmlsdGVy
ID0gc2FtcGxlci5taW5GaWx0ZXI7CisKKyAgICBmdW5jdGlvbiBjb21wdXRlVGF1KGxldmVsKQor
ICAgIHsKKyAgICAgICAgZnVuY3Rpb24gcmVkdWNlKC4uLnZhbHVlcykKKyAgICAgICAgeworICAg
ICAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggJSAyICE9IDApCisgICAgICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJEb24ndCBoYXZlIGEgd2VpZ2h0IGNvcnJlc3BvbmRpbmcgdG8gZWFjaCB2
YWx1ZSIpOworICAgICAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggPCAyKQorICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiRG9uJ3QgaGF2ZSBlbm91Z2ggdGhpbmdzIHRvIGNhbGN1bGF0
ZSBhbiBhdmVyYWdlIik7CisgICAgICAgICAgICBsZXQgc3VtOworICAgICAgICAgICAgaWYgKHZh
bHVlc1sxXSBpbnN0YW5jZW9mIEFycmF5KSB7CisgICAgICAgICAgICAgICAgc3VtID0gW107Cisg
ICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXNbMV0ubGVuZ3RoOyArK2kp
CisgICAgICAgICAgICAgICAgICAgIHN1bS5wdXNoKDApOworICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgc3VtID0gMDsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
dmFsdWVzLmxlbmd0aCAvIDI7ICsraSkgeworICAgICAgICAgICAgICAgIGxldCB3ZWlnaHQgPSB2
YWx1ZXNbMiAqIGldOworICAgICAgICAgICAgICAgIGxldCBjb2xvciA9IHZhbHVlc1syICogaSAr
IDFdOworICAgICAgICAgICAgICAgIGlmIChjb2xvciBpbnN0YW5jZW9mIEFycmF5KSB7CisgICAg
ICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sb3IubGVuZ3RoOyArK2kpCisg
ICAgICAgICAgICAgICAgICAgICAgICBzdW1baV0gKz0gd2VpZ2h0ICogY29sb3JbaV07CisgICAg
ICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIHN1bSArPSB3ZWlnaHQgKiBj
b2xvcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBzdW07CisgICAgICAgIH0K
KworICAgICAgICBmdW5jdGlvbiBhY2Nlc3NDb2xvcih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbCwg
aSwgaiwgaykKKyAgICAgICAgeworICAgICAgICAgICAgZnVuY3Rpb24gc2hvdWxkQmVCb3JkZXIo
dmFsdWUsIG1heCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgPCAt
MSB8fCB2YWx1ZSA+IG1heCkKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJP
dXQtb2YtYm91bmRzIHRleHR1cmUgcmVhZCIpOworICAgICAgICAgICAgICAgIHJldHVybiB2YWx1
ZSA9PSAtMSB8fCB2YWx1ZSA9PSBtYXg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxl
dCBbd3JhcHBlZEksIHdyYXBwZWRKLCB3cmFwcGVkS10gPSB3cmFwcGluZ09wZXJhdGlvbih3aWR0
aCwgaGVpZ2h0LCBkZXB0aCwgYWRkcmVzc01vZGVVLCBhZGRyZXNzTW9kZVYsIGFkZHJlc3NNb2Rl
VywgaSwgaiwgaykKKyAgICAgICAgICAgIGlmIChzaG91bGRCZUJvcmRlcih3cmFwcGVkSSwgd2lk
dGgpIHx8IHNob3VsZEJlQm9yZGVyKHdyYXBwZWRKLCBoZWlnaHQpIHx8IHNob3VsZEJlQm9yZGVy
KHdyYXBwZWRLLCBkZXB0aCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHNhbXBsZXIuY2FsY3Vs
YXRlQm9yZGVyQ29sb3IodGV4dHVyZS5pbm5lclR5cGUpOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIHJldHVybiB0ZXh0dXJlLmVsZW1lbnQobCwgbGV2ZWwsIHdyYXBwZWRLLCB3
cmFwcGVkSiwgd3JhcHBlZEkpOworICAgICAgICB9CisKKyAgICAgICAgbGV0IFt1LCB2LCB3XSA9
IHN0cnFhVG9VVldBVHJhbnNmb3JtYXRpb24ocywgdCwgciwgdGV4dHVyZS53aWR0aEF0TGV2ZWwo
bGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZl
bChsZXZlbCkpOworICAgICAgICBpZiAoZmlsdGVyID09ICJuZWFyZXN0IikgeworICAgICAgICAg
ICAgbGV0IFtpLCBqLCBrLCBsXSA9IHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25BbmRBcnJheUxh
eWVyU2VsZWN0aW9uKHRleHR1cmUubGF5ZXJDb3VudCwgYmFzZUFycmF5TGF5ZXIsIGZpbHRlciwg
dSwgdiwgdywgYSwgZGVsdGFJLCBkZWx0YUosIGRlbHRhSyk7CisgICAgICAgICAgICByZXR1cm4g
YWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0
TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGksIGosIGspOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGZpbHRlciAhPSAibGluZWFyIikKKyAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZmlsdGVyIik7CisgICAgICAg
ICAgICBsZXQgW2kwLCBpMSwgajAsIGoxLCBrMCwgazEsIGwsIGFscGhhLCBiZXRhLCBnYW1tYV0g
PSB1dndhVG9JSktMTlRyYW5zZm9ybWF0aW9uQW5kQXJyYXlMYXllclNlbGVjdGlvbih0ZXh0dXJl
LmxheWVyQ291bnQsIGJhc2VBcnJheUxheWVyLCBmaWx0ZXIsIHUsIHYsIHcsIGEsIGRlbHRhSSwg
ZGVsdGFKLCBkZWx0YUspOworICAgICAgICAgICAgbGV0IGNvbG9yMDAwID0gYWNjZXNzQ29sb3Io
dGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwp
LCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGkwLCBqMCwgazApOworICAgICAgICAg
ICAgbGV0IGNvbG9yMTAwID0gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwp
LCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZl
bCksIGwsIGkxLCBqMCwgazApOworICAgICAgICAgICAgbGV0IGNvbG9yMDEwID0gYWNjZXNzQ29s
b3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2
ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGkwLCBqMSwgazApOworICAgICAg
ICAgICAgbGV0IGNvbG9yMTEwID0gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2
ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChs
ZXZlbCksIGwsIGkxLCBqMSwgazApOworICAgICAgICAgICAgbGV0IGNvbG9yMDAxID0gYWNjZXNz
Q29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwo
bGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGkwLCBqMCwgazEpOworICAg
ICAgICAgICAgbGV0IGNvbG9yMTAxID0gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwo
bGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZl
bChsZXZlbCksIGwsIGkxLCBqMCwgazEpOworICAgICAgICAgICAgbGV0IGNvbG9yMDExID0gYWNj
ZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2
ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGkwLCBqMSwgazEpOwor
ICAgICAgICAgICAgbGV0IGNvbG9yMTExID0gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2
ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRM
ZXZlbChsZXZlbCksIGwsIGkxLCBqMSwgazEpOworICAgICAgICAgICAgc3dpdGNoICh0ZXh0dXJl
LmRpbWVuc2lvbikgeworICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAg
ICAgbGV0IGNvbG9yMCA9IGNvbG9yMDExOworICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3Ix
ID0gY29sb3IxMTE7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWR1Y2UoMSAtIGFscGhh
LCBjb2xvcjAsIGFscGhhLCBjb2xvcjEpOworICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAg
ICAgICAgICAgICAgICAgbGV0IGNvbG9yMDAgPSBjb2xvcjAwMTsKKyAgICAgICAgICAgICAgICAg
ICAgbGV0IGNvbG9yMTAgPSBjb2xvcjEwMTsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9y
MDEgPSBjb2xvcjAxMTsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMTEgPSBjb2xvcjEx
MTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZHVjZSgoMSAtIGFscGhhKSAqICgxIC0g
YmV0YSksIGNvbG9yMDAsIGFscGhhICogKDEgLSBiZXRhKSwgY29sb3IxMCwgKDEgLSBhbHBoYSkg
KiBiZXRhLCBjb2xvcjAxLCBhbHBoYSAqIGJldGEsIGNvbG9yMTEpOworICAgICAgICAgICAgICAg
IGNhc2UgMzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZHVjZSgKKyAgICAgICAgICAg
ICAgICAgICAgICAgICgxIC0gYWxwaGEpICogKDEgLSBiZXRhKSAqICgxIC0gZ2FtbWEpLCBjb2xv
cjAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFscGhhICogKDEgLSBiZXRhKSAqICgxIC0g
Z2FtbWEpLCBjb2xvcjEwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICgxIC0gYWxwaGEpICog
YmV0YSAqICgxIC0gZ2FtbWEpLCBjb2xvcjAxMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFs
cGhhICogYmV0YSAqICgxIC0gZ2FtbWEpLCBjb2xvcjExMCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICgxIC0gYWxwaGEpICogKDEgLSBiZXRhKSAqIGdhbW1hLCBjb2xvcjAwMSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGFscGhhICogKDEgLSBiZXRhKSAqIGdhbW1hLCBjb2xvcjEwMSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICgxIC0gYWxwaGEpICogYmV0YSAqIGdhbW1hLCBjb2xvcjAx
MSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFscGhhICogYmV0YSAqIGdhbW1hLCBjb2xvcjEx
MSk7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJVbmtub3duIGRpbWVuc2lvbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgfQorCisgICAgaWYgKHNhbXBsZXIubWlwRmlsdGVyID09ICJuZWFyZXN0IikgeworICAg
ICAgICBsZXQgaW1hZ2VMZXZlbCA9IGltYWdlTGV2ZWxTZWxlY3Rpb24oYmFzZU1pcExldmVsLCB0
ZXh0dXJlLmxldmVsQ291bnQsIHNhbXBsZXIubWlwRmlsdGVyLCBsYW1iZGEpOworICAgICAgICBy
ZXR1cm4gY29tcHV0ZVRhdShpbWFnZUxldmVsKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAo
c2FtcGxlci5taXBGaWx0ZXIgIT0gImxpbmVhciIpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIlVua25vd24gZmlsdGVyIik7CisgICAgICAgIGxldCBbZEhpLCBkTG93LCBkZWx0YV0gPSBp
bWFnZUxldmVsU2VsZWN0aW9uKGJhc2VNaXBMZXZlbCwgdGV4dHVyZS5sZXZlbENvdW50LCBzYW1w
bGVyLm1pcEZpbHRlciwgbGFtYmRhKTsKKyAgICAgICAgcmV0dXJuIHJlZHVjZSgxIC0gZGVsdGEs
IGNvbXB1dGVUYXUoZEhpKSwgZGVsdGEsIGNvbXB1dGVUYXUoZExvKSk7CisgICAgfQorfQorCitm
dW5jdGlvbiBzYW1wbGVUZXh0dXJlKHRleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZWx0YSwg
Ymlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIGRkeCwgZGR5LCBsb2RGcm9tRnVuY3Rpb25PcGVyYW5k
LCBkcmVmKQoreworICAgIGxldCBzID0gbG9jYXRpb25bMF07CisgICAgbGV0IHQgPSBsb2NhdGlv
blsxXTsKKyAgICBsZXQgciA9IGxvY2F0aW9uWzJdOworICAgIGxldCBxID0gbG9jYXRpb25bM107
CisgICAgbGV0IGEgPSBsb2NhdGlvbls0XTsKKworICAgIGxldCBkZWx0YUkgPSB1bmRlZmluZWQ7
CisgICAgbGV0IGRlbHRhSiA9IHVuZGVmaW5lZDsKKyAgICBsZXQgZGVsdGFLID0gdW5kZWZpbmVk
OworICAgIGlmIChkZWx0YSAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgZGVsdGFJID0gZGVsdGFb
MF07CisgICAgICAgIGRlbHRhSiA9IGRlbHRhWzFdOworICAgICAgICBkZWx0YUsgPSBkZWx0YVsy
XTsKKyAgICB9CisKKyAgICBbcywgdCwgciwgZHJlZl0gPSBwcm9qZWN0aW9uT3BlcmF0aW9uKHMs
IHQsIHIsIGRyZWYsIHEpOworICAgIGxldCByZXN1bHQgPSB0ZXhlbEZpbHRlcmluZygKKyAgICAg
ICAgTnVtYmVyLk1BWF9WQUxVRSwKKyAgICAgICAgTnVtYmVyLk1BWF9WQUxVRSwKKyAgICAgICAg
MCwKKyAgICAgICAgMCwKKyAgICAgICAgdGV4dHVyZSwKKyAgICAgICAgc2FtcGxlciwKKyAgICAg
ICAgMCwKKyAgICAgICAgcywgdCwgciwgYSwKKyAgICAgICAgZGVsdGFJLCBkZWx0YUosIGRlbHRh
SywKKyAgICAgICAgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwKKyAgICAgICAgLU51bWJlci5NQVhf
VkFMVUUsCisgICAgICAgIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgICAgICBkZHgsIGRk
eSk7CisgICAgaWYgKGRyZWYgIT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGlmIChyZXN1bHQgaW5z
dGFuY2VvZiBBcnJheSkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRGVwdGggY29tcGFy
aXNvbiBub3Qgc3VwcG9ydGVkIG9uIG11bHRpY2hhbm5lbCB0ZXh0dXJlcyIpOworICAgICAgICBy
ZXN1bHQgPSBkZXB0aENvbXBhcmVPcGVyYXRpb24oZHJlZiwgcmVzdWx0LCBzYW1wbGVyLmNvbXBh
cmVGdW5jdGlvbik7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7CisgICAgLy8gRklYTUU6IEZp
Z3VyZSBvdXQgd2hhdCB0byBkbyB3aXRoIGFuaXNvdHJvcHkKKyAgICAvLyBGSVhNRTogRmlndXJl
IG91dCBob3cgdG8gZG8gbXVsdGlzYW1wbGluZy4KKyAgICAvLyBGSVhNRTogQ2FzdCB0aGUgcmVz
dWx0IGJhY2sgdG8gdGhlIGNvcnJlY3QgdHlwZS4KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9pbmRleC5odG1sCmluZGV4IDY1YTg2NDExYjNlNzcwYjU1N2I0MWFjYzdlNDE0ZGVmNDI0
MDMwMTMuLjQzYmU3YWNlMmNiMzc4YTViODFlZWFjNmFhZjFhMjlkZjgxYmJjMzYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKKysrIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbApAQCAtMTE1LDYgKzExNSw3IEBACiA8
c2NyaXB0IHNyYz0iUmV0dXJuLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZXR1cm5DaGVj
a2VyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZXR1cm5FeGNlcHRpb24uanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IlNhbXBsZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN0
YW5kYXJkTGlicmFyeS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3RhdGVtZW50Q2xvbmVy
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIj48L3Nj
cmlwdD4KQEAgLTEyNyw2ICsxMjgsOCBAQAogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVDb3B5Q29u
c3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZURl
ZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUZXJu
YXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVE
ZWYuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3Jp
cHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348723</attachid>
            <date>2018-09-01 18:13:32 -0700</date>
            <delta_ts>2018-09-01 19:35:59 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188940-20180901181331.patch</filename>
            <type>text/plain</type>
            <size>224365</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTc5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2Q4OThkNDE0Y2U2OGY4MWEyM2UzYmQyMTU2Zjc1ZDNl
MjMwZTkzOC4uMTBkZjgxMTUzMDMyZWM5NDI0MmNmMTZiZGMxZGY4NDdjZTRhMTRkMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
OSBAQAorMjAxOC0wOC0zMSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRleHR1cmUgdHlwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNp
Y3MuanM6CisgICAgICAgIChJbnRyaW5zaWNzLik6CisgICAgICAgIChJbnRyaW5zaWNzLmNoZWNr
RmFsc2UpOgorICAgICAgICAoSW50cmluc2ljcy5ib3hWZWN0b3IpOgorICAgICAgICAoSW50cmlu
c2ljcy51bmJveFZlY3Rvcik6CisgICAgICAgIChJbnRyaW5zaWNzKToKKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qczoKKyAgICAgICAgKGxldC5zdGFuZGFyZExpYnJh
cnkpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAobWFrZVNhbXBs
ZXIpOgorICAgICAgICAobWFrZTFEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMURUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMkRUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTNEVGV4dHVyZSk6CisgICAgICAgIChtYWtlVGV4dHVyZUN1YmUp
OgorICAgICAgICAobWFrZVJXMURUZXh0dXJlKToKKyAgICAgICAgKG1ha2VSVzFEVGV4dHVyZUFy
cmF5KToKKyAgICAgICAgKG1ha2VSVzJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlUlcyRFRleHR1
cmVBcnJheSk6CisgICAgICAgIChtYWtlUlczRFRleHR1cmUpOgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1RleHR1cmUuanM6IEFkZGVkLgorICAgICAgICAoVGV4dHVyZSk6Cisg
ICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQgZGltZW5zaW9uKToKKyAgICAgICAgKFRleHR1
cmUucHJvdG90eXBlLmdldCB3aWR0aCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aGVpZ2h0KToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkZXB0aCk6CisgICAgICAg
IChUZXh0dXJlLnByb3RvdHlwZS5nZXQgbGV2ZWxDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnBy
b3RvdHlwZS5nZXQgbGF5ZXJDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aW5uZXJUeXBlKToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkYXRhKToKKyAgICAg
ICAgKFRleHR1cmUucHJvdG90eXBlLmVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUu
cHJvdG90eXBlLnNldEVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUxRCk6CisgICAg
ICAgIChUZXh0dXJlMUQucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJl
MUQucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlw
ZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlwZS5lbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUxRC5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0
dXJlMURBcnJheSk6CisgICAgICAgIChUZXh0dXJlMURBcnJheS5wcm90b3R5cGUud2lkdGhBdExl
dmVsKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToK
KyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTFEQXJyYXkucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTFE
QXJyYXkucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEKToKKyAgICAg
ICAgKFRleHR1cmUyRC5wcm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUy
RC5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBl
LmRlcHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBlLmVsZW1lbnQpOgor
ICAgICAgICAoVGV4dHVyZTJELnByb3RvdHlwZS5zZXRFbGVtZW50KToKKyAgICAgICAgKFRleHR1
cmUyREFycmF5KToKKyAgICAgICAgKFRleHR1cmUyREFycmF5LnByb3RvdHlwZS53aWR0aEF0TGV2
ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgor
ICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMkRBcnJheS5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMkRB
cnJheS5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlM0QpOgorICAgICAg
ICAoVGV4dHVyZTNELnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTNE
LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUuZWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0QucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVy
ZUN1YmUpOgorICAgICAgICAoVGV4dHVyZUN1YmUucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6Cisg
ICAgICAgIChUZXh0dXJlQ3ViZS5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlQ3ViZS5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmVDdWJl
LnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmVDdWJlLnByb3RvdHlwZS5zZXRF
bGVtZW50KToKKyAgICAgICAgKFRleHR1cmUxRFJXKToKKyAgICAgICAgKFRleHR1cmUxRFJXLnBy
b3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmhl
aWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmRlcHRoQXRMZXZl
bCk6CisgICAgICAgIChUZXh0dXJlMURSVy5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChU
ZXh0dXJlMURSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMURBcnJh
eVJXKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6
CisgICAgICAgIChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAg
ICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUx
REFycmF5UlcucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEUlcpOgor
ICAgICAgICAoVGV4dHVyZTJEUlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlMkRSVy5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkRS
Vy5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlw
ZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlwZS5zZXRFbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUyREFycmF5UlcpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5w
cm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90
eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90eXBlLmVsZW1l
bnQpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0RSVyk6CisgICAgICAgIChUZXh0dXJlM0RSVy5wcm90b3R5cGUud2lk
dGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVs
KToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTNEUlcucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTNEUlcu
cHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1RleHR1cmVPcGVyYXRpb25zLmpzOiBBZGRlZC4KKyAgICAgICAgKGRlcHRoQ29tcGFyZU9wZXJh
dGlvbik6CisgICAgICAgIChjb252ZXJzaW9uVG9SR0JBKToKKyAgICAgICAgKHByb2plY3Rpb25P
cGVyYXRpb24pOgorICAgICAgICAoY3ViZU1hcEZhY2VTZWxlY3Rpb24pOgorICAgICAgICAoY3Vi
ZU1hcENvb3JkaW5hdGVUcmFuc2Zvcm1hdGlvbik6CisgICAgICAgIChjdWJlTWFwRGVyaXZhdGl2
ZVRyYW5zZm9ybWF0aW9uKToKKyAgICAgICAgKHNjYWxlRmFjdG9yT3BlcmF0aW9uKToKKyAgICAg
ICAgKGxldmVsT2ZEZXRhaWxPcGVyYXRpb24pOgorICAgICAgICAobmVhcmVzdCk6CisgICAgICAg
IChpbWFnZUxldmVsU2VsZWN0aW9uKToKKyAgICAgICAgKHN0cnFhVG9VVldBVHJhbnNmb3JtYXRp
b24pOgorICAgICAgICAocm5lKToKKyAgICAgICAgKHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25B
bmRBcnJheUxheWVyU2VsZWN0aW9uKToKKyAgICAgICAgKGludGVnZXJUZXhlbENvb3JkaW5hdGVP
cGVyYXRpb25zKToKKyAgICAgICAgKG1pcnJvcik6CisgICAgICAgICh0cmFuc2Zvcm0pOgorICAg
ICAgICAod3JhcHBpbmdPcGVyYXRpb24pOgorICAgICAgICAodGV4ZWxHYXRoZXJpbmcpOgorICAg
ICAgICAoY29tcHV0ZVRhdS5yZWR1Y2UpOgorICAgICAgICAoY29tcHV0ZVRhdS5zaG91bGRCZUJv
cmRlcik6CisgICAgICAgIChjb21wdXRlVGF1LmFjY2Vzc0NvbG9yKToKKyAgICAgICAgKGNvbXB1
dGVUYXUpOgorICAgICAgICAodGV4ZWxGaWx0ZXJpbmcpOgorICAgICAgICAoc2FtcGxlVGV4dHVy
ZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAx
OC0wOC0zMSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgYWRkIGFuIGFsdGVybmF0ZSBlbWFpbCBmb3IgQWRpdHlhIEtlZXJ0aGkuCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKaW5kZXggOWMyYTM3MTUwYzFlOTc2YjkyNmNm
YmVlMjM0Mzc1MjBhOGRlNGE0Ny4uZGJjNjU3ODllNmEzMjRhZDcyZjJiMGUzYTBjYzc2MmY3ZjUy
NGRjNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCisr
KyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwpAQCAtMTM4LDYgKzEzOCw3
IEBAIGxvYWQoIlJlc29sdmVUeXBlRGVmcy5qcyIpOwogbG9hZCgiUmV0dXJuLmpzIik7CiBsb2Fk
KCJSZXR1cm5DaGVja2VyLmpzIik7CiBsb2FkKCJSZXR1cm5FeGNlcHRpb24uanMiKTsKK2xvYWQo
IlNhbXBsZXIuanMiKTsKIGxvYWQoIlN0YW5kYXJkTGlicmFyeS5qcyIpOwogbG9hZCgiU3RhdGVt
ZW50Q2xvbmVyLmpzIik7CiBsb2FkKCJTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIik7CkBAIC0xNTAs
NiArMTUxLDggQEAgbG9hZCgiU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyIpOwogbG9hZCgi
U3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIik7CiBsb2FkKCJTeW50aGVzaXpl
RGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiKTsKIGxvYWQoIlRlcm5hcnlFeHByZXNzaW9u
LmpzIik7Citsb2FkKCJUZXh0dXJlLmpzIik7Citsb2FkKCJUZXh0dXJlT3BlcmF0aW9ucy5qcyIp
OwogbG9hZCgiVHJhcFN0YXRlbWVudC5qcyIpOwogbG9hZCgiVHlwZURlZi5qcyIpOwogbG9hZCgi
VHlwZURlZlJlc29sdmVyLmpzIik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9JbnRyaW5zaWNzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50
cmluc2ljcy5qcwppbmRleCBiMDA0MDY3ZjVlYmZiM2E4YjRiZDk4ZTQzN2E4YzA3NjhiZTI2ZjFl
Li5iZTc4NDAwNDM0ZTM3ZTM5MTczOWY1NWJmNzY0ZjRlYWFmY2JjMjM1IDEwMDY0NAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMKQEAgLTMzMCw3ICszMzAsOCBAQCBj
bGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiBzYW1wbGVyIiwK
ICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAgICAgICAgICAgIHRoaXMuc2FtcGxlciA9IHR5
cGU7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBwdXQgaGVy
ZS4KKyAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgIHR5cGUu
cG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zm
c2V0LCB7fSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICBmb3IgKGxldCB0ZXh0dXJlVHlw
ZSBvZiBbIlRleHR1cmUxRCIsICJSV1RleHR1cmUxRCIsICJUZXh0dXJlMURBcnJheSIsICJSV1Rl
eHR1cmUxREFycmF5IiwgIlRleHR1cmUyRCIsICJSV1RleHR1cmUyRCIsICJUZXh0dXJlMkRBcnJh
eSIsICJSV1RleHR1cmUyREFycmF5IiwgIlRleHR1cmUzRCIsICJSV1RleHR1cmUzRCIsICJUZXh0
dXJlQ3ViZSJdKSB7CkBAIC0zMzksMTIgKzM0MCwxNiBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlwZUFy
Z3VtZW50fT5gLAogICAgICAgICAgICAgICAgICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAg
ICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gXSA9IHR5cGU7
CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAg
ICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4g
YnVmZmVyLnNldChvZmZzZXQsIHt9KTsKICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAg
ICAgICAgICAgZm9yIChsZXQgaSA9IDI7IGkgPD0gNDsgKytpKSB7CiAgICAgICAgICAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVk
ZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9JHtpfT5gLAogICAgICAgICAgICAgICAg
ICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0
ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9JHtpfT5gXSA9IHR5cGU7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIu
c2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQpAQCAtMzU2LDYgKzM2MSw4IEBAIGNsYXNzIEludHJpbnNp
Y3MgewogICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08
JHt0eXBlQXJndW1lbnR9PmAsCiAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAg
ICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmBd
ID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAg
ICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zm
c2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAgICAgICAgICB9KTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtOTE0LDYgKzkyMSw3NDIgQEAgY2xhc3MgSW50
cmluc2ljcyB7CiAKICAgICAgICAgZm9yIChsZXQgc2V0dGVyIG9mIEJ1aWx0aW5NYXRyaXhTZXR0
ZXIuZnVuY3Rpb25zKCkpCiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KHNldHRlci50b1N0cmlu
ZygpLCBmdW5jID0+IHNldHRlci5pbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsKKwor
ICAgICAgICBmdW5jdGlvbiBjaGVja1VuZGVmaW5lZChvcmlnaW4sIGV4cGxhbmF0aW9uLCB2YWx1
ZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkKKyAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBv
dXQgb2YgYm91bmRzIik7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKwor
ICAgICAgICBmdW5jdGlvbiBjaGVja0ZhbHNlKG9yaWdpbiwgZXhwbGFuYXRpb24sIHZhbHVlKQor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAodmFsdWUgPT0gZmFsc2UpCisgICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltTdG9yZV0iLCAiVGV4dHVyZSBzdG9yZSBvdXQgb2Yg
Ym91bmRzIik7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBib3hWZWN0b3IoYSkKKyAg
ICAgICAgeworICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBBcnJheSkgeworICAgICAgICAg
ICAgICAgIGxldCByZXN1bHQgPSBuZXcgRVB0cihuZXcgRUJ1ZmZlcihhLmxlbmd0aCksIDApOwor
ICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkKKyAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0LnNldChpLCBhW2ldKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIEVQ
dHIuYm94KGEpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdW5ib3hWZWN0b3IoYSwg
bGVuZ3RoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAobGVuZ3RoICE9ICIiKSB7CisgICAg
ICAgICAgICAgICAgbGVuZ3RoID0gTnVtYmVyLnBhcnNlSW50KGxlbmd0aCk7CisgICAgICAgICAg
ICAgICAgbGV0IHJlc3VsdCA9IFtdOworICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBp
IDwgbGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGEuZ2V0KGkp
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGEubG9hZFZhbHVlKCk7CisgICAgICAgIH0KKworICAgICAg
ICBmb3IgKGxldCB0eXBlIG9mIFsidWNoYXIiLCAidXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJz
aG9ydCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICBmb3IgKHZhciBs
ZW5ndGhWYXJpYWJsZSBvZiBbYGAsIGAyYCwgYDNgLCBgNGBdKSB7CisgICAgICAgICAgICAgICAg
bGV0IGxlbmd0aCA9IGxlbmd0aFZhcmlhYmxlOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUo
VGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0
aW9uLmxvYWRWYWx1ZSgpLCAwLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0
aH0gU2FtcGxlKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0IGxvY2F0
aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24ubG9hZFZhbHVlKCksIDAsIDAsIDEsIDBd
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5s
b2FkVmFsdWUoKSwgMCwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRl
eHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRl
eHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hl
Y2tlZCgwLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IExvYWQoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LGludDIgbG9jYXRpb24s
aW50IG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxv
Y2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91
bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQo
MSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5sb2FkVmFsdWUoKSkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdl
dERpbWVuc2lvbnMoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWlu
dCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBudW1iZXJPZkxl
dmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5s
b2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBs
ZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQg
Pj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93
IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0
YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
d2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJ
RCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIs
ZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIDAsIDAsIDEsIGxvY2F0aW9uLmdldCgx
KV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVU
ZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9u
QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMURBcnJheTwk
e3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQgb2Zmc2V0KWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
b2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5
ID0gW2xvY2F0aW9uLmdldCgwKSwgMCwgMCwgMSwgbG9jYXRpb24uZ2V0KDEpXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQubG9hZFZhbHVlKCks
IDAsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2Ft
cGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMURBcnJh
eTwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUg
cmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChs
b2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgbG9jYXRpb24uZ2V0KDApKSkp
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9Pixp
bnQzIGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24g
KFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJl
YWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9j
YXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSArIG9m
ZnNldC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEQXJyYXk8JHt0
eXBlfSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhy
ZWFkIEVsZW1lbnRzLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBlbGVtZW50cywgbnVt
YmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRl
eHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElE
ID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBu
b25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2
ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRl
eHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1
ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRp
b24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVs
dGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5s
b2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJh
eSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+
LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1
ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIs
ZmxvYXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9j
YXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQo
MSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2Ft
cGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQo
VGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0
MiBERFgsZmxvYXQyIEREWSlgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0
KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkg
PSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkp
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlR3JhZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4s
c2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwg
MSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5n
ZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBk
ZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEp
LCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBs
ZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRp
b25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkQ8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
bG9kXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5s
b2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVm
aW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEPCR7dHlwZX0ke2xl
bmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IExPRCxpbnQyIG9mZnNldClgLAor
ICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24s
IGxvZCwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlv
bkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDAp
LCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ym94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIo
VGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJl
ZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwK
KyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyR3JlZW4oVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3Ro
fT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0k
e2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJE
PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVu
Z3RofT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
b3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJv
dW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0
KDIpLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IExvYWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LGludDMgbG9jYXRpb24saW50MiBv
ZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlv
biwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIs
IHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDIpLCAw
LCBsb2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQuZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZz
ZXQuZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3Ro
fT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1
aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBudW1iZXJPZkxldmVsc10pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2Fk
VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4Lmxl
dmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJh
cEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBs
ZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0Lmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHRBdExldmVsKG1pcElEKSksIDEp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9t
KEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMkRB
cnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24u
Z2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1
cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5n
dGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBv
ZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94
VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFs
dWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJp
YXMoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24sZmxvYXQgQmlhcylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9h
ZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgYmlhcy5sb2FkVmFsdWUoKSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3Ro
fSBTYW1wbGVCaWFzKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwg
b2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIGJpYXMubG9hZFZhbHVlKCksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0g
U2FtcGxlR3JhZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBERFkpYCwKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeV0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQo
MCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwg
MF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQo
MCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
b3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRW
YWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRk
eUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlR3Jh
ZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bixmbG9hdDIgRERYLGZsb2F0MiBERFksaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeSwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBk
ZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkg
PSBbZGR5LmdldCgwKSwgZGR5LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJl
KHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXks
IGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEQXJyYXk8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9k
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVy
ZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxvZC5sb2FkVmFs
dWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkRB
cnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0Qs
aW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uLCBsb2QsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVs
dGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgp
LCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVu
Z3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0
dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQy
IG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEQXJyYXk8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00
IEdhdGhlclJlZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVl
bihUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVu
Z3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRB
cnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNl
dClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkRBcnJheTwke3R5
cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2Fk
KFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGludDQgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9h
ZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVs
ZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIpLCAwLCBsb2NhdGlv
bi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVy
ZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4saW50NCBsb2NhdGlvbixpbnQyIG9mZnNldClgLAor
ICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1Vu
ZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5s
b2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMyksIGxvY2F0aW9uLmdldCgy
KSwgMCwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApICsg
b2Zmc2V0LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTJEQXJyYXk8JHt0eXBl
fSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFk
IEhlaWdodCx1aW50KiB0aHJlYWQgRWxlbWVudHMsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxz
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lk
dGgsIGhlaWdodCwgZWxlbWVudHMsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3VudCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXREaW1l
bnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUi
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lndp
ZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVt
ZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBT
YW1wbGUoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9
IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUzRDwke3R5cGV9
JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNl
dF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFts
b2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0
KDApLCBvZmZzZXQuZ2V0KDEpLCBvZmZzZXQuZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUo
KSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IExvYWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LGludDQgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZp
bmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRW
YWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIp
LCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExv
YWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LGludDQgbG9jYXRpb24saW50MyBvZmZzZXQp
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hl
Y2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1
cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDMpLCBsb2NhdGlv
bi5nZXQoMikgKyBvZmZzZXQuZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQuZ2V0KDEp
LCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZzZXQuZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhU
ZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lk
dGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRGVwdGgsdWludCogdGhyZWFkIE51
bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBt
aXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3Vu
dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Io
IltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9m
IHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aC5sb2FkVmFsdWUo
KS5jb3B5RnJvbShFUHRyLmJveCh0ZXguZGVwdGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXguaGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVs
KG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxz
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgY3ViZW1hcCBzYW1wbGluZworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxl
QmlhcyhUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBGSVhNRTogSW1wbGVtZW50IGN1YmVtYXAgc2FtcGxpbmcKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBs
ZUdyYWQoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24sZmxvYXQzIEREWCxmbG9hdDMgRERZKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBjdWJlbWFwIHNhbXBsaW5nCisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2RdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBjdWJlbWFwIHNhbXBsaW5nCisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVu
Z3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVu
KFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJl
Q3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9p
ZCBHZXREaW1lbnNpb25zKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2
ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIE51
bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBt
aXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sYXllckNvdW50ICE9IDYpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ3ViZSB0ZXh0dXJlIGRv
ZXNuJ3QgaGF2ZSA2IGZhY2VzIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1p
cElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25l
eGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZl
bChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJX
VGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQqIHRocmVhZCBXaWR0aClgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGhdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4dHVy
ZS5sb2FkVmFsdWUoKS53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUxRDwk
e3R5cGV9JHtsZW5ndGh9PixmbG9hdCogdGhyZWFkIFdpZHRoKWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXh0dXJlLmxvYWRWYWx1
ZSgpLndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVyZTFEPCR7dHlwZX0k
e2xlbmd0aH0+LGludCBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9m
IGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgMCwgMCwgMCwg
bG9jYXRpb24ubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUxRDwke3R5cGV9JHts
ZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0dXJlIHdyaXRlIG91
dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKDAsIDAs
IDAsIDAsIGxvY2F0aW9uLmxvYWRWYWx1ZSgpLCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkp
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKwor
ICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+
LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBlbGVtZW50c10pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
ZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0
RGltZW5zaW9ucyhSV1RleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGZsb2F0KiB0aHJl
YWQgV2lkdGgsdWludCogdGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxh
eWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExv
YWQoUldUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQyIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgi
W0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUo
KS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMSksIDAsIDAsIDAsIGxvY2F0aW9uLmdldCgw
KSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sJHt0eXBl
fSR7bGVuZ3RofSx1aW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGVja0ZhbHNlKCJbU3RvcmVdIiwgIlRleHR1cmUgd3JpdGUgb3V0IG9mIGJvdW5kcyIs
IHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDEpLCAw
LCAwLCAwLCBsb2NhdGlvbi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVlLCBsZW5ndGgpKSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
dm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQqIHRo
cmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVy
ZTJEPCR7dHlwZX0ke2xlbmd0aH0+LGZsb2F0KiB0aHJlYWQgV2lkdGgsZmxvYXQqIHRocmVhZCBI
ZWlnaHQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBo
ZWlnaHRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUu
bG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgp
LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4s
aW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIs
IHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgMCwgMCwgbG9jYXRpb24uZ2V0
KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUyRDwke3R5cGV9JHts
ZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBv
dXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tlZCgwLCAw
LCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0b3IodmFsdWUs
IGxlbmd0aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9
JHtsZW5ndGh9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0
aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2
b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixmbG9h
dCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0LGZsb2F0KiB0aHJlYWQgRWxlbWVu
dHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWln
aHQsIGVsZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0
ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRz
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIu
Ym94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IExvYWQoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9u
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVm
aW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2Fk
VmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMiksIDAsIDAsIGxvY2F0aW9uLmdl
dCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMkRBcnJheTwke3R5
cGV9JHtsZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQzIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3
cml0ZSBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tl
ZChsb2NhdGlvbi5nZXQoMiksIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDAp
LCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1Rl
eHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFk
IEhlaWdodCx1aW50KiB0aHJlYWQgRGVwdGgpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGRlcHRoXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRlcHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5kZXB0
aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5j
b3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
dm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LGZsb2F0KiB0
aHJlYWQgV2lkdGgsZmxvYXQqIHRocmVhZCBIZWlnaHQsZmxvYXQqIHRocmVhZCBEZXB0aClgLAor
ICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZGVw
dGhdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9h
ZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGgubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4LmRlcHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAx
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJv
bShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoUldUZXh0dXJl
M0Q8JHt0eXBlfSR7bGVuZ3RofT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJl
IHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQo
MCwgMCwgbG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0
aH0sdWludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hl
Y2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0dXJlIHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJl
LmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKDAsIDAsIGxvY2F0aW9uLmdldCgyKSwgbG9j
YXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVlLCBsZW5ndGgp
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQogCiAgICAgYWRkKHRoaW5nKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbCBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKaW5kZXggNzhkMDA4ZjgzNWY5ZTljMjM0
ZWYyZGY2ZDZkZWVhM2Y3NDI2Y2U2NS4uMmVhMWQ5NGUwZmNhNWM3M2QzOGJiZWI2YTgzNzU0MGYz
MGJhYTI0OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYu
aHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCkBAIC0x
MjEsNiArMTIxLDcgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJSZXR1cm4uanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJSZXR1cm5DaGVja2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iUmV0dXJuRXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
U2FtcGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlN0YW5kYXJkTGlicmFyeS5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlN0YXRlbWVudENsb25lci5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IlN0cnVjdExheW91dEJ1aWxkZXIuanMiPjwvc2NyaXB0PgpA
QCAtMTMzLDYgKzEzNCw4IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlD
b25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3ludGhl
c2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iVGVybmFyeUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJU
ZXh0dXJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUcmFwU3RhdGVtZW50LmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TYW1wbGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU2FtcGxlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZTc3MTNkZmM4MWY4M2M1ODQ3MzYyMTIxNzU2
NGYzOTU3MmIxNGI4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU2FtcGxlci5qcwpAQCAtMCwwICsxLDE2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisidXNlIHN0cmljdCI7CisKK2NsYXNzIFNhbXBsZXIgewor
ICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpCisgICAgeworICAgICAgICBpZiAob3B0aW9ucy5yQWRk
cmVzc01vZGUgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fckFkZHJlc3NNb2RlID0g
ImNsYW1wVG9FZGdlIjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fckFkZHJlc3NN
b2RlID0gb3B0aW9ucy5yQWRkcmVzc01vZGU7CisgICAgICAgIGlmIChvcHRpb25zLnNBZGRyZXNz
TW9kZSA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9zQWRkcmVzc01vZGUgPSAiY2xh
bXBUb0VkZ2UiOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9zQWRkcmVzc01vZGUg
PSBvcHRpb25zLnNBZGRyZXNzTW9kZTsKKyAgICAgICAgaWYgKG9wdGlvbnMudEFkZHJlc3NNb2Rl
ID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX3RBZGRyZXNzTW9kZSA9ICJjbGFtcFRv
RWRnZSI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX3RBZGRyZXNzTW9kZSA9IG9w
dGlvbnMudEFkZHJlc3NNb2RlOworICAgICAgICBpZiAob3B0aW9ucy5taW5GaWx0ZXIgPT0gdW5k
ZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fbWluRmlsdGVyID0gIm5lYXJlc3QiOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICB0aGlzLl9taW5GaWx0ZXIgPSBvcHRpb25zLm1pbkZpbHRlcjsK
KyAgICAgICAgaWYgKG9wdGlvbnMubWFnRmlsdGVyID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAg
IHRoaXMuX21hZ0ZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
dGhpcy5fbWFnRmlsdGVyID0gb3B0aW9ucy5tYWdGaWx0ZXI7CisgICAgICAgIGlmIChvcHRpb25z
Lm1pcG1hcEZpbHRlciA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9taXBtYXBGaWx0
ZXIgPSAibmVhcmVzdCI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX21pcG1hcEZp
bHRlciA9IG9wdGlvbnMubWlwbWFwRmlsdGVyOworICAgICAgICBpZiAob3B0aW9ucy5sb2RNaW5D
bGFtcCA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9sb2RNaW5DbGFtcCA9IC1OdW1i
ZXIuTUFYX1ZBTFVFOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9sb2RNaW5DbGFt
cCA9IG9wdGlvbnMubG9kTWluQ2xhbXA7CisgICAgICAgIGlmIChvcHRpb25zLmxvZE1heENsYW1w
ID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX2xvZE1heENsYW1wID0gTnVtYmVyLk1B
WF9WQUxVRTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fbG9kTWF4Q2xhbXAgPSBv
cHRpb25zLmxvZE1heENsYW1wOworICAgICAgICBpZiAob3B0aW9ucy5tYXhBbmlzb3Ryb3B5ID09
IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX21heEFuaXNvdHJvcHkgPSAxOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICB0aGlzLl9tYXhBbmlzb3Ryb3B5ID0gb3B0aW9ucy5tYXhBbmlz
b3Ryb3B5OworICAgICAgICBpZiAob3B0aW9ucy5jb21wYXJlRnVuY3Rpb24gPT0gdW5kZWZpbmVk
KQorICAgICAgICAgICAgdGhpcy5fY29tcGFyZUZ1bmN0aW9uID0gIm5ldmVyIjsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgdGhpcy5fY29tcGFyZUZ1bmN0aW9uID0gb3B0aW9ucy5jb21wYXJl
RnVuY3Rpb247CisgICAgICAgIGlmIChvcHRpb25zLmJvcmRlckNvbG9yID09IHVuZGVmaW5lZCkK
KyAgICAgICAgICAgIHRoaXMuX2JvcmRlckNvbG9yID0gInRyYW5zcGFyZW50QmxhY2siOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9ib3JkZXJDb2xvciA9IG9wdGlvbnMuYm9yZGVy
Q29sb3I7CisgICAgfQorICAgIAorICAgIGdldCByQWRkcmVzc01vZGUoKSB7IHJldHVybiB0aGlz
Ll9yQWRkcmVzc01vZGU7IH0KKyAgICBnZXQgc0FkZHJlc3NNb2RlKCkgeyByZXR1cm4gdGhpcy5f
c0FkZHJlc3NNb2RlOyB9CisgICAgZ2V0IHRBZGRyZXNzTW9kZSgpIHsgcmV0dXJuIHRoaXMuX3RB
ZGRyZXNzTW9kZTsgfQorICAgIGdldCBtaW5GaWx0ZXIoKSB7IHJldHVybiB0aGlzLl9taW5GaWx0
ZXI7IH0KKyAgICBnZXQgbWFnRmlsdGVyKCkgeyByZXR1cm4gdGhpcy5fbWFnRmlsdGVyOyB9Cisg
ICAgZ2V0IG1pcG1hcEZpbHRlcigpIHsgcmV0dXJuIHRoaXMuX21pcG1hcEZpbHRlcjsgfQorICAg
IGdldCBsb2RNaW5DbGFtcCgpIHsgcmV0dXJuIHRoaXMuX2xvZE1pbkNsYW1wOyB9CisgICAgZ2V0
IGxvZE1heENsYW1wKCkgeyByZXR1cm4gdGhpcy5fbG9kTWF4Q2xhbXA7IH0KKyAgICBnZXQgbWF4
QW5pc290cm9weSgpIHsgcmV0dXJuIHRoaXMuX21heEFuaXNvdHJvcHk7IH0KKyAgICBnZXQgY29t
cGFyZUZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpcy5fY29tcGFyZUZ1bmN0aW9uOyB9CisgICAgZ2V0
IGJvcmRlckNvbG9yKCkgeyByZXR1cm4gdGhpcy5fYm9yZGVyQ29sb3I7IH0KKworICAgIGNhbGN1
bGF0ZUJvcmRlckNvbG9yKGlubmVyVHlwZSkKKyAgICB7CisgICAgICAgIC8vIFZ1bGthbiAxLjEu
ODMgc2VjdGlvbiAxNS4zLjMKKyAgICAgICAgZnVuY3Rpb24gY29tcHV0ZVZhbHVlcygpIHsKKyAg
ICAgICAgICAgIHN3aXRjaCAoaW5uZXJUeXBlKSB7CisgICAgICAgICAgICAgICAgY2FzZSAidWNo
YXIiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9w
YXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMHhGRn07CisgICAgICAgICAgICAgICAgY2FzZSAi
dXNob3J0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAw
LCBvcGFxdWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDB4RkZGRn07CisgICAgICAgICAgICAgICAg
Y2FzZSAidWludCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFj
azogMCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdoaXRlOiAweEZGRkZGRkZGfTsKKyAgICAgICAg
ICAgICAgICBjYXNlICJjaGFyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3Bh
cmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDB4N0Z9OworICAgICAg
ICAgICAgICAgIGNhc2UgInNob3J0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFu
c3BhcmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDB4N0ZGRn07Cisg
ICAgICAgICAgICAgICAgY2FzZSAiaW50IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0
cmFuc3BhcmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDB4N0ZGRkZG
RkZ9OworICAgICAgICAgICAgICAgIGNhc2UgImhhbGYiOgorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTog
MX07CisgICAgICAgICAgICAgICAgY2FzZSAiZmxvYXQiOgorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTog
MX07CisgICAgICAgICAgICAgICAgY2FzZSAidWNoYXIyIjoKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9w
YXF1ZVdoaXRlOiBbMHhGRiwgMHhGRl19OworICAgICAgICAgICAgICAgIGNhc2UgInVzaG9ydDIi
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwg
b3BhcXVlQmxhY2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsweEZGRkYsIDB4RkZGRl19OworICAg
ICAgICAgICAgICAgIGNhc2UgInVpbnQyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0
cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRl
OiBbMHhGRkZGRkZGRiwgMHhGRkZGRkZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgImNoYXIy
IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0s
IG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHg3RiwgMHg3Rl19OworICAgICAg
ICAgICAgICAgIGNhc2UgInNob3J0MiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJh
bnNwYXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTog
WzB4N0ZGRiwgMHg3RkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAiaW50MiI6CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFj
azogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4N0ZGRkZGRkYsIDB4N0ZGRkZGRkZdfTsKKyAgICAg
ICAgICAgICAgICBjYXNlICJoYWxmMiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJh
bnNwYXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTog
WzEsIDFdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJmbG9hdDIiOgorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAw
XSwgb3BhcXVlV2hpdGU6IFsxLCAxXX07CisgICAgICAgICAgICAgICAgY2FzZSAidWNoYXIzIjoK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0s
IG9wYXF1ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHhGRiwgMHhGRiwgMHhGRl19
OworICAgICAgICAgICAgICAgIGNhc2UgInVzaG9ydDMiOgorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAw
XSwgb3BhcXVlV2hpdGU6IFsweEZGRkYsIDB4RkZGRiwgMHhGRkZGXX07CisgICAgICAgICAgICAg
ICAgY2FzZSAidWludDMiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50
QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsw
eEZGRkZGRkZGLCAweEZGRkZGRkZGLCAweEZGRkZGRkZGXX07CisgICAgICAgICAgICAgICAgY2Fz
ZSAiY2hhcjMiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6
IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsweDdGLCAw
eDdGLCAweDdGXX07CisgICAgICAgICAgICAgICAgY2FzZSAic2hvcnQzIjoKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNr
OiBbMCwgMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHg3RkZGLCAweDdGRkYsIDB4N0ZGRl19OworICAg
ICAgICAgICAgICAgIGNhc2UgImludDMiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3Ry
YW5zcGFyZW50QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVl
V2hpdGU6IFsweDdGRkZGRkZGLCAweDdGRkZGRkZGLCAweDdGRkZGRkZGXX07CisgICAgICAgICAg
ICAgICAgY2FzZSAiaGFsZjMiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFy
ZW50QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6
IFsxLCAxLCAxXX07CisgICAgICAgICAgICAgICAgY2FzZSAiZmxvYXQzIjoKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNr
OiBbMCwgMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMSwgMSwgMV19OworICAgICAgICAgICAgICAgIGNh
c2UgInVjaGFyNCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFj
azogWzAsIDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDAsIDB4RkZdLCBvcGFxdWVXaGl0
ZTogWzB4RkYsIDB4RkYsIDB4RkYsIDB4RkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1c2hv
cnQ0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwg
MCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMHhGRkZGXSwgb3BhcXVlV2hpdGU6IFsw
eEZGRkYsIDB4RkZGRiwgMHhGRkZGLCAweEZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1
aW50NCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAs
IDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDAsIDB4RkZGRkZGRkZdLCBvcGFxdWVXaGl0
ZTogWzB4RkZGRkZGRkYsIDB4RkZGRkZGRkYsIDB4RkZGRkZGRkYsIDB4RkZGRkZGRkZdfTsKKyAg
ICAgICAgICAgICAgICBjYXNlICJjaGFyNCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7
dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDAsIDB4
N0ZdLCBvcGFxdWVXaGl0ZTogWzB4N0YsIDB4N0YsIDB4N0YsIDB4N0ZdfTsKKyAgICAgICAgICAg
ICAgICBjYXNlICJzaG9ydDQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFy
ZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAweDdGRkZdLCBv
cGFxdWVXaGl0ZTogWzB4N0ZGRiwgMHg3RkZGLCAweDdGRkYsIDB4N0ZGRl19OworICAgICAgICAg
ICAgICAgIGNhc2UgImludDQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFy
ZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAweDdGRkZGRkZG
XSwgb3BhcXVlV2hpdGU6IFsweDdGRkZGRkZGLCAweDdGRkZGRkZGLCAweDdGRkZGRkZGLCAweDdG
RkZGRkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAiaGFsZjQiOgorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6
IFswLCAwLCAwLCAxXSwgb3BhcXVlV2hpdGU6IFsxLCAxLCAxLCAxXX07CisgICAgICAgICAgICAg
ICAgY2FzZSAiZmxvYXQ0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVu
dEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMV0sIG9wYXF1ZVdo
aXRlOiBbMSwgMSwgMSwgMV19OworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biB0ZXh0dXJlIGlubmVyIHR5cGUiKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY29tcHV0ZVZhbHVlcygp
W3RoaXMuYm9yZGVyQ29sb3JdOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcwppbmRleCAzZGQ0ZmVlMTg2MDBkNWNkMmE4OTVh
ZDVhNDc5NzIxZGE3Nzg4Y2MxLi5kYmE5OWIxZWY5YjM0ZmZiMTk5YzY0OGU0MzdmOGU5NDY0MGY2
NTExIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExp
YnJhcnkuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJy
YXJ5LmpzCkBAIC01Nyw3ICs1Nyw3IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24o
KSB7CiAgICAgICAgIH0KICAgICAgICAgcHJpbnQoYG5hdGl2ZSB0eXBlZGVmIHNhbXBsZXI7YCk7
CiAgICAgICAgIGZvciAodmFyIHR5cGUgb2YgW2BUZXh0dXJlMURgLCBgUldUZXh0dXJlMURgLCBg
VGV4dHVyZTFEQXJyYXlgLCBgUldUZXh0dXJlMURBcnJheWAsIGBUZXh0dXJlMkRgLCBgUldUZXh0
dXJlMkRgLCBgVGV4dHVyZTJEQXJyYXlgLCBgUldUZXh0dXJlMkRBcnJheWAsIGBUZXh0dXJlM0Rg
LCBgUldUZXh0dXJlM0RgLCBgVGV4dHVyZUN1YmVgXSkgewotICAgICAgICAgICAgZm9yICh2YXIg
dHlwZUFyZ3VtZW50QmFzZSBvZiBbYGJvb2xgLCBgdWNoYXJgLCBgdXNob3J0YCwgYHVpbnRgLCBg
Y2hhcmAsIGBzaG9ydGAsIGBpbnRgLCBgaGFsZmAsIGBmbG9hdGBdKSB7CisgICAgICAgICAgICBm
b3IgKHZhciB0eXBlQXJndW1lbnRCYXNlIG9mIFtgdWNoYXJgLCBgdXNob3J0YCwgYHVpbnRgLCBg
Y2hhcmAsIGBzaG9ydGAsIGBpbnRgLCBgaGFsZmAsIGBmbG9hdGBdKSB7CiAgICAgICAgICAgICAg
ICAgZm9yICh2YXIgc2l6ZSBvZiBbYGAsIGAyYCwgYDNgLCBgNGBdKSB7CiAgICAgICAgICAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgdHlwZWRlZiAke3R5cGV9PCR7dHlwZUFyZ3VtZW50QmFzZX0k
e3NpemV9PjtgKTsKICAgICAgICAgICAgICAgICB9CkBAIC0xODk3LDcgKzE4OTcsOCBAQCBsZXQg
c3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSB2b2lkIEludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlKHRocmVhZCBhdG9taWNfJHt0eXBlfSos
ICR7dHlwZX0sICR7dHlwZX0sIHRocmVhZCAke3R5cGV9Kik7YCk7CiAgICAgICAgIH0KICAgICAg
ICAgcHJpbnQoKTsKLSAgICAgICAgCisgICAgICAgICovCisKICAgICAgICAgZm9yICh2YXIgdHlw
ZSBvZiBbYHVjaGFyYCwgYHVzaG9ydGAsIGB1aW50YCwgYGNoYXJgLCBgc2hvcnRgLCBgaW50YCwg
YGhhbGZgLCBgZmxvYXRgXSkgewogICAgICAgICAgICAgZm9yICh2YXIgbGVuZ3RoIG9mIFtgYCwg
YDJgLCBgM2AsIGA0YF0pIHsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxv
YXQgbG9jYXRpb24pO2ApOwpAQCAtMTk1OCwxNiArMTk1OSw2IEBAIGxldCBzdGFuZGFyZExpYnJh
cnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUzRDwke3R5
cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUzRDwke3R5
cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7
Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTNE
PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUzRDwke3R5cGV9
JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7Ci0g
ICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTNE
PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUzRDwke3R5
cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7
Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0
dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0g
ICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJl
M0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MyBvZmZz
ZXQpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1
ZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7
YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRl
eHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQz
IG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJBbHBoYShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2Nh
dGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJB
bHBoYShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlv
biwgaW50MyBvZmZzZXQpO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSR7bGVuZ3RofSBMb2FkKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PiwgaW50NCBsb2NhdGlv
bik7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExv
YWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBpbnQ0IGxvY2F0aW9uLCBpbnQzIG9mZnNl
dCk7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMo
VGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCog
V2lkdGgsIHRocmVhZCB1aW50KiBIZWlnaHQsIHRocmVhZCB1aW50KiBEZXB0aCwgdGhyZWFkIHVp
bnQqIE51bWJlck9mTGV2ZWxzKTtgKTsKQEAgLTIwMTAsNyArMjAwMSw4IEBAIGxldCBzdGFuZGFy
ZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgcHJpbnQoKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQotICAgICAgICAKKworICAgICAgICAvKgogICAgICAgICBmb3Ig
KHZhciB0eXBlIG9mIFtgaGFsZmAsIGBmbG9hdGBdKSB7CiAgICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9h
dDIgbG9jYXRpb24pO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQy
IG9mZnNldCk7YCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9U
ZXN0Lmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKaW5kZXgg
NjA3YTY5NTMyNTNkYTcyN2IxZGUzNzY3OGVjMzg4YjRmYTI0MDQwNS4uNWQzMjhjNzZjZjM0NDA2
MDhmYjNjYTkwZjBlYjAwMzAyZWI3YzM3YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvVGVzdC5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1Rlc3QuaHRtbApAQCAtMTE1LDYgKzExNSw3IEBACiA8c2NyaXB0IHNyYz0iUmV0dXJuLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZXR1cm5DaGVja2VyLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJSZXR1cm5FeGNlcHRpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlNhbXBs
ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN0YW5kYXJkTGlicmFyeS5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iU3RhdGVtZW50Q2xvbmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIj48L3NjcmlwdD4KQEAgLTEyNyw2ICsxMjgsOCBA
QAogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9y
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4
dHVyZU9wZXJhdGlvbnMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CkBAIC0xNTIsNyArMTU1LDcgQEAK
IDxzY3JpcHQ+CiBmdW5jdGlvbiBkb1Rlc3RJbkJyb3dzZXIoKQogewotICAgIHZhciB0ZXN0ZXIg
PSBkb1Rlc3QoLy4qLyk7CisgICAgdmFyIHRlc3RlciA9IGRvVGVzdCgvdGV4dHVyZVNhbXBsZS8p
OwogICAgIHZhciBsYXN0VGltZTsKICAgICBmdW5jdGlvbiBuZXh0KCkKICAgICB7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwppbmRleCA0YTExYzE4NTg1OTk3NzhmZjM5MWIwNGYy
NjM1YzViNzEwMDVkZjdmLi40ZjNiNGRlMWE5ZDMyYzZjMTZiZWVhMmM3N2FiNjQ0NTQ0NWUwOTk1
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCisrKyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKQEAgLTk0LDYgKzk0LDEwOCBA
QCBmdW5jdGlvbiBtYWtlRW51bShwcm9ncmFtLCBlbnVtTmFtZSwgdmFsdWUpCiAgICAgcmV0dXJu
IFR5cGVkVmFsdWUuYm94KGVudW1UeXBlLCBlbnVtTWVtYmVyLnZhbHVlLnVuaWZ5Tm9kZS52YWx1
ZUZvclNlbGVjdGVkVHlwZSk7CiB9CiAKK2Z1bmN0aW9uIG1ha2VTYW1wbGVyKHByb2dyYW0sIG9w
dGlvbnMpCit7CisgICAgLy8gZW51bSBXZWJHUFVBZGRyZXNzTW9kZSB7CisgICAgLy8gICAgICJj
bGFtcFRvRWRnZSIsCisgICAgLy8gICAgICJyZXBlYXQiLAorICAgIC8vICAgICAibWlycm9yUmVw
ZWF0IiwKKyAgICAvLyAgICAgImNsYW1wVG9Cb3JkZXJDb2xvciIKKyAgICAvLyB9CisgICAgLy8K
KyAgICAvLyBlbnVtIFdlYkdQVUZpbHRlck1vZGUgeworICAgIC8vICAgICAibmVhcmVzdCIsCisg
ICAgLy8gICAgICJsaW5lYXIiCisgICAgLy8gfQorICAgIC8vCisgICAgLy8gZW51bSBXZWJHUFVD
b21wYXJlRnVuY3Rpb24geworICAgIC8vICAgICAibmV2ZXIiLAorICAgIC8vICAgICAibGVzcyIs
CisgICAgLy8gICAgICJlcXVhbCIsCisgICAgLy8gICAgICJsZXNzRXF1YWwiLAorICAgIC8vICAg
ICAiZ3JlYXRlciIsCisgICAgLy8gICAgICJub3RFcXVhbCIsCisgICAgLy8gICAgICJncmVhdGVy
RXF1YWwiLAorICAgIC8vICAgICAiYWx3YXlzIgorICAgIC8vIH0KKyAgICAvLworICAgIC8vIGVu
dW0gV2ViR1BVQm9yZGVyQ29sb3IgeworICAgIC8vICAgICAidHJhbnNwYXJlbnRCbGFjayIsCisg
ICAgLy8gICAgICJvcGFxdWVCbGFjayIsCisgICAgLy8gICAgICJvcGFxdWVXaGl0ZSIKKyAgICAv
LyB9CisgICAgLy8KKyAgICAvLyBkaWN0aW9uYXJ5IFdlYkdQVVNhbXBsZXJEZXNjcmlwdG9yIHsK
KyAgICAvLyAgICAgV2ViR1BVZGRyZXNzTW9kZSByQWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2Ui
OworICAgIC8vICAgICBXZWJHUFVkZHJlc3NNb2RlIHNBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRn
ZSI7CisgICAgLy8gICAgIFdlYkdQVWRkcmVzc01vZGUgdEFkZHJlc3NNb2RlID0gImNsYW1wVG9F
ZGdlIjsKKyAgICAvLyAgICAgV2ViR1BVRmlsdGVyTW9kZUVudW0gbWFnRmlsdGVyID0gIm5lYXJl
c3QiOworICAgIC8vICAgICBXZWJHUFVGaWx0ZXJNb2RlRW51bSBtaW5GaWx0ZXIgPSAibmVhcmVz
dCI7CisgICAgLy8gICAgIFdlYkdQVUZpbHRlck1vZGVFbnVtIG1pcG1hcEZpbHRlciA9ICJuZWFy
ZXN0IjsKKyAgICAvLyAgICAgZmxvYXQgbG9kTWluQ2xhbXAgPSAwOworICAgIC8vICAgICBmbG9h
dCBsb2RNYXhDbGFtcCA9IE51bWJlci5NQVhfVkFMVUU7CisgICAgLy8gICAgIHVuc2lnbmVkIGxv
bmcgbWF4QW5pc290cm9weSA9IDE7CisgICAgLy8gICAgIFdlYkdQVUNvbXBhcmVGdW5jdGlvbiBj
b21wYXJlRnVuY3Rpb24gPSAibmV2ZXIiOworICAgIC8vICAgICBXZWJHUFVCb3JkZXJDb2xvciBi
b3JkZXJDb2xvciA9ICJ0cmFuc3BhcmVudEJsYWNrIjsKKyAgICAvLyB9OworICAgIHJldHVybiBU
eXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3Muc2FtcGxlciwgbmV3IFNhbXBsZXIob3B0
aW9ucykpOworfQorCitmdW5jdGlvbiBtYWtlMURUZXh0dXJlKHByb2dyYW0sIG1pcG1hcHMsIGVs
ZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNp
Y3NbYFRleHR1cmUxRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUxRChlbGVtZW50VHlw
ZSwgbWlwbWFwcykpOworfQorCitmdW5jdGlvbiBtYWtlMURUZXh0dXJlQXJyYXkocHJvZ3JhbSwg
YXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFt
LmludHJpbnNpY3NbYFRleHR1cmUxREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVy
ZTFEQXJyYXkoZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UyRFRleHR1
cmUocHJvZ3JhbSwgbWlwbWFwcywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFs
dWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZTJEPCR7ZWxlbWVudFR5cGV9PmBdLCBu
ZXcgVGV4dHVyZTJEKGVsZW1lbnRUeXBlLCBtaXBtYXBzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2Uy
RFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJu
IFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZTJEQXJyYXk8JHtlbGVt
ZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlMkRBcnJheShlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30K
KworZnVuY3Rpb24gbWFrZTNEVGV4dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50VHlwZSkK
K3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJl
M0Q8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlM0QoZWxlbWVudFR5cGUsIG1pcG1hcHMp
KTsKK30KKworZnVuY3Rpb24gbWFrZVRleHR1cmVDdWJlKHByb2dyYW0sIGFycmF5LCBlbGVtZW50
VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BU
ZXh0dXJlQ3ViZTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmVDdWJlKGVsZW1lbnRUeXBl
LCBhcnJheSkpOworfQorCitmdW5jdGlvbiBtYWtlUlcxRFRleHR1cmUocHJvZ3JhbSwgZWxlbWVu
dHMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmlu
dHJpbnNpY3NbYFJXVGV4dHVyZTFEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTFEUlco
ZWxlbWVudFR5cGUsIGVsZW1lbnRzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzFEVGV4dHVyZUFy
cmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1
ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUxREFycmF5PCR7ZWxlbWVudFR5cGV9
PmBdLCBuZXcgVGV4dHVyZTFEQXJyYXlSVyhlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVu
Y3Rpb24gbWFrZVJXMkRUZXh0dXJlKHByb2dyYW0sIHJvd3MsIGVsZW1lbnRUeXBlKQoreworICAg
IHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTJEPCR7
ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTJEUlcoZWxlbWVudFR5cGUsIHJvd3MpKTsKK30K
KworZnVuY3Rpb24gbWFrZVJXMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRU
eXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJX
VGV4dHVyZTJEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlMkRBcnJheVJXKGVs
ZW1lbnRUeXBlLCBhcnJheSkpOworfQorCitmdW5jdGlvbiBtYWtlUlczRFRleHR1cmUocHJvZ3Jh
bSwgZGVwdGhTbGljZXMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJv
eChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTNEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcg
VGV4dHVyZTNEUlcoZWxlbWVudFR5cGUsIGRlcHRoU2xpY2VzKSk7Cit9CisKIGZ1bmN0aW9uIGNo
ZWNrTnVtYmVyKHByb2dyYW0sIHJlc3VsdCwgZXhwZWN0ZWQpCiB7CiAgICAgaWYgKCFyZXN1bHQu
dHlwZS51bmlmeU5vZGUuaXNOdW1iZXIpCkBAIC01NTgyLDcgKzU2ODQsOTczIEBAIHRlc3RzLmFy
cmF5SW5kZXggPSBmdW5jdGlvbigpIHsKICAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
VWludChwcm9ncmFtLCAyKSBdKSwgMyk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCkgXSksIDQpOwogICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiYXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1h
a2VVaW50KHByb2dyYW0sIDEpIF0pLCA1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlVWludChwcm9ncmFtLCAyKSBdKSwgNik7ICAgIAorICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VVaW50KHByb2dyYW0sIDIpIF0pLCA2KTsKK30KKworZnVuY3Rpb24gY3JlYXRlVGV4
dHVyZXNGb3JUZXN0aW5nKHByb2dyYW0pCit7CisgICAgbGV0IHRleHR1cmUxRCA9IG1ha2UxRFRl
eHR1cmUocHJvZ3JhbSwgW1sxLCA3LCAxNCwgNzldLCBbMTMsIDE2XSwgWzE1XV0sICJmbG9hdCIp
OworICAgIGxldCB0ZXh0dXJlMURBcnJheSA9IG1ha2UxRFRleHR1cmVBcnJheShwcm9ncmFtLCBb
W1sxLCA3LCAxNCwgNzldLCBbMTMsIDE2XSwgWzE1XV0sIFtbMTYsIDE3LCAxOCwgMTldLCBbMjAs
IDIxXSwgWzIyXV1dLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZTJEID0gbWFrZTJEVGV4dHVy
ZShwcm9ncmFtLCBbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAg
IFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAy
MCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEs
IDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzZdLAorICAgICAgICBbMzcsIDM4LCAzOSwg
NDBdXSwKKyAgICAgICAgW1s0MSwgNDJdXQorICAgIF0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0
dXJlMkRBcnJheSA9IG1ha2UyRFRleHR1cmVBcnJheShwcm9ncmFtLCBbWworICAgICAgICBbWzEs
IDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAx
NSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAg
ICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwg
MzUsIDM2XSwKKyAgICAgICAgWzM3LCAzOCwgMzksIDQwXV0sCisgICAgICAgIFtbNDEsIDQyXV0K
KyAgICBdLCBbCisgICAgICAgIFtbNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwgNDksIDUwXSwKKyAg
ICAgICAgWzUxLCA1MiwgNTMsIDU0LCA1NSwgNTYsIDU3LCA1OF0sCisgICAgICAgIFs1OSwgNjAs
IDYxLCA2MiwgNjMsIDY0LCA2NSwgNjZdLAorICAgICAgICBbNjcsIDY4LCA2OSwgNzAsIDcxLCA3
MiwgNzMsIDc0XV0sCisgICAgICAgIFtbNzUsIDc2LCA3NywgNzhdLAorICAgICAgICBbNzksIDgw
LCA4MSwgODJdXSwKKyAgICAgICAgW1s4MywgODRdXQorICAgIF1dLCAiZmxvYXQiKTsKKyAgICBs
ZXQgdGV4dHVyZTNEID0gbWFrZTNEVGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAgIFtbWzEsIDIs
IDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwg
MTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAg
WzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUs
IDM2LCAzNywgMzgsIDM5LCA0MF0sCisgICAgICAgIFs0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0
NywgNDhdLAorICAgICAgICBbNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2XSwKKyAgICAg
ICAgWzU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLCA2NF1dXSwKKyAgICAgICAgW1tbNjUsIDY2
LCA2NywgNjhdLAorICAgICAgICBbNjksIDcwLCA3MSwgNzJdXV0KKyAgICBdLCAiZmxvYXQiKTsK
KyAgICBsZXQgdGV4dHVyZUN1YmUgPSBtYWtlVGV4dHVyZUN1YmUocHJvZ3JhbSwgW1sKKyAgICAg
ICAgW1sxLCAyXSwKKyAgICAgICAgWzMsIDRdLAorICAgICAgICBbNSwgNl0sCisgICAgICAgIFs3
LCA4XV0sCisgICAgICAgIFtbOV0sCisgICAgICAgIFsxMF1dLAorICAgIF0sIFsKKyAgICAgICAg
W1sxMSwgMTJdLAorICAgICAgICBbMTMsIDE0XSwKKyAgICAgICAgWzE1LCAxNl0sCisgICAgICAg
IFsxNywgMThdXSwKKyAgICAgICAgW1sxOV0sCisgICAgICAgIFsyMF1dLAorICAgIF0sIFsKKyAg
ICAgICAgW1syMSwgMjJdLAorICAgICAgICBbMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNl0sCisg
ICAgICAgIFsyNywgMjhdXSwKKyAgICAgICAgW1syOV0sCisgICAgICAgIFszMF1dLAorICAgIF0s
IFsKKyAgICAgICAgW1szMSwgMzJdLAorICAgICAgICBbMzMsIDM0XSwKKyAgICAgICAgWzM1LCAz
Nl0sCisgICAgICAgIFszNywgMzhdXSwKKyAgICAgICAgW1szOV0sCisgICAgICAgIFs0MF1dLAor
ICAgIF0sIFsKKyAgICAgICAgW1s0MSwgNDJdLAorICAgICAgICBbNDMsIDQ0XSwKKyAgICAgICAg
WzQ1LCA0Nl0sCisgICAgICAgIFs0NywgNDhdXSwKKyAgICAgICAgW1s0OV0sCisgICAgICAgIFs1
MF1dLAorICAgIF0sIFsKKyAgICAgICAgW1s1MSwgNTJdLAorICAgICAgICBbNTMsIDU0XSwKKyAg
ICAgICAgWzU1LCA1Nl0sCisgICAgICAgIFs1NywgNThdXSwKKyAgICAgICAgW1s1OV0sCisgICAg
ICAgIFs2MF1dLAorICAgIF1dLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlMUQgPSBtYWtl
UlcxRFRleHR1cmUocHJvZ3JhbSwgWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLCAiZmxvYXQiKTsK
KyAgICBsZXQgcndUZXh0dXJlMURBcnJheSA9IG1ha2VSVzFEVGV4dHVyZUFycmF5KHByb2dyYW0s
IFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAx
Nl0sIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdXSwgImZsb2F0Iik7CisgICAgbGV0
IHJ3VGV4dHVyZTJEID0gbWFrZVJXMkRUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAgICAgWzEsIDIs
IDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwg
MTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAg
WzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLCAiZmxvYXQiKTsKKyAgICBsZXQgcndU
ZXh0dXJlMkRBcnJheSA9IG1ha2VSVzJEVGV4dHVyZUFycmF5KHByb2dyYW0sIFsKKyAgICAgICAg
W1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAx
NCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisg
ICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywg
MzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDBdLAorICAgICAgICBbNDEsIDQyLCA0MywgNDQsIDQ1
LCA0NiwgNDcsIDQ4XSwKKyAgICAgICAgWzQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1Nl0s
CisgICAgICAgIFs1NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2MywgNjRdXV0sICJmbG9hdCIpOwor
ICAgIGxldCByd1RleHR1cmUzRCA9IG1ha2VSVzNEVGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAg
IFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywg
MTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAor
ICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMs
IDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwXSwKKyAgICAgICAgWzQxLCA0MiwgNDMsIDQ0LCA0
NSwgNDYsIDQ3LCA0OF0sCisgICAgICAgIFs0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTZd
LAorICAgICAgICBbNTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjMsIDY0XV1dLCAiZmxvYXQiKTsK
KyAgICByZXR1cm4gW3RleHR1cmUxRCwgdGV4dHVyZTFEQXJyYXksIHRleHR1cmUyRCwgdGV4dHVy
ZTJEQXJyYXksIHRleHR1cmUzRCwgdGV4dHVyZUN1YmUsIHJ3VGV4dHVyZTFELCByd1RleHR1cmUx
REFycmF5LCByd1RleHR1cmUyRCwgcndUZXh0dXJlMkRBcnJheSwgcndUZXh0dXJlM0RdOworfQor
Cit0ZXN0cy50ZXh0dXJlRGltZW5zaW9ucyA9IGZ1bmN0aW9uKCkgeworICAgIGxldCBwcm9ncmFt
ID0gZG9QcmVwKGAKKyAgICAgICAgdWludCBmb28xKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSkg
eworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZl
bHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJm51bWJl
ck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAg
ICB1aW50IGZvbzIoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50
IHdpZHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdl
dERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAg
ICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9v
MyhUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0
aDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9m
TGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZl
bGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAg
ICAgICAgfQorICAgICAgICB1aW50IGZvbzQoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUp
IHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOwor
ICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgMCwgJndpZHRoLCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAg
ICAgICAgICByZXR1cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb281KFRl
eHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOwor
ICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZl
bHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmVsZW1l
bnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxz
OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNihUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUp
IHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAg
ICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25z
KHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAg
ICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzcoVGV4dHVyZTJE
PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAg
dWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAg
ICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxl
dmVscyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVp
bnQgZm9vOChUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lk
dGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZM
ZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhl
aWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVs
czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzkoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRl
eHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdo
dDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9m
TGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZo
ZWlnaHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3
aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzEwKFRleHR1cmUyREFycmF5PGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1i
ZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRo
LCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1
cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTEoVGV4dHVyZTJEQXJyYXk8
ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1
aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50
IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAm
d2lkdGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAg
IHJldHVybiBlbGVtZW50czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzEyKFRleHR1cmUy
REFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAg
ICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAg
ICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAg
ICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBm
b28xMyhUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7
CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAg
ICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0
ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAg
ICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE0KFRl
eHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAg
ICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAg
IHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUs
IDAsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAg
ICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE1KFRleHR1cmUz
RDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAg
IHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQg
bnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3
aWR0aCwgJmhlaWdodCwgJmRlcHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0
dXJuIGRlcHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTYoVGV4dHVyZTNEPGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgdWludCBudW1iZXJP
ZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAm
aGVpZ2h0LCAmZGVwdGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVt
YmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xNyhUZXh0dXJlQ3ViZTxm
bG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVp
bnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAg
IEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZl
bHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQg
Zm9vMTgoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lk
dGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZM
ZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhl
aWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb28xOShUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSkgewor
ICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAg
ICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4
dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAg
cmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjAoUldU
ZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAg
ICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCk7CisgICAgICAgICAgICByZXR1
cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yMShSV1RleHR1cmUxREFycmF5
PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAg
dWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRo
LCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAg
ICAgIHVpbnQgZm9vMjIoUldUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAg
ICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAg
ICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAg
IHJldHVybiBlbGVtZW50czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIzKFJXVGV4dHVy
ZTJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAg
ICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0
aCwgJmhlaWdodCk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAg
ICAgdWludCBmb28yNChSV1RleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAg
dWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgR2V0RGlt
ZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQpOworICAgICAgICAgICAgcmV0dXJuIGhl
aWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI1KFJXVGV4dHVyZTJEQXJyYXk8Zmxv
YXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50
IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1l
bnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAg
IHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI2KFJXVGV4dHVyZTJE
QXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAg
ICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAg
ICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAg
ICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yNyhS
V1RleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRo
OworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZlbGVt
ZW50cyk7CisgICAgICAgICAgICByZXR1cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAg
dWludCBmb28yOChSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWlu
dCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0
aDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAm
ZGVwdGgpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVp
bnQgZm9vMjkoUldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQg
d2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7
CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmRl
cHRoKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWlu
dCBmb28zMChSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3
aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsK
KyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZGVw
dGgpOworICAgICAgICAgICAgcmV0dXJuIGRlcHRoOworICAgICAgICB9CisgICAgYCk7CisgICAg
bGV0IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5
LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0dXJlMURBcnJheSwg
cndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNEXSA9IGNyZWF0ZVRleHR1
cmVzRm9yVGVzdGluZyhwcm9ncmFtKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRF0pLCAzKTsKKyAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1
cmUxREFycmF5XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXldKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMURBcnJheV0pLCAzKTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3Rl
eHR1cmUyRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb283IiwgW3RleHR1cmUyRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyRF0pLCAzKTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUyREFycmF5
XSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEwIiwgW3RleHR1cmUyREFycmF5XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3RleHR1cmUyREFycmF5XSksIDIpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1cmUy
REFycmF5XSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEzIiwgW3RleHR1cmUzRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlM0RdKSwgNCk7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTNEXSks
IDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2
IiwgW3RleHR1cmUzRF0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlQ3ViZV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlQ3ViZV0pLCA0KTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0
ZXh0dXJlQ3ViZV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmUxRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmUxREFycmF5XSksIDgp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwg
W3J3VGV4dHVyZTFEQXJyYXldKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbcndUZXh0dXJlMkRdKSwgOCk7CisgICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjQiLCBbcndUZXh0dXJlMkRdKSwg
NCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjUi
LCBbcndUZXh0dXJlMkRBcnJheV0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yNiIsIFtyd1RleHR1cmUyREFycmF5XSksIDQpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI3IiwgW3J3VGV4dHVy
ZTJEQXJyYXldKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjgiLCBbcndUZXh0dXJlM0RdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjkiLCBbcndUZXh0dXJlM0RdKSwgNCk7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzAiLCBbcndUZXh0
dXJlM0RdKSwgMik7Cit9CisKK3Rlc3RzLnRleHR1cmVMb2FkID0gZnVuY3Rpb24oKSB7CisgICAg
bGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICBmbG9hdCBmb28xKFRleHR1cmUxRDxmbG9h
dD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQgbWlwbWFwKSB7CisgICAgICAgICAgICByZXR1
cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGxvY2F0aW9uLCBtaXBtYXApKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmb28yKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uLCBp
bnQgbWlwbWFwLCBpbnQgb2Zmc2V0KSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJl
LCBpbnQyKGxvY2F0aW9uLCBtaXBtYXApLCBvZmZzZXQpOworICAgICAgICB9CisgICAgICAgIGZs
b2F0IGZvbzMoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50
IG1pcG1hcCwgaW50IGxheWVyKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBp
bnQzKGxvY2F0aW9uLCBtaXBtYXAsIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQg
Zm9vNChUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQgbWlw
bWFwLCBpbnQgbGF5ZXIsIGludCBvZmZzZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRl
eHR1cmUsIGludDMobG9jYXRpb24sIG1pcG1hcCwgbGF5ZXIpLCBvZmZzZXQpOworICAgICAgICB9
CisgICAgICAgIGZsb2F0IGZvbzUoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50
IHksIGludCBtaXBtYXApIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMo
eCwgeSwgbWlwbWFwKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNihUZXh0dXJlMkQ8
ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCwgaW50IG9mZnNldFgsIGlu
dCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHks
IG1pcG1hcCksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZs
b2F0IGZvbzcoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50
IG1pcG1hcCwgaW50IGxheWVyKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBp
bnQ0KHgsIHksIG1pcG1hcCwgbGF5ZXIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb284
KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXAs
IGludCBsYXllciwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1
cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgsIHksIG1pcG1hcCwgbGF5ZXIpLCBpbnQyKG9mZnNldFgs
IG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb285KFRleHR1cmUzRDxmbG9h
dD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgeiwgaW50IG1pcG1hcCkgeworICAgICAgICAg
ICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50NCh4LCB5LCB6LCBtaXBtYXApKTsKKyAgICAgICAg
fQorICAgICAgICBmbG9hdCBmb28xMChUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBp
bnQgeSwgaW50IHosIGludCBtaXBtYXAsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSwgaW50IG9m
ZnNldFopIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDQoeCwgeSwgeiwg
bWlwbWFwKSwgaW50MyhvZmZzZXRYLCBvZmZzZXRZLCBvZmZzZXRaKSk7CisgICAgICAgIH0KKyAg
ICAgICAgZmxvYXQgZm9vMTEoUldUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlv
bikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgbG9jYXRpb24pOworICAgICAg
ICB9CisgICAgICAgIGZsb2F0IGZvbzEyKFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUs
IGludCBsb2NhdGlvbiwgaW50IGxheWVyKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0
dXJlLCBpbnQyKGxvY2F0aW9uLCBsYXllcikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZv
bzEzKFJXVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHkpIHsKKyAgICAgICAg
ICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIoeCwgeSkpOworICAgICAgICB9CisgICAgICAg
IGZsb2F0IGZvbzE0KFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQg
eSwgaW50IGxheWVyKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgs
IHksIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTUoUldUZXh0dXJlM0Q8
ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IHopIHsKKyAgICAgICAgICAgIHJldHVy
biBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgeikpOworICAgICAgICB9CisgICAgYCk7CisgICAg
bGV0IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5
LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0dXJlMURBcnJheSwg
cndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNEXSA9IGNyZWF0ZVRleHR1
cmVzRm9yVGVzdGluZyhwcm9ncmFtKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVy
ZTFELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIC0xKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRCwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSld
KSwgMTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28z
IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAx
Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMi
LCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE3
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIs
IFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAyMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMjEp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280Iiwg
W3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDcpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUx
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgLTEpXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAxNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
LTEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAy
MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQi
LCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDIwKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0
dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVy
ZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzcpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0x
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE4KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0
dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282
IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM3KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzgpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3Rl
eHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSld
KSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1h
a2VJbnQocHJvZ3JhbSwgLTEpXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzMpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAzNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDQzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0NCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTEpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDUyKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3NSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgNzYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDc5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCA4MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTgpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxOSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMzkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM4KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAtMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDM5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMzUpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDQ0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1Mik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDUzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA1Mik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgNjApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUzKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCA2MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
NzYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDgwKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCA3Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgODEpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDgwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwg
NzYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDgxKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAtMSldKSwgNzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAx
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIs
IFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUz
RCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0MSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDQyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgNjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA2Nik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4
dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDY5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNzApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIs
IFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0
dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0Qs
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMTgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
MzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDEpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0
ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJl
M0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzUpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgNDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgLTEpXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgNDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNTAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIs
IFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEwKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4
dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDY2KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNE
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDY5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDY3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDcwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA2NSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCA3MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgNjYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJl
MUQsIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dy
YW0sIDIpXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAzKV0pLCA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndU
ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgNCldKSwgNSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50
KHByb2dyYW0sIDUpXSksIDYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCA2KV0pLCA3
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEi
LCBbcndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4
dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEy
IiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
NCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNyk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVy
ZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwg
W3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDIp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChw
cm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTMpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1
cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIi
LCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCAxNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxOCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1Rl
eHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDIpXSks
IDIwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9n
cmFtLCAyKV0pLCAyMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1h
a2VJbnQocHJvZ3JhbSwgMildKSwgMjIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFr
ZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJE
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1
cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndU
ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMyk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwg
W3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCA1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCA4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtl
SW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEzKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1
cmUyRCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3
VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMi
LCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMild
KSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAyKV0pLCAxOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHBy
b2dyYW0sIDIpXSksIDE5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJ
bnQocHJvZ3JhbSwgMildKSwgMjApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA0KSwg
bWFrZUludChwcm9ncmFtLCAyKV0pLCAyMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0s
IDUpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJv
Z3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjMpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUlu
dChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI1KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJl
MkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjYpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1Rl
eHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyNyk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwg
W3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDMpXSks
IDI4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwg
MyldKSwgMjkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9n
cmFtLCAzKV0pLCAzMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50
KHByb2dyYW0sIDMpXSksIDMxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1h
a2VJbnQocHJvZ3JhbSwgMyldKSwgMzIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFty
d1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIs
IFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE0IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDQxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0Mik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1
IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFty
d1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQxKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0
dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgNDIpOworfQorCit0ZXN0cy50ZXh0dXJlU3RvcmUgPSBmdW5jdGlvbigp
IHsKKyAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCisgICAgICAgIGZsb2F0IGZvbzEoUldUZXh0
dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIHVpbnQgbG9jYXRpb24sIGZsb2F0IHZhbHVlKSB7CisgICAg
ICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb24pOworICAgICAgICAgICAgcmV0
dXJuIExvYWQodGV4dHVyZSwgaW50KGxvY2F0aW9uKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxv
YXQgZm9vMihSV1RleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlLCB1aW50IGxvY2F0aW9uLCB1
aW50IGxheWVyLCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4dHVyZSwgdmFs
dWUsIHVpbnQyKGxvY2F0aW9uLCBsYXllcikpOworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4
dHVyZSwgaW50MihpbnQobG9jYXRpb24pLCBpbnQobGF5ZXIpKSk7CisgICAgICAgIH0KKyAgICAg
ICAgZmxvYXQgZm9vMyhSV1RleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgdWludCB4LCB1aW50IHks
IGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDIo
eCwgeSkpOworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MihpbnQoeCksIGlu
dCh5KSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQoUldUZXh0dXJlMkRBcnJheTxm
bG9hdD4gdGV4dHVyZSwgdWludCB4LCB1aW50IHksIHVpbnQgbGF5ZXIsIGZsb2F0IHZhbHVlKSB7
CisgICAgICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDMoeCwgeSwgbGF5ZXIpKTsK
KyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoaW50KHgpLCBpbnQoeSksIGlu
dChsYXllcikpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb281KFJXVGV4dHVyZTNEPGZs
b2F0PiB0ZXh0dXJlLCB1aW50IHgsIHVpbnQgeSwgdWludCB6LCBmbG9hdCB2YWx1ZSkgeworICAg
ICAgICAgICAgU3RvcmUodGV4dHVyZSwgdmFsdWUsIHVpbnQzKHgsIHksIHopKTsKKyAgICAgICAg
ICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoaW50KHgpLCBpbnQoeSksIGludCh6KSkpOwor
ICAgICAgICB9CisgICAgYCk7CisgICAgbGV0IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0
ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1
cmUxRCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3
VGV4dHVyZTNEXSA9IGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9ncmFtKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUx
RCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBb
cndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dy
YW0sIDQpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtl
VWludChwcm9ncmFtLCA1KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1
cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEi
LCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
VWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1
cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWlu
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUx
REFycmF5LCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJv
Z3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFy
cmF5LCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
IiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5
LCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwg
MyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwg
W3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBt
YWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNiks
IG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3
VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtl
VWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1h
a2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4
dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAyKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWlu
dChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VV
aW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVy
ZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChw
cm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50
KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJE
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1Rl
eHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFt
LCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMi
LCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1h
a2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VV
aW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVy
ZTJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDIp
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFty
d1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9n
cmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVp
bnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQs
IG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1h
a2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4
dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0s
IDMpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIs
IFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDIp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChw
cm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9n
cmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFr
ZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJl
MkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiks
IG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3
VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dy
YW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0s
IDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWlu
dChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChw
cm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFy
cmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJE
QXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJl
MkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
VWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1
cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1h
a2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4
dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndU
ZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFty
d1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280Iiwg
W3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUi
LCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBb
cndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndU
ZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0
dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJl
M0QsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0Qs
IG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1h
a2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VV
aW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cit9CisKK3Rlc3RzLnRleHR1cmVT
YW1wbGUgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCisgICAgICAg
IGZsb2F0IGZvbzEoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IGxv
Y2F0aW9uKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGxvY2F0aW9u
KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28yKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVy
ZSwgc2FtcGxlciBzLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCkgeworICAgICAgICAgICAg
cmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBsb2NhdGlvbiwgb2Zmc2V0KTsKKyAgICAgICAgfQor
ICAgICAgICBmbG9hdCBmb28zKFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVy
IHMsIGZsb2F0IHgsIGZsb2F0IGxheWVyKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRl
eHR1cmUsIHMsIGZsb2F0Mih4LCBsYXllcikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZv
bzQoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxv
YXQgbGF5ZXIsIGludCBvZmZzZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVy
ZSwgcywgZmxvYXQyKHgsIGxheWVyKSwgb2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb281KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9h
dCB5KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5
KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNihUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1
cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZ
KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwg
aW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNyhU
ZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5
LCBmbG9hdCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBm
bG9hdDMoeCwgeSwgbGF5ZXIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb284KFRleHR1
cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZs
b2F0IGxheWVyLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVy
biBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgaW50MihvZmZzZXRYLCBv
ZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vOShUZXh0dXJlM0Q8ZmxvYXQ+
IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeikgeworICAgICAg
ICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeikpOworICAgICAg
ICB9CisgICAgICAgIGZsb2F0IGZvbzEwKFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxl
ciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFks
IGludCBvZmZzZXRaKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZs
b2F0Myh4LCB5LCB6KSwgaW50MyhvZmZzZXRYLCBvZmZzZXRZLCBvZmZzZXRaKSk7CisgICAgICAg
IH0KKyAgICAgICAgZmxvYXQgZm9vMTEoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUsIHNhbXBs
ZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeikgeworICAgICAgICAgICAgcmV0dXJuIFNh
bXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeikpOworICAgICAgICB9CisgICAgICAgIGZs
b2F0IGZvbzEyKFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBm
bG9hdCB5LCBmbG9hdCBCaWFzKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0
dXJlLCBzLCBmbG9hdDIoeCwgeSksIEJpYXMpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZv
bzEzKFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5
LCBmbG9hdCBCaWFzLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJl
dHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgQmlhcywgaW50MihvZmZz
ZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTQoVGV4dHVyZTJE
PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGRkeDAs
IGZsb2F0IGRkeDEsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEpIHsKKyAgICAgICAgICAgIHJldHVy
biBTYW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgZmxvYXQyKGRkeDAsIGRkeDEp
LCBmbG9hdDIoZGR5MCwgZGR5MSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE1KFRl
eHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9h
dCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHkwLCBmbG9hdCBkZHkxLCBpbnQgb2Zmc2V0WCwg
aW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUsIHMs
IGZsb2F0Mih4LCB5KSwgZmxvYXQyKGRkeDAsIGRkeDEpLCBmbG9hdDIoZGR5MCwgZGR5MSksIGlu
dDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE2KFRl
eHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9h
dCBMT0QpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9h
dDIoeCwgeSksIExPRCk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTcoVGV4dHVyZTJE
PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IExPRCwg
aW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2
ZWwodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBMT0QsIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE4KFRleHR1cmUyREFycmF5PGZsb2F0PiB0
ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBC
aWFzKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDMo
eCwgeSwgbGF5ZXIpLCBCaWFzKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xOShUZXh0
dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBm
bG9hdCBsYXllciwgZmxvYXQgQmlhcywgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAg
ICAgICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIp
LCBCaWFzLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb28yMChUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4
LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR5
MCwgZmxvYXQgZGR5MSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwg
cywgZmxvYXQzKHgsIHksIGxheWVyKSwgZmxvYXQyKGRkeDAsIGRkeDEpLCBmbG9hdDIoZGR5MCwg
ZGR5MSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzIxKFRleHR1cmUyREFycmF5PGZs
b2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBm
bG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHkwLCBmbG9hdCBkZHkxLCBpbnQgb2Zmc2V0
WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUs
IHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGZsb2F0MihkZHgwLCBkZHgxKSwgZmxvYXQyKGRkeTAs
IGRkeTEpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb28yMihUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4
LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgTE9EKSB7CisgICAgICAgICAgICByZXR1cm4g
U2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgTE9EKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb28yMyhUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwg
c2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgTE9ELCBpbnQg
b2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0
ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBMT0QsIGludDIob2Zmc2V0WCwgb2Zmc2V0
WSkpOworICAgICAgICB9CisgICAgYCk7CisgICAgbGV0IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFy
cmF5LCB0ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCBy
d1RleHR1cmUxRCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJy
YXksIHJ3VGV4dHVyZTNEXSA9IGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9ncmFtKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0
dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHt9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuMzc1
KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHt9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNDM3NSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7fSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjU2MjUpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHt9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNjI1KV0pLCAxNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC4zNzUpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNDM3NSldKSwgKDMgKiA3
ICsgMSAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDcgKyAxNCkgLyAyKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0
ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjU2MjUpXSksICgxICogNyArIDMgKiAxNCkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJl
MUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjYyNSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuMzc1KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9y
ZGVyQ29sb3IifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjQzNzUpXSksICgzICogNyArIDEgKiAx
NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpXSksICg3ICsgMTQpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9y
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41NjI1KV0pLCAoMSAqIDcgKyAzICogMTQpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBb
dGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFk
ZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC42
MjUpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsg
MC4zNzUpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEg
KyAwLjQzNzUpXSksICgzICogNyArIDEgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC41KV0pLCAoNyArIDE0KSAvIDIpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTog
InJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjU2MjUpXSksICgxICogNyArIDMg
KiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsg
MC42MjUpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAy
ICsgMC4zNzUpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDIgKyAwLjQzNzUpXSksICgzICogNyArIDEgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC41KV0pLCAoNyArIDE0KSAvIDIpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUx
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9k
ZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjU2MjUpXSksICgxICogNyAr
IDMgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAy
ICsgMC42MjUpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxICsgMC42MjUpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEgKyAwLjU2MjUpXSksICgzICogNyArIDEgKiAxNCkgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0
dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVz
c01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC41KV0pLCAo
NyArIDE0KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEgKyAwLjQzNzUpXSksICgxICogNyArIDMgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJy
b3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC4zNzUpXSksIDE0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJl
MUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01v
ZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC4zNzUpXSksIDcp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJB
ZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjQz
NzUpXSksICgzICogNyArIDEgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC41KV0pLCAoNyArIDE0KSAvIDIpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTog
Im1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjU2MjUpXSksICgxICog
NyArIDMgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAyICsgMC42MjUpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMC4zNzUpXSksIDEp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEuMzc1KV0pLCA3OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRl
ckNvbG9yIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTAuMzc1KV0pLCAwKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJj
bGFtcFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxLjM3NSldKSwgMCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4
dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJl
c3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIiwgYm9yZGVyQ29sb3I6ICJvcGFxdWVCbGFjayJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0wLjM3NSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0Jv
cmRlckNvbG9yIiwgYm9yZGVyQ29sb3I6ICJvcGFxdWVCbGFjayJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEuMzc1KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IiLCBib3JkZXJD
b2xvcjogIm9wYXF1ZVdoaXRlIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTAuMzc1KV0pLCAxKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0
ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRk
cmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IiLCBib3JkZXJDb2xvcjogIm9wYXF1ZVdoaXRl
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMS4zNzUpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9C
b3JkZXJDb2xvciIsIGJvcmRlckNvbG9yOiAib3BhcXVlV2hpdGUifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKV0pLCAoNzkgKyAxKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciIsIGxvZE1pbkNsYW1wOiAxfSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpXSksICgxMyArIDE2KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgKDE0ICsgNzkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDcgKyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoMTcgKyAxOCkgLyAyKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0
dXJlMURBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAoMTQgKyA3OSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMTggKyAxOSkg
LyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAo
MTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpXSksICgyMCArIDIxICsgMjgg
KyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCAr
IDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDIwICsg
MjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsg
MjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDYyICsgNjMgKyA3
MCArIDcxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEgKyA0NCAr
IDQ1ICsgNTIgKyA1MykgLyA4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMyArIDE0ICsgMjEg
KyAyMiArIDQ1ICsgNDYgKyA1MyArIDU0KSAvIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCA2IC8gOCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgyMCAr
IDIxICsgMjggKyAyOSArIDUyICsgNTMgKyA2MCArIDYxKSAvIDgpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNSAvIDgp
XSksICgxMiArIDEzICsgMjAgKyAyMSArICg0NCArIDQ1ICsgNTIgKyA1MykgKiAzKSAvIDE2KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBb
dGV4dHVyZTNELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMiArIDQ1ICsgNDYgKyA1
MyArIDU0KSAvIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDIwICsgMjEgKyAyOCArIDI5
ICsgNTIgKyA1MyArIDYwICsgNjEpIC8gOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC4yNSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDQ0
ICsgNDUgKyA1MiArIDUzKSAvIDQpOworICAgIC8vIFVuZm9ydHVuYXRlbHksIHdlIGNhbid0IGFj
dHVhbGx5IHRlc3QgdGhlICJCaWFzIiBhcmd1bWVudCwgYmVjYXVzZSBpdCBpcyBzdXBwb3NlZCB0
byBiZSBhcHBsaWVkCisgICAgLy8gdG8gdGhlIHVuY2xhbXBlZCBMT0QsIHdoaWNoIGZvciB1cyBp
cyAtSW5maW5pdHkgKGJlY2F1c2Ugb3VyIGRlcml2YXRpdmVzIGFyZSBhbGwgMCkKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbdGV4dHVyZTJE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8g
MTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgx
MyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgyMCArIDIxICsgMjgg
KyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTMiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3RleHR1cmUyRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCAr
IDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNCIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAy
MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTQiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgxMiAr
IDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWlu
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZh
bHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWln
aHQpXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAw
LjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBv
dygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDEyICsg
MTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1h
dGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCld
KSwgKCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQp
KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTJE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5l
UHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZh
bHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRy
LmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
MzUgKyAzNiArIDM5ICsgNDApIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0
ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4y
NSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4
dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFw
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0
ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksICgoKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpICsgKCgzNSAr
IDM2ICsgMzkgKyA0MCkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIw
ICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE2IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0
ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkg
KyAoKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTciLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE3IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkg
LyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmUyRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSAr
IDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEg
KyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDEzICsgMTQgKyAyMSAr
IDIyKSAvIDQpICsgKCgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEzICsg
MTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCA2IC8gOCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyAr
IDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCA2IC8gOCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSks
ICg2MiArIDYzICsgNzAgKyA3MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
KDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAo
MjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1
NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDYy
ICsgNjMgKyA3MCArIDcxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFs
dWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdo
dCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgzNCArIDM1ICsg
MzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0
aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQp
XSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRl
eHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUp
IC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoKCgxMiArIDEzICsgMjAg
KyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsg
NjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAv
IHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJE
LmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgp
LmhlaWdodCldKSwgKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5l
UHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1p
cG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWln
aHQpXSksICgoKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpICsgKCg3NiArIDc3ICsgODAgKyA4MSkg
LyA0KSkgLyAyKTsKKworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
MTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIx
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQu
ZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRW
YWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgp
LndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRW
YWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpICsgKCgz
NSArIDM2ICsgMzkgKyA0MCkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1
cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2Fk
VmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhl
aWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsg
NTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0
dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksICg3NyArIDc4ICsgODEgKyA4MikgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQu
ZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0
dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5w
b3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBN
YXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCg1NSArIDU2ICsgNjMg
KyA2NCkgLyA0KSArICgoNzcgKyA3OCArIDgxICsgODIpIC8gNCkpIC8gMik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIi
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDM0ICsgMzUg
KyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21p
bkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoKCgxMiArIDEz
ICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3RleHR1
cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2
MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDc2
ICsgNzcgKyA4MCArIDgxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoKCg1
NCArIDU1ICsgNjIgKyA2MykgLyA0KSArICgoNzYgKyA3NyArIDgwICsgODEpIC8gNCkpIC8gMik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwg
W3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
LCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
KCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8g
Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIz
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMi
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMi
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAoKCgxMyArIDE0ICsgMjEgKyAyMikgLyA0KSArICgoMzUgKyAzNiArIDM5ICsgNDApIC8gNCkp
IC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2Mykg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDc2ICsgNzcgKyA4MCArIDgxKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2Mykg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoKCg1NCArIDU1ICsgNjIgKyA2MykgLyA0KSArICgoNzYgKyA3NyArIDgwICsgODEpIC8g
NCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2
NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDc3ICsgNzggKyA4MSArIDgy
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2
NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAoKCg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KSArICgoNzcgKyA3OCArIDgxICsgODIp
IC8gNCkpIC8gMik7CisgICAgLy8gVGVzdCBtaXBtYXAgZmlsdGVyaW5nLCBtYXhMT0RjbGFtcCwg
bWF4QW5pc28sIGFuZCBvdGhlciBpbm5lciB0eXBlcywgZGVwdGggdGV4dHVyZXMsIGFuZCBkZXB0
aCBjb21wYXJlIGZ1bmN0aW9ucwogfQogCiBva1RvVGVzdCA9IHRydWU7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlLmpzIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVGV4dHVyZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDZlMDVhYzgxNzg3ODlhNjVm
MzAwYjEwMDA4NjE2MDgyNDVkZjhiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVGV4dHVyZS5qcwpAQCAtMCwwICsxLDUzNCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisidXNlIHN0cmljdCI7CisKK2NsYXNzIFRl
eHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgs
IGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAg
IHRoaXMuX2RpbWVuc2lvbiA9IGRpbWVuc2lvbjsKKyAgICAgICAgdGhpcy5fd2lkdGggPSB3aWR0
aDsKKyAgICAgICAgdGhpcy5faGVpZ2h0ID0gaGVpZ2h0OworICAgICAgICB0aGlzLl9kZXB0aCA9
IGRlcHRoOworICAgICAgICB0aGlzLl9sZXZlbENvdW50ID0gbGV2ZWxDb3VudDsKKyAgICAgICAg
dGhpcy5fbGF5ZXJDb3VudCA9IGxheWVyQ291bnQ7CisgICAgICAgIHRoaXMuX2lubmVyVHlwZSA9
IGlubmVyVHlwZTsKKyAgICAgICAgdGhpcy5fZGF0YSA9IGRhdGE7CisgICAgfQorCisgICAgZ2V0
IGRpbWVuc2lvbigpIHsgcmV0dXJuIHRoaXMuX2RpbWVuc2lvbjsgfQorICAgIGdldCB3aWR0aCgp
IHsgcmV0dXJuIHRoaXMuX3dpZHRoOyB9CisgICAgZ2V0IGhlaWdodCgpIHsgcmV0dXJuIHRoaXMu
X2hlaWdodDsgfQorICAgIGdldCBkZXB0aCgpIHsgcmV0dXJuIHRoaXMuX2RlcHRoOyB9CisgICAg
Z2V0IGxldmVsQ291bnQoKSB7IHJldHVybiB0aGlzLl9sZXZlbENvdW50OyB9CisgICAgZ2V0IGxh
eWVyQ291bnQoKSB7IHJldHVybiB0aGlzLl9sYXllckNvdW50OyB9CisgICAgZ2V0IGlubmVyVHlw
ZSgpIHsgcmV0dXJuIHRoaXMuX2lubmVyVHlwZTsgfQorICAgIGdldCBkYXRhKCkgeyByZXR1cm4g
dGhpcy5fZGF0YTsgfQorCisgICAgZWxlbWVudENoZWNrZWQobGF5ZXIsIGxldmVsLCBrLCBqLCBp
KQorICAgIHsKKyAgICAgICAgaWYgKGxheWVyIDwgMCB8fCBsYXllciA+PSB0aGlzLmxheWVyQ291
bnQKKyAgICAgICAgICAgIHx8IGxldmVsIDwgMCB8fCBsZXZlbCA+PSB0aGlzLmxldmVsQ291bnQK
KyAgICAgICAgICAgIHx8IGsgPCAwIHx8IGsgPj0gdGhpcy5kZXB0aAorICAgICAgICAgICAgfHwg
aiA8IDAgfHwgaiA+PSB0aGlzLmhlaWdodAorICAgICAgICAgICAgfHwgaSA8IDAgfHwgaSA+PSB0
aGlzLndpZHRoKQorICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgICAgcmV0dXJu
IHRoaXMuZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpOworICAgIH0KKworICAgIHNldEVs
ZW1lbnRDaGVja2VkKGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAg
ICBpZiAobGF5ZXIgPCAwIHx8IGxheWVyID49IHRoaXMubGF5ZXJDb3VudAorICAgICAgICAgICAg
fHwgbGV2ZWwgPCAwIHx8IGxldmVsID49IHRoaXMubGV2ZWxDb3VudAorICAgICAgICAgICAgfHwg
ayA8IDAgfHwgayA+PSB0aGlzLmRlcHRoCisgICAgICAgICAgICB8fCBqIDwgMCB8fCBqID49IHRo
aXMuaGVpZ2h0CisgICAgICAgICAgICB8fCBpIDwgMCB8fCBpID49IHRoaXMud2lkdGgpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHRoaXMuc2V0RWxlbWVudChsYXllciwgbGV2
ZWwsIGssIGosIGksIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfQorCitj
bGFzcyBUZXh0dXJlMUQgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5
cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgbWlwbWFw
cy4KKyAgICAgICAgLy8gVGhlIGZpcnN0IG1pcG1hcCBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4K
KyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAy
LTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRoIG11c3QgYmUgYSBwb3dlci1vZi10d28u
CisgICAgICAgIC8vIEVhY2ggbWlwbWFwIGlzIGhhbGYtc2l6ZSBvZiB0aGUgcHJldmlvdXMgc2l6
ZS4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMTsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0
YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSAxOworICAgICAgICBsZXQgZGVwdGgg
PSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQg
bGF5ZXJDb3VudCA9IDE7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwg
ZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQor
CisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0
YVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAg
eworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisg
ICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZl
bCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdW2ldOwor
ICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAg
ICB7CisgICAgICAgIHRoaXMuZGF0YVtsZXZlbF1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2Ns
YXNzIFRleHR1cmUxREFycmF5IGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5u
ZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIDFE
IHRleHR1cmVzLgorICAgICAgICAvLyBBbGwgdGV4dHVyZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHdp
ZHRoIGFuZCBudW1iZXIgb2YgbWlwbWFwcy4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMTsK
KyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWln
aHQgPSAxOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9
IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOwor
ICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50
LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZl
bChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bbGV2ZWxdLmxlbmd0
aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIDE7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisg
ICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1baV07CisgICAgfQor
CisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAg
ICAgICAgdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2Ns
YXNzIFRleHR1cmUyRCBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlw
ZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiBtaXBtYXBz
LgorICAgICAgICAvLyBUaGUgZmlyc3QgbWlwbWFwIGlzIGEgcmVjdGFuZ3VsYXIgYXJyYXkgb2Yg
cm93cywgd2hlcmUgZWFjaCByb3cgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8v
IEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2FsYXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMu
CisgICAgICAgIC8vIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IG11c3QgYmUgcG93ZXJzLW9mLXR3by4K
KyAgICAgICAgLy8gRWFjaCBtaXBtYXAgaXMgaGFsZi13aWR0aCBhbmQgaGFsZi1oZWlnaHQgb2Yg
dGhlIHByZXZpb3VzIHNpemUuCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDI7CisgICAgICAg
IGxldCB3aWR0aCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0
YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENv
dW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gMTsKKyAgICAgICAg
c3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJD
b3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwp
CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXVswXS5sZW5ndGg7CisgICAg
fQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
LmRhdGFbbGV2ZWxdLmxlbmd0aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisg
ICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZl
bCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdW2pdW2ld
OworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkK
KyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsZXZlbF1bal1baV0gPSB2YWx1ZTsKKyAgICB9Cit9
CisKK2NsYXNzIFRleHR1cmUyREFycmF5IGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0
b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5
IG9mIDJEIHRleHR1cmVzLgorICAgICAgICAvLyBBbGwgdGV4dHVyZXMgbXVzdCBoYXZlIHRoZSBz
YW1lIHdpZHRoLCBoZWlnaHQgYW5kIG51bWJlciBvZiBtaXBtYXBzLgorCisgICAgICAgIGxldCBk
aW1lbnNpb24gPSAyOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdWzBdLmxlbmd0aDsK
KyAgICAgICAgbGV0IGhlaWdodCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVw
dGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAg
ICBsZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBzdXBlcihkaW1lbnNpb24s
IHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUs
IGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLmRhdGFbMF1bbGV2ZWxdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWln
aHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVtsZXZl
bF0ubGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAg
ICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBp
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2pdW2ldOwor
ICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAg
ICB7CisgICAgICAgIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2pdW2ldID0gdmFsdWU7CisgICAg
fQorfQorCitjbGFzcyBUZXh0dXJlM0QgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rv
cihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkg
b2YgbWlwbWFwcy4KKyAgICAgICAgLy8gVGhlIGZpcnN0IG1pcG1hcCBpcyBhbiBhcnJheSBvZiBk
ZXB0aCBzbGljZXMsIGVhY2ggZGVwdGggc2xpY2UgaXMgYW4gYXJyYXkgb2Ygcm93cywgYW5kIGVh
Y2ggcm93IGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBFYWNoIGVsZW1lbnQg
bWF5IGJlIGEgc2NhbGFyIG9yIGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgorICAgICAgICAvLyBU
aGUgd2lkdGgsIGhlaWdodCwgYW5kIGRlcHRoIG11c3QgYmUgcG93ZXJzLW9mLXR3by4KKyAgICAg
ICAgLy8gRWFjaCBtaXBtYXAgaXMgaGFsZi13aWR0aCwgaGFsZi1oZWlnaHQsIGFuZCBoYWxmLWRl
cHRoIG9mIHRoZSBwcmV2aW91cyBzaXplLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAzOwor
ICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhl
aWdodCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSBkYXRhWzBdLmxl
bmd0aDsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgbGV0
IGxheWVyQ291bnQgPSAxOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQs
IGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0K
KworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRh
dGFbbGV2ZWxdWzBdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVs
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1bMF0ubGVuZ3RoOworICAg
IH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
LmRhdGFbbGV2ZWxdLmxlbmd0aDsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwg
aywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdW2tdW2pdW2ld
OworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkK
KyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsZXZlbF1ba11bal1baV0gPSB2YWx1ZTsKKyAgICB9
Cit9CisKK2NsYXNzIFRleHR1cmVDdWJlIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0
b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5
IG9mIDYgMkQgdGV4dHVyZXMuCisgICAgICAgIC8vIEFsbCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhl
IHNhbWUgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGFuZCBudW1iZXIgb2YgbWlwbWFwcy4KKworICAg
ICAgICBsZXQgZGltZW5zaW9uID0gMjsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXVsw
XS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAg
ICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSBkYXRhWzBdLmxlbmd0
aDsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgc3VwZXIo
ZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwg
aW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAg
eworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdW2xldmVsXVswXS5sZW5ndGg7CisgICAgfQor
CisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRh
dGFbMF1bbGV2ZWxdLmxlbmd0aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisg
ICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZl
bCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGF5ZXJdW2xldmVs
XVtqXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwg
dmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtqXVtpXSA9IHZh
bHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTFEUlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAg
ICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIg
aXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUg
YSBzY2FsYXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0
aCBtdXN0IGJlIGEgcG93ZXItb2YtdHdvLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAxOwor
ICAgICAgICBsZXQgd2lkdGggPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IDE7
CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gMTsKKyAg
ICAgICAgbGV0IGxheWVyQ291bnQgPSAxOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRo
LCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEp
OworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVy
biB0aGlzLmRhdGEubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisg
ICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwp
CisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBs
ZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbaV07CisgICAg
fQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsK
KyAgICAgICAgdGhpcy5kYXRhW2ldID0gdmFsdWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJl
MURBcnJheVJXIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBk
YXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIDFEIFJXIHRleHR1
cmVzLgorICAgICAgICAvLyBBbGwgdGV4dHVyZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHNpemUuCisK
KyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDE7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF0u
bGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gMTsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsK
KyAgICAgICAgbGV0IGxldmVsQ291bnQgPSAxOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IGRh
dGEubGVuZ3RoOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRo
LCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAg
IHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF0u
bGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAg
ICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAg
ICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwg
aSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGF5ZXJdW2ldOworICAgIH0KKwor
ICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAg
ICAgIHRoaXMuZGF0YVtsYXllcl1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1
cmUyRFJXIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRh
KQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGEgcmVjdGFuZ3VsYXIgYXJyYXkgb2Ygcm93
cywgd2hlcmUgZWFjaCByb3cgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVh
Y2ggZWxlbWVudCBtYXkgYmUgYSBzY2FsYXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisg
ICAgICAgIC8vIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IG11c3QgYmUgcG93ZXJzLW9mLXR3by4KKwor
ICAgICAgICBsZXQgZGltZW5zaW9uID0gMjsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXS5s
ZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgbGV0IGRl
cHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSAxOworICAgICAgICBsZXQgbGF5ZXJD
b3VudCA9IDE7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgs
IGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAg
d2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXS5s
ZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLmRhdGEubGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZl
bCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIs
IGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtqXVtpXTsK
KyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisg
ICAgeworICAgICAgICB0aGlzLmRhdGFbal1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNz
IFRleHR1cmUyREFycmF5UlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5l
clR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgMkQg
UlcgdGV4dHVyZXMuCisgICAgICAgIC8vIEFsbCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNhbWUg
d2lkdGggYW5kIGhlaWdodC4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMjsKKyAgICAgICAg
bGV0IHdpZHRoID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRh
WzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291
bnQgPSAxOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBz
dXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNv
dW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bMF0ubGVuZ3RoOworICAgIH0KKwor
ICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRh
WzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAg
ICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwg
aSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGF5ZXJdW2pdW2ldOworICAgIH0K
KworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7Cisg
ICAgICAgIHRoaXMuZGF0YVtsYXllcl1bal1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNz
IFRleHR1cmUzRFJXIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBl
LCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIGRlcHRoIHNs
aWNlcywgZWFjaCBkZXB0aCBzbGljZSBpcyBhbiBhcnJheSBvZiByb3dzLCBhbmQgZWFjaCByb3cg
aXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUg
YSBzY2FsYXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0
aCwgaGVpZ2h0LCBhbmQgZGVwdGggbXVzdCBiZSBwb3dlcnMtb2YtdHdvLgorCisgICAgICAgIGxl
dCBkaW1lbnNpb24gPSAzOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdLmxlbmd0aDsK
KyAgICAgICAgbGV0IGhlaWdodCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGgg
PSBkYXRhLmxlbmd0aDsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSAxOworICAgICAgICBsZXQg
bGF5ZXJDb3VudCA9IDE7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwg
ZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQor
CisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0
YVswXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF0ubGVuZ3RoOworICAgIH0KKworICAgIGRlcHRo
QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGEubGVuZ3RoOwor
ICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuZGF0YVtrXVtqXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxh
eWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFba11b
al1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UZXh0dXJlT3BlcmF0aW9ucy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1RleHR1cmVPcGVyYXRpb25zLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwMTdjYzI5MDY2NWJmNTg2
YmMzY2YwZmI5ZWMwNGRkMTBjODJkMTgKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlT3BlcmF0aW9ucy5qcwpAQCAtMCwwICsxLDU1NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisidXNlIHN0cmljdCI7
CisKK2Z1bmN0aW9uIGRlcHRoQ29tcGFyZU9wZXJhdGlvbihkcmVmLCBkLCBjb21wYXJlRnVuY3Rp
b24pCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjMuNAorICAgIHN3aXRjaCAo
Y29tcGFyZUZ1bmN0aW9uKSB7CisgICAgICAgIGNhc2UgIm5ldmVyIjoKKyAgICAgICAgICAgIHJl
dHVybiAwOworICAgICAgICBjYXNlICJsZXNzIjoKKyAgICAgICAgICAgIHJldHVybiBkcmVmIDwg
ZCA/IDEgOiAwOworICAgICAgICBjYXNlICJlcXVhbCI6CisgICAgICAgICAgICByZXR1cm4gZHJl
ZiA9PSBkID8gMSA6IDA7CisgICAgICAgIGNhc2UgImxlc3NFcXVhbCI6CisgICAgICAgICAgICBy
ZXR1cm4gZHJlZiA8PSBkID8gMSA6IDA7CisgICAgICAgIGNhc2UgImdyZWF0ZXIiOgorICAgICAg
ICAgICAgcmV0dXJuIGRyZWYgPiBkID8gMSA6IDA7CisgICAgICAgIGNhc2UgIm5vdEVxdWFsIjoK
KyAgICAgICAgICAgIHJldHVybiBkcmVmICE9IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAiZ3Jl
YXRlckVxdWFsIjoKKyAgICAgICAgICAgIHJldHVybiBkcmVmID49IGQgPyAxIDogMDsKKyAgICAg
ICAgY2FzZSAiYWx3YXlzIjoKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGRlcHRoIGNvbXBhcmlzb24g
ZnVuY3Rpb24iKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGNvbnZlcnNpb25Ub1JHQkEodmFsdWUp
Cit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjMuNQorICAgIGlmICh2YWx1ZSBp
bnN0YW5jZW9mIEFycmF5KSB7CisgICAgICAgIGxldCByZXN1bHQgPSBbXTsKKyAgICAgICAgZm9y
IChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHJlc3VsdC5w
dXNoKHZhbHVlW2ldKTsKKyAgICAgICAgd2hpbGUgKHJlc3VsdC5sZW5ndGggIT0gNCkKKyAgICAg
ICAgICAgIHJlc3VsdC5wdXNoKHJlc3VsdC5sZW5ndGggPT0gMyA/IDEgOiAwKTsKKyAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICB9IGVsc2UKKyAgICAgICAgcmV0dXJuIFt2YWx1ZSwgMCwgMCwg
MV07Cit9CisKK2Z1bmN0aW9uIHByb2plY3Rpb25PcGVyYXRpb24ocywgdCwgciwgZHJlZiwgcSkK
K3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi4xCisgICAgcmV0dXJuIFtzIC8g
cSwgdCAvIHEsIHIgLyBxLCBkcmVmICE9IHVuZGVmaW5lZCA/IGRyZWYgLyBxIDogdW5kZWZpbmVk
XTsKK30KKworZnVuY3Rpb24gY3ViZU1hcEZhY2VTZWxlY3Rpb24ocywgdCwgciwgcGFydGlhbFJ4
V2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUnlXaXRoUmVz
cGVjdFRvWCwgcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSeldpdGhSZXNwZWN0VG9Y
LCBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rp
b24gMTUuNi40CisgICAgbGV0IHJ4ID0gczsKKyAgICBsZXQgcnkgPSB0OworICAgIGxldCByeiA9
IHI7CisgICAgbGV0IHdpbm5lciA9IDA7CisgICAgaWYgKE1hdGguYWJzKHJ6KSA+PSBNYXRoLmFi
cyhyeSkgJiYgTWF0aC5hYnMocnopID49IE1hdGguYWJzKHJ4KSkKKyAgICAgICAgd2lubmVyID0g
MjsKKyAgICBlbHNlIGlmIChNYXRoLmFicyhyeSkgPj0gTWF0aC5hYnMocngpICYmIE1hdGguYWJz
KHJ5KSA+PSBNYXRoLmFicyhyeikpCisgICAgICAgIHdpbm5lciA9IDE7CisKKyAgICBsZXQgbGF5
ZXJOdW1iZXI7CisgICAgbGV0IHNjOworICAgIGxldCB0YzsKKyAgICBsZXQgcmM7CisgICAgbGV0
IHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YOworICAgIGxldCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRv
WTsKKyAgICBsZXQgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1g7CisgICAgbGV0IHBhcnRpYWxUY1dp
dGhSZXNwZWN0VG9ZOworICAgIGxldCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWDsKKyAgICBsZXQg
cGFydGlhbFJjV2l0aFJlc3BlY3RUb1k7CisgICAgaWYgKHdpbm5lciA9PSAwICYmIHJ4ID49IDAp
IHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSAwOworICAgICAgICBzYyA9IC1yejsKKyAgICAgICAg
dGMgPSAtcnk7CisgICAgICAgIHJjID0gcng7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0
VG9YID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVz
cGVjdFRvWSA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0
aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxU
Y1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0
aWFsUmNXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBw
YXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgIH0g
ZWxzZSBpZiAod2lubmVyID09IDApIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSAxOworICAgICAg
ICBzYyA9IHJ6OworICAgICAgICB0YyA9IC1yeTsKKyAgICAgICAgcmMgPSByeDsKKyAgICAgICAg
cGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAg
ICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAg
ICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7
CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0
VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnhXaXRoUmVz
cGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ4V2l0
aFJlc3BlY3RUb1k7CisgICAgfSBlbHNlIGlmICh3aW5uZXIgPT0gMSAmJiByeSA+PSAwKSB7Cisg
ICAgICAgIGxheWVyTnVtYmVyID0gMjsKKyAgICAgICAgc2MgPSByeDsKKyAgICAgICAgdGMgPSAt
cno7CisgICAgICAgIHJjID0gcnk7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0g
cGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9Z
ID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0
VG9YID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNw
ZWN0VG9ZID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhS
ZXNwZWN0VG9YID0gcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dp
dGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgfSBlbHNlIGlmICh3
aW5uZXIgPT0gMSkgeworICAgICAgICBsYXllck51bWJlciA9IDM7CisgICAgICAgIHNjID0gcng7
CisgICAgICAgIHRjID0gLXJ6OworICAgICAgICByYyA9IHJ5OworICAgICAgICBwYXJ0aWFsU2NX
aXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFs
U2NXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0
aWFsVGNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAg
cGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAg
ICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOwor
ICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRv
WTsKKyAgICB9IGVsc2UgaWYgKHdpbm5lciA9PSAyICYmIHJ6ID49IDApIHsKKyAgICAgICAgbGF5
ZXJOdW1iZXIgPSA0OworICAgICAgICBzYyA9IHJ4OworICAgICAgICB0YyA9IC1yeTsKKyAgICAg
ICAgcmMgPSByejsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnhX
aXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFs
UnhXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFy
dGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0g
LXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRv
WCA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVj
dFRvWSA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxzZSB7CisgICAgICAgIGxh
eWVyTnVtYmVyID0gNTsKKyAgICAgICAgc2MgPSAtcng7CisgICAgICAgIHRjID0gLXJ5OworICAg
ICAgICByYyA9IHJ6OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFs
UnhXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSAtcGFy
dGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0g
LXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRv
WSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3Bl
Y3RUb1ggPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhS
ZXNwZWN0VG9ZID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgIH0KKyAgICByZXR1cm4g
W2xheWVyTnVtYmVyLCBzYywgdGMsIHJjLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCwgcGFydGlh
bFNjV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVGNXaXRo
UmVzcGVjdFRvWSwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSY1dpdGhSZXNwZWN0
VG9ZXQorfQorCitmdW5jdGlvbiBjdWJlTWFwQ29vcmRpbmF0ZVRyYW5zZm9ybWF0aW9uKHNjLCBy
YykKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi41CisgICAgbGV0IHNGYWNl
ID0gKDEgLyAyKSAqIHNjIC8gTWF0aC5hYnMocmMpICsgKDEgLyAyKTsKKyAgICBsZXQgdEZhY2Ug
PSAoMSAvIDIpICogdGMgLyBNYXRoLmFicyhyYykgKyAoMSAvIDIpOworICAgIHJldHVybiBbc0Zh
Y2UsIHRGYWNlXTsKK30KKworZnVuY3Rpb24gY3ViZU1hcERlcml2YXRpdmVUcmFuc2Zvcm1hdGlv
bihzYywgdGMsIHJjLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNjV2l0aFJlc3Bl
Y3RUb1ksIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSwg
cGFydGlhbFJjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZKQoreworICAg
IC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjYKKyAgICBsZXQgcGFydGlhbFNGYWNlV2l0
aFJlc3BlY3RUb1ggPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFsU2NXaXRoUmVz
cGVjdFRvWCAtIHNjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gpIC8gTWF0aC5wb3cocmMsIDIp
KTsKKyAgICBsZXQgcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1kgPSAoMSAvIDIpICogKChNYXRo
LmFicyhyYykgKiBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSAtIHNjICogcGFydGlhbFJjV2l0aFJl
c3BlY3RUb1kpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICBsZXQgcGFydGlhbFRGYWNlV2l0aFJl
c3BlY3RUb1ggPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFsVGNXaXRoUmVzcGVj
dFRvWCAtIHRjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gpIC8gTWF0aC5wb3cocmMsIDIpKTsK
KyAgICBsZXQgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1kgPSAoMSAvIDIpICogKChNYXRoLmFi
cyhyYykgKiBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSAtIHRjICogcGFydGlhbFJjV2l0aFJlc3Bl
Y3RUb1kpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICByZXR1cm4gW3BhcnRpYWxTRmFjZVdpdGhS
ZXNwZWN0VG9YLCBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRGYWNlV2l0aFJl
c3BlY3RUb1gsIHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0VG9ZXTsKK30KKworZnVuY3Rpb24gc2Nh
bGVGYWN0b3JPcGVyYXRpb24oZGV2aWNlTWF4QW5pc290cm9weSwgd2lkdGgsIGhlaWdodCwgZGVw
dGgsIHNhbXBsZXJNYXhBbmlzb3Ryb3B5LCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFs
VFdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU1dpdGhSZXNw
ZWN0VG9ZLCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9ZKQor
eworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjcKKyAgICBsZXQgbXV4ID0gTWF0
aC5hYnMocGFydGlhbFNXaXRoUmVzcGVjdFRvWCkgKiB3aWR0aDsKKyAgICBsZXQgbXZ4ID0gTWF0
aC5hYnMocGFydGlhbFRXaXRoUmVzcGVjdFRvWCkgKiBoZWlnaHQ7CisgICAgbGV0IG13eCA9IE1h
dGguYWJzKHBhcnRpYWxSV2l0aFJlc3BlY3RUb1gpICogZGVwdGg7CisgICAgbGV0IG11eSA9IE1h
dGguYWJzKHBhcnRpYWxTV2l0aFJlc3BlY3RUb1kpICogd2lkdGg7CisgICAgbGV0IG12eSA9IE1h
dGguYWJzKHBhcnRpYWxUV2l0aFJlc3BlY3RUb1kpICogaGVpZ2h0OworICAgIGxldCBtd3kgPSBN
YXRoLmFicyhwYXJ0aWFsUldpdGhSZXNwZWN0VG9ZKSAqIGRlcHRoOworCisgICAgLy8gSSBtYWRl
IHRoaXMgdXAuIFRoZSBmb3JtdWxhIGlzbid0IGxpc3RlZCBpbiB0aGUgc3BlYy4KKyAgICBsZXQg
ZnggPSBNYXRoLnNxcnQobXV4ICogbXV4ICsgbXZ4ICogbXZ4ICsgbXd4ICogbXd4KTsKKyAgICBs
ZXQgZnkgPSBNYXRoLnNxcnQobXV5ICogbXV5ICsgbXZ5ICogbXZ5ICsgbXd5ICogbXd5KTsKKwor
ICAgIGxldCByaG9YID0gZng7CisgICAgbGV0IHJob1kgPSBmeTsKKyAgICBsZXQgcmhvTWF4ID0g
TWF0aC5tYXgocmhvWCwgcmhvWSk7CisgICAgbGV0IHJob01pbiA9IE1hdGgubWluKHJob1gsIHJo
b1kpOworCisgICAgbGV0IG1heEFuaXNvID0gTWF0aC5taW4oc2FtcGxlck1heEFuaXNvdHJvcHks
IGRldmljZU1heEFuaXNvdHJvcHkpOworCisgICAgbGV0IGV0YTsKKyAgICBpZiAocmhvTWF4ID09
IDAgJiYgcmhvTWluID09IDApCisgICAgICAgIGV0YSA9IDE7CisgICAgZWxzZSBpZiAocmhvTWlu
ID09IDApCisgICAgICAgIGV0YSA9IG1heEFuaXNvOworICAgIGVsc2UKKyAgICAgICAgZXRhID0g
TWF0aC5taW4ocmhvTWF4IC8gcmhvTWluLCBtYXhBbmlzbyk7CisKKyAgICBsZXQgTiA9IE1hdGgu
Y2VpbChldGEpOworICAgIHJldHVybiBbcmhvTWF4LCByaG9NaW4sIGV0YSwgTl07Cit9CisKK2Z1
bmN0aW9uIGxldmVsT2ZEZXRhaWxPcGVyYXRpb24oZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMsIGxv
ZEZyb21GdW5jdGlvbk9wZXJhbmQsIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQsIGJpYXNGcm9t
RnVuY3Rpb25PcGVyYW5kLCBzYW1wbGVyQmlhcywgc2FtcGxlckxvZE1pbiwgc2FtcGxlckxvZE1h
eCwgcmhvTWF4LCBldGEpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuNwor
ICAgIGlmIChiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCA9PSB1bmRlZmluZWQpCisgICAgICAgIGJp
YXNGcm9tRnVuY3Rpb25PcGVyYW5kID0gMDsKKworICAgIGxldCBsYW1iZGFCYXNlID0gbG9kRnJv
bUZ1bmN0aW9uT3BlcmFuZCAhPSB1bmRlZmluZWQgPyBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kIDog
TWF0aC5sb2cyKHJob01heCAvIGV0YSk7CisgICAgbGV0IGxhbWJkYVByaW1lID0gbGFtYmRhQmFz
ZSArIE1hdGgubWluKE1hdGgubWF4KHNhbXBsZXJCaWFzICsgYmlhc0Zyb21GdW5jdGlvbk9wZXJh
bmQsIC1kZXZpY2VNYXhTYW1wbGVyTG9kQmlhcyksIGRldmljZU1heFNhbXBsZXJMb2RCaWFzKTsK
KyAgICBsZXQgbG9kTWluID0gTWF0aC5tYXgoc2FtcGxlckxvZE1pbiwgbG9kTWluRnJvbUZ1bmN0
aW9uT3BlcmFuZCk7CisgICAgbGV0IGxvZE1heCA9IHNhbXBsZXJMb2RNYXg7CisgICAgbGV0IGxh
bWJkYTsKKyAgICBpZiAobGFtYmRhUHJpbWUgPiBsb2RNYXgpCisgICAgICAgIGxhbWJkYSA9IGxv
ZE1heDsKKyAgICBlbHNlIGlmIChsb2RNaW4gPD0gbGFtYmRhUHJpbWUgJiYgbGFtYmRhUHJpbWUg
PD0gbG9kTWF4KQorICAgICAgICBsYW1iZGEgPSBsYW1iZGFQcmltZTsKKyAgICBlbHNlIGlmIChs
YW1iZGFQcmltZSA8IGxvZE1pbikKKyAgICAgICAgbGFtYmRhID0gbG9kTWluOworICAgIGVsc2UK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJsb2RNaW4gPj0gbG9kTWF4Iik7CisgICAgcmV0dXJu
IGxhbWJkYTsKK30KKworZnVuY3Rpb24gaW1hZ2VMZXZlbFNlbGVjdGlvbihiYXNlTWlwTGV2ZWws
IGxldmVsQ291bnQsIG1pcG1hcE1vZGUsIGxhbWJkYSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgz
IHNlY3Rpb24gMTUuNi43CisgICAgZnVuY3Rpb24gbmVhcmVzdChkUHJpbWUpCisgICAgeworICAg
ICAgICByZXR1cm4gTWF0aC5jZWlsKGRQcmltZSArIDAuNSkgLSAxOworICAgIH0KKworICAgIGxl
dCBxID0gbGV2ZWxDb3VudCAtIDE7CisgICAgbGV0IGRQcmltZSA9IGJhc2VNaXBMZXZlbCArIE1h
dGgubWluKE1hdGgubWF4KGxhbWJkYSwgMCksIHEpOworICAgIGxldCBkbDsKKyAgICBpZiAobWlw
bWFwTW9kZSA9PSAibmVhcmVzdCIpCisgICAgICAgIGRsID0gbmVhcmVzdChkUHJpbWUpOworICAg
IGVsc2UKKyAgICAgICAgZGwgPSBkUHJpbWU7CisgICAgaWYgKG1pcG1hcE1vZGUgPT0gIm5lYXJl
c3QiKQorICAgICAgICByZXR1cm4gZGw7CisgICAgZWxzZSB7CisgICAgICAgIGxldCBkSGkgPSBN
YXRoLmZsb29yKGRsKTsKKyAgICAgICAgbGV0IGRMb3cgPSBNYXRoLm1pbihkSGkgKyAxLCBxKTsK
KyAgICAgICAgbGV0IGRlbHRhID0gZGwgLSBkSGk7CisgICAgICAgIHJldHVybiBbZEhpLCBkTG93
LCBkZWx0YV07CisgICAgfQorfQorCitmdW5jdGlvbiBzdHJxYVRvVVZXQVRyYW5zZm9ybWF0aW9u
KHMsIHQsIHIsIHdpZHRoLCBoZWlnaHQsIGRlcHRoKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMg
c2VjdGlvbiAxNS42LjgKKyAgICBsZXQgdSA9IHMgKiB3aWR0aDsKKyAgICBsZXQgdiA9IHQgKiBo
ZWlnaHQ7CisgICAgbGV0IHcgPSByICogZGVwdGg7CisgICAgcmV0dXJuIFt1LCB2LCB3XTsKK30K
KworZnVuY3Rpb24gdXZ3YVRvSUpLTE5UcmFuc2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJTZWxlY3Rp
b24obGF5ZXJDb3VudCwgYmFzZUFycmF5TGF5ZXIsIGZpbHRlciwgdSwgdiwgdywgYSwgZGVsdGFJ
LCBkZWx0YUosIGRlbHRhSykKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNy4x
CisKKyAgICBpZiAoZGVsdGFJID09IHVuZGVmaW5lZCkKKyAgICAgICAgZGVsdGFJID0gMDsKKyAg
ICBpZiAoZGVsdGFKID09IHVuZGVmaW5lZCkKKyAgICAgICAgZGVsdGFKID0gMDsKKyAgICBpZiAo
ZGVsdGFLID09IHVuZGVmaW5lZCkKKyAgICAgICAgZGVsdGFLID0gMDsKKworICAgIGZ1bmN0aW9u
IHJuZShhKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoYSArIDAuNSk7CisgICAg
fQorICAgIGxldCBsID0gTWF0aC5taW4oTWF0aC5tYXgocm5lKGEpLCAwKSwgbGF5ZXJDb3VudCAt
IDEpICsgYmFzZUFycmF5TGF5ZXI7CisgICAgbGV0IGk7CisgICAgbGV0IGo7CisgICAgbGV0IGs7
CisgICAgaWYgKGZpbHRlciA9PSAibmVhcmVzdCIpIHsKKyAgICAgICAgaSA9IE1hdGguZmxvb3Io
dSk7CisgICAgICAgIGogPSBNYXRoLmZsb29yKHYpOworICAgICAgICBrID0gTWF0aC5mbG9vcih3
KTsKKyAgICAgICAgCisgICAgICAgIGkgKz0gZGVsdGFJOworICAgICAgICBqICs9IGRlbHRhSjsK
KyAgICAgICAgayArPSBkZWx0YUs7CisgICAgICAgIAorICAgICAgICByZXR1cm4gW2ksIGosIGss
IGxdOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChmaWx0ZXIgIT0gImxpbmVhciIpCisgICAg
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZmlsdGVyIik7CisgICAgICAgIGxldCBp
MCA9IE1hdGguZmxvb3IodSAtIDAuNSk7CisgICAgICAgIGxldCBpMSA9IGkwICsgMTsKKyAgICAg
ICAgbGV0IGowID0gTWF0aC5mbG9vcih2IC0gMC41KTsKKyAgICAgICAgbGV0IGoxID0gajAgKyAx
OworICAgICAgICBsZXQgazAgPSBNYXRoLmZsb29yKHcgLSAwLjUpOworICAgICAgICBsZXQgazEg
PSBrMCArIDE7CisgICAgICAgIGxldCBhbHBoYSA9ICh1IC0gMC41KSAtIGkwOworICAgICAgICBs
ZXQgYmV0YSA9ICh2IC0gMC41KSAtIGowOworICAgICAgICBsZXQgZ2FtbWEgPSAodyAtIDAuNSkg
LSBrMDsKKyAgICAgICAgCisgICAgICAgIGkwICs9IGRlbHRhSTsKKyAgICAgICAgaTEgKz0gZGVs
dGFJOworICAgICAgICBqMCArPSBkZWx0YUo7CisgICAgICAgIGoxICs9IGRlbHRhSjsKKyAgICAg
ICAgazAgKz0gZGVsdGFLOworICAgICAgICBrMSArPSBkZWx0YUs7CisgICAgICAgIAorICAgICAg
ICByZXR1cm4gW2kwLCBpMSwgajAsIGoxLCBrMCwgazEsIGwsIGFscGhhLCBiZXRhLCBnYW1tYV07
CisgICAgfQorfQorCitmdW5jdGlvbiBpbnRlZ2VyVGV4ZWxDb29yZGluYXRlT3BlcmF0aW9ucyhi
YXNlTWlwTGV2ZWwsIGxldmVsQ291bnQsIGxldmVsQmFzZSwgbG9kRnJvbUZ1bmN0aW9uT3BlcmFu
ZCkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOAorICAgIGxldCBkID0gbGV2
ZWxCYXNlICsgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZDsKKyAgICBpZiAoZCA8IGJhc2VNaXBMZXZl
bCB8fCBkID49IGJhc2VNaXBMZXZlbCArIGxldmVsQ291bnQpCisgICAgICAgIHRocm93IG5ldyBF
cnJvcigiU2VsZWN0ZWQgbGV2ZWwgZG9lcyBub3QgbGllIGluc2lkZSB0aGUgaW1hZ2UiKTsKKyAg
ICByZXR1cm4gZDsKK30KKworZnVuY3Rpb24gd3JhcHBpbmdPcGVyYXRpb24od2lkdGgsIGhlaWdo
dCwgZGVwdGgsIGFkZHJlc3NNb2RlVSwgYWRkcmVzc01vZGVWLCBhZGRyZXNzTW9kZVcsIGksIGos
IGspCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjkuMQorICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQgY3ViZSBtYXAgaGFuZGxpbmcKKyAgICBmdW5jdGlvbiB0cmFuc2Zvcm0oYWRk
cmVzc01vZGUsIHNpemUsIGkpCisgICAgeworICAgICAgICBmdW5jdGlvbiBtaXJyb3Iobikgewor
ICAgICAgICAgICAgaWYgKG4gPj0gMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gbjsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gLSgxICsgbik7CisgICAgICAgIH0K
KyAgICAgICAgc3dpdGNoIChhZGRyZXNzTW9kZSkgeworICAgICAgICAgICAgY2FzZSAiY2xhbXBU
b0VkZ2UiOgorICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1heChpLCAwKSwg
c2l6ZSAtIDEpOworICAgICAgICAgICAgY2FzZSAicmVwZWF0IjoKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gaSAlIHNpemU7CisgICAgICAgICAgICBjYXNlICJtaXJyb3JSZXBlYXQiOgorICAgICAg
ICAgICAgICAgIHJldHVybiAoc2l6ZSAtIDEpIC0gbWlycm9yKChpICUgKDIgKiBzaXplKSkgLSBz
aXplKTsKKyAgICAgICAgICAgIGNhc2UgImNsYW1wVG9Cb3JkZXJDb2xvciI6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGksIC0xKSwgc2l6ZSk7CisgICAgICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBhZGRy
ZXNzIG1vZGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gW3RyYW5zZm9ybShhZGRy
ZXNzTW9kZVUsIHdpZHRoLCBpKSwgdHJhbnNmb3JtKGFkZHJlc3NNb2RlViwgaGVpZ2h0LCBqKSwg
dHJhbnNmb3JtKGFkZHJlc3NNb2RlVywgZGVwdGgsIGspXTsKK30KKworZnVuY3Rpb24gdGV4ZWxH
YXRoZXJpbmcoKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS45LjIKKyAgICAv
LyBGSVhNRTogSW1wbGVtZW50IHRoaXMKKyAgICAvKmxldCB0YXVSID0gOworICAgIGxldCB0YXVH
ID0gOworICAgIGxldCB0YXVCID0gOworICAgIGxldCB0YXVBID0gOyovCit9CisKK2Z1bmN0aW9u
IHRleGVsRmlsdGVyaW5nKAorICAgIGRldmljZU1heEFuaXNvdHJvcHksCisgICAgZGV2aWNlTWF4
U2FtcGxlckxvZEJpYXMsCisgICAgYmFzZU1pcExldmVsLAorICAgIGJhc2VBcnJheUxheWVyLAor
ICAgIHRleHR1cmUsCisgICAgc2FtcGxlciwKKyAgICBzYW1wbGVyQmlhcywKKyAgICBzLCB0LCBy
LCBhLAorICAgIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUssCisgICAgbG9kRnJvbUZ1bmN0aW9uT3Bl
cmFuZCwKKyAgICBsb2RNaW5Gcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgIGJpYXNGcm9tRnVuY3Rp
b25PcGVyYW5kLAorICAgIGRkeCwgZGR5KQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlv
biAxNS45LjMKKworICAgIC8vIFRoZSBzcGVjIHVzZXMgZGlmZmVyZW50IG5hbWVzIHRoYW4gV2Vi
R1BVIGRvZXMuCisgICAgbGV0IGFkZHJlc3NNb2RlVSA9IHNhbXBsZXIuckFkZHJlc3NNb2RlOwor
ICAgIGxldCBhZGRyZXNzTW9kZVYgPSBzYW1wbGVyLnNBZGRyZXNzTW9kZTsKKyAgICBsZXQgYWRk
cmVzc01vZGVXID0gc2FtcGxlci50QWRkcmVzc01vZGU7CisKKyAgICAvLyBGSVhNRTogTWFrZSB0
aGlzIHdvcmsgd2l0aCBjdWJlbWFwcworICAgIGxldCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9YID0g
MDsKKyAgICBsZXQgcGFydGlhbFRXaXRoUmVzcGVjdFRvWCA9IDA7CisgICAgbGV0IHBhcnRpYWxS
V2l0aFJlc3BlY3RUb1ggPSAwOworICAgIGlmIChkZHggIT0gdW5kZWZpbmVkKSB7CisgICAgICAg
IHBhcnRpYWxTV2l0aFJlc3BlY3RUb1ggPSBkZHhbMF07CisgICAgICAgIHBhcnRpYWxUV2l0aFJl
c3BlY3RUb1ggPSBkZHhbMV07CisgICAgICAgIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1ggPSBkZHhb
Ml07CisgICAgfQorICAgIGxldCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9ZID0gMDsKKyAgICBsZXQg
cGFydGlhbFRXaXRoUmVzcGVjdFRvWSA9IDA7CisgICAgbGV0IHBhcnRpYWxSV2l0aFJlc3BlY3RU
b1kgPSAwOworICAgIGlmIChkZHkgIT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHBhcnRpYWxTV2l0
aFJlc3BlY3RUb1kgPSBkZHlbMF07CisgICAgICAgIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1kgPSBk
ZHlbMV07CisgICAgICAgIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kgPSBkZHlbMl07CisgICAgfQor
ICAgIGxldCBbcmhvTWF4LCByaG9NaW4sIGV0YSwgTl0gPSBzY2FsZUZhY3Rvck9wZXJhdGlvbihk
ZXZpY2VNYXhBbmlzb3Ryb3B5LCB0ZXh0dXJlLndpZHRoLCB0ZXh0dXJlLmhlaWdodCwgdGV4dHVy
ZS5kZXB0aCwgc2FtcGxlci5tYXhBbmlzb3Ryb3B5LCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9YLCBw
YXJ0aWFsVFdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU1dp
dGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUldpdGhSZXNwZWN0
VG9ZKTsKKyAgICBsZXQgbGFtYmRhID0gbGV2ZWxPZkRldGFpbE9wZXJhdGlvbihkZXZpY2VNYXhT
YW1wbGVyTG9kQmlhcywgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwgbG9kTWluRnJvbUZ1bmN0aW9u
T3BlcmFuZCwgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIHNhbXBsZXJCaWFzLCBzYW1wbGVyLmxv
ZE1pbkNsYW1wLCBzYW1wbGVyLmxvZE1heENsYW1wLCByaG9NYXgsIGV0YSk7CisKKyAgICBsZXQg
ZmlsdGVyOworICAgIGlmIChsYW1iZGEgPD0gMCkKKyAgICAgICAgZmlsdGVyID0gc2FtcGxlci5t
YWdGaWx0ZXI7CisgICAgZWxzZQorICAgICAgICBmaWx0ZXIgPSBzYW1wbGVyLm1pbkZpbHRlcjsK
KworICAgIGZ1bmN0aW9uIHJlZHVjZSguLi52YWx1ZXMpCisgICAgeworICAgICAgICBpZiAodmFs
dWVzLmxlbmd0aCAlIDIgIT0gMCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRG9uJ3Qg
aGF2ZSBhIHdlaWdodCBjb3JyZXNwb25kaW5nIHRvIGVhY2ggdmFsdWUiKTsKKyAgICAgICAgaWYg
KHZhbHVlcy5sZW5ndGggPCAyKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJEb24ndCBo
YXZlIGVub3VnaCB0aGluZ3MgdG8gY2FsY3VsYXRlIGFuIGF2ZXJhZ2UiKTsKKyAgICAgICAgbGV0
IHN1bTsKKyAgICAgICAgaWYgKHZhbHVlc1sxXSBpbnN0YW5jZW9mIEFycmF5KSB7CisgICAgICAg
ICAgICBzdW0gPSBbXTsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzWzFd
Lmxlbmd0aDsgKytpKQorICAgICAgICAgICAgICAgIHN1bS5wdXNoKDApOworICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgIHN1bSA9IDA7CisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFs
dWVzLmxlbmd0aCAvIDI7ICsraSkgeworICAgICAgICAgICAgbGV0IHdlaWdodCA9IHZhbHVlc1sy
ICogaV07CisgICAgICAgICAgICBsZXQgY29sb3IgPSB2YWx1ZXNbMiAqIGkgKyAxXTsKKyAgICAg
ICAgICAgIGlmIChjb2xvciBpbnN0YW5jZW9mIEFycmF5KSB7CisgICAgICAgICAgICAgICAgZm9y
IChsZXQgaSA9IDA7IGkgPCBjb2xvci5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICAgICAg
c3VtW2ldICs9IHdlaWdodCAqIGNvbG9yW2ldOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICAgICAgc3VtICs9IHdlaWdodCAqIGNvbG9yOworICAgICAgICB9CisgICAgICAgIHJldHVy
biBzdW07CisgICAgfQorCisgICAgZnVuY3Rpb24gY29tcHV0ZVRhdShsZXZlbCkKKyAgICB7Cisg
ICAgICAgIGZ1bmN0aW9uIGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsLCBpLCBq
LCBrKQorICAgICAgICB7CisgICAgICAgICAgICBmdW5jdGlvbiBzaG91bGRCZUJvcmRlcih2YWx1
ZSwgbWF4KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA8IC0xIHx8
IHZhbHVlID4gbWF4KQorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk91dC1v
Zi1ib3VuZHMgdGV4dHVyZSByZWFkIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09
IC0xIHx8IHZhbHVlID09IG1heDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGV0IFt3
cmFwcGVkSSwgd3JhcHBlZEosIHdyYXBwZWRLXSA9IHdyYXBwaW5nT3BlcmF0aW9uKHdpZHRoLCBo
ZWlnaHQsIGRlcHRoLCBhZGRyZXNzTW9kZVUsIGFkZHJlc3NNb2RlViwgYWRkcmVzc01vZGVXLCBp
LCBqLCBrKQorICAgICAgICAgICAgaWYgKHNob3VsZEJlQm9yZGVyKHdyYXBwZWRJLCB3aWR0aCkg
fHwgc2hvdWxkQmVCb3JkZXIod3JhcHBlZEosIGhlaWdodCkgfHwgc2hvdWxkQmVCb3JkZXIod3Jh
cHBlZEssIGRlcHRoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc2FtcGxlci5jYWxjdWxhdGVC
b3JkZXJDb2xvcih0ZXh0dXJlLmlubmVyVHlwZSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHRleHR1cmUuZWxlbWVudChsLCBsZXZlbCwgd3JhcHBlZEssIHdyYXBw
ZWRKLCB3cmFwcGVkSSk7CisgICAgICAgIH0KKworICAgICAgICBsZXQgW3UsIHYsIHddID0gc3Ry
cWFUb1VWV0FUcmFuc2Zvcm1hdGlvbihzLCB0LCByLCB0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZl
bCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxl
dmVsKSk7CisgICAgICAgIGlmIChmaWx0ZXIgPT0gIm5lYXJlc3QiKSB7CisgICAgICAgICAgICBs
ZXQgW2ksIGosIGssIGxdID0gdXZ3YVRvSUpLTE5UcmFuc2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJT
ZWxlY3Rpb24odGV4dHVyZS5sYXllckNvdW50LCBiYXNlQXJyYXlMYXllciwgZmlsdGVyLCB1LCB2
LCB3LCBhLCBkZWx0YUksIGRlbHRhSiwgZGVsdGFLKTsKKyAgICAgICAgICAgIHJldHVybiBhY2Nl
c3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZl
bChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaSwgaiwgayk7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoZmlsdGVyICE9ICJsaW5lYXIiKQorICAgICAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBmaWx0ZXIiKTsKKyAgICAgICAgICAg
IGxldCBbaTAsIGkxLCBqMCwgajEsIGswLCBrMSwgbCwgYWxwaGEsIGJldGEsIGdhbW1hXSA9IHV2
d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25BbmRBcnJheUxheWVyU2VsZWN0aW9uKHRleHR1cmUubGF5
ZXJDb3VudCwgYmFzZUFycmF5TGF5ZXIsIGZpbHRlciwgdSwgdiwgdywgYSwgZGVsdGFJLCBkZWx0
YUosIGRlbHRhSyk7CisgICAgICAgICAgICBsZXQgY29sb3IwMDAgPSBhY2Nlc3NDb2xvcih0ZXh0
dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRl
eHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTAsIGowLCBrMCk7CisgICAgICAgICAgICBs
ZXQgY29sb3IxMDAgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRl
eHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwg
bCwgaTEsIGowLCBrMCk7CisgICAgICAgICAgICBsZXQgY29sb3IwMTAgPSBhY2Nlc3NDb2xvcih0
ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCks
IHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTAsIGoxLCBrMCk7CisgICAgICAgICAg
ICBsZXQgY29sb3IxMTAgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCks
IHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVs
KSwgbCwgaTEsIGoxLCBrMCk7CisgICAgICAgICAgICBsZXQgY29sb3IwMDEgPSBhY2Nlc3NDb2xv
cih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZl
bCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTAsIGowLCBrMSk7CisgICAgICAg
ICAgICBsZXQgY29sb3IxMDEgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZl
bCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxl
dmVsKSwgbCwgaTEsIGowLCBrMSk7CisgICAgICAgICAgICBsZXQgY29sb3IwMTEgPSBhY2Nlc3ND
b2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChs
ZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTAsIGoxLCBrMSk7CisgICAg
ICAgICAgICBsZXQgY29sb3IxMTEgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChs
ZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVs
KGxldmVsKSwgbCwgaTEsIGoxLCBrMSk7CisgICAgICAgICAgICBzd2l0Y2ggKHRleHR1cmUuZGlt
ZW5zaW9uKSB7CisgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICBs
ZXQgY29sb3IwID0gY29sb3IwMTE7CisgICAgICAgICAgICAgICAgICAgIGxldCBjb2xvcjEgPSBj
b2xvcjExMTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZHVjZSgxIC0gYWxwaGEsIGNv
bG9yMCwgYWxwaGEsIGNvbG9yMSk7CisgICAgICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAg
ICAgICAgICAgICBsZXQgY29sb3IwMCA9IGNvbG9yMDAxOworICAgICAgICAgICAgICAgICAgICBs
ZXQgY29sb3IxMCA9IGNvbG9yMTAxOworICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IwMSA9
IGNvbG9yMDExOworICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IxMSA9IGNvbG9yMTExOwor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVkdWNlKCgxIC0gYWxwaGEpICogKDEgLSBiZXRh
KSwgY29sb3IwMCwgYWxwaGEgKiAoMSAtIGJldGEpLCBjb2xvcjEwLCAoMSAtIGFscGhhKSAqIGJl
dGEsIGNvbG9yMDEsIGFscGhhICogYmV0YSwgY29sb3IxMSk7CisgICAgICAgICAgICAgICAgY2Fz
ZSAzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVkdWNlKAorICAgICAgICAgICAgICAg
ICAgICAgICAgKDEgLSBhbHBoYSkgKiAoMSAtIGJldGEpICogKDEgLSBnYW1tYSksIGNvbG9yMDAw
LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxwaGEgKiAoMSAtIGJldGEpICogKDEgLSBnYW1t
YSksIGNvbG9yMTAwLAorICAgICAgICAgICAgICAgICAgICAgICAgKDEgLSBhbHBoYSkgKiBiZXRh
ICogKDEgLSBnYW1tYSksIGNvbG9yMDEwLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxwaGEg
KiBiZXRhICogKDEgLSBnYW1tYSksIGNvbG9yMTEwLAorICAgICAgICAgICAgICAgICAgICAgICAg
KDEgLSBhbHBoYSkgKiAoMSAtIGJldGEpICogZ2FtbWEsIGNvbG9yMDAxLAorICAgICAgICAgICAg
ICAgICAgICAgICAgYWxwaGEgKiAoMSAtIGJldGEpICogZ2FtbWEsIGNvbG9yMTAxLAorICAgICAg
ICAgICAgICAgICAgICAgICAgKDEgLSBhbHBoYSkgKiBiZXRhICogZ2FtbWEsIGNvbG9yMDExLAor
ICAgICAgICAgICAgICAgICAgICAgICAgYWxwaGEgKiBiZXRhICogZ2FtbWEsIGNvbG9yMTExKTsK
KyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIlVua25vd24gZGltZW5zaW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBpZiAoc2FtcGxlci5taXBtYXBGaWx0ZXIgPT0gIm5lYXJlc3QiKSB7CisgICAg
ICAgIGxldCBpbWFnZUxldmVsID0gaW1hZ2VMZXZlbFNlbGVjdGlvbihiYXNlTWlwTGV2ZWwsIHRl
eHR1cmUubGV2ZWxDb3VudCwgc2FtcGxlci5taXBtYXBGaWx0ZXIsIGxhbWJkYSk7CisgICAgICAg
IHJldHVybiBjb21wdXRlVGF1KGltYWdlTGV2ZWwpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlm
IChzYW1wbGVyLm1pcG1hcEZpbHRlciAhPSAibGluZWFyIikKKyAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigiVW5rbm93biBmaWx0ZXIiKTsKKyAgICAgICAgbGV0IFtkSGksIGRMb3csIGRlbHRh
XSA9IGltYWdlTGV2ZWxTZWxlY3Rpb24oYmFzZU1pcExldmVsLCB0ZXh0dXJlLmxldmVsQ291bnQs
IHNhbXBsZXIubWlwbWFwRmlsdGVyLCBsYW1iZGEpOworICAgICAgICByZXR1cm4gcmVkdWNlKDEg
LSBkZWx0YSwgY29tcHV0ZVRhdShkSGkpLCBkZWx0YSwgY29tcHV0ZVRhdShkTG93KSk7CisgICAg
fQorfQorCitmdW5jdGlvbiBzYW1wbGVUZXh0dXJlKHRleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBkZWx0YSwgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIGRkeCwgZGR5LCBsb2RGcm9tRnVuY3Rp
b25PcGVyYW5kLCBkcmVmKQoreworICAgIGxldCBzID0gbG9jYXRpb25bMF07CisgICAgbGV0IHQg
PSBsb2NhdGlvblsxXTsKKyAgICBsZXQgciA9IGxvY2F0aW9uWzJdOworICAgIGxldCBxID0gbG9j
YXRpb25bM107CisgICAgbGV0IGEgPSBsb2NhdGlvbls0XTsKKworICAgIGxldCBkZWx0YUkgPSB1
bmRlZmluZWQ7CisgICAgbGV0IGRlbHRhSiA9IHVuZGVmaW5lZDsKKyAgICBsZXQgZGVsdGFLID0g
dW5kZWZpbmVkOworICAgIGlmIChkZWx0YSAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgZGVsdGFJ
ID0gZGVsdGFbMF07CisgICAgICAgIGRlbHRhSiA9IGRlbHRhWzFdOworICAgICAgICBkZWx0YUsg
PSBkZWx0YVsyXTsKKyAgICB9CisKKyAgICBbcywgdCwgciwgZHJlZl0gPSBwcm9qZWN0aW9uT3Bl
cmF0aW9uKHMsIHQsIHIsIGRyZWYsIHEpOworICAgIGxldCByZXN1bHQgPSB0ZXhlbEZpbHRlcmlu
ZygKKyAgICAgICAgTnVtYmVyLk1BWF9WQUxVRSwKKyAgICAgICAgTnVtYmVyLk1BWF9WQUxVRSwK
KyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgdGV4dHVyZSwKKyAgICAgICAgc2FtcGxl
ciwKKyAgICAgICAgMCwKKyAgICAgICAgcywgdCwgciwgYSwKKyAgICAgICAgZGVsdGFJLCBkZWx0
YUosIGRlbHRhSywKKyAgICAgICAgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwKKyAgICAgICAgLU51
bWJlci5NQVhfVkFMVUUsCisgICAgICAgIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgICAg
ICBkZHgsIGRkeSk7CisgICAgaWYgKGRyZWYgIT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGlmIChy
ZXN1bHQgaW5zdGFuY2VvZiBBcnJheSkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRGVw
dGggY29tcGFyaXNvbiBub3Qgc3VwcG9ydGVkIG9uIG11bHRpY2hhbm5lbCB0ZXh0dXJlcyIpOwor
ICAgICAgICByZXN1bHQgPSBkZXB0aENvbXBhcmVPcGVyYXRpb24oZHJlZiwgcmVzdWx0LCBzYW1w
bGVyLmNvbXBhcmVGdW5jdGlvbik7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7CisgICAgLy8g
RklYTUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBkbyB3aXRoIGFuaXNvdHJvcHkKKyAgICAvLyBGSVhN
RTogRmlndXJlIG91dCBob3cgdG8gZG8gbXVsdGlzYW1wbGluZy4KKyAgICAvLyBGSVhNRTogQ2Fz
dCB0aGUgcmVzdWx0IGJhY2sgdG8gdGhlIGNvcnJlY3QgdHlwZS4KK30KZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCmluZGV4IDY1YTg2NDExYjNlNzcwYjU1N2I0MWFjYzdl
NDE0ZGVmNDI0MDMwMTMuLjQzYmU3YWNlMmNiMzc4YTViODFlZWFjNmFhZjFhMjlkZjgxYmJjMzYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKKysr
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbApAQCAtMTE1LDYgKzEx
NSw3IEBACiA8c2NyaXB0IHNyYz0iUmV0dXJuLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJS
ZXR1cm5DaGVja2VyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZXR1cm5FeGNlcHRpb24u
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlNhbXBsZXIuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IlN0YW5kYXJkTGlicmFyeS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3RhdGVt
ZW50Q2xvbmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTdHJ1Y3RMYXlvdXRCdWlsZGVy
LmpzIj48L3NjcmlwdD4KQEAgLTEyNyw2ICsxMjgsOCBAQAogPHNjcmlwdCBzcmM9IlN5bnRoZXNp
emVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3lu
dGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZlci5q
cyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348724</attachid>
            <date>2018-09-01 19:36:01 -0700</date>
            <delta_ts>2018-09-01 22:28:46 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188940-20180901193600.patch</filename>
            <type>text/plain</type>
            <size>261510</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTc5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2Q4OThkNDE0Y2U2OGY4MWEyM2UzYmQyMTU2Zjc1ZDNl
MjMwZTkzOC4uMTBkZjgxMTUzMDMyZWM5NDI0MmNmMTZiZGMxZGY4NDdjZTRhMTRkMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
OSBAQAorMjAxOC0wOC0zMSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRleHR1cmUgdHlwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNp
Y3MuanM6CisgICAgICAgIChJbnRyaW5zaWNzLik6CisgICAgICAgIChJbnRyaW5zaWNzLmNoZWNr
RmFsc2UpOgorICAgICAgICAoSW50cmluc2ljcy5ib3hWZWN0b3IpOgorICAgICAgICAoSW50cmlu
c2ljcy51bmJveFZlY3Rvcik6CisgICAgICAgIChJbnRyaW5zaWNzKToKKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qczoKKyAgICAgICAgKGxldC5zdGFuZGFyZExpYnJh
cnkpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAobWFrZVNhbXBs
ZXIpOgorICAgICAgICAobWFrZTFEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMURUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMkRUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTNEVGV4dHVyZSk6CisgICAgICAgIChtYWtlVGV4dHVyZUN1YmUp
OgorICAgICAgICAobWFrZVJXMURUZXh0dXJlKToKKyAgICAgICAgKG1ha2VSVzFEVGV4dHVyZUFy
cmF5KToKKyAgICAgICAgKG1ha2VSVzJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlUlcyRFRleHR1
cmVBcnJheSk6CisgICAgICAgIChtYWtlUlczRFRleHR1cmUpOgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1RleHR1cmUuanM6IEFkZGVkLgorICAgICAgICAoVGV4dHVyZSk6Cisg
ICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQgZGltZW5zaW9uKToKKyAgICAgICAgKFRleHR1
cmUucHJvdG90eXBlLmdldCB3aWR0aCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aGVpZ2h0KToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkZXB0aCk6CisgICAgICAg
IChUZXh0dXJlLnByb3RvdHlwZS5nZXQgbGV2ZWxDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnBy
b3RvdHlwZS5nZXQgbGF5ZXJDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aW5uZXJUeXBlKToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkYXRhKToKKyAgICAg
ICAgKFRleHR1cmUucHJvdG90eXBlLmVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUu
cHJvdG90eXBlLnNldEVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUxRCk6CisgICAg
ICAgIChUZXh0dXJlMUQucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJl
MUQucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlw
ZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlwZS5lbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUxRC5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0
dXJlMURBcnJheSk6CisgICAgICAgIChUZXh0dXJlMURBcnJheS5wcm90b3R5cGUud2lkdGhBdExl
dmVsKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToK
KyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTFEQXJyYXkucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTFE
QXJyYXkucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEKToKKyAgICAg
ICAgKFRleHR1cmUyRC5wcm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUy
RC5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBl
LmRlcHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBlLmVsZW1lbnQpOgor
ICAgICAgICAoVGV4dHVyZTJELnByb3RvdHlwZS5zZXRFbGVtZW50KToKKyAgICAgICAgKFRleHR1
cmUyREFycmF5KToKKyAgICAgICAgKFRleHR1cmUyREFycmF5LnByb3RvdHlwZS53aWR0aEF0TGV2
ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgor
ICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMkRBcnJheS5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMkRB
cnJheS5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlM0QpOgorICAgICAg
ICAoVGV4dHVyZTNELnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTNE
LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUuZWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0QucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVy
ZUN1YmUpOgorICAgICAgICAoVGV4dHVyZUN1YmUucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6Cisg
ICAgICAgIChUZXh0dXJlQ3ViZS5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlQ3ViZS5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmVDdWJl
LnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmVDdWJlLnByb3RvdHlwZS5zZXRF
bGVtZW50KToKKyAgICAgICAgKFRleHR1cmUxRFJXKToKKyAgICAgICAgKFRleHR1cmUxRFJXLnBy
b3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmhl
aWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmRlcHRoQXRMZXZl
bCk6CisgICAgICAgIChUZXh0dXJlMURSVy5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChU
ZXh0dXJlMURSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMURBcnJh
eVJXKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6
CisgICAgICAgIChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAg
ICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUx
REFycmF5UlcucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEUlcpOgor
ICAgICAgICAoVGV4dHVyZTJEUlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlMkRSVy5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkRS
Vy5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlw
ZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlwZS5zZXRFbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUyREFycmF5UlcpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5w
cm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90
eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90eXBlLmVsZW1l
bnQpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0RSVyk6CisgICAgICAgIChUZXh0dXJlM0RSVy5wcm90b3R5cGUud2lk
dGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVs
KToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTNEUlcucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTNEUlcu
cHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1RleHR1cmVPcGVyYXRpb25zLmpzOiBBZGRlZC4KKyAgICAgICAgKGRlcHRoQ29tcGFyZU9wZXJh
dGlvbik6CisgICAgICAgIChjb252ZXJzaW9uVG9SR0JBKToKKyAgICAgICAgKHByb2plY3Rpb25P
cGVyYXRpb24pOgorICAgICAgICAoY3ViZU1hcEZhY2VTZWxlY3Rpb24pOgorICAgICAgICAoY3Vi
ZU1hcENvb3JkaW5hdGVUcmFuc2Zvcm1hdGlvbik6CisgICAgICAgIChjdWJlTWFwRGVyaXZhdGl2
ZVRyYW5zZm9ybWF0aW9uKToKKyAgICAgICAgKHNjYWxlRmFjdG9yT3BlcmF0aW9uKToKKyAgICAg
ICAgKGxldmVsT2ZEZXRhaWxPcGVyYXRpb24pOgorICAgICAgICAobmVhcmVzdCk6CisgICAgICAg
IChpbWFnZUxldmVsU2VsZWN0aW9uKToKKyAgICAgICAgKHN0cnFhVG9VVldBVHJhbnNmb3JtYXRp
b24pOgorICAgICAgICAocm5lKToKKyAgICAgICAgKHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25B
bmRBcnJheUxheWVyU2VsZWN0aW9uKToKKyAgICAgICAgKGludGVnZXJUZXhlbENvb3JkaW5hdGVP
cGVyYXRpb25zKToKKyAgICAgICAgKG1pcnJvcik6CisgICAgICAgICh0cmFuc2Zvcm0pOgorICAg
ICAgICAod3JhcHBpbmdPcGVyYXRpb24pOgorICAgICAgICAodGV4ZWxHYXRoZXJpbmcpOgorICAg
ICAgICAoY29tcHV0ZVRhdS5yZWR1Y2UpOgorICAgICAgICAoY29tcHV0ZVRhdS5zaG91bGRCZUJv
cmRlcik6CisgICAgICAgIChjb21wdXRlVGF1LmFjY2Vzc0NvbG9yKToKKyAgICAgICAgKGNvbXB1
dGVUYXUpOgorICAgICAgICAodGV4ZWxGaWx0ZXJpbmcpOgorICAgICAgICAoc2FtcGxlVGV4dHVy
ZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAx
OC0wOC0zMSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgYWRkIGFuIGFsdGVybmF0ZSBlbWFpbCBmb3IgQWRpdHlhIEtlZXJ0aGkuCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKaW5kZXggOWMyYTM3MTUwYzFlOTc2YjkyNmNm
YmVlMjM0Mzc1MjBhOGRlNGE0Ny4uOTBmYzg0MTNhNjUxMjI0NDZiZjAxZmQ5NjdkZDY1MTM5YTBm
ODdlOSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCisr
KyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwpAQCAtNTEsNiArNTEsNyBA
QCBsb2FkKCJCdWlsdGluVmVjdG9yR2V0dGVyLmpzIik7CiBsb2FkKCJCdWlsdGluVmVjdG9yU2V0
dGVyLmpzIik7CiBsb2FkKCJDYWxsRXhwcmVzc2lvbi5qcyIpOwogbG9hZCgiQ2FsbEZ1bmN0aW9u
LmpzIik7Citsb2FkKCJDYXN0cy5qcyIpOwogbG9hZCgiQ2hlY2suanMiKTsKIGxvYWQoIkNoZWNr
TGl0ZXJhbFR5cGVzLmpzIik7CiBsb2FkKCJDaGVja0xvb3BzLmpzIik7CkBAIC0xMzgsNiArMTM5
LDcgQEAgbG9hZCgiUmVzb2x2ZVR5cGVEZWZzLmpzIik7CiBsb2FkKCJSZXR1cm4uanMiKTsKIGxv
YWQoIlJldHVybkNoZWNrZXIuanMiKTsKIGxvYWQoIlJldHVybkV4Y2VwdGlvbi5qcyIpOworbG9h
ZCgiU2FtcGxlci5qcyIpOwogbG9hZCgiU3RhbmRhcmRMaWJyYXJ5LmpzIik7CiBsb2FkKCJTdGF0
ZW1lbnRDbG9uZXIuanMiKTsKIGxvYWQoIlN0cnVjdExheW91dEJ1aWxkZXIuanMiKTsKQEAgLTE1
MCw2ICsxNTIsOCBAQCBsb2FkKCJTeW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzIik7CiBsb2Fk
KCJTeW50aGVzaXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiKTsKIGxvYWQoIlN5bnRoZXNp
emVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyIpOwogbG9hZCgiVGVybmFyeUV4cHJlc3Np
b24uanMiKTsKK2xvYWQoIlRleHR1cmUuanMiKTsKK2xvYWQoIlRleHR1cmVPcGVyYXRpb25zLmpz
Iik7CiBsb2FkKCJUcmFwU3RhdGVtZW50LmpzIik7CiBsb2FkKCJUeXBlRGVmLmpzIik7CiBsb2Fk
KCJUeXBlRGVmUmVzb2x2ZXIuanMiKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0Nhc3RzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FzdHMu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYWNiYjJlYTAyODUzNWI0NjcwNDIzMDk3ZjdhNWI1N2NhZjZiOGIxYwot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Nhc3RzLmpz
CkBAIC0wLDAgKzEsMTE1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisidXNlIHN0cmljdCI7CisKK2Z1bmN0aW9uIGNhc3QodHlwZWRBcnJheUNvbnN0cnVj
dG9yLCBudW1iZXIpCit7CisgICAgdmFyIGFycmF5ID0gbmV3IHR5cGVkQXJyYXlDb25zdHJ1Y3Rv
cigxKTsKKyAgICBhcnJheVswXSA9IG51bWJlcjsKKyAgICByZXR1cm4gYXJyYXlbMF07Cit9CisK
K2Z1bmN0aW9uIGJpdHdpc2VDYXN0KHR5cGVkQXJyYXlDb25zdHJ1Y3RvcjEsIHR5cGVkQXJyYXlD
b25zdHJ1Y3RvcjIsIHZhbHVlKQoreworICAgIGxldCB0eXBlZEFycmF5MSA9IG5ldyB0eXBlZEFy
cmF5Q29uc3RydWN0b3IxKDEpOworICAgIGxldCB0eXBlZEFycmF5MiA9IG5ldyB0eXBlZEFycmF5
Q29uc3RydWN0b3IyKHR5cGVkQXJyYXkxLmJ1ZmZlcik7CisgICAgdHlwZWRBcnJheTFbMF0gPSB2
YWx1ZTsKKyAgICByZXR1cm4gdHlwZWRBcnJheTJbMF07Cit9CisKK2Z1bmN0aW9uIGNhc3RUb1Vj
aGFyKG51bWJlcikKK3sKKyAgICByZXR1cm4gbnVtYmVyICYgMHhGRjsKK30KKworZnVuY3Rpb24g
Y2FzdFRvVXNob3J0KG51bWJlcikKK3sKKyAgICByZXR1cm4gbnVtYmVyICYgMHhGRkZGOworfQor
CitmdW5jdGlvbiBjYXN0VG9VaW50KG51bWJlcikKK3sKKyAgICByZXR1cm4gbnVtYmVyID4+PiAw
OworfQorCitmdW5jdGlvbiBjYXN0VG9DaGFyKG51bWJlcikKK3sKKyAgICByZXR1cm4gY2FzdChJ
bnQ4QXJyYXksIG51bWJlcik7Cit9CisKK2Z1bmN0aW9uIGNhc3RUb1Nob3J0KG51bWJlcikKK3sK
KyAgICByZXR1cm4gY2FzdChJbnQxNkFycmF5LCBudW1iZXIpOworfQorCitmdW5jdGlvbiBjYXN0
VG9JbnQobnVtYmVyKQoreworICAgIHJldHVybiBudW1iZXIgfCAwOworfQorCitmdW5jdGlvbiBj
YXN0VG9IYWxmKG51bWJlcikKK3sKKyAgICAvLyBGSVhNRTogTWFrZSB0aGlzIG1hdGggb2JleSBJ
RUVFIDc1NC4KKyAgICBpZiAoTnVtYmVyLmlzTmFOKG51bWJlcikpCisgICAgICAgcmV0dXJuIG51
bWJlcgorICAgIGlmIChudW1iZXIgPiA2NTUwNCkKKyAgICAgICAgcmV0dXJuIE51bWJlci5QT1NJ
VElWRV9JTkZJTklUWTsKKyAgICBpZiAobnVtYmVyIDwgLTY1NTA0KQorICAgICAgICByZXR1cm4g
TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOworICAgIGlmIChudW1iZXIgPiAwICYmIG51bWJlciA8
IE1hdGgucG93KDIsIC0yNCkpCisgICAgICAgIHJldHVybiAwOworICAgIGlmIChudW1iZXIgPCAw
ICYmIG51bWJlciA+IC1NYXRoLnBvdygyLCAtMjQpKQorICAgICAgICByZXR1cm4gLTA7CisgICAg
bGV0IGRvdWJsZUFycmF5ID0gbmV3IEZsb2F0NjRBcnJheSgxKTsKKyAgICBsZXQgdWludEFycmF5
ID0gbmV3IFVpbnQ4QXJyYXkoZG91YmxlQXJyYXkuYnVmZmVyKTsKKyAgICBkb3VibGVBcnJheVsw
XSA9IG51bWJlcjsKKyAgICBsZXQgc2lnbiA9IHVpbnRBcnJheVs3XSAmIDB4ODA7CisgICAgbGV0
IGV4cG9uZW50ID0gKCh1aW50QXJyYXlbN10gJiAweDdmKSA8PCA0KSB8ICgodWludEFycmF5WzZd
ICYgMHhmMCkgPj4+IDQpOworICAgIGxldCBzaWduaWZpY2FuZCA9ICgodWludEFycmF5WzZdICYg
MHgwZikgPDwgNikgfCAoKHVpbnRBcnJheVs1XSAmIDB4ZmMpID4+PiAyKTsKKworICAgIGlmICgo
ZXhwb25lbnQgLSAxMDIzKSA8IC0xNCkgeworICAgICAgICBleHBvbmVudCA9IDA7CisgICAgICAg
IHNpZ25pZmljYW5kID0gKE1hdGguYWJzKG51bWJlcikgKiBNYXRoLnBvdygyLCAyNCkpID4+PiAw
OworICAgICAgICBsZXQgdmFsdWUgPSBNYXRoLnBvdygyLCAtMTQpICogc2lnbmlmaWNhbmQgLyAx
MDI0OworICAgICAgICBpZiAoc2lnbiAhPSAwKQorICAgICAgICAgICAgdmFsdWUgKj0gLTE7Cisg
ICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICB9CisKKyAgICBkb3VibGVBcnJheVswXSA9IDA7CisK
KyAgICB1aW50QXJyYXlbN10gfD0gc2lnbjsKKyAgICB1aW50QXJyYXlbN10gfD0gKGV4cG9uZW50
ID4+PiA0KTsKKyAgICB1aW50QXJyYXlbNl0gfD0gKChleHBvbmVudCA8PCA0KSAmIDB4ZjApOwor
ICAgIHVpbnRBcnJheVs2XSB8PSAoc2lnbmlmaWNhbmQgPj4+IDYpOworICAgIHVpbnRBcnJheVs1
XSB8PSAoKHNpZ25pZmljYW5kIDw8IDIpICYgMHhmYyk7CisKKyAgICByZXR1cm4gZG91YmxlQXJy
YXlbMF07Cit9CisKK2Z1bmN0aW9uIGNhc3RUb0Zsb2F0KG51bWJlcikKK3sKKyAgICByZXR1cm4g
TWF0aC5mcm91bmQobnVtYmVyKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0ludHJpbnNpY3MuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9J
bnRyaW5zaWNzLmpzCmluZGV4IGIwMDQwNjdmNWViZmIzYThiNGJkOThlNDM3YThjMDc2OGJlMjZm
MWUuLjc1MzA3ODcxMjU0MmUyN2QzYmViZmZiZTk5MDkwMWQ1NGQ4MDA1ZGYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMKKysrIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcwpAQCAtNDgsNjEgKzQ4LDYgQEAg
Y2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQog
Ci0gICAgICAgIGZ1bmN0aW9uIGNhc3QodHlwZWRBcnJheUNvbnN0cnVjdG9yLCBudW1iZXIpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHZhciBhcnJheSA9IG5ldyB0eXBlZEFycmF5Q29uc3RydWN0
b3IoMSk7Ci0gICAgICAgICAgICBhcnJheVswXSA9IG51bWJlcjsKLSAgICAgICAgICAgIHJldHVy
biBhcnJheVswXTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIGJpdHdpc2VDYXN0KHR5
cGVkQXJyYXlDb25zdHJ1Y3RvcjEsIHR5cGVkQXJyYXlDb25zdHJ1Y3RvcjIsIHZhbHVlKQotICAg
ICAgICB7Ci0gICAgICAgICAgICBsZXQgdHlwZWRBcnJheTEgPSBuZXcgdHlwZWRBcnJheUNvbnN0
cnVjdG9yMSgxKTsKLSAgICAgICAgICAgIGxldCB0eXBlZEFycmF5MiA9IG5ldyB0eXBlZEFycmF5
Q29uc3RydWN0b3IyKHR5cGVkQXJyYXkxLmJ1ZmZlcik7Ci0gICAgICAgICAgICB0eXBlZEFycmF5
MVswXSA9IHZhbHVlOwotICAgICAgICAgICAgcmV0dXJuIHR5cGVkQXJyYXkyWzBdOwotICAgICAg
ICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gY2FzdFRvSGFsZihudW1iZXIpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgbWF0aCBvYmV5IElFRUUgNzU0LgotICAgICAg
ICAgICAgaWYgKE51bWJlci5pc05hTihudW1iZXIpKQotICAgICAgICAgICAgICAgcmV0dXJuIG51
bWJlcgotICAgICAgICAgICAgaWYgKG51bWJlciA+IDY1NTA0KQotICAgICAgICAgICAgICAgIHJl
dHVybiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7Ci0gICAgICAgICAgICBpZiAobnVtYmVyIDwg
LTY1NTA0KQotICAgICAgICAgICAgICAgIHJldHVybiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7
Ci0gICAgICAgICAgICBpZiAobnVtYmVyID4gMCAmJiBudW1iZXIgPCBNYXRoLnBvdygyLCAtMjQp
KQotICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgaWYgKG51bWJlciA8IDAg
JiYgbnVtYmVyID4gLU1hdGgucG93KDIsIC0yNCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIC0w
OwotICAgICAgICAgICAgbGV0IGRvdWJsZUFycmF5ID0gbmV3IEZsb2F0NjRBcnJheSgxKTsKLSAg
ICAgICAgICAgIGxldCB1aW50QXJyYXkgPSBuZXcgVWludDhBcnJheShkb3VibGVBcnJheS5idWZm
ZXIpOwotICAgICAgICAgICAgZG91YmxlQXJyYXlbMF0gPSBudW1iZXI7Ci0gICAgICAgICAgICBs
ZXQgc2lnbiA9IHVpbnRBcnJheVs3XSAmIDB4ODA7Ci0gICAgICAgICAgICBsZXQgZXhwb25lbnQg
PSAoKHVpbnRBcnJheVs3XSAmIDB4N2YpIDw8IDQpIHwgKCh1aW50QXJyYXlbNl0gJiAweGYwKSA+
Pj4gNCk7Ci0gICAgICAgICAgICBsZXQgc2lnbmlmaWNhbmQgPSAoKHVpbnRBcnJheVs2XSAmIDB4
MGYpIDw8IDYpIHwgKCh1aW50QXJyYXlbNV0gJiAweGZjKSA+Pj4gMik7Ci0KLSAgICAgICAgICAg
IGlmICgoZXhwb25lbnQgLSAxMDIzKSA8IC0xNCkgewotICAgICAgICAgICAgICAgIGV4cG9uZW50
ID0gMDsKLSAgICAgICAgICAgICAgICBzaWduaWZpY2FuZCA9IChNYXRoLmFicyhudW1iZXIpICog
TWF0aC5wb3coMiwgMjQpKSA+Pj4gMDsKLSAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBNYXRo
LnBvdygyLCAtMTQpICogc2lnbmlmaWNhbmQgLyAxMDI0OwotICAgICAgICAgICAgICAgIGlmIChz
aWduICE9IDApCi0gICAgICAgICAgICAgICAgICAgIHZhbHVlICo9IC0xOwotICAgICAgICAgICAg
ICAgIHJldHVybiB2YWx1ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZG91YmxlQXJy
YXlbMF0gPSAwOwotCi0gICAgICAgICAgICB1aW50QXJyYXlbN10gfD0gc2lnbjsKLSAgICAgICAg
ICAgIHVpbnRBcnJheVs3XSB8PSAoZXhwb25lbnQgPj4+IDQpOwotICAgICAgICAgICAgdWludEFy
cmF5WzZdIHw9ICgoZXhwb25lbnQgPDwgNCkgJiAweGYwKTsKLSAgICAgICAgICAgIHVpbnRBcnJh
eVs2XSB8PSAoc2lnbmlmaWNhbmQgPj4+IDYpOwotICAgICAgICAgICAgdWludEFycmF5WzVdIHw9
ICgoc2lnbmlmaWNhbmQgPDwgMikgJiAweGZjKTsKLQotICAgICAgICAgICAgcmV0dXJuIGRvdWJs
ZUFycmF5WzBdOwotICAgICAgICB9Ci0KICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAg
ICAgICJuYXRpdmUgdHlwZWRlZiB2b2lkIiwKICAgICAgICAgICAgIHR5cGUgPT4gewpAQCAtMTI4
LDE1ICs3MywxNSBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICB0eXBlLmlz
SW50ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKICAgICAg
ICAgICAgICAgICB0eXBlLmlzU2lnbmVkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgdHlwZS5j
YW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVlICYgMHhmZiwg
dmFsdWUpOworICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNC
aXR3aXNlRXF1aXZhbGVudChjYXN0VG9VY2hhcih2YWx1ZSksIHZhbHVlKTsKICAgICAgICAgICAg
ICAgICB0eXBlLnNpemUgPSAxOwogICAgICAgICAgICAgICAgIHR5cGUuZGVmYXVsdFZhbHVlID0g
MDsKLSAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkg
PT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIHZhbHVlICYgMHhmZiwgdHlwZSk7Ci0gICAg
ICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+ICh2YWx1ZSArIDEpICYg
MHhmZjsKKyAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2luLCB2YWx1
ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3RUb1VjaGFyKHZhbHVlKSwgdHlw
ZSk7CisgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+IGNhc3RU
b1VjaGFyKHZhbHVlICsgMSk7CiAgICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNFcXVhbCA9IChh
LCBiKSA9PiBhID09PSBiOwogICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFs
dWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAg
ICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSAm
IDB4ZmY7Ci0gICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9
IHZhbHVlID0+IHZhbHVlICYgMHhmZjsKKyAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVl
RnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9VY2hhcih2YWx1ZSk7CisgICAgICAgICAg
ICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb1Vj
aGFyKHZhbHVlKTsKICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigp
IHsKICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhmZjsgKytpKQog
ICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVlOiBpLCBuYW1lOiBpfTsKQEAgLTE1
MiwxNSArOTcsMTUgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgIHR5cGUu
aXNJbnQgPSB0cnVlOwogICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKICAg
ICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgICB0
eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQodmFsdWUgJiAw
eGZmZmYsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1
ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KGNhc3RUb1VzaG9ydCh2YWx1ZSksIHZhbHVlKTsKICAg
ICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKICAgICAgICAgICAgICAgICAgdHlwZS5kZWZh
dWx0VmFsdWUgPSAwOwotICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3Jp
Z2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIHZhbHVlICYgMHhmZmZm
LCB0eXBlKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+
ICh2YWx1ZSArIDEpICYgMHhmZmZmOworICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVy
YWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3RU
b1VzaG9ydCh2YWx1ZSksIHR5cGUpOworICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZh
bHVlID0gdmFsdWUgPT4gY2FzdFRvVXNob3J0KHZhbHVlICsgMSk7CiAgICAgICAgICAgICAgICAg
IHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKICAgICAgICAgICAgICAgICAg
dHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNl
dChvZmZzZXQsIDApOwotICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExp
dGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmZmZjsKLSAgICAgICAgICAgICAgICAgdHlwZS5m
b3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlICYgMHhmZmZmOworICAg
ICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiBj
YXN0VG9Vc2hvcnQodmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJv
bVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvVXNob3J0KHZhbHVlKTsKICAgICAgICAgICAg
ICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7CiAgICAgICAgICAgICAgICAgICAg
ICBmb3IgKGxldCBpID0gMDsgaSA8PSAweGZmZmY7ICsraSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICB5aWVsZCB7dmFsdWU6IGksIG5hbWU6IGl9OwpAQCAtMTc1LDE1ICsxMjAsMTUgQEAgY2xh
c3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNJbnQgPSB0cnVlOwogICAg
ICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlw
ZS5pc1NpZ25lZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9
IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQodmFsdWUgPj4+IDAsIHZhbHVlKTsKKyAgICAg
ICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFs
ZW50KGNhc3RUb1VpbnQodmFsdWUpLCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuc2l6
ZSA9IDE7CiAgICAgICAgICAgICAgICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAg
ICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVy
YWwud2l0aFR5cGUob3JpZ2luLCB2YWx1ZSA+Pj4gMCwgdHlwZSk7Ci0gICAgICAgICAgICAgICAg
IHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiAodmFsdWUgKyAxKSA+Pj4gMDsKKyAgICAg
ICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExp
dGVyYWwud2l0aFR5cGUob3JpZ2luLCBjYXN0VG9VaW50KHZhbHVlKSwgdHlwZSk7CisgICAgICAg
ICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0VG9VaW50KHZhbHVl
ICsgMSk7CiAgICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9
PT0gYjsKICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZm
ZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOwotICAgICAgICAgICAgICAgICB0
eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSA+Pj4gMDsKLSAg
ICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+
IHZhbHVlID4+PiAwOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExp
dGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9VaW50KHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlw
ZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb1VpbnQodmFsdWUp
OwogICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsKICAgICAg
ICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmZmZmZmZmY7ICsraSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IGksIG5hbWU6IGl9OwpAQCAtMTk4
LDE4ICsxNDMsMTggQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgIHR5cGUu
aXNJbnQgPSB0cnVlOwogICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKICAg
ICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgIHR5
cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0KEludDhB
cnJheSwgdmFsdWUpLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50
ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0VG9DaGFyKHZhbHVlKSwgdmFsdWUp
OwogICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOwogICAgICAgICAgICAgICAgICB0eXBl
LmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9
IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2FzdChJbnQ4
QXJyYXksIHZhbHVlKSwgdHlwZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFs
dWUgPSB2YWx1ZSA9PiBjYXN0KEludDhBcnJheSwgdmFsdWUgKyAxKTsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0
aFR5cGUob3JpZ2luLCBjYXN0VG9DaGFyKHZhbHVlKSwgdHlwZSk7CisgICAgICAgICAgICAgICAg
IHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0VG9DaGFyKHZhbHVlICsgMSk7CiAg
ICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKICAg
ICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNl
dCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOwotICAgICAgICAgICAgICAgICB0eXBlLmZvcm1h
dFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0KEludDhBcnJheSwgdmFsdWUpOwot
ICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUg
PT4gY2FzdChJbnQ4QXJyYXksIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRW
YWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvQ2hhcih2YWx1ZSk7CisgICAgICAg
ICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0
VG9DaGFyKHZhbHVlKTsKICAgICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlv
biooKSB7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSAweGZmOyAr
K2kpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBjYXN0KEludDhBcnJh
eSwgaSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gY2FzdFRvQ2hhcihp
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IHZhbHVlLCBuYW1lOiB2
YWx1ZX07CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH07CkBAIC0y
MjMsMTggKzE2OCwxOCBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICAgdHlw
ZS5pc0ludCA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIgPSB0cnVlOwog
ICAgICAgICAgICAgICAgICB0eXBlLmlzU2lnbmVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAg
dHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KGNhc3QoSW50
MTZBcnJheSwgdmFsdWUpLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVz
ZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0VG9TaG9ydCh2YWx1ZSksIHZh
bHVlKTsKICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKICAgICAgICAgICAgICAgICAg
dHlwZS5kZWZhdWx0VmFsdWUgPSAwOwotICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVy
YWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3Qo
SW50MTZBcnJheSwgdmFsdWUpLCB0eXBlKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNz
b3JWYWx1ZSA9IHZhbHVlID0+IGNhc3QoSW50MTZBcnJheSwgdmFsdWUgKyAxKTsKKyAgICAgICAg
ICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVy
YWwud2l0aFR5cGUob3JpZ2luLCBjYXN0VG9TaG9ydCh2YWx1ZSksIHR5cGUpOworICAgICAgICAg
ICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdFRvU2hvcnQodmFsdWUg
KyAxKTsKICAgICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNFcXVhbCA9IChhLCBiKSA9PiBhID09
PSBiOwogICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZl
ciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7Ci0gICAgICAgICAgICAgICAgIHR5
cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3QoSW50MTZBcnJheSwg
dmFsdWUpOwotICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFs
ID0gdmFsdWUgPT4gY2FzdChJbnQxNkFycmF5LCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5
cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb1Nob3J0KHZhbHVl
KTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZh
bHVlID0+IGNhc3RUb1Nob3J0KHZhbHVlKTsKICAgICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1
ZXMgPSBmdW5jdGlvbiooKSB7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsg
aSA8PSAweGZmZmY7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9
IGNhc3QoSW50MTZBcnJheSwgaSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVl
ID0gY2FzdFRvU2hvcnQoaSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVl
OiB2YWx1ZSwgbmFtZTogdmFsdWV9OwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICB9OwpAQCAtMjQ4LDE4ICsxOTMsMTggQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAg
ICAgICAgICAgICAgIHR5cGUuaXNJbnQgPSB0cnVlOwogICAgICAgICAgICAgICAgICB0eXBlLmlz
TnVtYmVyID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IHRydWU7Ci0g
ICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1
aXZhbGVudCh2YWx1ZSB8IDAsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5jYW5SZXBy
ZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KGNhc3RUb0ludCh2YWx1ZSksIHZh
bHVlKTsKICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKICAgICAgICAgICAgICAgICAg
dHlwZS5kZWZhdWx0VmFsdWUgPSAwOwotICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVy
YWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIHZhbHVl
IHwgMCwgdHlwZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1
ZSA9PiAodmFsdWUgKyAxKSB8IDA7CisgICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJh
bCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2FzdFRv
SW50KHZhbHVlKSwgdHlwZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUg
PSB2YWx1ZSA9PiBjYXN0VG9JbnQodmFsdWUgKyAxKTsKICAgICAgICAgICAgICAgICAgdHlwZS52
YWx1ZXNFcXVhbCA9IChhLCBiKSA9PiBhID09PSBiOwogICAgICAgICAgICAgICAgICB0eXBlLnBv
cHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNl
dCwgMCk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9
IHZhbHVlID0+IHZhbHVlIHwgMDsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZy
b21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlIHwgMDsKKyAgICAgICAgICAgICAgICAgdHlw
ZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvSW50KHZhbHVlKTsK
KyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVl
ID0+IGNhc3RUb0ludCh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0g
ZnVuY3Rpb24qKCkgewogICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0g
MHhmZmZmZmZmZjsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0g
aSB8IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gY2FzdFRvSW50KGkp
OwogICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogdmFsdWUsIG5hbWU6IHZh
bHVlfTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfTsKQEAgLTI5
Miw3ICsyMzcsNyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICAgdHlwZS5w
b3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZz
ZXQsIDApOwogICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwg
PSB2YWx1ZSA9PiB2YWx1ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21V
aW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlOwotICAgICAgICAgICAgICAgICB0eXBlLmZvcm1h
dFZhbHVlRnJvbUZsb2F0TGl0ZXJhbCA9IHZhbHVlID0+IE1hdGguZnJvdW5kKHZhbHVlKTsKKyAg
ICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21GbG9hdExpdGVyYWwgPSB2YWx1ZSA9
PiBjYXN0VG9GbG9hdCh2YWx1ZSk7CiAgICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5f
bWFwLnNldCgKQEAgLTMzMCw3ICsyNzUsOCBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAg
ICAgICJuYXRpdmUgdHlwZWRlZiBzYW1wbGVyIiwKICAgICAgICAgICAgIHR5cGUgPT4gewogICAg
ICAgICAgICAgICAgIHRoaXMuc2FtcGxlciA9IHR5cGU7Ci0gICAgICAgICAgICAgICAgLy8gRklY
TUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBwdXQgaGVyZS4KKyAgICAgICAgICAgICAgICB0eXBlLnNp
emUgPSAxOworICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVm
ZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCB7fSk7CiAgICAgICAgICAgICB9KTsK
IAogICAgICAgICBmb3IgKGxldCB0ZXh0dXJlVHlwZSBvZiBbIlRleHR1cmUxRCIsICJSV1RleHR1
cmUxRCIsICJUZXh0dXJlMURBcnJheSIsICJSV1RleHR1cmUxREFycmF5IiwgIlRleHR1cmUyRCIs
ICJSV1RleHR1cmUyRCIsICJUZXh0dXJlMkRBcnJheSIsICJSV1RleHR1cmUyREFycmF5IiwgIlRl
eHR1cmUzRCIsICJSV1RleHR1cmUzRCIsICJUZXh0dXJlQ3ViZSJdKSB7CkBAIC0zMzksMTIgKzI4
NSwxNiBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0
eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gLAogICAgICAgICAgICAgICAg
ICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5
cGV9PCR7dHlwZUFyZ3VtZW50fT5gXSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICB0
eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1
bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIHt9KTsKICAg
ICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDI7IGkg
PD0gNDsgKytpKSB7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAg
ICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJn
dW1lbnR9JHtpfT5gLAogICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9
JHtpfT5gXSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0g
MTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVl
ID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwge30pOwogICAgICAgICAg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAt
MzU2LDYgKzMwNiw4IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmAsCiAgICAgICAg
ICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0
ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmBdID0gdHlwZTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnBvcHVs
YXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwg
e30pOwogICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpA
QCAtMzY0LDcgKzMxNiw3IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKICAgICAgICAgICAgICAgICBgbmF0aXZlIG9wZXJhdG9yIHVjaGFyKCR7cHJpbWl0
aXZlVHlwZX0pYCwKICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5sb2Fk
VmFsdWUoKSAmIDB4ZmYpOworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb1VjaGFyKHZhbHVlLmxvYWRWYWx1ZSgpKSk7
CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KIApAQCAtMzcyLDcgKzMyNCw3IEBAIGNs
YXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAg
ICAgICBgbmF0aXZlIG9wZXJhdG9yIHVzaG9ydCgke3ByaW1pdGl2ZVR5cGV9KWAsCiAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgJiAweGZmZmYpOwor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQ
dHIuYm94KGNhc3RUb1VzaG9ydCh2YWx1ZS5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgICAg
IH0pOwogICAgICAgICB9CiAKQEAgLTM4MCw3ICszMzIsNyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsK
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVy
YXRvciB1aW50KCR7cHJpbWl0aXZlVHlwZX0pYCwKICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
LSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBF
UHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdFRvVWludCh2YWx1
ZS5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKQEAgLTM4
OCw3ICszNDAsNyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCiAgICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciBjaGFyKCR7cHJpbWl0aXZlVHlw
ZX0pYCwKICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0KEludDhBcnJheSwg
dmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9DaGFyKHZhbHVlLmxvYWRWYWx1ZSgp
KSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KIApAQCAtMzk2LDcgKzM0OCw3IEBA
IGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAg
ICAgICAgICBgbmF0aXZlIG9wZXJhdG9yIHNob3J0KCR7cHJpbWl0aXZlVHlwZX0pYCwKICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0KEludDE2QXJyYXksIHZhbHVlLmxvYWRW
YWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3Zh
bHVlXSkgPT4gRVB0ci5ib3goY2FzdFRvU2hvcnQodmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAg
ICAgICAgICAgICB9KTsKICAgICAgICAgfQogCkBAIC00MjAsNyArMzcyLDcgQEAgY2xhc3MgSW50
cmluc2ljcyB7CiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgICAgIGBu
YXRpdmUgb3BlcmF0b3IgZmxvYXQoJHtwcmltaXRpdmVUeXBlfSlgLAogICAgICAgICAgICAgICAg
IGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2
YWx1ZV0pID0+IEVQdHIuYm94KE1hdGguZnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5i
b3goY2FzdFRvRmxvYXQodmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgICAgICB9KTsK
ICAgICAgICAgfQogCkBAIC00ODQsMjkyICs0MzYsMjkyIEBAIGNsYXNzIEludHJpbnNpY3Mgewog
ICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3ItKGludCkiLAogICAgICAgICAgICAgZnVu
YyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgoLXZhbHVlLmxvYWRWYWx1ZSgpKSB8IDAp
OworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQoLXZhbHVlLmxvYWRWYWx1
ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAg
ICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvci0oZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMg
PT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoLXZhbHVlLmxvYWRWYWx1
ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KC12YWx1ZS5s
b2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgK
ICAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yKyhpbnQsaW50KSIsCiAgICAgICAgICAg
ICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0
LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1
ZSgpICsgcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KGNhc3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgpICsgcmlnaHQubG9hZFZhbHVlKCkpKTsKICAg
ICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0
aXZlIGludCBvcGVyYXRvci0oaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAtIHJpZ2h0LmxvYWRW
YWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVm
dC5sb2FkVmFsdWUoKSAtIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAog
ICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3Iq
KGludCxpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKKyAg
ICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkgKiBy
aWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFw
LnNldCgKICAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yLyhpbnQsaW50KSIsCiAgICAg
ICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0Lmxv
YWRWYWx1ZSgpIC8gcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KGNhc3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9hZFZhbHVlKCkp
KTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAg
ICAibmF0aXZlIHVpbnQgb3BlcmF0b3IrKHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9
PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRd
KSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSArIHJp
Z2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNh
c3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAg
ICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSB1
aW50IG9wZXJhdG9yLSh1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFs
dWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxl
ZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAK
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRv
cioodWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpID4+PiAw
KTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWludChsZWZ0LmxvYWRWYWx1
ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3IvKHVpbnQsdWlu
dCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eCgobGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAg
ICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0
LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0
KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvcisoZmxvYXQsZmxvYXQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQobGVmdC5sb2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5s
b2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgK
ICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3ItKGZsb2F0LGZsb2F0KSIsCiAgICAg
ICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJv
dW5kKGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9h
ZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAg
ICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yKihmbG9hdCxmbG9hdCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
bGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3Vu
ZChsZWZ0LmxvYWRWYWx1ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRW
YWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAg
ICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvci8oZmxvYXQsZmxvYXQpIiwKICAgICAgICAg
ICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xl
ZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQo
bGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFs
dWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAg
ICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yJihpbnQsaW50KSIsCiAgICAgICAgICAgICBmdW5j
ID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdo
dF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICYg
cmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNh
c3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgpICYgcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAg
ICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGlu
dCBvcGVyYXRvcnwoaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSB8IHJpZ2h0LmxvYWRWYWx1ZSgp
KSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5sb2Fk
VmFsdWUoKSB8IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3JeKGludCxp
bnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goKGxlZnQubG9hZFZhbHVlKCkgXiByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkgXiByaWdodC5s
b2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgK
ICAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yfihpbnQpIiwKICAgICAgICAgICAgIGZ1
bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkg
PT4gRVB0ci5ib3goKH52YWx1ZS5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb0ludCh+dmFs
dWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcjw8KGludCx1aW50KSIsCiAgICAg
ICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0Lmxv
YWRWYWx1ZSgpIDw8IHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSA8PCByaWdodC5sb2FkVmFsdWUo
KSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAg
ICAgICJuYXRpdmUgaW50IG9wZXJhdG9yPj4oaW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMg
PT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0
XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgPj4g
cmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNh
c3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgpID4+IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAg
ICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSB1
aW50IG9wZXJhdG9yJih1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgJiByaWdodC5sb2FkVmFs
dWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxl
ZnQubG9hZFZhbHVlKCkgJiByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAK
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRv
cnwodWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIHwgcmlnaHQubG9hZFZhbHVlKCkpID4+PiAw
KTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWludChsZWZ0LmxvYWRWYWx1
ZSgpIHwgcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3JeKHVpbnQsdWlu
dCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eCgobGVmdC5sb2FkVmFsdWUoKSBeIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAg
ICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSBeIHJpZ2h0
LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0
KAogICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yfih1aW50KSIsCiAgICAgICAgICAg
ICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1
ZV0pID0+IEVQdHIuYm94KCh+dmFsdWUubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb1Vp
bnQofnZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlz
Ll9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yPDwodWludCx1aW50
KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KChsZWZ0LmxvYWRWYWx1ZSgpIDw8IHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAg
ICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSA8PCByaWdo
dC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKICAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcj4+KHVpbnQsdWludCkiLAogICAg
ICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5s
b2FkVmFsdWUoKSA+Pj4gcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goY2FzdFRvVWludChsZWZ0LmxvYWRWYWx1ZSgpID4+PiByaWdodC5sb2Fk
VmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAg
ICAgICAgICAgICJuYXRpdmUgZmxvYXQgY29zKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+
IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0g
ICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguY29zKHZhbHVlLmxv
YWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChN
YXRoLmNvcyh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAg
IHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IHNpbihmbG9hdCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3Vu
ZChNYXRoLnNpbih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5zaW4odmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAg
ICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBm
bG9hdCB0YW4oZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC50YW4odmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgudGFuKHZhbHVlLmxvYWRW
YWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAg
ICAgICAgICAgICJuYXRpdmUgZmxvYXQgYWNvcyhmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9
PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9Pgot
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmFjb3ModmFsdWUu
bG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0
KE1hdGguYWNvcyh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGFzaW4oZmxvYXQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQoTWF0aC5hc2luKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLmFzaW4odmFsdWUubG9hZFZhbHVlKCkpKSk7CiAg
ICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5h
dGl2ZSBmbG9hdCBhdGFuKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguYXRhbih2YWx1ZS5sb2FkVmFsdWUoKSkp
KTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5hdGFuKHZh
bHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFw
LnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgY29zaChmbG9hdCkiLAogICAgICAgICAg
ICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFs
dWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmNv
c2godmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNh
c3RUb0Zsb2F0KE1hdGguY29zaCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IHNp
bmgoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goTWF0aC5mcm91bmQoTWF0aC5zaW5oKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLnNpbmgodmFsdWUubG9hZFZhbHVl
KCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAg
ICAgICAgIm5hdGl2ZSBmbG9hdCB0YW5oKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsK
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgudGFuaCh2YWx1ZS5sb2Fk
VmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0
aC50YW5oKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAg
dGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgY2VpbChmbG9hdCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3Vu
ZChNYXRoLmNlaWwodmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguY2VpbCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAg
ICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZl
IGZsb2F0IGV4cChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmV4cCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAg
ICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5leHAodmFsdWUubG9h
ZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAog
ICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBmbG9vcihmbG9hdCkiLAogICAgICAgICAgICAgZnVu
YyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmZsb29yKHZh
bHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9G
bG9hdChNYXRoLmZsb29yKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAK
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgbG9nKGZs
b2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1h
dGguZnJvdW5kKE1hdGgubG9nKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAg
ICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLmxvZyh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsK
ICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAi
bmF0aXZlIGZsb2F0IHJvdW5kKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgucm91bmQodmFsdWUubG9hZFZhbHVl
KCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgucm91
bmQodmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlz
Ll9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBzcXJ0KGZsb2F0KSIsCiAgICAg
ICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1h
dGguc3FydCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goY2FzdFRvRmxvYXQoTWF0aC5zcXJ0KHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAg
ICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxv
YXQgdHJ1bmMoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC50cnVuYyh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAg
ICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC50cnVuYyh2YWx1ZS5s
b2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQo
CkBAIC03ODgsNyArNzQwLDcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAibmF0
aXZlIGZsb2F0IHBvdyhmbG9hdCxmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnBvdyhsZWZ0LmxvYWRW
YWx1ZSgpLCByaWdodC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goY2FzdFRvRmxvYXQoTWF0aC5wb3cobGVmdC5sb2FkVmFsdWUoKSwgcmlnaHQubG9hZFZhbHVl
KCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KApAQCAtODMy
LDcgKzc4NCw3IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgIm5hdGl2ZSBmbG9h
dCBhdGFuMihmbG9hdCxmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmF0YW4yKGxlZnQubG9hZFZhbHVl
KCksIHJpZ2h0LmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChj
YXN0VG9GbG9hdChNYXRoLmF0YW4yKGxlZnQubG9hZFZhbHVlKCksIHJpZ2h0LmxvYWRWYWx1ZSgp
KSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKQEAgLTkxNCw2
ICs4NjYsNzQyIEBAIGNsYXNzIEludHJpbnNpY3MgewogCiAgICAgICAgIGZvciAobGV0IHNldHRl
ciBvZiBCdWlsdGluTWF0cml4U2V0dGVyLmZ1bmN0aW9ucygpKQogICAgICAgICAgICAgdGhpcy5f
bWFwLnNldChzZXR0ZXIudG9TdHJpbmcoKSwgZnVuYyA9PiBzZXR0ZXIuaW5zdGFudGlhdGVJbXBs
ZW1lbnRhdGlvbihmdW5jKSk7CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tVbmRlZmluZWQob3Jp
Z2luLCBleHBsYW5hdGlvbiwgdmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh2YWx1
ZSA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltM
b2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIpOworICAgICAgICAgICAgcmV0dXJu
IHZhbHVlOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tGYWxzZShvcmlnaW4s
IGV4cGxhbmF0aW9uLCB2YWx1ZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHZhbHVlID09
IGZhbHNlKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbU3RvcmVdIiwg
IlRleHR1cmUgc3RvcmUgb3V0IG9mIGJvdW5kcyIpOworICAgICAgICB9CisKKyAgICAgICAgZnVu
Y3Rpb24gYm94VmVjdG9yKGEpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChhIGluc3RhbmNl
b2YgQXJyYXkpIHsKKyAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEVQdHIobmV3IEVC
dWZmZXIoYS5sZW5ndGgpLCAwKTsKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8
IGEubGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5zZXQoaSwgYVtpXSk7
CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChhKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIHVuYm94VmVjdG9yKGEsIGxlbmd0aCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYg
KGxlbmd0aCAhPSAiIikgeworICAgICAgICAgICAgICAgIGxlbmd0aCA9IE51bWJlci5wYXJzZUlu
dChsZW5ndGgpOworICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBbXTsKKyAgICAgICAgICAg
ICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICAgICAgICAgICAg
ICByZXN1bHQucHVzaChhLmdldChpKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBhLmxvYWRWYWx1ZSgp
OworICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgdHlwZSBvZiBbInVjaGFyIiwgInVzaG9y
dCIsICJ1aW50IiwgImNoYXIiLCAic2hvcnQiLCAiaW50IiwgImhhbGYiLCAiZmxvYXQiXSkgewor
ICAgICAgICAgICAgZm9yICh2YXIgbGVuZ3RoVmFyaWFibGUgb2YgW2BgLCBgMmAsIGAzYCwgYDRg
XSkgeworICAgICAgICAgICAgICAgIGxldCBsZW5ndGggPSBsZW5ndGhWYXJpYWJsZTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5sb2FkVmFsdWUoKSwgMCwgMCwgMSwgMF07CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRl
eHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3Ro
fT4sc2FtcGxlcixmbG9hdCBsb2NhdGlvbixpbnQgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmxv
YWRWYWx1ZSgpLCAwLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
ZGVsdGFBcnJheSA9IFtvZmZzZXQubG9hZFZhbHVlKCksIDAsIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4saW50MiBsb2Nh
dGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9u
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tV
bmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUu
bG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDEpLCAwLCAwLCBsb2Nh
dGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUxRDwke3R5cGV9JHts
ZW5ndGh9PixpbnQyIGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJU
ZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENo
ZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDEpLCAwLCAwLCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZzZXQu
bG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxRDwke3R5cGV9JHtsZW5n
dGh9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgTnVtYmVy
T2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1pcGxl
dmVsLCB3aWR0aCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwg
IlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxldmVs
Q291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMURBcnJheTwke3R5
cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCAw
LCAwLCAxLCBsb2NhdGlvbi5nZXQoMSldOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVy
LmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBT
YW1wbGUoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9j
YXRpb24saW50IG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIDAsIDAsIDEsIGxvY2F0
aW9uLmdldCgxKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkg
PSBbb2Zmc2V0LmxvYWRWYWx1ZSgpLCAwLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IExvYWQoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4saW50MyBsb2NhdGlvbilg
LAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmlu
ZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZh
bHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDAsIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTFEQXJy
YXk8JHt0eXBlfSR7bGVuZ3RofT4saW50MyBsb2NhdGlvbixpbnQgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVk
KCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1
ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgyKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAw
LCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZzZXQubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNp
b25zKFRleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWludCog
dGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBFbGVtZW50cyx1aW50KiB0aHJlYWQgTnVtYmVyT2ZM
ZXZlbHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1pcGxldmVs
LCB3aWR0aCwgZWxlbWVudHMsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3VudCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXREaW1lbnNp
b25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXll
ckNvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixm
bG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBs
b2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUyRDwke3R5cGV9
JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNl
dF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFts
b2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0Lmdl
dCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihz
YW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxv
Y2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVCaWFzKFRleHR1
cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBCaWFz
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25B
cnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRl
eHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVu
ZGVmaW5lZCwgYmlhcy5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVCaWFzKFRleHR1cmUyRDwke3R5
cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBCaWFzLGludDIgb2Zm
c2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgYmlhcywgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAx
LCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZz
ZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgYmlhcy5sb2FkVmFs
dWUoKSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSR7bGVuZ3RofSBTYW1wbGVHcmFkKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MiBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBERFkpYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeV0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHku
Z2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9y
KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwg
bG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGRkeEFycmF5LCBkZHlBcnJheSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4dHVy
ZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0MiBERFgs
ZmxvYXQyIEREWSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5LCBvZmZzZXRdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDAp
LCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5LmdldCgwKSwgZGR5LmdldCgxKSwg
MF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0
LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBs
ZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgZGR4
QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0g
U2FtcGxlTGV2ZWwoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxv
Y2F0aW9uLGZsb2F0IExPRClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
MCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihz
YW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxv
Y2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
bG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUxldmVs
KFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9h
dCBMT0QsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2QsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9u
LmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRh
QXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9h
ZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXks
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxvZC5sb2FkVmFsdWUoKSwgdW5kZWZp
bmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyRDwke3R5cGV9
JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNl
dF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBs
ZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEPCR7
dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
b2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9
PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
bihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4
dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zm
c2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0k
e2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJC
bHVlKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixp
bnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkQ8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00
IEdhdGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBs
b2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQo
VGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LGludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAi
VGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRD
aGVja2VkKDAsIGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5n
ZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9
PixpbnQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVy
ZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2Vk
KDAsIGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwg
bG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4
dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRo
LHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdo
dCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRl
eCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcg
ZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVp
Z2h0QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0
aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSks
IDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVu
Z3RofSBTYW1wbGUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2Nh
dGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVy
ZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBv
ZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxv
Y2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxv
Y2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJy
YXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZh
bHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSR7bGVuZ3RofSBTYW1wbGVCaWFzKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQs
IGJpYXMubG9hZFZhbHVlKCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlQmlhcyhUZXh0dXJlMkRBcnJheTwke3R5cGV9
JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzLGludDIgb2Zmc2V0
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgYmlhcywgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBs
b2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBs
b2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFy
cmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCBi
aWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7
bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZKWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9u
QXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9u
LmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2Rk
eC5nZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2Fk
VmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIGRkeEFycmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwg
MSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR4
QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCks
IG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
b3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRW
YWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIGRkeEFycmF5LCBk
ZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUxl
dmVsKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0
aW9uLGZsb2F0IExPRClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwg
MSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ym94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0g
U2FtcGxlTGV2ZWwoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24sZmxvYXQgTE9ELGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kLCBvZmZzZXRdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24u
Z2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zm
c2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVl
KCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIGxvZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1
cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyUmVkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7
bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1
cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00
IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxw
aGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xl
bmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9Pixp
bnQ0IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwg
bG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rv
cihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwg
dGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMyksIGxvY2F0
aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGludDQgbG9j
YXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0
IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24u
Z2V0KDMpLCBsb2NhdGlvbi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSArIG9mZnNldC5nZXQo
MSksIGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25z
KFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhy
ZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIEVsZW1lbnRzLHVpbnQq
IHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRzLCBudW1iZXJPZkxldmVs
c10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2Fk
VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZl
bC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0g
dGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5l
dyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50
IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVp
Z2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHRBdExldmVsKG1pcElE
KSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJP
ZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEp
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKwor
ICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Pixz
YW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSks
IGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIu
bG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNh
bXBsZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24s
aW50MyBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxv
Y2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRl
bHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgb2Zmc2V0LmdldCgyKV07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0
dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJy
YXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUzRDwke3R5cGV9JHts
ZW5ndGh9PixpbnQ0IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2Yg
Ym91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5n
ZXQoMyksIGxvY2F0aW9uLmdldCgyKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkp
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PixpbnQ0
IGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFk
IG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxv
Y2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIpICsgb2Zmc2V0LmdldCgyKSwgbG9jYXRpb24u
Z2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0LmdldCgwKSkp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlw
TGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFk
IERlcHRoLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBudW1i
ZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4
dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQg
PSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
bWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5v
bmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGVwdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmRlcHRoQXRMZXZl
bChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
bGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmVDdWJlPCR7
dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGN1YmVtYXAgc2FtcGxpbmcK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlhcylgLAorICAgICAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBjdWJlbWFwIHNhbXBsaW5n
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVHcmFkKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0MyBERFgsZmxvYXQzIEREWSlgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwg
ZGR5XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQg
Y3ViZW1hcCBzYW1wbGluZworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlTGV2ZWwoVGV4dHVyZUN1YmU8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
bG9kXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQg
Y3ViZW1hcCBzYW1wbGluZworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5n
dGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRl
eHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlQ3Vi
ZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyQWxwaGEoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlQ3ViZTwke3R5cGV9
JHtsZW5ndGh9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQg
SGVpZ2h0LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIG51bWJlck9mTGV2
ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxv
YWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxl
dmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXgubGF5
ZXJDb3VudCAhPSA2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkN1YmUgdGV4dHVyZSBkb2Vzbid0IGhhdmUgNiBmYWNlcyIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3VudCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25z
XSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRM
ZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxl
dmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
IHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiB0
aHJlYWQgV2lkdGgpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdp
ZHRoXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleHR1cmUubG9hZFZhbHVlKCkud2lkdGgpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERp
bWVuc2lvbnMoUldUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sZmxvYXQqIHRocmVhZCBXaWR0
aClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGhdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4dHVyZS5sb2FkVmFsdWUoKS53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9h
ZChSV1RleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixpbnQgbG9jYXRpb24pYCwKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0i
LCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1l
bnRDaGVja2VkKDAsIDAsIDAsIDAsIGxvY2F0aW9uLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUo
UldUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sJHt0eXBlfSR7bGVuZ3RofSx1aW50IGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9y
ZV0iLCAiVGV4dHVyZSB3cml0ZSBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5z
ZXRFbGVtZW50Q2hlY2tlZCgwLCAwLCAwLCAwLCBsb2NhdGlvbi5sb2FkVmFsdWUoKSwgdW5ib3hW
ZWN0b3IodmFsdWUsIGxlbmd0aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMURB
cnJheTwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEVs
ZW1lbnRzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwg
ZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1
cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0
ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMURBcnJheTwke3R5cGV9
JHtsZW5ndGh9PixmbG9hdCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBFbGVtZW50cylgLAor
ICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGVsZW1lbnRzXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1
ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwg
MSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3Ro
fT4saW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1
cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hW
ZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5k
cyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDEpLCAw
LCAwLCAwLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUxREFycmF5PCR7
dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0aH0sdWludDIgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0dXJl
IHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVj
a2VkKGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgMCwgbG9jYXRpb24uZ2V0KDApLCB1bmJveFZlY3Rv
cih2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUyRDwke3R5
cGV9JHtsZW5ndGh9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodClgLAor
ICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQg
R2V0RGltZW5zaW9ucyhSV1RleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixmbG9hdCogdGhyZWFk
IFdpZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwg
MSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVy
ZTJEPCR7dHlwZX0ke2xlbmd0aH0+LGludDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVy
ZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2Vk
KDAsIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUo
UldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sJHt0eXBlfSR7bGVuZ3RofSx1aW50MiBsb2Nh
dGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0ZhbHNlKCJbU3Rv
cmVdIiwgIlRleHR1cmUgd3JpdGUgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCku
c2V0RWxlbWVudENoZWNrZWQoMCwgMCwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQo
MCksIHVuYm94VmVjdG9yKHZhbHVlLCBsZW5ndGgpKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJX
VGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQq
IHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50c10pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTJEQXJyYXk8
JHt0eXBlfSR7bGVuZ3RofT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhyZWFkIEhlaWdo
dCxmbG9hdCogdGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50c10pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
bGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lndp
ZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7
bGVuZ3RofT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9m
IGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0
KDIpLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0b3Jl
KFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sJHt0eXBlfSR7bGVuZ3RofSx1aW50
MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZh
bHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0ZhbHNl
KCJbU3RvcmVdIiwgIlRleHR1cmUgd3JpdGUgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZh
bHVlKCkuc2V0RWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDIpLCAwLCAwLCBsb2NhdGlvbi5n
ZXQoMSksIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0b3IodmFsdWUsIGxlbmd0aCkpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2
b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sdWludCogdGhy
ZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIERlcHRoKWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFs
dWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aC5sb2FkVmFsdWUoKS5jb3B5
RnJvbShFUHRyLmJveCh0ZXguZGVwdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUzRDwke3R5
cGV9JHtsZW5ndGh9PixmbG9hdCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0LGZs
b2F0KiB0aHJlYWQgRGVwdGgpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHdpZHRoLCBoZWlnaHQsIGRlcHRoXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRlcHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5kZXB0aCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lk
dGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7
bGVuZ3RofSBMb2FkKFJXVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LGludDMgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZp
bmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRW
YWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIDAsIGxvY2F0aW9uLmdldCgyKSwgbG9jYXRpb24uZ2V0
KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUzRDwke3R5cGV9JHts
ZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBv
dXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tlZCgwLCAw
LCBsb2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApLCB1bmJv
eFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KIAog
ICAgIGFkZCh0aGluZykKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1NQSVJWLmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCmlu
ZGV4IDc4ZDAwOGY4MzVmOWU5YzIzNGVmMmRmNmQ2ZGVlYTNmNzQyNmNlNjUuLjFiMjZjZjJiMmU2
NTE1MjdhMTUyZWU4ZDkyZmYyNWJlZGE2MWQzMzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU1BJUlYuaHRtbApAQCAtMzQsNiArMzQsNyBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9
IkJ1aWx0aW5WZWN0b3JTZXR0ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDYWxs
RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNhbGxGdW5jdGlvbi5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IkNhc3RzLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iQ2hlY2suanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDaGVja0xp
dGVyYWxUeXBlcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNoZWNrTG9vcHMuanMi
Pjwvc2NyaXB0PgpAQCAtMTIxLDYgKzEyMiw3IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iUmV0
dXJuLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUmV0dXJuQ2hlY2tlci5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlJldHVybkV4Y2VwdGlvbi5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9IlNhbXBsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJT
dGFuZGFyZExpYnJhcnkuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJTdGF0ZW1lbnRD
bG9uZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJTdHJ1Y3RMYXlvdXRCdWlsZGVy
LmpzIj48L3NjcmlwdD4KQEAgLTEzMyw2ICsxMzUsOCBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9
IlN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IlN5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IlRlcm5hcnlFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iVGV4dHVyZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlRl
eHR1cmVPcGVyYXRpb25zLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVHJhcFN0YXRl
bWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU2FtcGxlci5qcyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NhbXBsZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWU3NzEzZGZjODFm
ODNjNTg0NzM2MjEyMTc1NjRmMzk1NzJiMTRiOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NhbXBsZXIuanMKQEAgLTAsMCArMSwxNjMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworInVzZSBzdHJpY3QiOworCitj
bGFzcyBTYW1wbGVyIHsKKyAgICBjb25zdHJ1Y3RvcihvcHRpb25zKQorICAgIHsKKyAgICAgICAg
aWYgKG9wdGlvbnMuckFkZHJlc3NNb2RlID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMu
X3JBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHRoaXMuX3JBZGRyZXNzTW9kZSA9IG9wdGlvbnMuckFkZHJlc3NNb2RlOworICAgICAgICBpZiAo
b3B0aW9ucy5zQWRkcmVzc01vZGUgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fc0Fk
ZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhp
cy5fc0FkZHJlc3NNb2RlID0gb3B0aW9ucy5zQWRkcmVzc01vZGU7CisgICAgICAgIGlmIChvcHRp
b25zLnRBZGRyZXNzTW9kZSA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl90QWRkcmVz
c01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl90
QWRkcmVzc01vZGUgPSBvcHRpb25zLnRBZGRyZXNzTW9kZTsKKyAgICAgICAgaWYgKG9wdGlvbnMu
bWluRmlsdGVyID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX21pbkZpbHRlciA9ICJu
ZWFyZXN0IjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fbWluRmlsdGVyID0gb3B0
aW9ucy5taW5GaWx0ZXI7CisgICAgICAgIGlmIChvcHRpb25zLm1hZ0ZpbHRlciA9PSB1bmRlZmlu
ZWQpCisgICAgICAgICAgICB0aGlzLl9tYWdGaWx0ZXIgPSAibmVhcmVzdCI7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHRoaXMuX21hZ0ZpbHRlciA9IG9wdGlvbnMubWFnRmlsdGVyOworICAg
ICAgICBpZiAob3B0aW9ucy5taXBtYXBGaWx0ZXIgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAg
dGhpcy5fbWlwbWFwRmlsdGVyID0gIm5lYXJlc3QiOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICB0aGlzLl9taXBtYXBGaWx0ZXIgPSBvcHRpb25zLm1pcG1hcEZpbHRlcjsKKyAgICAgICAgaWYg
KG9wdGlvbnMubG9kTWluQ2xhbXAgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fbG9k
TWluQ2xhbXAgPSAtTnVtYmVyLk1BWF9WQUxVRTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
dGhpcy5fbG9kTWluQ2xhbXAgPSBvcHRpb25zLmxvZE1pbkNsYW1wOworICAgICAgICBpZiAob3B0
aW9ucy5sb2RNYXhDbGFtcCA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9sb2RNYXhD
bGFtcCA9IE51bWJlci5NQVhfVkFMVUU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMu
X2xvZE1heENsYW1wID0gb3B0aW9ucy5sb2RNYXhDbGFtcDsKKyAgICAgICAgaWYgKG9wdGlvbnMu
bWF4QW5pc290cm9weSA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9tYXhBbmlzb3Ry
b3B5ID0gMTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fbWF4QW5pc290cm9weSA9
IG9wdGlvbnMubWF4QW5pc290cm9weTsKKyAgICAgICAgaWYgKG9wdGlvbnMuY29tcGFyZUZ1bmN0
aW9uID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX2NvbXBhcmVGdW5jdGlvbiA9ICJu
ZXZlciI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX2NvbXBhcmVGdW5jdGlvbiA9
IG9wdGlvbnMuY29tcGFyZUZ1bmN0aW9uOworICAgICAgICBpZiAob3B0aW9ucy5ib3JkZXJDb2xv
ciA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9ib3JkZXJDb2xvciA9ICJ0cmFuc3Bh
cmVudEJsYWNrIjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fYm9yZGVyQ29sb3Ig
PSBvcHRpb25zLmJvcmRlckNvbG9yOworICAgIH0KKyAgICAKKyAgICBnZXQgckFkZHJlc3NNb2Rl
KCkgeyByZXR1cm4gdGhpcy5fckFkZHJlc3NNb2RlOyB9CisgICAgZ2V0IHNBZGRyZXNzTW9kZSgp
IHsgcmV0dXJuIHRoaXMuX3NBZGRyZXNzTW9kZTsgfQorICAgIGdldCB0QWRkcmVzc01vZGUoKSB7
IHJldHVybiB0aGlzLl90QWRkcmVzc01vZGU7IH0KKyAgICBnZXQgbWluRmlsdGVyKCkgeyByZXR1
cm4gdGhpcy5fbWluRmlsdGVyOyB9CisgICAgZ2V0IG1hZ0ZpbHRlcigpIHsgcmV0dXJuIHRoaXMu
X21hZ0ZpbHRlcjsgfQorICAgIGdldCBtaXBtYXBGaWx0ZXIoKSB7IHJldHVybiB0aGlzLl9taXBt
YXBGaWx0ZXI7IH0KKyAgICBnZXQgbG9kTWluQ2xhbXAoKSB7IHJldHVybiB0aGlzLl9sb2RNaW5D
bGFtcDsgfQorICAgIGdldCBsb2RNYXhDbGFtcCgpIHsgcmV0dXJuIHRoaXMuX2xvZE1heENsYW1w
OyB9CisgICAgZ2V0IG1heEFuaXNvdHJvcHkoKSB7IHJldHVybiB0aGlzLl9tYXhBbmlzb3Ryb3B5
OyB9CisgICAgZ2V0IGNvbXBhcmVGdW5jdGlvbigpIHsgcmV0dXJuIHRoaXMuX2NvbXBhcmVGdW5j
dGlvbjsgfQorICAgIGdldCBib3JkZXJDb2xvcigpIHsgcmV0dXJuIHRoaXMuX2JvcmRlckNvbG9y
OyB9CisKKyAgICBjYWxjdWxhdGVCb3JkZXJDb2xvcihpbm5lclR5cGUpCisgICAgeworICAgICAg
ICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuMy4zCisgICAgICAgIGZ1bmN0aW9uIGNvbXB1
dGVWYWx1ZXMoKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGlubmVyVHlwZSkgeworICAgICAgICAg
ICAgICAgIGNhc2UgInVjaGFyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3Bh
cmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDB4RkZ9OworICAgICAg
ICAgICAgICAgIGNhc2UgInVzaG9ydCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJh
bnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdoaXRlOiAweEZGRkZ9Owor
ICAgICAgICAgICAgICAgIGNhc2UgInVpbnQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
e3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMHhGRkZG
RkZGRn07CisgICAgICAgICAgICAgICAgY2FzZSAiY2hhciI6CisgICAgICAgICAgICAgICAgICAg
IHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdoaXRl
OiAweDdGfTsKKyAgICAgICAgICAgICAgICBjYXNlICJzaG9ydCI6CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdo
aXRlOiAweDdGRkZ9OworICAgICAgICAgICAgICAgIGNhc2UgImludCI6CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1
ZVdoaXRlOiAweDdGRkZGRkZGfTsKKyAgICAgICAgICAgICAgICBjYXNlICJoYWxmIjoKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazog
MCwgb3BhcXVlV2hpdGU6IDF9OworICAgICAgICAgICAgICAgIGNhc2UgImZsb2F0IjoKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazog
MCwgb3BhcXVlV2hpdGU6IDF9OworICAgICAgICAgICAgICAgIGNhc2UgInVjaGFyMiI6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVC
bGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4RkYsIDB4RkZdfTsKKyAgICAgICAgICAgICAg
ICBjYXNlICJ1c2hvcnQyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVu
dEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHhGRkZG
LCAweEZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1aW50MiI6CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazogWzAs
IDBdLCBvcGFxdWVXaGl0ZTogWzB4RkZGRkZGRkYsIDB4RkZGRkZGRkZdfTsKKyAgICAgICAgICAg
ICAgICBjYXNlICJjaGFyMiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJl
bnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4N0Ys
IDB4N0ZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJzaG9ydDIiOgorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAw
XSwgb3BhcXVlV2hpdGU6IFsweDdGRkYsIDB4N0ZGRl19OworICAgICAgICAgICAgICAgIGNhc2Ug
ImludDIiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFsw
LCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsweDdGRkZGRkZGLCAweDdG
RkZGRkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAiaGFsZjIiOgorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAw
XSwgb3BhcXVlV2hpdGU6IFsxLCAxXX07CisgICAgICAgICAgICAgICAgY2FzZSAiZmxvYXQyIjoK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9w
YXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMSwgMV19OworICAgICAgICAgICAgICAg
IGNhc2UgInVjaGFyMyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRC
bGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4
RkYsIDB4RkYsIDB4RkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1c2hvcnQzIjoKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1
ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHhGRkZGLCAweEZGRkYsIDB4RkZGRl19
OworICAgICAgICAgICAgICAgIGNhc2UgInVpbnQzIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMF0s
IG9wYXF1ZVdoaXRlOiBbMHhGRkZGRkZGRiwgMHhGRkZGRkZGRiwgMHhGRkZGRkZGRl19OworICAg
ICAgICAgICAgICAgIGNhc2UgImNoYXIzIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0
cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1
ZVdoaXRlOiBbMHg3RiwgMHg3RiwgMHg3Rl19OworICAgICAgICAgICAgICAgIGNhc2UgInNob3J0
MyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAs
IDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4N0ZGRiwgMHg3RkZG
LCAweDdGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJpbnQzIjoKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBb
MCwgMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHg3RkZGRkZGRiwgMHg3RkZGRkZGRiwgMHg3RkZGRkZG
Rl19OworICAgICAgICAgICAgICAgIGNhc2UgImhhbGYzIjoKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwg
MF0sIG9wYXF1ZVdoaXRlOiBbMSwgMSwgMV19OworICAgICAgICAgICAgICAgIGNhc2UgImZsb2F0
MyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAs
IDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzEsIDEsIDFdfTsKKyAg
ICAgICAgICAgICAgICBjYXNlICJ1Y2hhcjQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
e3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAw
eEZGXSwgb3BhcXVlV2hpdGU6IFsweEZGLCAweEZGLCAweEZGLCAweEZGXX07CisgICAgICAgICAg
ICAgICAgY2FzZSAidXNob3J0NCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNw
YXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDAsIDB4RkZGRl0s
IG9wYXF1ZVdoaXRlOiBbMHhGRkZGLCAweEZGRkYsIDB4RkZGRiwgMHhGRkZGXX07CisgICAgICAg
ICAgICAgICAgY2FzZSAidWludDQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5z
cGFyZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAweEZGRkZG
RkZGXSwgb3BhcXVlV2hpdGU6IFsweEZGRkZGRkZGLCAweEZGRkZGRkZGLCAweEZGRkZGRkZGLCAw
eEZGRkZGRkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAiY2hhcjQiOgorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxh
Y2s6IFswLCAwLCAwLCAweDdGXSwgb3BhcXVlV2hpdGU6IFsweDdGLCAweDdGLCAweDdGLCAweDdG
XX07CisgICAgICAgICAgICAgICAgY2FzZSAic2hvcnQ0IjoKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwg
MCwgMCwgMHg3RkZGXSwgb3BhcXVlV2hpdGU6IFsweDdGRkYsIDB4N0ZGRiwgMHg3RkZGLCAweDdG
RkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJpbnQ0IjoKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwg
MCwgMCwgMHg3RkZGRkZGRl0sIG9wYXF1ZVdoaXRlOiBbMHg3RkZGRkZGRiwgMHg3RkZGRkZGRiwg
MHg3RkZGRkZGRiwgMHg3RkZGRkZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgImhhbGY0IjoK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwg
MF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMV0sIG9wYXF1ZVdoaXRlOiBbMSwgMSwgMSwgMV19
OworICAgICAgICAgICAgICAgIGNhc2UgImZsb2F0NCI6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAs
IDAsIDFdLCBvcGFxdWVXaGl0ZTogWzEsIDEsIDEsIDFdfTsKKyAgICAgICAgICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gdGV4dHVy
ZSBpbm5lciB0eXBlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
IGNvbXB1dGVWYWx1ZXMoKVt0aGlzLmJvcmRlckNvbG9yXTsKKyAgICB9Cit9CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKaW5kZXggM2RkNGZl
ZTE4NjAwZDVjZDJhODk1YWQ1YTQ3OTcyMWRhNzc4OGNjMS4uZGJhOTliMWVmOWIzNGZmYjE5OWM2
NDhlNDM3ZjhlOTQ2NDBmNjUxMSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1N0YW5kYXJkTGlicmFyeS5qcwpAQCAtNTcsNyArNTcsNyBAQCBsZXQgc3RhbmRhcmRMaWJy
YXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICB9CiAgICAgICAgIHByaW50KGBuYXRpdmUgdHlw
ZWRlZiBzYW1wbGVyO2ApOwogICAgICAgICBmb3IgKHZhciB0eXBlIG9mIFtgVGV4dHVyZTFEYCwg
YFJXVGV4dHVyZTFEYCwgYFRleHR1cmUxREFycmF5YCwgYFJXVGV4dHVyZTFEQXJyYXlgLCBgVGV4
dHVyZTJEYCwgYFJXVGV4dHVyZTJEYCwgYFRleHR1cmUyREFycmF5YCwgYFJXVGV4dHVyZTJEQXJy
YXlgLCBgVGV4dHVyZTNEYCwgYFJXVGV4dHVyZTNEYCwgYFRleHR1cmVDdWJlYF0pIHsKLSAgICAg
ICAgICAgIGZvciAodmFyIHR5cGVBcmd1bWVudEJhc2Ugb2YgW2Bib29sYCwgYHVjaGFyYCwgYHVz
aG9ydGAsIGB1aW50YCwgYGNoYXJgLCBgc2hvcnRgLCBgaW50YCwgYGhhbGZgLCBgZmxvYXRgXSkg
eworICAgICAgICAgICAgZm9yICh2YXIgdHlwZUFyZ3VtZW50QmFzZSBvZiBbYHVjaGFyYCwgYHVz
aG9ydGAsIGB1aW50YCwgYGNoYXJgLCBgc2hvcnRgLCBgaW50YCwgYGhhbGZgLCBgZmxvYXRgXSkg
ewogICAgICAgICAgICAgICAgIGZvciAodmFyIHNpemUgb2YgW2BgLCBgMmAsIGAzYCwgYDRgXSkg
ewogICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlIHR5cGVkZWYgJHt0eXBlfTwke3R5
cGVBcmd1bWVudEJhc2V9JHtzaXplfT47YCk7CiAgICAgICAgICAgICAgICAgfQpAQCAtMTg5Nyw3
ICsxODk3LDggQEAgbGV0IHN0YW5kYXJkTGlicmFyeSA9IChmdW5jdGlvbigpIHsKICAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgdm9pZCBJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZSh0aHJlYWQg
YXRvbWljXyR7dHlwZX0qLCAke3R5cGV9LCAke3R5cGV9LCB0aHJlYWQgJHt0eXBlfSopO2ApOwog
ICAgICAgICB9CiAgICAgICAgIHByaW50KCk7Ci0gICAgICAgIAorICAgICAgICAqLworCiAgICAg
ICAgIGZvciAodmFyIHR5cGUgb2YgW2B1Y2hhcmAsIGB1c2hvcnRgLCBgdWludGAsIGBjaGFyYCwg
YHNob3J0YCwgYGludGAsIGBoYWxmYCwgYGZsb2F0YF0pIHsKICAgICAgICAgICAgIGZvciAodmFy
IGxlbmd0aCBvZiBbYGAsIGAyYCwgYDNgLCBgNGBdKSB7CiAgICAgICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3Ro
fT4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTtgKTsKQEAgLTE5NTgsMTYgKzE5NTksNiBAQCBs
ZXQgc3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIHByaW50
KCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBs
ZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7
YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBs
ZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwg
aW50MyBvZmZzZXQpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0
aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlcihU
ZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50
MyBvZmZzZXQpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyUmVkKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0
aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlclJl
ZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwg
aW50MyBvZmZzZXQpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyR3JlZW4oVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMg
bG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyR3JlZW4oVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9j
YXRpb24sIGludDMgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBm
bG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyQmx1ZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0
MyBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1w
bGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVy
LCBmbG9hdDMgbG9jYXRpb24sIGludDMgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3Ro
fT4sIGludDQgbG9jYXRpb24pO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PiwgaW50NCBsb2Nh
dGlvbiwgaW50MyBvZmZzZXQpO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9p
ZCBHZXREaW1lbnNpb25zKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PiwgdWludCBNaXBMZXZl
bCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogSGVpZ2h0LCB0aHJlYWQgdWludCog
RGVwdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7YCk7CkBAIC0yMDEwLDcgKzIwMDEs
OCBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAg
IHByaW50KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgCisKKyAgICAgICAg
LyoKICAgICAgICAgZm9yICh2YXIgdHlwZSBvZiBbYGhhbGZgLCBgZmxvYXRgXSkgewogICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0
MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
VGVzdC5odG1sCmluZGV4IDYwN2E2OTUzMjUzZGE3MjdiMWRlMzc2NzhlYzM4OGI0ZmEyNDA0MDUu
LjIzNGM4MzA5ZWFmZDY4Y2ZmNjFjYjA2OTA2YjdlYWI4ODc5YzA3ZmYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbAorKysgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKQEAgLTI4LDYgKzI4LDcgQEAKIDxzY3JpcHQgc3Jj
PSJCdWlsdGluVmVjdG9yU2V0dGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDYWxsRXhw
cmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2FsbEZ1bmN0aW9uLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJDYXN0cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2hl
Y2suanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNoZWNrTGl0ZXJhbFR5cGVzLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJDaGVja0xvb3BzLmpzIj48L3NjcmlwdD4KQEAgLTExNSw2ICsx
MTYsNyBAQAogPHNjcmlwdCBzcmM9IlJldHVybi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
UmV0dXJuQ2hlY2tlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUmV0dXJuRXhjZXB0aW9u
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJTYW1wbGVyLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJTdGFuZGFyZExpYnJhcnkuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN0YXRl
bWVudENsb25lci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3RydWN0TGF5b3V0QnVpbGRl
ci5qcyI+PC9zY3JpcHQ+CkBAIC0xMjcsNiArMTI5LDggQEAKIDxzY3JpcHQgc3JjPSJTeW50aGVz
aXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN5
bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iVGVybmFyeUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlRleHR1
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlRleHR1cmVPcGVyYXRpb25zLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJUcmFwU3RhdGVtZW50LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJUeXBlRGVmLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIu
anMiPjwvc2NyaXB0PgpAQCAtMTUyLDcgKzE1Niw3IEBACiA8c2NyaXB0PgogZnVuY3Rpb24gZG9U
ZXN0SW5Ccm93c2VyKCkKIHsKLSAgICB2YXIgdGVzdGVyID0gZG9UZXN0KC8uKi8pOworICAgIHZh
ciB0ZXN0ZXIgPSBkb1Rlc3QoL3RleHR1cmVTYW1wbGUvKTsKICAgICB2YXIgbGFzdFRpbWU7CiAg
ICAgZnVuY3Rpb24gbmV4dCgpCiAgICAgewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvVGVzdC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3Qu
anMKaW5kZXggNGExMWMxODU4NTk5Nzc4ZmYzOTFiMDRmMjYzNWM1YjcxMDA1ZGY3Zi4uY2ExZjNl
OWZkMmJjOWIwYjA3NDQyYjU2N2NmYzdhOWJkYjA2ODZhNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9UZXN0LmpzCkBAIC05NCw2ICs5NCwxMDggQEAgZnVuY3Rpb24gbWFrZUVudW0ocHJv
Z3JhbSwgZW51bU5hbWUsIHZhbHVlKQogICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChlbnVtVHlw
ZSwgZW51bU1lbWJlci52YWx1ZS51bmlmeU5vZGUudmFsdWVGb3JTZWxlY3RlZFR5cGUpOwogfQog
CitmdW5jdGlvbiBtYWtlU2FtcGxlcihwcm9ncmFtLCBvcHRpb25zKQoreworICAgIC8vIGVudW0g
V2ViR1BVQWRkcmVzc01vZGUgeworICAgIC8vICAgICAiY2xhbXBUb0VkZ2UiLAorICAgIC8vICAg
ICAicmVwZWF0IiwKKyAgICAvLyAgICAgIm1pcnJvclJlcGVhdCIsCisgICAgLy8gICAgICJjbGFt
cFRvQm9yZGVyQ29sb3IiCisgICAgLy8gfQorICAgIC8vCisgICAgLy8gZW51bSBXZWJHUFVGaWx0
ZXJNb2RlIHsKKyAgICAvLyAgICAgIm5lYXJlc3QiLAorICAgIC8vICAgICAibGluZWFyIgorICAg
IC8vIH0KKyAgICAvLworICAgIC8vIGVudW0gV2ViR1BVQ29tcGFyZUZ1bmN0aW9uIHsKKyAgICAv
LyAgICAgIm5ldmVyIiwKKyAgICAvLyAgICAgImxlc3MiLAorICAgIC8vICAgICAiZXF1YWwiLAor
ICAgIC8vICAgICAibGVzc0VxdWFsIiwKKyAgICAvLyAgICAgImdyZWF0ZXIiLAorICAgIC8vICAg
ICAibm90RXF1YWwiLAorICAgIC8vICAgICAiZ3JlYXRlckVxdWFsIiwKKyAgICAvLyAgICAgImFs
d2F5cyIKKyAgICAvLyB9CisgICAgLy8KKyAgICAvLyBlbnVtIFdlYkdQVUJvcmRlckNvbG9yIHsK
KyAgICAvLyAgICAgInRyYW5zcGFyZW50QmxhY2siLAorICAgIC8vICAgICAib3BhcXVlQmxhY2si
LAorICAgIC8vICAgICAib3BhcXVlV2hpdGUiCisgICAgLy8gfQorICAgIC8vCisgICAgLy8gZGlj
dGlvbmFyeSBXZWJHUFVTYW1wbGVyRGVzY3JpcHRvciB7CisgICAgLy8gICAgIFdlYkdQVWRkcmVz
c01vZGUgckFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICAvLyAgICAgV2ViR1BVZGRy
ZXNzTW9kZSBzQWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgIC8vICAgICBXZWJHUFVk
ZHJlc3NNb2RlIHRBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAgLy8gICAgIFdlYkdQ
VUZpbHRlck1vZGVFbnVtIG1hZ0ZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICAvLyAgICAgV2ViR1BV
RmlsdGVyTW9kZUVudW0gbWluRmlsdGVyID0gIm5lYXJlc3QiOworICAgIC8vICAgICBXZWJHUFVG
aWx0ZXJNb2RlRW51bSBtaXBtYXBGaWx0ZXIgPSAibmVhcmVzdCI7CisgICAgLy8gICAgIGZsb2F0
IGxvZE1pbkNsYW1wID0gMDsKKyAgICAvLyAgICAgZmxvYXQgbG9kTWF4Q2xhbXAgPSBOdW1iZXIu
TUFYX1ZBTFVFOworICAgIC8vICAgICB1bnNpZ25lZCBsb25nIG1heEFuaXNvdHJvcHkgPSAxOwor
ICAgIC8vICAgICBXZWJHUFVDb21wYXJlRnVuY3Rpb24gY29tcGFyZUZ1bmN0aW9uID0gIm5ldmVy
IjsKKyAgICAvLyAgICAgV2ViR1BVQm9yZGVyQ29sb3IgYm9yZGVyQ29sb3IgPSAidHJhbnNwYXJl
bnRCbGFjayI7CisgICAgLy8gfTsKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5p
bnRyaW5zaWNzLnNhbXBsZXIsIG5ldyBTYW1wbGVyKG9wdGlvbnMpKTsKK30KKworZnVuY3Rpb24g
bWFrZTFEVGV4dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1
cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlMUQ8JHtlbGVtZW50
VHlwZX0+YF0sIG5ldyBUZXh0dXJlMUQoZWxlbWVudFR5cGUsIG1pcG1hcHMpKTsKK30KKworZnVu
Y3Rpb24gbWFrZTFEVGV4dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sK
KyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlMURB
cnJheTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUxREFycmF5KGVsZW1lbnRUeXBlLCBh
cnJheSkpOworfQorCitmdW5jdGlvbiBtYWtlMkRUZXh0dXJlKHByb2dyYW0sIG1pcG1hcHMsIGVs
ZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNp
Y3NbYFRleHR1cmUyRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUyRChlbGVtZW50VHlw
ZSwgbWlwbWFwcykpOworfQorCitmdW5jdGlvbiBtYWtlMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwg
YXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFt
LmludHJpbnNpY3NbYFRleHR1cmUyREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVy
ZTJEQXJyYXkoZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UzRFRleHR1
cmUocHJvZ3JhbSwgbWlwbWFwcywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFs
dWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZTNEPCR7ZWxlbWVudFR5cGV9PmBdLCBu
ZXcgVGV4dHVyZTNEKGVsZW1lbnRUeXBlLCBtaXBtYXBzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VU
ZXh0dXJlQ3ViZShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5
cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZUN1YmU8JHtlbGVtZW50VHlw
ZX0+YF0sIG5ldyBUZXh0dXJlQ3ViZShlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rp
b24gbWFrZVJXMURUZXh0dXJlKHByb2dyYW0sIGVsZW1lbnRzLCBlbGVtZW50VHlwZSkKK3sKKyAg
ICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUxRDwk
e2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUxRFJXKGVsZW1lbnRUeXBlLCBlbGVtZW50cykp
OworfQorCitmdW5jdGlvbiBtYWtlUlcxRFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxl
bWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2lj
c1tgUldUZXh0dXJlMURBcnJheTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUxREFycmF5
UlcoZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzJEVGV4dHVyZShw
cm9ncmFtLCByb3dzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3go
cHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUyRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRl
eHR1cmUyRFJXKGVsZW1lbnRUeXBlLCByb3dzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzJEVGV4
dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlw
ZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUyREFycmF5PCR7ZWxlbWVu
dFR5cGV9PmBdLCBuZXcgVGV4dHVyZTJEQXJyYXlSVyhlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30K
KworZnVuY3Rpb24gbWFrZVJXM0RUZXh0dXJlKHByb2dyYW0sIGRlcHRoU2xpY2VzLCBlbGVtZW50
VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BS
V1RleHR1cmUzRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUzRFJXKGVsZW1lbnRUeXBl
LCBkZXB0aFNsaWNlcykpOworfQorCiBmdW5jdGlvbiBjaGVja051bWJlcihwcm9ncmFtLCByZXN1
bHQsIGV4cGVjdGVkKQogewogICAgIGlmICghcmVzdWx0LnR5cGUudW5pZnlOb2RlLmlzTnVtYmVy
KQpAQCAtNTU4Miw3ICs1Njg0LDk5MyBAQCB0ZXN0cy5hcnJheUluZGV4ID0gZnVuY3Rpb24oKSB7
CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUluZGV4
aW5nIiwgWyBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMikgXSksIDMp
OwogICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJbmRl
eGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApIF0pLCA0
KTsKICAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5k
ZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSBdKSwg
NSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUlu
ZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMikgXSks
IDYpOyAgICAKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFy
cmF5SW5kZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAy
KSBdKSwgNik7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9ncmFt
KQoreworICAgIGxldCB0ZXh0dXJlMUQgPSBtYWtlMURUZXh0dXJlKHByb2dyYW0sIFtbMSwgNywg
MTQsIDc5XSwgWzEzLCAxNl0sIFsxNV1dLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZTFEQXJy
YXkgPSBtYWtlMURUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbMSwgNywgMTQsIDc5XSwgWzEzLCAx
Nl0sIFsxNV1dLCBbWzE2LCAxNywgMTgsIDE5XSwgWzIwLCAyMV0sIFsyMl1dXSwgImZsb2F0Iik7
CisgICAgbGV0IHRleHR1cmUyRCA9IG1ha2UyRFRleHR1cmUocHJvZ3JhbSwgWworICAgICAgICBb
WzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0
LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAg
ICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAz
NCwgMzUsIDM2XSwKKyAgICAgICAgWzM3LCAzOCwgMzksIDQwXV0sCisgICAgICAgIFtbNDEsIDQy
XV0KKyAgICBdLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZTJEQXJyYXkgPSBtYWtlMkRUZXh0
dXJlQXJyYXkocHJvZ3JhbSwgW1sKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwK
KyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAx
OCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjks
IDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNl0sCisgICAgICAgIFszNywg
MzgsIDM5LCA0MF1dLAorICAgICAgICBbWzQxLCA0Ml1dCisgICAgXSwgWworICAgICAgICBbWzQz
LCA0NCwgNDUsIDQ2LCA0NywgNDgsIDQ5LCA1MF0sCisgICAgICAgIFs1MSwgNTIsIDUzLCA1NCwg
NTUsIDU2LCA1NywgNThdLAorICAgICAgICBbNTksIDYwLCA2MSwgNjIsIDYzLCA2NCwgNjUsIDY2
XSwKKyAgICAgICAgWzY3LCA2OCwgNjksIDcwLCA3MSwgNzIsIDczLCA3NF1dLAorICAgICAgICBb
Wzc1LCA3NiwgNzcsIDc4XSwKKyAgICAgICAgWzc5LCA4MCwgODEsIDgyXV0sCisgICAgICAgIFtb
ODMsIDg0XV0KKyAgICBdXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmUzRCA9IG1ha2UzRFRl
eHR1cmUocHJvZ3JhbSwgWworICAgICAgICBbW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAg
ICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwg
MTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMw
LCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDBdLAor
ICAgICAgICBbNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4XSwKKyAgICAgICAgWzQ5LCA1
MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1Nl0sCisgICAgICAgIFs1NywgNTgsIDU5LCA2MCwgNjEs
IDYyLCA2MywgNjRdXV0sCisgICAgICAgIFtbWzY1LCA2NiwgNjcsIDY4XSwKKyAgICAgICAgWzY5
LCA3MCwgNzEsIDcyXV1dCisgICAgXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmVDdWJlID0g
bWFrZVRleHR1cmVDdWJlKHByb2dyYW0sIFtbCisgICAgICAgIFtbMSwgMl0sCisgICAgICAgIFsz
LCA0XSwKKyAgICAgICAgWzUsIDZdLAorICAgICAgICBbNywgOF1dLAorICAgICAgICBbWzldLAor
ICAgICAgICBbMTBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbMTEsIDEyXSwKKyAgICAgICAgWzEz
LCAxNF0sCisgICAgICAgIFsxNSwgMTZdLAorICAgICAgICBbMTcsIDE4XV0sCisgICAgICAgIFtb
MTldLAorICAgICAgICBbMjBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbMjEsIDIyXSwKKyAgICAg
ICAgWzIzLCAyNF0sCisgICAgICAgIFsyNSwgMjZdLAorICAgICAgICBbMjcsIDI4XV0sCisgICAg
ICAgIFtbMjldLAorICAgICAgICBbMzBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbMzEsIDMyXSwK
KyAgICAgICAgWzMzLCAzNF0sCisgICAgICAgIFszNSwgMzZdLAorICAgICAgICBbMzcsIDM4XV0s
CisgICAgICAgIFtbMzldLAorICAgICAgICBbNDBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbNDEs
IDQyXSwKKyAgICAgICAgWzQzLCA0NF0sCisgICAgICAgIFs0NSwgNDZdLAorICAgICAgICBbNDcs
IDQ4XV0sCisgICAgICAgIFtbNDldLAorICAgICAgICBbNTBdXSwKKyAgICBdLCBbCisgICAgICAg
IFtbNTEsIDUyXSwKKyAgICAgICAgWzUzLCA1NF0sCisgICAgICAgIFs1NSwgNTZdLAorICAgICAg
ICBbNTcsIDU4XV0sCisgICAgICAgIFtbNTldLAorICAgICAgICBbNjBdXSwKKyAgICBdXSwgImZs
b2F0Iik7CisgICAgbGV0IHJ3VGV4dHVyZTFEID0gbWFrZVJXMURUZXh0dXJlKHByb2dyYW0sIFsx
LCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4dHVyZTFEQXJy
YXkgPSBtYWtlUlcxRFRleHR1cmVBcnJheShwcm9ncmFtLCBbWzEsIDIsIDMsIDQsIDUsIDYsIDcs
IDhdLCBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLCBbMTcsIDE4LCAxOSwgMjAsIDIx
LCAyMiwgMjMsIDI0XV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmUyRCA9IG1ha2VSVzJE
VGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAgIFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAg
ICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwg
MTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMw
LCAzMSwgMzJdXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4dHVyZTJEQXJyYXkgPSBtYWtlUlcy
RFRleHR1cmVBcnJheShwcm9ncmFtLCBbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywg
OF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsx
NywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgs
IDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzks
IDQwXSwKKyAgICAgICAgWzQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OF0sCisgICAgICAg
IFs0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTZdLAorICAgICAgICBbNTcsIDU4LCA1OSwg
NjAsIDYxLCA2MiwgNjMsIDY0XV1dLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlM0QgPSBt
YWtlUlczRFRleHR1cmUocHJvZ3JhbSwgWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcs
IDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBb
MTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4
LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5
LCA0MF0sCisgICAgICAgIFs0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDhdLAorICAgICAg
ICBbNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2XSwKKyAgICAgICAgWzU3LCA1OCwgNTks
IDYwLCA2MSwgNjIsIDYzLCA2NF1dXSwgImZsb2F0Iik7CisgICAgcmV0dXJuIFt0ZXh0dXJlMUQs
IHRleHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRl
eHR1cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3
VGV4dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNEXTsKK30KKwordGVzdHMudGV4dHVyZURpbWVuc2lv
bnMgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCisgICAgICAgIHVp
bnQgZm9vMShUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lk
dGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGlt
ZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAg
ICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yKFRleHR1cmUxRDxm
bG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVp
bnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAs
ICZ3aWR0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxl
dmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzMoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+
IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVs
ZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdl
dERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVs
cyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBm
b280KFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdp
ZHRoOworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVy
T2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwg
JmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRz
OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNShUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4
dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVu
dHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGlt
ZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsK
KyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1
aW50IGZvbzYoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdp
ZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9m
TGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZo
ZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb283KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAg
ICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0
dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzgoVGV4dHVyZTJEPGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0
RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7
CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAg
dWludCBmb285KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1
aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVs
ZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdl
dERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1i
ZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAg
ICAgdWludCBmb28xMChUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAg
ICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWlu
dCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAg
ICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAm
bnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQor
ICAgICAgICB1aW50IGZvbzExKFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAg
ICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAg
ICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAg
ICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVu
dHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gZWxlbWVudHM7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb28xMihUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkg
eworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAg
ICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7
CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwg
JmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9m
TGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTMoVGV4dHVyZTNEPGZsb2F0PiB0
ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWln
aHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxl
dmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVp
Z2h0LCAmZGVwdGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7
CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xNChUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUp
IHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAg
ICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZk
ZXB0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb28xNShUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAg
ICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAg
ICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAg
ICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCwg
Jm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBkZXB0aDsKKyAgICAgICAgfQor
ICAgICAgICB1aW50IGZvbzE2KFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAg
ICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWlu
dCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBH
ZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoLCAmbnVtYmVy
T2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9
CisgICAgICAgIHVpbnQgZm9vMTcoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAg
ICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAg
IHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUs
IDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVy
biB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE4KFRleHR1cmVDdWJlPGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0
RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7
CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9v
MTkoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7
CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZl
bHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdo
dCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIwKFJXVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJl
KSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0
ZXh0dXJlLCAmd2lkdGgpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9Cisg
ICAgICAgIHVpbnQgZm9vMjEoUldUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAg
ICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmVsZW1lbnRzKTsKKyAgICAgICAg
ICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIyKFJXVGV4dHVy
ZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAg
ICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJl
LCAmd2lkdGgsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1cm4gZWxlbWVudHM7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb28yMyhSV1RleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgewor
ICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAg
ICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQpOworICAgICAgICAg
ICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjQoUldUZXh0dXJl
MkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAg
ICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRo
LCAmaGVpZ2h0KTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAg
ICAgdWludCBmb28yNShSV1RleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAg
ICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1
aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgs
ICZoZWlnaHQsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAg
IH0KKyAgICAgICAgdWludCBmb28yNihSV1RleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7
CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAg
ICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJl
LCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0
OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjcoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4g
dGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVp
Z2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0
dXJuIGVsZW1lbnRzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjgoUldUZXh0dXJlM0Q8
ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1
aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICBHZXREaW1l
bnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoKTsKKyAgICAgICAgICAgIHJl
dHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI5KFJXVGV4dHVyZTNEPGZs
b2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWlu
dCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgR2V0RGltZW5z
aW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCk7CisgICAgICAgICAgICByZXR1
cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMzAoUldUZXh0dXJlM0Q8Zmxv
YXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50
IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICBHZXREaW1lbnNp
b25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoKTsKKyAgICAgICAgICAgIHJldHVy
biBkZXB0aDsKKyAgICAgICAgfQorICAgIGApOworICAgIGxldCBbdGV4dHVyZTFELCB0ZXh0dXJl
MURBcnJheSwgdGV4dHVyZTJELCB0ZXh0dXJlMkRBcnJheSwgdGV4dHVyZTNELCB0ZXh0dXJlQ3Vi
ZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVyZTFEQXJyYXksIHJ3VGV4dHVyZTJELCByd1RleHR1cmUy
REFycmF5LCByd1RleHR1cmUzRF0gPSBjcmVhdGVUZXh0dXJlc0ZvclRlc3RpbmcocHJvZ3JhbSk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0
ZXh0dXJlMURdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMiIsIFt0ZXh0dXJlMURdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheV0pLCA0KTsKKyAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUx
REFycmF5XSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUiLCBbdGV4dHVyZTFEQXJyYXldKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkRdKSwgOCk7CisgICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRd
KSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OCIsIFt0ZXh0dXJlMkRdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlMkRBcnJheV0pLCA4KTsKKyAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlMkRBcnJheV0p
LCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MSIsIFt0ZXh0dXJlMkRBcnJheV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFt0ZXh0dXJlMkRBcnJheV0pLCAzKTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFt0ZXh0dXJlM0Rd
KSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTQiLCBbdGV4dHVyZTNEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE1IiwgW3RleHR1cmUzRF0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlM0RdKSwgMik7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4
dHVyZUN1YmVdKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTgiLCBbdGV4dHVyZUN1YmVdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZUN1YmVdKSwgMik7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0
dXJlMURdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjEiLCBbcndUZXh0dXJlMURBcnJheV0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMiIsIFtyd1RleHR1cmUxREFycmF5XSksIDMp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwg
W3J3VGV4dHVyZTJEXSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzI0IiwgW3J3VGV4dHVyZTJEXSksIDQpOworICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI1IiwgW3J3VGV4dHVyZTJEQXJyYXldKSwg
OCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjYi
LCBbcndUZXh0dXJlMkRBcnJheV0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yNyIsIFtyd1RleHR1cmUyREFycmF5XSksIDIpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4IiwgW3J3VGV4dHVy
ZTNEXSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzI5IiwgW3J3VGV4dHVyZTNEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMwIiwgW3J3VGV4dHVyZTNEXSksIDIpOworfQorCit0ZXN0
cy50ZXh0dXJlTG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAK
KyAgICAgICAgZmxvYXQgZm9vMShUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlv
biwgaW50IG1pcG1hcCkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Mihs
b2NhdGlvbiwgbWlwbWFwKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMihUZXh0dXJl
MUQ8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50IG1pcG1hcCwgaW50IG9mZnNldCkg
eworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Mihsb2NhdGlvbiwgbWlwbWFw
KSwgb2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28zKFRleHR1cmUxREFycmF5
PGZsb2F0PiB0ZXh0dXJlLCBpbnQgbG9jYXRpb24sIGludCBtaXBtYXAsIGludCBsYXllcikgewor
ICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myhsb2NhdGlvbiwgbWlwbWFwLCBs
YXllcikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQoVGV4dHVyZTFEQXJyYXk8Zmxv
YXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50IG1pcG1hcCwgaW50IGxheWVyLCBpbnQgb2Zm
c2V0KSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKGxvY2F0aW9uLCBt
aXBtYXAsIGxheWVyKSwgb2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb281KFRl
eHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbWlwbWFwKSB7CisgICAg
ICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIG1pcG1hcCkpOworICAgICAg
ICB9CisgICAgICAgIGZsb2F0IGZvbzYoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwg
aW50IHksIGludCBtaXBtYXAsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAg
ICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myh4LCB5LCBtaXBtYXApLCBpbnQyKG9mZnNldFgs
IG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb283KFRleHR1cmUyREFycmF5
PGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXAsIGludCBsYXllcikgewor
ICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50NCh4LCB5LCBtaXBtYXAsIGxheWVy
KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vOChUZXh0dXJlMkRBcnJheTxmbG9hdD4g
dGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbWlwbWFwLCBpbnQgbGF5ZXIsIGludCBvZmZzZXRY
LCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50NCh4
LCB5LCBtaXBtYXAsIGxheWVyKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0K
KyAgICAgICAgZmxvYXQgZm9vOShUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQg
eSwgaW50IHosIGludCBtaXBtYXApIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUs
IGludDQoeCwgeSwgeiwgbWlwbWFwKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTAo
VGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCB6LCBpbnQgbWlwbWFw
LCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFksIGludCBvZmZzZXRaKSB7CisgICAgICAgICAgICBy
ZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgsIHksIHosIG1pcG1hcCksIGludDMob2Zmc2V0WCwg
b2Zmc2V0WSwgb2Zmc2V0WikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzExKFJXVGV4
dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgbG9jYXRpb24pIHsKKyAgICAgICAgICAgIHJldHVy
biBMb2FkKHRleHR1cmUsIGxvY2F0aW9uKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28x
MihSV1RleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgbG9jYXRpb24sIGludCBsYXll
cikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Mihsb2NhdGlvbiwgbGF5
ZXIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xMyhSV1RleHR1cmUyRDxmbG9hdD4g
dGV4dHVyZSwgaW50IHgsIGludCB5KSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJl
LCBpbnQyKHgsIHkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xNChSV1RleHR1cmUy
REFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBsYXllcikgeworICAgICAg
ICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myh4LCB5LCBsYXllcikpOworICAgICAgICB9
CisgICAgICAgIGZsb2F0IGZvbzE1KFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwg
aW50IHksIGludCB6KSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgs
IHksIHopKTsKKyAgICAgICAgfQorICAgIGApOworICAgIGxldCBbdGV4dHVyZTFELCB0ZXh0dXJl
MURBcnJheSwgdGV4dHVyZTJELCB0ZXh0dXJlMkRBcnJheSwgdGV4dHVyZTNELCB0ZXh0dXJlQ3Vi
ZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVyZTFEQXJyYXksIHJ3VGV4dHVyZTJELCByd1RleHR1cmUy
REFycmF5LCByd1RleHR1cmUzRF0gPSBjcmVhdGVUZXh0dXJlc0ZvclRlc3RpbmcocHJvZ3JhbSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBb
dGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIs
IFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
MTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
IiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVy
ZTFELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgMjApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDIxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAtMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAx
Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQi
LCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTcpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1
cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAxNik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMjEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAyMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1
cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVy
ZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzgpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTApOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3Rl
eHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE3KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3Rl
eHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCAzNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM3KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJl
MkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAz
Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzci
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzcp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM4KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0Myk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDUxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCA1Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgNzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDc2
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgODApOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAxMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSks
IDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzOSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgLTEpXSksIDM1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0NCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDQ1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1Myk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgNTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDYwKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCA1Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
NjEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDc2KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCA4MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNzcpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDgxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA4
MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgi
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDc2KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCA4MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDc3KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJl
M0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1
cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0Mik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBb
dGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDY1KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNjYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCA2OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDcwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0
ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUz
RCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDQxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDExKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBb
dGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDE4KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVy
ZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIC0xKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDM1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDQyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0x
KV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAi
LCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQ5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4
dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCA5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNE
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQzKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCA2Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA2OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCA2Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCA3MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3MCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwg
W3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNjUpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0
dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNzEpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0Qs
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDY2KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAzKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJl
MUQsIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dy
YW0sIDQpXSksIDUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCA1KV0pLCA2KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndU
ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgNildKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50
KHByb2dyYW0sIDcpXSksIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUx
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFty
d1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDYpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndU
ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAxMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDQpLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9n
cmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTUpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUx
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBb
cndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAy
KV0pLCAxNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMildKSwgMTgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDIp
LCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChw
cm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjEpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1
cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIi
LCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFt
LCAyKV0pLCAyMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJ
bnQocHJvZ3JhbSwgMildKSwgMjQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dy
YW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBt
YWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDYpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0
dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3
VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIs
IFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDUpLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
NiksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9n
cmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE3KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTgpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxOSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4
dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIwKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBb
cndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwg
MjEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAy
KV0pLCAyMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dy
YW0sIDIpXSksIDIzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQo
cHJvZ3JhbSwgMildKSwgMjQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAzKV0pLCAyNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjcpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyOCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtl
SW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMzApOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1
cmUyRCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAzMSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3
VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDMy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQi
LCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0MSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0Qs
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIs
IFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCA0MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQyKTsKK30K
KwordGVzdHMudGV4dHVyZVN0b3JlID0gZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBk
b1ByZXAoYAorICAgICAgICBmbG9hdCBmb28xKFJXVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCB1
aW50IGxvY2F0aW9uLCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4dHVyZSwg
dmFsdWUsIGxvY2F0aW9uKTsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludChs
b2NhdGlvbikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzIoUldUZXh0dXJlMURBcnJh
eTxmbG9hdD4gdGV4dHVyZSwgdWludCBsb2NhdGlvbiwgdWludCBsYXllciwgZmxvYXQgdmFsdWUp
IHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1cmUsIHZhbHVlLCB1aW50Mihsb2NhdGlvbiwgbGF5
ZXIpKTsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIoaW50KGxvY2F0aW9u
KSwgaW50KGxheWVyKSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzMoUldUZXh0dXJl
MkQ8ZmxvYXQ+IHRleHR1cmUsIHVpbnQgeCwgdWludCB5LCBmbG9hdCB2YWx1ZSkgeworICAgICAg
ICAgICAgU3RvcmUodGV4dHVyZSwgdmFsdWUsIHVpbnQyKHgsIHkpKTsKKyAgICAgICAgICAgIHJl
dHVybiBMb2FkKHRleHR1cmUsIGludDIoaW50KHgpLCBpbnQoeSkpKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmb280KFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHVpbnQgeCwg
dWludCB5LCB1aW50IGxheWVyLCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4
dHVyZSwgdmFsdWUsIHVpbnQzKHgsIHksIGxheWVyKSk7CisgICAgICAgICAgICByZXR1cm4gTG9h
ZCh0ZXh0dXJlLCBpbnQzKGludCh4KSwgaW50KHkpLCBpbnQobGF5ZXIpKSk7CisgICAgICAgIH0K
KyAgICAgICAgZmxvYXQgZm9vNShSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwgdWludCB4LCB1
aW50IHksIHVpbnQgeiwgZmxvYXQgdmFsdWUpIHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1cmUs
IHZhbHVlLCB1aW50Myh4LCB5LCB6KSk7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJl
LCBpbnQzKGludCh4KSwgaW50KHkpLCBpbnQoeikpKTsKKyAgICAgICAgfQorICAgIGApOworICAg
IGxldCBbdGV4dHVyZTFELCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0ZXh0dXJlMkRBcnJh
eSwgdGV4dHVyZTNELCB0ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVyZTFEQXJyYXks
IHJ3VGV4dHVyZTJELCByd1RleHR1cmUyREFycmF5LCByd1RleHR1cmUzRF0gPSBjcmVhdGVUZXh0
dXJlc0ZvclRlc3RpbmcocHJvZ3JhbSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwg
bWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndU
ZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0s
IDYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWlu
dChwcm9ncmFtLCA3KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUx
REFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFy
cmF5LCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3Jh
bSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
IiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5
LCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwg
NyksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwg
W3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMiks
IG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3
VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtl
VWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4
dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWlu
dChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VV
aW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVy
ZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChw
cm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50
KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFE
QXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9n
cmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHBy
b2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJy
YXksIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3
VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dy
YW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWlu
dChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwg
bWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0
dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwg
W3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHBy
b2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtl
VWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUy
RCwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndU
ZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28z
IiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50
KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHBy
b2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBt
YWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtl
VWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1
cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBb
cndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAzKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJv
Z3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VV
aW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50
KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJE
LCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50
KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWlu
dChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFtLCAxKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworfQorCit0ZXN0cy50ZXh0dXJlU2FtcGxlID0gZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICBmbG9hdCBmb28xKFRleHR1cmUxRDxm
bG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCBsb2NhdGlvbikgeworICAgICAgICAgICAg
cmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBsb2NhdGlvbik7CisgICAgICAgIH0KKyAgICAgICAg
ZmxvYXQgZm9vMihUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgbG9j
YXRpb24sIGludCBvZmZzZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwg
cywgbG9jYXRpb24sIG9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMyhUZXh0
dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCBsYXll
cikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgbGF5
ZXIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb280KFRleHR1cmUxREFycmF5PGZsb2F0
PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IGxheWVyLCBpbnQgb2Zmc2V0KSB7
CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Mih4LCBsYXllciks
IG9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNShUZXh0dXJlMkQ8ZmxvYXQ+
IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSkgeworICAgICAgICAgICAgcmV0
dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSkpOworICAgICAgICB9CisgICAgICAg
IGZsb2F0IGZvbzYoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgs
IGZsb2F0IHksIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJu
IFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzcoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRl
eHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIpIHsKKyAgICAg
ICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSk7Cisg
ICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vOChUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVy
ZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgaW50IG9mZnNldFgs
IGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZs
b2F0Myh4LCB5LCBsYXllciksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9Cisg
ICAgICAgIGZsb2F0IGZvbzkoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZs
b2F0IHgsIGZsb2F0IHksIGZsb2F0IHopIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4
dHVyZSwgcywgZmxvYXQzKHgsIHksIHopKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28x
MChUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgeiwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZLCBpbnQgb2Zmc2V0WikgeworICAgICAg
ICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeiksIGludDMob2Zm
c2V0WCwgb2Zmc2V0WSwgb2Zmc2V0WikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzEx
KFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHks
IGZsb2F0IHopIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQz
KHgsIHksIHopKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xMihUZXh0dXJlMkQ8Zmxv
YXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgQmlhcykgewor
ICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBC
aWFzKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xMyhUZXh0dXJlMkQ8ZmxvYXQ+IHRl
eHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgQmlhcywgaW50IG9mZnNl
dFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJl
LCBzLCBmbG9hdDIoeCwgeSksIEJpYXMsIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAg
ICB9CisgICAgICAgIGZsb2F0IGZvbzE0KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxl
ciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHkw
LCBmbG9hdCBkZHkxKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJlLCBz
LCBmbG9hdDIoeCwgeSksIGZsb2F0MihkZHgwLCBkZHgxKSwgZmxvYXQyKGRkeTAsIGRkeTEpKTsK
KyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xNShUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUs
IHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxv
YXQgZGR5MCwgZmxvYXQgZGR5MSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAg
ICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGZsb2F0Mihk
ZHgwLCBkZHgxKSwgZmxvYXQyKGRkeTAsIGRkeTEpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsK
KyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xNihUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUs
IHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgTE9EKSB7CisgICAgICAgICAgICBy
ZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBMT0QpOworICAgICAg
ICB9CisgICAgICAgIGZsb2F0IGZvbzE3KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxl
ciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBMT0QsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0
WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUxldmVsKHRleHR1cmUsIHMsIGZsb2F0Mih4
LCB5KSwgTE9ELCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdCBmb28xOChUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9h
dCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgQmlhcykgeworICAgICAgICAgICAgcmV0
dXJuIFNhbXBsZUJpYXModGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgQmlhcyk7Cisg
ICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTkoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1
cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IEJpYXMs
IGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJp
YXModGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgQmlhcywgaW50MihvZmZzZXRYLCBv
ZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMjAoVGV4dHVyZTJEQXJyYXk8
ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIs
IGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEpIHsKKyAgICAg
ICAgICAgIHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciks
IGZsb2F0MihkZHgwLCBkZHgxKSwgZmxvYXQyKGRkeTAsIGRkeTEpKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmb28yMShUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBz
LCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwg
ZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAg
ICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIp
LCBmbG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0MihkZHkwLCBkZHkxKSwgaW50MihvZmZzZXRYLCBv
ZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMjIoVGV4dHVyZTJEQXJyYXk8
ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIs
IGZsb2F0IExPRCkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUxldmVsKHRleHR1cmUsIHMs
IGZsb2F0Myh4LCB5LCBsYXllciksIExPRCk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9v
MjMoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxv
YXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IExPRCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7
CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQzKHgsIHks
IGxheWVyKSwgTE9ELCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAg
ICBpbnQgZm9vMjQoVGV4dHVyZTFEPGludDQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgbG9j
YXRpb24pIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgbG9jYXRpb24p
Lng7CisgICAgICAgIH0KKyAgICAgICAgaW50IGZvbzI1KFRleHR1cmUxRDxpbnQ0PiB0ZXh0dXJl
LCBzYW1wbGVyIHMsIGZsb2F0IGxvY2F0aW9uKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxl
KHRleHR1cmUsIHMsIGxvY2F0aW9uKS55OworICAgICAgICB9CisgICAgICAgIGludCBmb28yNihU
ZXh0dXJlMUQ8aW50ND4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCBsb2NhdGlvbikgeworICAg
ICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBsb2NhdGlvbikuejsKKyAgICAgICAg
fQorICAgICAgICBpbnQgZm9vMjcoVGV4dHVyZTFEPGludDQ+IHRleHR1cmUsIHNhbXBsZXIgcywg
ZmxvYXQgbG9jYXRpb24pIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywg
bG9jYXRpb24pLnc7CisgICAgICAgIH0KKyAgICBgKTsKKyAgICBsZXQgW3RleHR1cmUxRCwgdGV4
dHVyZTFEQXJyYXksIHRleHR1cmUyRCwgdGV4dHVyZTJEQXJyYXksIHRleHR1cmUzRCwgdGV4dHVy
ZUN1YmUsIHJ3VGV4dHVyZTFELCByd1RleHR1cmUxREFycmF5LCByd1RleHR1cmUyRCwgcndUZXh0
dXJlMkRBcnJheSwgcndUZXh0dXJlM0RdID0gY3JlYXRlVGV4dHVyZXNGb3JUZXN0aW5nKHByb2dy
YW0pOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
IiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge30pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC4zNzUpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge30pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC40Mzc1KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHt9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNTYyNSldKSwgMTQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge30pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC42MjUpXSksIDE0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0
ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjM3NSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC40Mzc1KV0p
LCAoMyAqIDcgKyAxICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoNyArIDE0
KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNTYyNSldKSwgKDEgKiA3ICsgMyAqIDE0KSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNjI1KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRl
ckNvbG9yIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC4zNzUpXSksIDcpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNs
YW1wVG9Cb3JkZXJDb2xvciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNDM3NSldKSwgKDMgKiA3
ICsgMSAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSldKSwgKDcgKyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9y
ZGVyQ29sb3IifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjU2MjUpXSksICgxICogNyArIDMgKiAx
NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjYyNSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEgKyAwLjM3NSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSArIDAuNDM3NSldKSwgKDMgKiA3ICsgMSAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJl
cGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjUpXSksICg3ICsgMTQpIC8gMik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4
dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJl
c3NNb2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuNTYyNSldKSwgKDEg
KiA3ICsgMyAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEgKyAwLjYyNSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDIgKyAwLjM3NSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMiArIDAuNDM3NSldKSwgKDMgKiA3ICsgMSAqIDE0KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTog
InJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjUpXSksICg3ICsgMTQpIC8gMik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBb
dGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFk
ZHJlc3NNb2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuNTYyNSldKSwg
KDEgKiA3ICsgMyAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDIgKyAwLjYyNSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEgKyAwLjYyNSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuNTYyNSldKSwgKDMgKiA3ICsgMSAqIDE0KSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
IiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIs
IHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAw
LjUpXSksICg3ICsgMTQpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSArIDAuNDM3NSldKSwgKDEgKiA3ICsgMyAqIDE0KSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUx
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9k
ZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjM3NSldKSwgMTQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJB
ZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjM3
NSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MiArIDAuNDM3NSldKSwgKDMgKiA3ICsgMSAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJl
cGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjUpXSksICg3ICsgMTQpIC8gMik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4
dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJl
c3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuNTYyNSld
KSwgKDEgKiA3ICsgMyAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDIgKyAwLjYyNSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0wLjM3
NSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMS4zNzUpXSksIDc5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFt
cFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMC4zNzUpXSksIDApOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1
cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNz
TW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEuMzc1KV0p
LCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
LCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IiLCBib3JkZXJDb2xvcjogIm9wYXF1
ZUJsYWNrIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTAuMzc1KV0pLCAwKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJj
bGFtcFRvQm9yZGVyQ29sb3IiLCBib3JkZXJDb2xvcjogIm9wYXF1ZUJsYWNrIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMS4zNzUpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciIs
IGJvcmRlckNvbG9yOiAib3BhcXVlV2hpdGUifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMC4zNzUp
XSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciIsIGJvcmRlckNvbG9yOiAib3Bh
cXVlV2hpdGUifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxLjM3NSldKSwgMSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAi
Y2xhbXBUb0JvcmRlckNvbG9yIiwgYm9yZGVyQ29sb3I6ICJvcGFxdWVXaGl0ZSJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpXSksICg3OSArIDEpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbG9kTWluQ2xhbXA6IDF9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSldKSwgKDEzICsgMTYpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCAoMTQgKyA3OSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNyArIDE0KSAvIDIpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUx
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICgxNyArIDE4KSAv
IDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
IiwgW3RleHR1cmUxREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksICgxNCArIDc5KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgx
OCArIDE5KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3Rl
eHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCldKSwgKDIwICsg
MjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgx
MyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEz
ICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDU0ICsgNTUgKyA2MiArIDYz
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsg
MjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoNjIg
KyA2MyArIDcwICsgNzEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMiArIDEzICsgMjAgKyAy
MSArIDQ0ICsgNDUgKyA1MiArIDUzKSAvIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEzICsg
MTQgKyAyMSArIDIyICsgNDUgKyA0NiArIDUzICsgNTQpIC8gOCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSld
KSwgKDIwICsgMjEgKyAyOCArIDI5ICsgNTIgKyA1MyArIDYwICsgNjEpIC8gOCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCA1IC8gOCldKSwgKDEyICsgMTMgKyAyMCArIDIxICsgKDQ0ICsgNDUgKyA1MiArIDUzKSAqIDMp
IC8gMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyICsgNDUg
KyA0NiArIDUzICsgNTQpIC8gOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMjAgKyAyMSAr
IDI4ICsgMjkgKyA1MiArIDUzICsgNjAgKyA2MSkgLyA4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjI1KSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAoNDQgKyA0NSArIDUyICsgNTMpIC8gNCk7CisgICAgLy8gVW5mb3J0dW5hdGVseSwgd2Ug
Y2FuJ3QgYWN0dWFsbHkgdGVzdCB0aGUgIkJpYXMiIGFyZ3VtZW50LCBiZWNhdXNlIGl0IGlzIHN1
cHBvc2VkIHRvIGJlIGFwcGxpZWQKKyAgICAvLyB0byB0aGUgdW5jbGFtcGVkIExPRCwgd2hpY2gg
Zm9yIHVzIGlzIC1JbmZpbml0eSAoYmVjYXVzZSBvdXIgZGVyaXZhdGl2ZXMgYXJlIGFsbCAwKQor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFt0
ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbdGV4dHVyZTJELCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIwICsg
MjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZTJE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAy
MSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMg
KyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUo
KS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCld
KSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1
ZSgpLmhlaWdodCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlMkQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgu
cG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0p
LCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRo
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
aGVpZ2h0KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsg
MzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE1IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFt0
ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAw
LjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBv
dygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
NSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
LCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwg
MC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsgMjIpIC8gNCkg
KyAoKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiAr
IDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWlu
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE2IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1
cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoKCgxMiArIDEzICsgMjAgKyAy
MSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmUyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAy
MCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsg
MjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVy
OiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDEyICsgMTMgKyAy
MCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZTJE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAx
NCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlMkQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsg
MTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAx
NCArIDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsg
MjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE4IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0p
LCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1
NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCldKSwgKDYyICsgNjMgKyA3MCArIDcxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAoNjIgKyA2MyArIDcwICsgNzEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRy
LmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkuaGVpZ2h0KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0
aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM0
ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRo
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgp
LmhlaWdodCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAw
LjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93
KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgoKDEyICsg
MTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDU0
ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0
ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICg1NCArIDU1ICsgNjIgKyA2Mykg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjAiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9h
ZFZhbHVlKCkuaGVpZ2h0KV0pLCAoNzYgKyA3NyArIDgwICsgODEpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJE
LmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIw
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGlu
ZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0
KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53
aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1
ZSgpLmhlaWdodCldKSwgKCgoNTQgKyA1NSArIDYyICsgNjMpIC8gNCkgKyAoKDc2ICsgNzcgKyA4
MCArIDgxKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndp
ZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsg
MjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0
dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRy
LmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRW
YWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRy
LmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUp
IC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIs
IDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDEzICsgMTQgKyAyMSArIDIyKSAvIDQp
ICsgKCgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwg
W3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1
ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
KDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksICg3NyArIDc4ICsgODEgKyA4MikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0
dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBt
YXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
TWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCg1NSArIDU2
ICsgNjMgKyA2NCkgLyA0KSArICgoNzcgKyA3OCArIDgxICsgODIpIC8gNCkpIC8gMik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3RleHR1
cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAy
MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDM0
ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoKCgx
MiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwg
W3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsg
NjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSld
KSwgKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0p
LCAoKCg1NCArIDU1ICsgNjIgKyA2MykgLyA0KSArICgoNzYgKyA3NyArIDgwICsgODEpIC8gNCkp
IC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8g
NCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAy
MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQw
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAy
MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAoKCgxMyArIDE0ICsgMjEgKyAyMikgLyA0KSArICgoMzUgKyAzNiArIDM5ICsgNDAp
IC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIg
KyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDc2ICsgNzcgKyA4MCAr
IDgxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIg
KyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAoKCg1NCArIDU1ICsgNjIgKyA2MykgLyA0KSArICgoNzYgKyA3NyArIDgwICsg
ODEpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsg
NjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDc3ICsgNzggKyA4
MSArIDgyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsg
NjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoKCg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KSArICgoNzcgKyA3OCArIDgx
ICsgODIpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZp
bHRlcjogImxpbmVhciIsIGxvZE1pbkNsYW1wOiAxLCBsb2RNYXhDbGFtcDogMX0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAyKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIGxvZE1pbkNsYW1wOiAxLCBsb2RNYXhD
bGFtcDogMX0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3Rl
eHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1h
cEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRW
YWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVp
Z2h0KV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciIsIG1h
eEFuaXNvdHJvcHk6IDJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNCAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1
ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAoNC8zKSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhl
aWdodCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGxldCB0ZXh0dXJlMURJbnQ0
ID0gbWFrZTFEVGV4dHVyZShwcm9ncmFtLCBbW1sxLCAyLCAzLCA0XSwgWzEwMCwgMjAwLCAzMDAs
IDQwMF0sIFsxMDEsIDIwMiwgMzAxLCA0MDFdLCBbMTMsIDE0LCAxNSwgMTZdXSwgW1sxNywgMTgs
IDE5LCAyMF0sIFsyMSwgMjIsIDIzLCAyNF1dLCBbWzI1LCAyNiwgMjcsIDI4XV1dLCAiaW50NCIp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjQiLCBb
dGV4dHVyZTFESW50NCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgMTAwKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI1IiwgW3RleHR1cmUxREludDQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpXSksIDIwMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yNiIsIFt0ZXh0dXJlMURJbnQ0LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAzMDApOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjciLCBbdGV4dHVyZTFESW50
NCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSldKSwgNDAwKTsKKyAgICAvLyBkZXB0aCB0ZXh0dXJlcywgYW5kIGRlcHRo
IGNvbXBhcmUgZnVuY3Rpb25zCiB9CiAKIG9rVG9UZXN0ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1cmUuanMgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9UZXh0dXJlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkNmUwNWFjODE3ODc4OWE2NWYz
MDBiMTAwMDg2MTYwODI0NWRmOGIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9UZXh0dXJlLmpzCkBAIC0wLDAgKzEsNTM0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyJ1c2Ugc3RyaWN0IjsKKworY2xhc3MgVGV4
dHVyZSB7CisgICAgY29uc3RydWN0b3IoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwg
bGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAg
dGhpcy5fZGltZW5zaW9uID0gZGltZW5zaW9uOworICAgICAgICB0aGlzLl93aWR0aCA9IHdpZHRo
OworICAgICAgICB0aGlzLl9oZWlnaHQgPSBoZWlnaHQ7CisgICAgICAgIHRoaXMuX2RlcHRoID0g
ZGVwdGg7CisgICAgICAgIHRoaXMuX2xldmVsQ291bnQgPSBsZXZlbENvdW50OworICAgICAgICB0
aGlzLl9sYXllckNvdW50ID0gbGF5ZXJDb3VudDsKKyAgICAgICAgdGhpcy5faW5uZXJUeXBlID0g
aW5uZXJUeXBlOworICAgICAgICB0aGlzLl9kYXRhID0gZGF0YTsKKyAgICB9CisKKyAgICBnZXQg
ZGltZW5zaW9uKCkgeyByZXR1cm4gdGhpcy5fZGltZW5zaW9uOyB9CisgICAgZ2V0IHdpZHRoKCkg
eyByZXR1cm4gdGhpcy5fd2lkdGg7IH0KKyAgICBnZXQgaGVpZ2h0KCkgeyByZXR1cm4gdGhpcy5f
aGVpZ2h0OyB9CisgICAgZ2V0IGRlcHRoKCkgeyByZXR1cm4gdGhpcy5fZGVwdGg7IH0KKyAgICBn
ZXQgbGV2ZWxDb3VudCgpIHsgcmV0dXJuIHRoaXMuX2xldmVsQ291bnQ7IH0KKyAgICBnZXQgbGF5
ZXJDb3VudCgpIHsgcmV0dXJuIHRoaXMuX2xheWVyQ291bnQ7IH0KKyAgICBnZXQgaW5uZXJUeXBl
KCkgeyByZXR1cm4gdGhpcy5faW5uZXJUeXBlOyB9CisgICAgZ2V0IGRhdGEoKSB7IHJldHVybiB0
aGlzLl9kYXRhOyB9CisKKyAgICBlbGVtZW50Q2hlY2tlZChsYXllciwgbGV2ZWwsIGssIGosIGkp
CisgICAgeworICAgICAgICBpZiAobGF5ZXIgPCAwIHx8IGxheWVyID49IHRoaXMubGF5ZXJDb3Vu
dAorICAgICAgICAgICAgfHwgbGV2ZWwgPCAwIHx8IGxldmVsID49IHRoaXMubGV2ZWxDb3VudAor
ICAgICAgICAgICAgfHwgayA8IDAgfHwgayA+PSB0aGlzLmRlcHRoCisgICAgICAgICAgICB8fCBq
IDwgMCB8fCBqID49IHRoaXMuaGVpZ2h0CisgICAgICAgICAgICB8fCBpIDwgMCB8fCBpID49IHRo
aXMud2lkdGgpCisgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgICByZXR1cm4g
dGhpcy5lbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSk7CisgICAgfQorCisgICAgc2V0RWxl
bWVudENoZWNrZWQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAg
IGlmIChsYXllciA8IDAgfHwgbGF5ZXIgPj0gdGhpcy5sYXllckNvdW50CisgICAgICAgICAgICB8
fCBsZXZlbCA8IDAgfHwgbGV2ZWwgPj0gdGhpcy5sZXZlbENvdW50CisgICAgICAgICAgICB8fCBr
IDwgMCB8fCBrID49IHRoaXMuZGVwdGgKKyAgICAgICAgICAgIHx8IGogPCAwIHx8IGogPj0gdGhp
cy5oZWlnaHQKKyAgICAgICAgICAgIHx8IGkgPCAwIHx8IGkgPj0gdGhpcy53aWR0aCkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgdGhpcy5zZXRFbGVtZW50KGxheWVyLCBsZXZl
bCwgaywgaiwgaSwgdmFsdWUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9CisKK2Ns
YXNzIFRleHR1cmUxRCBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlw
ZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiBtaXBtYXBz
LgorICAgICAgICAvLyBUaGUgZmlyc3QgbWlwbWFwIGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLgor
ICAgICAgICAvLyBFYWNoIGVsZW1lbnQgbWF5IGJlIGEgc2NhbGFyIG9yIGFuIGFycmF5IG9mIDIt
NCBzY2FsYXJzLgorICAgICAgICAvLyBUaGUgd2lkdGggbXVzdCBiZSBhIHBvd2VyLW9mLXR3by4K
KyAgICAgICAgLy8gRWFjaCBtaXBtYXAgaXMgaGFsZi1zaXplIG9mIHRoZSBwcmV2aW91cyBzaXpl
LgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAxOworICAgICAgICBsZXQgd2lkdGggPSBkYXRh
WzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IDE7CisgICAgICAgIGxldCBkZXB0aCA9
IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBs
YXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBk
ZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisK
KyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRh
W2xldmVsXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7
CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAg
ICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVs
LCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1baV07Cisg
ICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAg
IHsKKyAgICAgICAgdGhpcy5kYXRhW2xldmVsXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xh
c3MgVGV4dHVyZTFEQXJyYXkgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5l
clR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgMUQg
dGV4dHVyZXMuCisgICAgICAgIC8vIEFsbCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNhbWUgd2lk
dGggYW5kIG51bWJlciBvZiBtaXBtYXBzLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAxOwor
ICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdo
dCA9IDE7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0g
ZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7Cisg
ICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQs
IGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVs
KGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF0ubGVuZ3Ro
OworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1
cm4gMTsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICBy
ZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAg
ICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtpXTsKKyAgICB9CisK
KyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAg
ICAgICB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xh
c3MgVGV4dHVyZTJEIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBl
LCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIG1pcG1hcHMu
CisgICAgICAgIC8vIFRoZSBmaXJzdCBtaXBtYXAgaXMgYSByZWN0YW5ndWxhciBhcnJheSBvZiBy
b3dzLCB3aGVyZSBlYWNoIHJvdyBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8g
RWFjaCBlbGVtZW50IG1heSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4K
KyAgICAgICAgLy8gVGhlIHdpZHRoIGFuZCBoZWlnaHQgbXVzdCBiZSBwb3dlcnMtb2YtdHdvLgor
ICAgICAgICAvLyBFYWNoIG1pcG1hcCBpcyBoYWxmLXdpZHRoIGFuZCBoYWxmLWhlaWdodCBvZiB0
aGUgcHJldmlvdXMgc2l6ZS4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMjsKKyAgICAgICAg
bGV0IHdpZHRoID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRh
WzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291
bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSAxOworICAgICAgICBz
dXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNv
dW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdWzBdLmxlbmd0aDsKKyAgICB9
CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
ZGF0YVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAg
ICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVs
LCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1bal1baV07
CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQor
ICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xldmVsXVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30K
KworY2xhc3MgVGV4dHVyZTJEQXJyYXkgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rv
cihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkg
b2YgMkQgdGV4dHVyZXMuCisgICAgICAgIC8vIEFsbCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNh
bWUgd2lkdGgsIGhlaWdodCBhbmQgbnVtYmVyIG9mIG1pcG1hcHMuCisKKyAgICAgICAgbGV0IGRp
bWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF1bMF0ubGVuZ3RoOwor
ICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0
aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAg
IGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwg
d2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwg
ZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF1bMF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdo
dEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdW2xldmVs
XS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkp
CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1bal1baV07Cisg
ICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAg
IHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1bal1baV0gPSB2YWx1ZTsKKyAgICB9
Cit9CisKK2NsYXNzIFRleHR1cmUzRCBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9y
KGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBv
ZiBtaXBtYXBzLgorICAgICAgICAvLyBUaGUgZmlyc3QgbWlwbWFwIGlzIGFuIGFycmF5IG9mIGRl
cHRoIHNsaWNlcywgZWFjaCBkZXB0aCBzbGljZSBpcyBhbiBhcnJheSBvZiByb3dzLCBhbmQgZWFj
aCByb3cgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBt
YXkgYmUgYSBzY2FsYXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRo
ZSB3aWR0aCwgaGVpZ2h0LCBhbmQgZGVwdGggbXVzdCBiZSBwb3dlcnMtb2YtdHdvLgorICAgICAg
ICAvLyBFYWNoIG1pcG1hcCBpcyBoYWxmLXdpZHRoLCBoYWxmLWhlaWdodCwgYW5kIGhhbGYtZGVw
dGggb2YgdGhlIHByZXZpb3VzIHNpemUuCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDM7Cisg
ICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVp
Z2h0ID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0aCA9IGRhdGFbMF0ubGVu
Z3RoOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQg
bGF5ZXJDb3VudCA9IDE7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwg
ZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQor
CisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0
YVtsZXZlbF1bMF1bMF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwp
CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXVswXS5sZW5ndGg7CisgICAg
fQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
ZGF0YVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBr
LCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1ba11bal1baV07
CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQor
ICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xldmVsXVtrXVtqXVtpXSA9IHZhbHVlOworICAgIH0K
K30KKworY2xhc3MgVGV4dHVyZUN1YmUgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rv
cihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkg
b2YgNiAyRCB0ZXh0dXJlcy4KKyAgICAgICAgLy8gQWxsIHRleHR1cmVzIG11c3QgaGF2ZSB0aGUg
c2FtZSB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgYW5kIG51bWJlciBvZiBtaXBtYXBzLgorCisgICAg
ICAgIGxldCBkaW1lbnNpb24gPSAyOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdWzBd
Lmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAgICAg
ICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGFbMF0ubGVuZ3Ro
OworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBzdXBlcihk
aW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBp
bm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bbGV2ZWxdWzBdLmxlbmd0aDsKKyAgICB9CisK
KyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0
YVswXVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAg
ICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVs
LCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxd
W2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2
YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2pdW2ldID0gdmFs
dWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlMURSVyBleHRlbmRzIFRleHR1cmUgeworICAg
IGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBp
cyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBh
IHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRo
IG11c3QgYmUgYSBwb3dlci1vZi10d28uCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDE7Cisg
ICAgICAgIGxldCB3aWR0aCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gMTsK
KyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSAxOworICAg
ICAgICBsZXQgbGF5ZXJDb3VudCA9IDE7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgs
IGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7
CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMuZGF0YS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAg
ICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkK
KyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxl
dmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtpXTsKKyAgICB9
CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgewor
ICAgICAgICB0aGlzLmRhdGFbaV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUx
REFycmF5UlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRh
dGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgMUQgUlcgdGV4dHVy
ZXMuCisgICAgICAgIC8vIEFsbCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNhbWUgc2l6ZS4KKwor
ICAgICAgICBsZXQgZGltZW5zaW9uID0gMTsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXS5s
ZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSAxOworICAgICAgICBsZXQgZGVwdGggPSAxOwor
ICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0
YS5sZW5ndGg7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgs
IGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAg
d2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXS5s
ZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAg
IHJldHVybiAxOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAg
ICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBp
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsYXllcl1baV07CisgICAgfQorCisg
ICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAg
ICAgdGhpcy5kYXRhW2xheWVyXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVy
ZTJEUlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEp
CisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYSByZWN0YW5ndWxhciBhcnJheSBvZiByb3dz
LCB3aGVyZSBlYWNoIHJvdyBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFj
aCBlbGVtZW50IG1heSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAg
ICAgICAgLy8gVGhlIHdpZHRoIGFuZCBoZWlnaHQgbXVzdCBiZSBwb3dlcnMtb2YtdHdvLgorCisg
ICAgICAgIGxldCBkaW1lbnNpb24gPSAyOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdLmxl
bmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgZGVw
dGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7CisgICAgICAgIGxldCBsYXllckNv
dW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwg
bGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3
aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdLmxl
bmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuZGF0YS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVs
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwg
bGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2pdW2ldOwor
ICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAg
ICB7CisgICAgICAgIHRoaXMuZGF0YVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3Mg
VGV4dHVyZTJEQXJyYXlSVyBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVy
VHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiAyRCBS
VyB0ZXh0dXJlcy4KKyAgICAgICAgLy8gQWxsIHRleHR1cmVzIG11c3QgaGF2ZSB0aGUgc2FtZSB3
aWR0aCBhbmQgaGVpZ2h0LgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAyOworICAgICAgICBs
ZXQgd2lkdGggPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRhdGFb
MF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3Vu
dCA9IDE7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIHN1
cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291
bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVswXS5sZW5ndGg7CisgICAgfQorCisg
ICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFb
MF0ubGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAg
ICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBp
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsYXllcl1bal1baV07CisgICAgfQor
CisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAg
ICAgICAgdGhpcy5kYXRhW2xheWVyXVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3Mg
VGV4dHVyZTNEUlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUs
IGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgZGVwdGggc2xp
Y2VzLCBlYWNoIGRlcHRoIHNsaWNlIGlzIGFuIGFycmF5IG9mIHJvd3MsIGFuZCBlYWNoIHJvdyBp
cyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBh
IHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRo
LCBoZWlnaHQsIGFuZCBkZXB0aCBtdXN0IGJlIHBvd2Vycy1vZi10d28uCisKKyAgICAgICAgbGV0
IGRpbWVuc2lvbiA9IDM7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF0ubGVuZ3RoOwor
ICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0aCA9
IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7CisgICAgICAgIGxldCBs
YXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBk
ZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisK
KyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRh
WzBdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhB
dExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5sZW5ndGg7Cisg
ICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5kYXRhW2tdW2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5
ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtrXVtq
XVtpXSA9IHZhbHVlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1RleHR1cmVPcGVyYXRpb25zLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzc0Nzk5OTI3ODA1ZGMwNzg3
OTQyZGQzNDE5YzcwMTc5MDZhMjYzYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1RleHR1cmVPcGVyYXRpb25zLmpzCkBAIC0wLDAgKzEsNjEzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyJ1c2Ugc3RyaWN0IjsK
KworZnVuY3Rpb24gZGVwdGhDb21wYXJlT3BlcmF0aW9uKGRyZWYsIGQsIGNvbXBhcmVGdW5jdGlv
bikKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuMy40CisgICAgc3dpdGNoIChj
b21wYXJlRnVuY3Rpb24pIHsKKyAgICAgICAgY2FzZSAibmV2ZXIiOgorICAgICAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIGNhc2UgImxlc3MiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYgPCBk
ID8gMSA6IDA7CisgICAgICAgIGNhc2UgImVxdWFsIjoKKyAgICAgICAgICAgIHJldHVybiBkcmVm
ID09IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAibGVzc0VxdWFsIjoKKyAgICAgICAgICAgIHJl
dHVybiBkcmVmIDw9IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAiZ3JlYXRlciI6CisgICAgICAg
ICAgICByZXR1cm4gZHJlZiA+IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAibm90RXF1YWwiOgor
ICAgICAgICAgICAgcmV0dXJuIGRyZWYgIT0gZCA/IDEgOiAwOworICAgICAgICBjYXNlICJncmVh
dGVyRXF1YWwiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYgPj0gZCA/IDEgOiAwOworICAgICAg
ICBjYXNlICJhbHdheXMiOgorICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZGVwdGggY29tcGFyaXNvbiBm
dW5jdGlvbiIpOworICAgIH0KK30KKworZnVuY3Rpb24gY29udmVyc2lvblRvUkdCQSh2YWx1ZSkK
K3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuMy41CisgICAgaWYgKHZhbHVlIGlu
c3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IFtdOworICAgICAgICBmb3Ig
KGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgcmVzdWx0LnB1
c2godmFsdWVbaV0pOworICAgICAgICB3aGlsZSAocmVzdWx0Lmxlbmd0aCAhPSA0KQorICAgICAg
ICAgICAgcmVzdWx0LnB1c2gocmVzdWx0Lmxlbmd0aCA9PSAzID8gMSA6IDApOworICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgIH0gZWxzZQorICAgICAgICByZXR1cm4gW3ZhbHVlLCAwLCAwLCAx
XTsKK30KKworZnVuY3Rpb24gcHJvamVjdGlvbk9wZXJhdGlvbihzLCB0LCByLCBkcmVmLCBxKQor
eworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjEKKyAgICByZXR1cm4gW3MgLyBx
LCB0IC8gcSwgciAvIHEsIGRyZWYgIT0gdW5kZWZpbmVkID8gZHJlZiAvIHEgOiB1bmRlZmluZWRd
OworfQorCitmdW5jdGlvbiBjdWJlTWFwRmFjZVNlbGVjdGlvbihzLCB0LCByLCBwYXJ0aWFsUnhX
aXRoUmVzcGVjdFRvWCwgcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSeVdpdGhSZXNw
ZWN0VG9YLCBwYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1gs
IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlv
biAxNS42LjQKKyAgICBsZXQgcnggPSBzOworICAgIGxldCByeSA9IHQ7CisgICAgbGV0IHJ6ID0g
cjsKKyAgICBsZXQgd2lubmVyID0gMDsKKyAgICBpZiAoTWF0aC5hYnMocnopID49IE1hdGguYWJz
KHJ5KSAmJiBNYXRoLmFicyhyeikgPj0gTWF0aC5hYnMocngpKQorICAgICAgICB3aW5uZXIgPSAy
OworICAgIGVsc2UgaWYgKE1hdGguYWJzKHJ5KSA+PSBNYXRoLmFicyhyeCkgJiYgTWF0aC5hYnMo
cnkpID49IE1hdGguYWJzKHJ6KSkKKyAgICAgICAgd2lubmVyID0gMTsKKworICAgIGxldCBsYXll
ck51bWJlcjsKKyAgICBsZXQgc2M7CisgICAgbGV0IHRjOworICAgIGxldCByYzsKKyAgICBsZXQg
cGFydGlhbFNjV2l0aFJlc3BlY3RUb1g7CisgICAgbGV0IHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9Z
OworICAgIGxldCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWDsKKyAgICBsZXQgcGFydGlhbFRjV2l0
aFJlc3BlY3RUb1k7CisgICAgbGV0IHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YOworICAgIGxldCBw
YXJ0aWFsUmNXaXRoUmVzcGVjdFRvWTsKKyAgICBpZiAod2lubmVyID09IDAgJiYgcnggPj0gMCkg
eworICAgICAgICBsYXllck51bWJlciA9IDA7CisgICAgICAgIHNjID0gLXJ6OworICAgICAgICB0
YyA9IC1yeTsKKyAgICAgICAgcmMgPSByeDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RU
b1ggPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNw
ZWN0VG9ZID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRo
UmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRj
V2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRp
YWxSY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBh
cnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgfSBl
bHNlIGlmICh3aW5uZXIgPT0gMCkgeworICAgICAgICBsYXllck51bWJlciA9IDE7CisgICAgICAg
IHNjID0gcno7CisgICAgICAgIHRjID0gLXJ5OworICAgICAgICByYyA9IHJ4OworICAgICAgICBw
YXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAg
ICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAg
ICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsK
KyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RU
b1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeFdpdGhSZXNw
ZWN0VG9YOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnhXaXRo
UmVzcGVjdFRvWTsKKyAgICB9IGVsc2UgaWYgKHdpbm5lciA9PSAxICYmIHJ5ID49IDApIHsKKyAg
ICAgICAgbGF5ZXJOdW1iZXIgPSAyOworICAgICAgICBzYyA9IHJ4OworICAgICAgICB0YyA9IC1y
ejsKKyAgICAgICAgcmMgPSByeTsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSBw
YXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kg
PSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RU
b1ggPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3Bl
Y3RUb1kgPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJl
c3BlY3RUb1ggPSBwYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJjV2l0
aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICB9IGVsc2UgaWYgKHdp
bm5lciA9PSAxKSB7CisgICAgICAgIGxheWVyTnVtYmVyID0gMzsKKyAgICAgICAgc2MgPSByeDsK
KyAgICAgICAgdGMgPSAtcno7CisgICAgICAgIHJjID0gcnk7CisgICAgICAgIHBhcnRpYWxTY1dp
dGhSZXNwZWN0VG9YID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxT
Y1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRp
YWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBw
YXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAg
ICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7Cisg
ICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9Z
OworICAgIH0gZWxzZSBpZiAod2lubmVyID09IDIgJiYgcnogPj0gMCkgeworICAgICAgICBsYXll
ck51bWJlciA9IDQ7CisgICAgICAgIHNjID0gcng7CisgICAgICAgIHRjID0gLXJ5OworICAgICAg
ICByYyA9IHJ6OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeFdp
dGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxS
eFdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0
aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgPSAt
cGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9Y
ID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0
VG9ZID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbGF5
ZXJOdW1iZXIgPSA1OworICAgICAgICBzYyA9IC1yeDsKKyAgICAgICAgdGMgPSAtcnk7CisgICAg
ICAgIHJjID0gcno7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxS
eFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0
aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAt
cGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9Z
ID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVj
dFRvWCA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJl
c3BlY3RUb1kgPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgfQorICAgIHJldHVybiBb
bGF5ZXJOdW1iZXIsIHNjLCB0YywgcmMsIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFs
U2NXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxUY1dpdGhS
ZXNwZWN0VG9ZLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJjV2l0aFJlc3BlY3RU
b1ldCit9CisKK2Z1bmN0aW9uIGN1YmVNYXBDb29yZGluYXRlVHJhbnNmb3JtYXRpb24oc2MsIHJj
KQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjUKKyAgICBsZXQgc0ZhY2Ug
PSAoMSAvIDIpICogc2MgLyBNYXRoLmFicyhyYykgKyAoMSAvIDIpOworICAgIGxldCB0RmFjZSA9
ICgxIC8gMikgKiB0YyAvIE1hdGguYWJzKHJjKSArICgxIC8gMik7CisgICAgcmV0dXJuIFtzRmFj
ZSwgdEZhY2VdOworfQorCitmdW5jdGlvbiBjdWJlTWFwRGVyaXZhdGl2ZVRyYW5zZm9ybWF0aW9u
KHNjLCB0YywgcmMsIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU2NXaXRoUmVzcGVj
dFRvWSwgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZLCBw
YXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kpCit7CisgICAg
Ly8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuNgorICAgIGxldCBwYXJ0aWFsU0ZhY2VXaXRo
UmVzcGVjdFRvWCA9ICgxIC8gMikgKiAoKE1hdGguYWJzKHJjKSAqIHBhcnRpYWxTY1dpdGhSZXNw
ZWN0VG9YIC0gc2MgKiBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCkgLyBNYXRoLnBvdyhyYywgMikp
OworICAgIGxldCBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWSA9ICgxIC8gMikgKiAoKE1hdGgu
YWJzKHJjKSAqIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZIC0gc2MgKiBwYXJ0aWFsUmNXaXRoUmVz
cGVjdFRvWSkgLyBNYXRoLnBvdyhyYywgMikpOworICAgIGxldCBwYXJ0aWFsVEZhY2VXaXRoUmVz
cGVjdFRvWCA9ICgxIC8gMikgKiAoKE1hdGguYWJzKHJjKSAqIHBhcnRpYWxUY1dpdGhSZXNwZWN0
VG9YIC0gdGMgKiBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCkgLyBNYXRoLnBvdyhyYywgMikpOwor
ICAgIGxldCBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRvWSA9ICgxIC8gMikgKiAoKE1hdGguYWJz
KHJjKSAqIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZIC0gdGMgKiBwYXJ0aWFsUmNXaXRoUmVzcGVj
dFRvWSkgLyBNYXRoLnBvdyhyYywgMikpOworICAgIHJldHVybiBbcGFydGlhbFNGYWNlV2l0aFJl
c3BlY3RUb1gsIHBhcnRpYWxTRmFjZVdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVEZhY2VXaXRoUmVz
cGVjdFRvWCwgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1ldOworfQorCitmdW5jdGlvbiBzY2Fs
ZUZhY3Rvck9wZXJhdGlvbihkZXZpY2VNYXhBbmlzb3Ryb3B5LCB3aWR0aCwgaGVpZ2h0LCBkZXB0
aCwgc2FtcGxlck1heEFuaXNvdHJvcHksIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxU
V2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTV2l0aFJlc3Bl
Y3RUb1ksIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kpCit7
CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuNworICAgIGxldCBtdXggPSBNYXRo
LmFicyhwYXJ0aWFsU1dpdGhSZXNwZWN0VG9YKSAqIHdpZHRoOworICAgIGxldCBtdnggPSBNYXRo
LmFicyhwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YKSAqIGhlaWdodDsKKyAgICBsZXQgbXd4ID0gTWF0
aC5hYnMocGFydGlhbFJXaXRoUmVzcGVjdFRvWCkgKiBkZXB0aDsKKyAgICBsZXQgbXV5ID0gTWF0
aC5hYnMocGFydGlhbFNXaXRoUmVzcGVjdFRvWSkgKiB3aWR0aDsKKyAgICBsZXQgbXZ5ID0gTWF0
aC5hYnMocGFydGlhbFRXaXRoUmVzcGVjdFRvWSkgKiBoZWlnaHQ7CisgICAgbGV0IG13eSA9IE1h
dGguYWJzKHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kpICogZGVwdGg7CisKKyAgICAvLyBJIG1hZGUg
dGhpcyB1cC4gVGhlIGZvcm11bGEgaXNuJ3QgbGlzdGVkIGluIHRoZSBzcGVjLgorICAgIGxldCBm
eCA9IE1hdGguc3FydChtdXggKiBtdXggKyBtdnggKiBtdnggKyBtd3ggKiBtd3gpOworICAgIGxl
dCBmeSA9IE1hdGguc3FydChtdXkgKiBtdXkgKyBtdnkgKiBtdnkgKyBtd3kgKiBtd3kpOworCisg
ICAgbGV0IHJob1ggPSBmeDsKKyAgICBsZXQgcmhvWSA9IGZ5OworICAgIGxldCByaG9NYXggPSBN
YXRoLm1heChyaG9YLCByaG9ZKTsKKyAgICBsZXQgcmhvTWluID0gTWF0aC5taW4ocmhvWCwgcmhv
WSk7CisKKyAgICBsZXQgbWF4QW5pc28gPSBNYXRoLm1pbihzYW1wbGVyTWF4QW5pc290cm9weSwg
ZGV2aWNlTWF4QW5pc290cm9weSk7CisKKyAgICBsZXQgZXRhOworICAgIGlmIChyaG9NYXggPT0g
MCAmJiByaG9NaW4gPT0gMCkKKyAgICAgICAgZXRhID0gMTsKKyAgICBlbHNlIGlmIChyaG9NaW4g
PT0gMCkKKyAgICAgICAgZXRhID0gbWF4QW5pc287CisgICAgZWxzZQorICAgICAgICBldGEgPSBN
YXRoLm1pbihyaG9NYXggLyByaG9NaW4sIG1heEFuaXNvKTsKKworICAgIGxldCBOID0gTWF0aC5j
ZWlsKGV0YSk7CisgICAgcmV0dXJuIFtyaG9NYXgsIHJob01pbiwgZXRhLCBOXTsKK30KKworZnVu
Y3Rpb24gbGV2ZWxPZkRldGFpbE9wZXJhdGlvbihkZXZpY2VNYXhTYW1wbGVyTG9kQmlhcywgbG9k
RnJvbUZ1bmN0aW9uT3BlcmFuZCwgbG9kTWluRnJvbUZ1bmN0aW9uT3BlcmFuZCwgYmlhc0Zyb21G
dW5jdGlvbk9wZXJhbmQsIHNhbXBsZXJCaWFzLCBzYW1wbGVyTG9kTWluLCBzYW1wbGVyTG9kTWF4
LCByaG9NYXgsIGV0YSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi43Cisg
ICAgaWYgKGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kID09IHVuZGVmaW5lZCkKKyAgICAgICAgYmlh
c0Zyb21GdW5jdGlvbk9wZXJhbmQgPSAwOworCisgICAgbGV0IGxhbWJkYUJhc2UgPSBsb2RGcm9t
RnVuY3Rpb25PcGVyYW5kICE9IHVuZGVmaW5lZCA/IGxvZEZyb21GdW5jdGlvbk9wZXJhbmQgOiBN
YXRoLmxvZzIocmhvTWF4IC8gZXRhKTsKKyAgICBsZXQgbGFtYmRhUHJpbWUgPSBsYW1iZGFCYXNl
ICsgTWF0aC5taW4oTWF0aC5tYXgoc2FtcGxlckJpYXMgKyBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFu
ZCwgLWRldmljZU1heFNhbXBsZXJMb2RCaWFzKSwgZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMpOwor
ICAgIGxldCBsb2RNaW4gPSBNYXRoLm1heChzYW1wbGVyTG9kTWluLCBsb2RNaW5Gcm9tRnVuY3Rp
b25PcGVyYW5kKTsKKyAgICBsZXQgbG9kTWF4ID0gc2FtcGxlckxvZE1heDsKKyAgICBsZXQgbGFt
YmRhOworICAgIGlmIChsYW1iZGFQcmltZSA+IGxvZE1heCkKKyAgICAgICAgbGFtYmRhID0gbG9k
TWF4OworICAgIGVsc2UgaWYgKGxvZE1pbiA8PSBsYW1iZGFQcmltZSAmJiBsYW1iZGFQcmltZSA8
PSBsb2RNYXgpCisgICAgICAgIGxhbWJkYSA9IGxhbWJkYVByaW1lOworICAgIGVsc2UgaWYgKGxh
bWJkYVByaW1lIDwgbG9kTWluKQorICAgICAgICBsYW1iZGEgPSBsb2RNaW47CisgICAgZWxzZQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImxvZE1pbiA+PSBsb2RNYXgiKTsKKyAgICByZXR1cm4g
bGFtYmRhOworfQorCitmdW5jdGlvbiBpbWFnZUxldmVsU2VsZWN0aW9uKGJhc2VNaXBMZXZlbCwg
bGV2ZWxDb3VudCwgbWlwbWFwTW9kZSwgbGFtYmRhKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMg
c2VjdGlvbiAxNS42LjcKKyAgICBmdW5jdGlvbiBuZWFyZXN0KGRQcmltZSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBNYXRoLmNlaWwoZFByaW1lICsgMC41KSAtIDE7CisgICAgfQorCisgICAgbGV0
IHEgPSBsZXZlbENvdW50IC0gMTsKKyAgICBsZXQgZFByaW1lID0gYmFzZU1pcExldmVsICsgTWF0
aC5taW4oTWF0aC5tYXgobGFtYmRhLCAwKSwgcSk7CisgICAgbGV0IGRsOworICAgIGlmIChtaXBt
YXBNb2RlID09ICJuZWFyZXN0IikKKyAgICAgICAgZGwgPSBuZWFyZXN0KGRQcmltZSk7CisgICAg
ZWxzZQorICAgICAgICBkbCA9IGRQcmltZTsKKyAgICBpZiAobWlwbWFwTW9kZSA9PSAibmVhcmVz
dCIpCisgICAgICAgIHJldHVybiBkbDsKKyAgICBlbHNlIHsKKyAgICAgICAgbGV0IGRIaSA9IE1h
dGguZmxvb3IoZGwpOworICAgICAgICBsZXQgZExvdyA9IE1hdGgubWluKGRIaSArIDEsIHEpOwor
ICAgICAgICBsZXQgZGVsdGEgPSBkbCAtIGRIaTsKKyAgICAgICAgcmV0dXJuIFtkSGksIGRMb3cs
IGRlbHRhXTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHN0cnFhVG9VVldBVHJhbnNmb3JtYXRpb24o
cywgdCwgciwgd2lkdGgsIGhlaWdodCwgZGVwdGgpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBz
ZWN0aW9uIDE1LjYuOAorICAgIGxldCB1ID0gcyAqIHdpZHRoOworICAgIGxldCB2ID0gdCAqIGhl
aWdodDsKKyAgICBsZXQgdyA9IHIgKiBkZXB0aDsKKyAgICByZXR1cm4gW3UsIHYsIHddOworfQor
CitmdW5jdGlvbiB1dndhVG9JSktMTlRyYW5zZm9ybWF0aW9uQW5kQXJyYXlMYXllclNlbGVjdGlv
bihsYXllckNvdW50LCBiYXNlQXJyYXlMYXllciwgZmlsdGVyLCB1LCB2LCB3LCBhLCBkZWx0YUks
IGRlbHRhSiwgZGVsdGFLKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS43LjEK
KworICAgIGlmIChkZWx0YUkgPT0gdW5kZWZpbmVkKQorICAgICAgICBkZWx0YUkgPSAwOworICAg
IGlmIChkZWx0YUogPT0gdW5kZWZpbmVkKQorICAgICAgICBkZWx0YUogPSAwOworICAgIGlmIChk
ZWx0YUsgPT0gdW5kZWZpbmVkKQorICAgICAgICBkZWx0YUsgPSAwOworCisgICAgZnVuY3Rpb24g
cm5lKGEpCisgICAgeworICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihhICsgMC41KTsKKyAgICB9
CisgICAgbGV0IGwgPSBNYXRoLm1pbihNYXRoLm1heChybmUoYSksIDApLCBsYXllckNvdW50IC0g
MSkgKyBiYXNlQXJyYXlMYXllcjsKKyAgICBsZXQgaTsKKyAgICBsZXQgajsKKyAgICBsZXQgazsK
KyAgICBpZiAoZmlsdGVyID09ICJuZWFyZXN0IikgeworICAgICAgICBpID0gTWF0aC5mbG9vcih1
KTsKKyAgICAgICAgaiA9IE1hdGguZmxvb3Iodik7CisgICAgICAgIGsgPSBNYXRoLmZsb29yKHcp
OworICAgICAgICAKKyAgICAgICAgaSArPSBkZWx0YUk7CisgICAgICAgIGogKz0gZGVsdGFKOwor
ICAgICAgICBrICs9IGRlbHRhSzsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBbaSwgaiwgaywg
bF07CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGZpbHRlciAhPSAibGluZWFyIikKKyAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBmaWx0ZXIiKTsKKyAgICAgICAgbGV0IGkw
ID0gTWF0aC5mbG9vcih1IC0gMC41KTsKKyAgICAgICAgbGV0IGkxID0gaTAgKyAxOworICAgICAg
ICBsZXQgajAgPSBNYXRoLmZsb29yKHYgLSAwLjUpOworICAgICAgICBsZXQgajEgPSBqMCArIDE7
CisgICAgICAgIGxldCBrMCA9IE1hdGguZmxvb3IodyAtIDAuNSk7CisgICAgICAgIGxldCBrMSA9
IGswICsgMTsKKyAgICAgICAgbGV0IGFscGhhID0gKHUgLSAwLjUpIC0gaTA7CisgICAgICAgIGxl
dCBiZXRhID0gKHYgLSAwLjUpIC0gajA7CisgICAgICAgIGxldCBnYW1tYSA9ICh3IC0gMC41KSAt
IGswOworICAgICAgICAKKyAgICAgICAgaTAgKz0gZGVsdGFJOworICAgICAgICBpMSArPSBkZWx0
YUk7CisgICAgICAgIGowICs9IGRlbHRhSjsKKyAgICAgICAgajEgKz0gZGVsdGFKOworICAgICAg
ICBrMCArPSBkZWx0YUs7CisgICAgICAgIGsxICs9IGRlbHRhSzsKKyAgICAgICAgCisgICAgICAg
IHJldHVybiBbaTAsIGkxLCBqMCwgajEsIGswLCBrMSwgbCwgYWxwaGEsIGJldGEsIGdhbW1hXTsK
KyAgICB9Cit9CisKK2Z1bmN0aW9uIGludGVnZXJUZXhlbENvb3JkaW5hdGVPcGVyYXRpb25zKGJh
c2VNaXBMZXZlbCwgbGV2ZWxDb3VudCwgbGV2ZWxCYXNlLCBsb2RGcm9tRnVuY3Rpb25PcGVyYW5k
KQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS44CisgICAgbGV0IGQgPSBsZXZl
bEJhc2UgKyBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kOworICAgIGlmIChkIDwgYmFzZU1pcExldmVs
IHx8IGQgPj0gYmFzZU1pcExldmVsICsgbGV2ZWxDb3VudCkKKyAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJTZWxlY3RlZCBsZXZlbCBkb2VzIG5vdCBsaWUgaW5zaWRlIHRoZSBpbWFnZSIpOworICAg
IHJldHVybiBkOworfQorCitmdW5jdGlvbiB3cmFwcGluZ09wZXJhdGlvbih3aWR0aCwgaGVpZ2h0
LCBkZXB0aCwgYWRkcmVzc01vZGVVLCBhZGRyZXNzTW9kZVYsIGFkZHJlc3NNb2RlVywgaSwgaiwg
aykKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOS4xCisgICAgLy8gRklYTUU6
IEltcGxlbWVudCBjdWJlIG1hcCBoYW5kbGluZworICAgIGZ1bmN0aW9uIHRyYW5zZm9ybShhZGRy
ZXNzTW9kZSwgc2l6ZSwgaSkKKyAgICB7CisgICAgICAgIGZ1bmN0aW9uIG1pcnJvcihuKSB7Cisg
ICAgICAgICAgICBpZiAobiA+PSAwKQorICAgICAgICAgICAgICAgIHJldHVybiBuOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiAtKDEgKyBuKTsKKyAgICAgICAgfQor
ICAgICAgICBzd2l0Y2ggKGFkZHJlc3NNb2RlKSB7CisgICAgICAgICAgICBjYXNlICJjbGFtcFRv
RWRnZSI6CisgICAgICAgICAgICAgICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGksIDApLCBz
aXplIC0gMSk7CisgICAgICAgICAgICBjYXNlICJyZXBlYXQiOgorICAgICAgICAgICAgICAgIHJl
dHVybiBpICUgc2l6ZTsKKyAgICAgICAgICAgIGNhc2UgIm1pcnJvclJlcGVhdCI6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIChzaXplIC0gMSkgLSBtaXJyb3IoKGkgJSAoMiAqIHNpemUpKSAtIHNp
emUpOworICAgICAgICAgICAgY2FzZSAiY2xhbXBUb0JvcmRlckNvbG9yIjoKKyAgICAgICAgICAg
ICAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoaSwgLTEpLCBzaXplKTsKKyAgICAgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGFkZHJl
c3MgbW9kZSIpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBbdHJhbnNmb3JtKGFkZHJl
c3NNb2RlVSwgd2lkdGgsIGkpLCB0cmFuc2Zvcm0oYWRkcmVzc01vZGVWLCBoZWlnaHQsIGopLCB0
cmFuc2Zvcm0oYWRkcmVzc01vZGVXLCBkZXB0aCwgayldOworfQorCitmdW5jdGlvbiB0ZXhlbEdh
dGhlcmluZygpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjkuMgorICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgdGhpcworICAgIC8qbGV0IHRhdVIgPSA7CisgICAgbGV0IHRhdUcg
PSA7CisgICAgbGV0IHRhdUIgPSA7CisgICAgbGV0IHRhdUEgPSA7Ki8KK30KKworZnVuY3Rpb24g
dGV4ZWxGaWx0ZXJpbmcoCisgICAgZGV2aWNlTWF4QW5pc290cm9weSwKKyAgICBkZXZpY2VNYXhT
YW1wbGVyTG9kQmlhcywKKyAgICBiYXNlTWlwTGV2ZWwsCisgICAgYmFzZUFycmF5TGF5ZXIsCisg
ICAgdGV4dHVyZSwKKyAgICBzYW1wbGVyLAorICAgIHNhbXBsZXJCaWFzLAorICAgIHMsIHQsIHIs
IGEsCisgICAgZGVsdGFJLCBkZWx0YUosIGRlbHRhSywKKyAgICBsb2RGcm9tRnVuY3Rpb25PcGVy
YW5kLAorICAgIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgYmlhc0Zyb21GdW5jdGlv
bk9wZXJhbmQsCisgICAgZGR4LCBkZHkpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9u
IDE1LjkuMworCisgICAgLy8gVGhlIHNwZWMgdXNlcyBkaWZmZXJlbnQgbmFtZXMgdGhhbiBXZWJH
UFUgZG9lcy4KKyAgICBsZXQgYWRkcmVzc01vZGVVID0gc2FtcGxlci5yQWRkcmVzc01vZGU7Cisg
ICAgbGV0IGFkZHJlc3NNb2RlViA9IHNhbXBsZXIuc0FkZHJlc3NNb2RlOworICAgIGxldCBhZGRy
ZXNzTW9kZVcgPSBzYW1wbGVyLnRBZGRyZXNzTW9kZTsKKworICAgIC8vIEZJWE1FOiBNYWtlIHRo
aXMgd29yayB3aXRoIGN1YmVtYXBzCisgICAgbGV0IHBhcnRpYWxTV2l0aFJlc3BlY3RUb1ggPSAw
OworICAgIGxldCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YID0gMDsKKyAgICBsZXQgcGFydGlhbFJX
aXRoUmVzcGVjdFRvWCA9IDA7CisgICAgaWYgKGRkeCAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAg
cGFydGlhbFNXaXRoUmVzcGVjdFRvWCA9IGRkeFswXTsKKyAgICAgICAgcGFydGlhbFRXaXRoUmVz
cGVjdFRvWCA9IGRkeFsxXTsKKyAgICAgICAgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCA9IGRkeFsy
XTsKKyAgICB9CisgICAgbGV0IHBhcnRpYWxTV2l0aFJlc3BlY3RUb1kgPSAwOworICAgIGxldCBw
YXJ0aWFsVFdpdGhSZXNwZWN0VG9ZID0gMDsKKyAgICBsZXQgcGFydGlhbFJXaXRoUmVzcGVjdFRv
WSA9IDA7CisgICAgaWYgKGRkeSAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgcGFydGlhbFNXaXRo
UmVzcGVjdFRvWSA9IGRkeVswXTsKKyAgICAgICAgcGFydGlhbFRXaXRoUmVzcGVjdFRvWSA9IGRk
eVsxXTsKKyAgICAgICAgcGFydGlhbFJXaXRoUmVzcGVjdFRvWSA9IGRkeVsyXTsKKyAgICB9Cisg
ICAgbGV0IFtyaG9NYXgsIHJob01pbiwgZXRhLCBOXSA9IHNjYWxlRmFjdG9yT3BlcmF0aW9uKGRl
dmljZU1heEFuaXNvdHJvcHksIHRleHR1cmUud2lkdGgsIHRleHR1cmUuaGVpZ2h0LCB0ZXh0dXJl
LmRlcHRoLCBzYW1wbGVyLm1heEFuaXNvdHJvcHksIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1gsIHBh
cnRpYWxUV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTV2l0
aFJlc3BlY3RUb1ksIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSV2l0aFJlc3BlY3RU
b1kpOworICAgIGxldCBsYW1iZGEgPSBsZXZlbE9mRGV0YWlsT3BlcmF0aW9uKGRldmljZU1heFNh
bXBsZXJMb2RCaWFzLCBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLCBsb2RNaW5Gcm9tRnVuY3Rpb25P
cGVyYW5kLCBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwgc2FtcGxlckJpYXMsIHNhbXBsZXIubG9k
TWluQ2xhbXAsIHNhbXBsZXIubG9kTWF4Q2xhbXAsIHJob01heCwgZXRhKTsKKworICAgIGxldCBm
aWx0ZXI7CisgICAgaWYgKGxhbWJkYSA8PSAwKQorICAgICAgICBmaWx0ZXIgPSBzYW1wbGVyLm1h
Z0ZpbHRlcjsKKyAgICBlbHNlCisgICAgICAgIGZpbHRlciA9IHNhbXBsZXIubWluRmlsdGVyOwor
CisgICAgZnVuY3Rpb24gcmVkdWNlKC4uLnZhbHVlcykKKyAgICB7CisgICAgICAgIGlmICh2YWx1
ZXMubGVuZ3RoICUgMiAhPSAwKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJEb24ndCBo
YXZlIGEgd2VpZ2h0IGNvcnJlc3BvbmRpbmcgdG8gZWFjaCB2YWx1ZSIpOworICAgICAgICBpZiAo
dmFsdWVzLmxlbmd0aCA8IDIpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkRvbid0IGhh
dmUgZW5vdWdoIHRoaW5ncyB0byBjYWxjdWxhdGUgYW4gYXZlcmFnZSIpOworICAgICAgICBsZXQg
c3VtOworICAgICAgICBpZiAodmFsdWVzWzFdIGluc3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAg
ICAgIHN1bSA9IFtdOworICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXNbMV0u
bGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgc3VtLnB1c2goMCk7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgc3VtID0gMDsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1
ZXMubGVuZ3RoIC8gMjsgKytpKSB7CisgICAgICAgICAgICBsZXQgd2VpZ2h0ID0gdmFsdWVzWzIg
KiBpXTsKKyAgICAgICAgICAgIGxldCBjb2xvciA9IHZhbHVlc1syICogaSArIDFdOworICAgICAg
ICAgICAgaWYgKGNvbG9yIGluc3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAgICAgICAgICBmb3Ig
KGxldCBpID0gMDsgaSA8IGNvbG9yLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgICAgICAgICBz
dW1baV0gKz0gd2VpZ2h0ICogY29sb3JbaV07CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgICAgICBzdW0gKz0gd2VpZ2h0ICogY29sb3I7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
IHN1bTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjb21wdXRlVGF1KGxldmVsKQorICAgIHsKKyAg
ICAgICAgZnVuY3Rpb24gYWNjZXNzQ29sb3Iod2lkdGgsIGhlaWdodCwgZGVwdGgsIGwsIGksIGos
IGspCisgICAgICAgIHsKKyAgICAgICAgICAgIGZ1bmN0aW9uIHNob3VsZEJlQm9yZGVyKHZhbHVl
LCBtYXgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlIDwgLTEgfHwg
dmFsdWUgPiBtYXgpCisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiT3V0LW9m
LWJvdW5kcyB0ZXh0dXJlIHJlYWQiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPT0g
LTEgfHwgdmFsdWUgPT0gbWF4OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsZXQgW3dy
YXBwZWRJLCB3cmFwcGVkSiwgd3JhcHBlZEtdID0gd3JhcHBpbmdPcGVyYXRpb24od2lkdGgsIGhl
aWdodCwgZGVwdGgsIGFkZHJlc3NNb2RlVSwgYWRkcmVzc01vZGVWLCBhZGRyZXNzTW9kZVcsIGks
IGosIGspCisgICAgICAgICAgICBpZiAoc2hvdWxkQmVCb3JkZXIod3JhcHBlZEksIHdpZHRoKSB8
fCBzaG91bGRCZUJvcmRlcih3cmFwcGVkSiwgaGVpZ2h0KSB8fCBzaG91bGRCZUJvcmRlcih3cmFw
cGVkSywgZGVwdGgpKQorICAgICAgICAgICAgICAgIHJldHVybiBzYW1wbGVyLmNhbGN1bGF0ZUJv
cmRlckNvbG9yKHRleHR1cmUuaW5uZXJUeXBlKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdGV4dHVyZS5lbGVtZW50KGwsIGxldmVsLCB3cmFwcGVkSywgd3JhcHBl
ZEosIHdyYXBwZWRJKTsKKyAgICAgICAgfQorCisgICAgICAgIGxldCBbdSwgdiwgd10gPSBzdHJx
YVRvVVZXQVRyYW5zZm9ybWF0aW9uKHMsIHQsIHIsIHRleHR1cmUud2lkdGhBdExldmVsKGxldmVs
KSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2
ZWwpKTsKKyAgICAgICAgaWYgKGZpbHRlciA9PSAibmVhcmVzdCIpIHsKKyAgICAgICAgICAgIGxl
dCBbaSwgaiwgaywgbF0gPSB1dndhVG9JSktMTlRyYW5zZm9ybWF0aW9uQW5kQXJyYXlMYXllclNl
bGVjdGlvbih0ZXh0dXJlLmxheWVyQ291bnQsIGJhc2VBcnJheUxheWVyLCBmaWx0ZXIsIHUsIHYs
IHcsIGEsIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUspOworICAgICAgICAgICAgcmV0dXJuIGFjY2Vz
c0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVs
KGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpLCBqLCBrKTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChmaWx0ZXIgIT0gImxpbmVhciIpCisgICAgICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGZpbHRlciIpOworICAgICAgICAgICAg
bGV0IFtpMCwgaTEsIGowLCBqMSwgazAsIGsxLCBsLCBhbHBoYSwgYmV0YSwgZ2FtbWFdID0gdXZ3
YVRvSUpLTE5UcmFuc2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJTZWxlY3Rpb24odGV4dHVyZS5sYXll
ckNvdW50LCBiYXNlQXJyYXlMYXllciwgZmlsdGVyLCB1LCB2LCB3LCBhLCBkZWx0YUksIGRlbHRh
SiwgZGVsdGFLKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjAwMCA9IGFjY2Vzc0NvbG9yKHRleHR1
cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4
dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMCwgajAsIGswKTsKKyAgICAgICAgICAgIGxl
dCBjb2xvcjEwMCA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4
dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBs
LCBpMSwgajAsIGswKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjAxMCA9IGFjY2Vzc0NvbG9yKHRl
eHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwg
dGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMCwgajEsIGswKTsKKyAgICAgICAgICAg
IGxldCBjb2xvcjExMCA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwg
dGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwp
LCBsLCBpMSwgajEsIGswKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjAwMSA9IGFjY2Vzc0NvbG9y
KHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVs
KSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMCwgajAsIGsxKTsKKyAgICAgICAg
ICAgIGxldCBjb2xvcjEwMSA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVs
KSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2
ZWwpLCBsLCBpMSwgajAsIGsxKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjAxMSA9IGFjY2Vzc0Nv
bG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxl
dmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMCwgajEsIGsxKTsKKyAgICAg
ICAgICAgIGxldCBjb2xvcjExMSA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxl
dmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwo
bGV2ZWwpLCBsLCBpMSwgajEsIGsxKTsKKyAgICAgICAgICAgIHN3aXRjaCAodGV4dHVyZS5kaW1l
bnNpb24pIHsKKyAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgIGxl
dCBjb2xvcjAgPSBjb2xvcjAxMTsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMSA9IGNv
bG9yMTExOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVkdWNlKDEgLSBhbHBoYSwgY29s
b3IwLCBhbHBoYSwgY29sb3IxKTsKKyAgICAgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAg
ICAgICAgICAgIGxldCBjb2xvcjAwID0gY29sb3IwMDE7CisgICAgICAgICAgICAgICAgICAgIGxl
dCBjb2xvcjEwID0gY29sb3IxMDE7CisgICAgICAgICAgICAgICAgICAgIGxldCBjb2xvcjAxID0g
Y29sb3IwMTE7CisgICAgICAgICAgICAgICAgICAgIGxldCBjb2xvcjExID0gY29sb3IxMTE7Cisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiByZWR1Y2UoKDEgLSBhbHBoYSkgKiAoMSAtIGJldGEp
LCBjb2xvcjAwLCBhbHBoYSAqICgxIC0gYmV0YSksIGNvbG9yMTAsICgxIC0gYWxwaGEpICogYmV0
YSwgY29sb3IwMSwgYWxwaGEgKiBiZXRhLCBjb2xvcjExKTsKKyAgICAgICAgICAgICAgICBjYXNl
IDM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWR1Y2UoCisgICAgICAgICAgICAgICAg
ICAgICAgICAoMSAtIGFscGhhKSAqICgxIC0gYmV0YSkgKiAoMSAtIGdhbW1hKSwgY29sb3IwMDAs
CisgICAgICAgICAgICAgICAgICAgICAgICBhbHBoYSAqICgxIC0gYmV0YSkgKiAoMSAtIGdhbW1h
KSwgY29sb3IxMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAoMSAtIGFscGhhKSAqIGJldGEg
KiAoMSAtIGdhbW1hKSwgY29sb3IwMTAsCisgICAgICAgICAgICAgICAgICAgICAgICBhbHBoYSAq
IGJldGEgKiAoMSAtIGdhbW1hKSwgY29sb3IxMTAsCisgICAgICAgICAgICAgICAgICAgICAgICAo
MSAtIGFscGhhKSAqICgxIC0gYmV0YSkgKiBnYW1tYSwgY29sb3IwMDEsCisgICAgICAgICAgICAg
ICAgICAgICAgICBhbHBoYSAqICgxIC0gYmV0YSkgKiBnYW1tYSwgY29sb3IxMDEsCisgICAgICAg
ICAgICAgICAgICAgICAgICAoMSAtIGFscGhhKSAqIGJldGEgKiBnYW1tYSwgY29sb3IwMTEsCisg
ICAgICAgICAgICAgICAgICAgICAgICBhbHBoYSAqIGJldGEgKiBnYW1tYSwgY29sb3IxMTEpOwor
ICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBF
cnJvcigiVW5rbm93biBkaW1lbnNpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
IH0KKworICAgIGlmIChzYW1wbGVyLm1pcG1hcEZpbHRlciA9PSAibmVhcmVzdCIpIHsKKyAgICAg
ICAgbGV0IGltYWdlTGV2ZWwgPSBpbWFnZUxldmVsU2VsZWN0aW9uKGJhc2VNaXBMZXZlbCwgdGV4
dHVyZS5sZXZlbENvdW50LCBzYW1wbGVyLm1pcG1hcEZpbHRlciwgbGFtYmRhKTsKKyAgICAgICAg
cmV0dXJuIGNvbXB1dGVUYXUoaW1hZ2VMZXZlbCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYg
KHNhbXBsZXIubWlwbWFwRmlsdGVyICE9ICJsaW5lYXIiKQorICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJVbmtub3duIGZpbHRlciIpOworICAgICAgICBsZXQgW2RIaSwgZExvdywgZGVsdGFd
ID0gaW1hZ2VMZXZlbFNlbGVjdGlvbihiYXNlTWlwTGV2ZWwsIHRleHR1cmUubGV2ZWxDb3VudCwg
c2FtcGxlci5taXBtYXBGaWx0ZXIsIGxhbWJkYSk7CisgICAgICAgIHJldHVybiByZWR1Y2UoMSAt
IGRlbHRhLCBjb21wdXRlVGF1KGRIaSksIGRlbHRhLCBjb21wdXRlVGF1KGRMb3cpKTsKKyAgICB9
Cit9CisKK2Z1bmN0aW9uIGNhc3RUb0lubmVyVHlwZSh2YWx1ZSwgaW5uZXJUeXBlKQoreworICAg
IHN3aXRjaCAoaW5uZXJUeXBlKSB7CisgICAgICAgIGNhc2UgInVjaGFyIjoKKyAgICAgICAgICAg
IHJldHVybiBjYXN0VG9VY2hhcih2YWx1ZSk7CisgICAgICAgIGNhc2UgInVzaG9ydCI6CisgICAg
ICAgICAgICByZXR1cm4gY2FzdFRvVXNob3J0KHZhbHVlKTsKKyAgICAgICAgY2FzZSAidWludCI6
CisgICAgICAgICAgICByZXR1cm4gY2FzdFRvVWludCh2YWx1ZSk7CisgICAgICAgIGNhc2UgImNo
YXIiOgorICAgICAgICAgICAgcmV0dXJuIGNhc3RUb0NoYXIodmFsdWUpOworICAgICAgICBjYXNl
ICJzaG9ydCI6CisgICAgICAgICAgICByZXR1cm4gY2FzdFRvU2hvcnQodmFsdWUpOworICAgICAg
ICBjYXNlICJpbnQiOgorICAgICAgICAgICAgcmV0dXJuIGNhc3RUb0ludCh2YWx1ZSk7CisgICAg
ICAgIGNhc2UgImhhbGYiOgorICAgICAgICAgICAgcmV0dXJuIGNhc3RUb0hhbGYodmFsdWUpOwor
ICAgICAgICBjYXNlICJmbG9hdCI6CisgICAgICAgICAgICByZXR1cm4gY2FzdFRvRmxvYXQodmFs
dWUpOworICAgICAgICAKKyAgICAgICAgY2FzZSAidWNoYXIyIjoKKyAgICAgICAgY2FzZSAidWNo
YXIzIjoKKyAgICAgICAgY2FzZSAidWNoYXI0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5t
YXAoY2FzdFRvVWNoYXIpOworICAgICAgICBjYXNlICJ1c2hvcnQyIjoKKyAgICAgICAgY2FzZSAi
dXNob3J0MyI6CisgICAgICAgIGNhc2UgInVzaG9ydDQiOgorICAgICAgICAgICAgcmV0dXJuIHZh
bHVlLm1hcChjYXN0VG9Vc2hvcnQpOworICAgICAgICBjYXNlICJ1aW50MiI6CisgICAgICAgIGNh
c2UgInVpbnQzIjoKKyAgICAgICAgY2FzZSAidWludDQiOgorICAgICAgICAgICAgcmV0dXJuIHZh
bHVlLm1hcChjYXN0VG9VaW50KTsKKyAgICAgICAgY2FzZSAiY2hhcjIiOgorICAgICAgICBjYXNl
ICJjaGFyMyI6CisgICAgICAgIGNhc2UgImNoYXI0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1
ZS5tYXAoY2FzdFRvQ2hhcik7CisgICAgICAgIGNhc2UgInNob3J0MiI6CisgICAgICAgIGNhc2Ug
InNob3J0MyI6CisgICAgICAgIGNhc2UgInNob3J0NCI6CisgICAgICAgICAgICByZXR1cm4gdmFs
dWUubWFwKGNhc3RUb1Nob3J0KTsKKyAgICAgICAgY2FzZSAiaW50MiI6CisgICAgICAgIGNhc2Ug
ImludDMiOgorICAgICAgICBjYXNlICJpbnQ0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5t
YXAoY2FzdFRvSW50KTsKKyAgICAgICAgY2FzZSAiaGFsZjIiOgorICAgICAgICBjYXNlICJoYWxm
MyI6CisgICAgICAgIGNhc2UgImhhbGY0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAo
Y2FzdFRvSGFsZik7CisgICAgICAgIGNhc2UgImZsb2F0MiI6CisgICAgICAgIGNhc2UgImZsb2F0
MyI6CisgICAgICAgIGNhc2UgImZsb2F0NCI6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFw
KGNhc3RUb0Zsb2F0KTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBF
cnJvcigiVW5rbm93biB0ZXh0dXJlIGlubmVyIHR5cGUiKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9u
IHNhbXBsZVRleHR1cmUodGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRlbHRhLCBiaWFzRnJv
bUZ1bmN0aW9uT3BlcmFuZCwgZGR4LCBkZHksIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsIGRyZWYp
Cit7CisgICAgbGV0IHMgPSBsb2NhdGlvblswXTsKKyAgICBsZXQgdCA9IGxvY2F0aW9uWzFdOwor
ICAgIGxldCByID0gbG9jYXRpb25bMl07CisgICAgbGV0IHEgPSBsb2NhdGlvblszXTsKKyAgICBs
ZXQgYSA9IGxvY2F0aW9uWzRdOworCisgICAgbGV0IGRlbHRhSSA9IHVuZGVmaW5lZDsKKyAgICBs
ZXQgZGVsdGFKID0gdW5kZWZpbmVkOworICAgIGxldCBkZWx0YUsgPSB1bmRlZmluZWQ7CisgICAg
aWYgKGRlbHRhICE9IHVuZGVmaW5lZCkgeworICAgICAgICBkZWx0YUkgPSBkZWx0YVswXTsKKyAg
ICAgICAgZGVsdGFKID0gZGVsdGFbMV07CisgICAgICAgIGRlbHRhSyA9IGRlbHRhWzJdOworICAg
IH0KKworICAgIFtzLCB0LCByLCBkcmVmXSA9IHByb2plY3Rpb25PcGVyYXRpb24ocywgdCwgciwg
ZHJlZiwgcSk7CisgICAgbGV0IHJlc3VsdCA9IHRleGVsRmlsdGVyaW5nKAorICAgICAgICBOdW1i
ZXIuTUFYX1ZBTFVFLAorICAgICAgICBOdW1iZXIuTUFYX1ZBTFVFLAorICAgICAgICAwLAorICAg
ICAgICAwLAorICAgICAgICB0ZXh0dXJlLAorICAgICAgICBzYW1wbGVyLAorICAgICAgICAwLAor
ICAgICAgICBzLCB0LCByLCBhLAorICAgICAgICBkZWx0YUksIGRlbHRhSiwgZGVsdGFLLAorICAg
ICAgICBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgICAgICAtTnVtYmVyLk1BWF9WQUxVRSwK
KyAgICAgICAgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgICAgIGRkeCwgZGR5KTsKKyAg
ICBpZiAoZHJlZiAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9m
IEFycmF5KQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJEZXB0aCBjb21wYXJpc29uIG5v
dCBzdXBwb3J0ZWQgb24gbXVsdGljaGFubmVsIHRleHR1cmVzIik7CisgICAgICAgIHJlc3VsdCA9
IGRlcHRoQ29tcGFyZU9wZXJhdGlvbihkcmVmLCByZXN1bHQsIHNhbXBsZXIuY29tcGFyZUZ1bmN0
aW9uKTsKKyAgICB9CisgICAgcmV0dXJuIGNhc3RUb0lubmVyVHlwZShyZXN1bHQsIHRleHR1cmUu
aW5uZXJUeXBlKTsKKyAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRvIGRvIHdpdGggYW5p
c290cm9weQorICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IGhvdyB0byBkbyBtdWx0aXNhbXBsaW5n
LgorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRt
bCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKaW5kZXggNjVhODY0
MTFiM2U3NzBiNTU3YjQxYWNjN2U0MTRkZWY0MjQwMzAxMy4uZTZlMTNkZmU4ZGZhNWM1MzMyYWQ5
ZWYwNDllY2VhMzU5YjdlM2E0MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvaW5kZXguaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRl
eC5odG1sCkBAIC0yOCw2ICsyOCw3IEBACiA8c2NyaXB0IHNyYz0iQnVpbHRpblZlY3RvclNldHRl
ci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2FsbEV4cHJlc3Npb24uanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IkNhbGxGdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Q2FzdHMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNoZWNrLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJDaGVja0xpdGVyYWxUeXBlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
Q2hlY2tMb29wcy5qcyI+PC9zY3JpcHQ+CkBAIC0xMTUsNiArMTE2LDcgQEAKIDxzY3JpcHQgc3Jj
PSJSZXR1cm4uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJldHVybkNoZWNrZXIuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IlJldHVybkV4Y2VwdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iU2FtcGxlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3RhbmRhcmRMaWJy
YXJ5LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTdGF0ZW1lbnRDbG9uZXIuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IlN0cnVjdExheW91dEJ1aWxkZXIuanMiPjwvc2NyaXB0PgpAQCAt
MTI3LDYgKzEyOSw4IEBACiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9w
ZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRGVmYXVsdENvbnN0
cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRlcm5hcnlFeHByZXNz
aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUZXh0dXJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJUZXh0dXJlT3BlcmF0aW9ucy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
VHJhcFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348726</attachid>
            <date>2018-09-01 22:28:48 -0700</date>
            <delta_ts>2018-09-01 22:40:37 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188940-20180901222847.patch</filename>
            <type>text/plain</type>
            <size>405549</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTg0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmZiYjA3NGE1ODRmZjk0OTQxMDdjZWFmZjY5NTQzM2Nk
ZGFiMWQ0NS4uYzBkNjY3MDI3OTg2ZTBiYzA5MGQ5MTkwY2JmOTE3Yjk5MDYwMmY5YyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
OSBAQAorMjAxOC0wOS0wMSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRleHR1cmUgdHlwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNp
Y3MuanM6CisgICAgICAgIChJbnRyaW5zaWNzLik6CisgICAgICAgIChJbnRyaW5zaWNzLmNoZWNr
RmFsc2UpOgorICAgICAgICAoSW50cmluc2ljcy5ib3hWZWN0b3IpOgorICAgICAgICAoSW50cmlu
c2ljcy51bmJveFZlY3Rvcik6CisgICAgICAgIChJbnRyaW5zaWNzKToKKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qczoKKyAgICAgICAgKGxldC5zdGFuZGFyZExpYnJh
cnkpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAobWFrZVNhbXBs
ZXIpOgorICAgICAgICAobWFrZTFEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMURUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMkRUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTNEVGV4dHVyZSk6CisgICAgICAgIChtYWtlVGV4dHVyZUN1YmUp
OgorICAgICAgICAobWFrZVJXMURUZXh0dXJlKToKKyAgICAgICAgKG1ha2VSVzFEVGV4dHVyZUFy
cmF5KToKKyAgICAgICAgKG1ha2VSVzJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlUlcyRFRleHR1
cmVBcnJheSk6CisgICAgICAgIChtYWtlUlczRFRleHR1cmUpOgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1RleHR1cmUuanM6IEFkZGVkLgorICAgICAgICAoVGV4dHVyZSk6Cisg
ICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQgZGltZW5zaW9uKToKKyAgICAgICAgKFRleHR1
cmUucHJvdG90eXBlLmdldCB3aWR0aCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aGVpZ2h0KToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkZXB0aCk6CisgICAgICAg
IChUZXh0dXJlLnByb3RvdHlwZS5nZXQgbGV2ZWxDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnBy
b3RvdHlwZS5nZXQgbGF5ZXJDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aW5uZXJUeXBlKToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkYXRhKToKKyAgICAg
ICAgKFRleHR1cmUucHJvdG90eXBlLmVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUu
cHJvdG90eXBlLnNldEVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUxRCk6CisgICAg
ICAgIChUZXh0dXJlMUQucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJl
MUQucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlw
ZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlwZS5lbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUxRC5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0
dXJlMURBcnJheSk6CisgICAgICAgIChUZXh0dXJlMURBcnJheS5wcm90b3R5cGUud2lkdGhBdExl
dmVsKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToK
KyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTFEQXJyYXkucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTFE
QXJyYXkucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEKToKKyAgICAg
ICAgKFRleHR1cmUyRC5wcm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUy
RC5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBl
LmRlcHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBlLmVsZW1lbnQpOgor
ICAgICAgICAoVGV4dHVyZTJELnByb3RvdHlwZS5zZXRFbGVtZW50KToKKyAgICAgICAgKFRleHR1
cmUyREFycmF5KToKKyAgICAgICAgKFRleHR1cmUyREFycmF5LnByb3RvdHlwZS53aWR0aEF0TGV2
ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgor
ICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMkRBcnJheS5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMkRB
cnJheS5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlM0QpOgorICAgICAg
ICAoVGV4dHVyZTNELnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTNE
LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUuZWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0QucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVy
ZUN1YmUpOgorICAgICAgICAoVGV4dHVyZUN1YmUucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6Cisg
ICAgICAgIChUZXh0dXJlQ3ViZS5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlQ3ViZS5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmVDdWJl
LnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmVDdWJlLnByb3RvdHlwZS5zZXRF
bGVtZW50KToKKyAgICAgICAgKFRleHR1cmUxRFJXKToKKyAgICAgICAgKFRleHR1cmUxRFJXLnBy
b3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmhl
aWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmRlcHRoQXRMZXZl
bCk6CisgICAgICAgIChUZXh0dXJlMURSVy5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChU
ZXh0dXJlMURSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMURBcnJh
eVJXKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6
CisgICAgICAgIChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAg
ICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUx
REFycmF5UlcucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEUlcpOgor
ICAgICAgICAoVGV4dHVyZTJEUlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlMkRSVy5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkRS
Vy5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlw
ZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlwZS5zZXRFbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUyREFycmF5UlcpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5w
cm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90
eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90eXBlLmVsZW1l
bnQpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0RSVyk6CisgICAgICAgIChUZXh0dXJlM0RSVy5wcm90b3R5cGUud2lk
dGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVs
KToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTNEUlcucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTNEUlcu
cHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1RleHR1cmVPcGVyYXRpb25zLmpzOiBBZGRlZC4KKyAgICAgICAgKGRlcHRoQ29tcGFyZU9wZXJh
dGlvbik6CisgICAgICAgIChjb252ZXJzaW9uVG9SR0JBKToKKyAgICAgICAgKHByb2plY3Rpb25P
cGVyYXRpb24pOgorICAgICAgICAoY3ViZU1hcEZhY2VTZWxlY3Rpb24pOgorICAgICAgICAoY3Vi
ZU1hcENvb3JkaW5hdGVUcmFuc2Zvcm1hdGlvbik6CisgICAgICAgIChjdWJlTWFwRGVyaXZhdGl2
ZVRyYW5zZm9ybWF0aW9uKToKKyAgICAgICAgKHNjYWxlRmFjdG9yT3BlcmF0aW9uKToKKyAgICAg
ICAgKGxldmVsT2ZEZXRhaWxPcGVyYXRpb24pOgorICAgICAgICAobmVhcmVzdCk6CisgICAgICAg
IChpbWFnZUxldmVsU2VsZWN0aW9uKToKKyAgICAgICAgKHN0cnFhVG9VVldBVHJhbnNmb3JtYXRp
b24pOgorICAgICAgICAocm5lKToKKyAgICAgICAgKHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25B
bmRBcnJheUxheWVyU2VsZWN0aW9uKToKKyAgICAgICAgKGludGVnZXJUZXhlbENvb3JkaW5hdGVP
cGVyYXRpb25zKToKKyAgICAgICAgKG1pcnJvcik6CisgICAgICAgICh0cmFuc2Zvcm0pOgorICAg
ICAgICAod3JhcHBpbmdPcGVyYXRpb24pOgorICAgICAgICAodGV4ZWxHYXRoZXJpbmcpOgorICAg
ICAgICAoY29tcHV0ZVRhdS5yZWR1Y2UpOgorICAgICAgICAoY29tcHV0ZVRhdS5zaG91bGRCZUJv
cmRlcik6CisgICAgICAgIChjb21wdXRlVGF1LmFjY2Vzc0NvbG9yKToKKyAgICAgICAgKGNvbXB1
dGVUYXUpOgorICAgICAgICAodGV4ZWxGaWx0ZXJpbmcpOgorICAgICAgICAoc2FtcGxlVGV4dHVy
ZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAx
OC0wOS0wMSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2Nv
YV0gQ3Jhc2ggdXNpbmcgS1ZPIGZvciAnc2VydmVyVHJ1c3QnIHByb3BlcnR5IG9mIFdLV2ViVmll
dyAtICJ0aGlzIGNsYXNzIGlzIG5vdCBrZXkgdmFsdWUgY29kaW5nLWNvbXBsaWFudCBmb3IgdGhl
IGtleSBzZXJ2ZXJUcnVzdCIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0FsbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwppbmRleCA5
YzJhMzcxNTBjMWU5NzZiOTI2Y2ZiZWUyMzQzNzUyMGE4ZGU0YTQ3Li45MGZjODQxM2E2NTEyMjQ0
NmJmMDFmZDk2N2RkNjUxMzlhMGY4N2U5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9BbGwuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxs
LmpzCkBAIC01MSw2ICs1MSw3IEBAIGxvYWQoIkJ1aWx0aW5WZWN0b3JHZXR0ZXIuanMiKTsKIGxv
YWQoIkJ1aWx0aW5WZWN0b3JTZXR0ZXIuanMiKTsKIGxvYWQoIkNhbGxFeHByZXNzaW9uLmpzIik7
CiBsb2FkKCJDYWxsRnVuY3Rpb24uanMiKTsKK2xvYWQoIkNhc3RzLmpzIik7CiBsb2FkKCJDaGVj
ay5qcyIpOwogbG9hZCgiQ2hlY2tMaXRlcmFsVHlwZXMuanMiKTsKIGxvYWQoIkNoZWNrTG9vcHMu
anMiKTsKQEAgLTEzOCw2ICsxMzksNyBAQCBsb2FkKCJSZXNvbHZlVHlwZURlZnMuanMiKTsKIGxv
YWQoIlJldHVybi5qcyIpOwogbG9hZCgiUmV0dXJuQ2hlY2tlci5qcyIpOwogbG9hZCgiUmV0dXJu
RXhjZXB0aW9uLmpzIik7Citsb2FkKCJTYW1wbGVyLmpzIik7CiBsb2FkKCJTdGFuZGFyZExpYnJh
cnkuanMiKTsKIGxvYWQoIlN0YXRlbWVudENsb25lci5qcyIpOwogbG9hZCgiU3RydWN0TGF5b3V0
QnVpbGRlci5qcyIpOwpAQCAtMTUwLDYgKzE1Miw4IEBAIGxvYWQoIlN5bnRoZXNpemVTdHJ1Y3RB
Y2Nlc3NvcnMuanMiKTsKIGxvYWQoIlN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5q
cyIpOwogbG9hZCgiU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIik7CiBs
b2FkKCJUZXJuYXJ5RXhwcmVzc2lvbi5qcyIpOworbG9hZCgiVGV4dHVyZS5qcyIpOworbG9hZCgi
VGV4dHVyZU9wZXJhdGlvbnMuanMiKTsKIGxvYWQoIlRyYXBTdGF0ZW1lbnQuanMiKTsKIGxvYWQo
IlR5cGVEZWYuanMiKTsKIGxvYWQoIlR5cGVEZWZSZXNvbHZlci5qcyIpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FzdHMuanMgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9DYXN0cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hY2JiMmVhMDI4NTM1YjQ2NzA0MjMw
OTdmN2E1YjU3Y2FmNmI4YjFjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvQ2FzdHMuanMKQEAgLTAsMCArMSwxMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKyJ1c2Ugc3RyaWN0IjsKKworZnVuY3Rpb24gY2Fz
dCh0eXBlZEFycmF5Q29uc3RydWN0b3IsIG51bWJlcikKK3sKKyAgICB2YXIgYXJyYXkgPSBuZXcg
dHlwZWRBcnJheUNvbnN0cnVjdG9yKDEpOworICAgIGFycmF5WzBdID0gbnVtYmVyOworICAgIHJl
dHVybiBhcnJheVswXTsKK30KKworZnVuY3Rpb24gYml0d2lzZUNhc3QodHlwZWRBcnJheUNvbnN0
cnVjdG9yMSwgdHlwZWRBcnJheUNvbnN0cnVjdG9yMiwgdmFsdWUpCit7CisgICAgbGV0IHR5cGVk
QXJyYXkxID0gbmV3IHR5cGVkQXJyYXlDb25zdHJ1Y3RvcjEoMSk7CisgICAgbGV0IHR5cGVkQXJy
YXkyID0gbmV3IHR5cGVkQXJyYXlDb25zdHJ1Y3RvcjIodHlwZWRBcnJheTEuYnVmZmVyKTsKKyAg
ICB0eXBlZEFycmF5MVswXSA9IHZhbHVlOworICAgIHJldHVybiB0eXBlZEFycmF5MlswXTsKK30K
KworZnVuY3Rpb24gY2FzdFRvVWNoYXIobnVtYmVyKQoreworICAgIHJldHVybiBudW1iZXIgJiAw
eEZGOworfQorCitmdW5jdGlvbiBjYXN0VG9Vc2hvcnQobnVtYmVyKQoreworICAgIHJldHVybiBu
dW1iZXIgJiAweEZGRkY7Cit9CisKK2Z1bmN0aW9uIGNhc3RUb1VpbnQobnVtYmVyKQoreworICAg
IHJldHVybiBudW1iZXIgPj4+IDA7Cit9CisKK2Z1bmN0aW9uIGNhc3RUb0NoYXIobnVtYmVyKQor
eworICAgIHJldHVybiBjYXN0KEludDhBcnJheSwgbnVtYmVyKTsKK30KKworZnVuY3Rpb24gY2Fz
dFRvU2hvcnQobnVtYmVyKQoreworICAgIHJldHVybiBjYXN0KEludDE2QXJyYXksIG51bWJlcik7
Cit9CisKK2Z1bmN0aW9uIGNhc3RUb0ludChudW1iZXIpCit7CisgICAgcmV0dXJuIG51bWJlciB8
IDA7Cit9CisKK2Z1bmN0aW9uIGNhc3RUb0hhbGYobnVtYmVyKQoreworICAgIC8vIEZJWE1FOiBN
YWtlIHRoaXMgbWF0aCBvYmV5IElFRUUgNzU0LgorICAgIGlmIChOdW1iZXIuaXNOYU4obnVtYmVy
KSkKKyAgICAgICByZXR1cm4gbnVtYmVyCisgICAgaWYgKG51bWJlciA+IDY1NTA0KQorICAgICAg
ICByZXR1cm4gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOworICAgIGlmIChudW1iZXIgPCAtNjU1
MDQpCisgICAgICAgIHJldHVybiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7CisgICAgaWYgKG51
bWJlciA+IDAgJiYgbnVtYmVyIDwgTWF0aC5wb3coMiwgLTI0KSkKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgaWYgKG51bWJlciA8IDAgJiYgbnVtYmVyID4gLU1hdGgucG93KDIsIC0yNCkpCisgICAg
ICAgIHJldHVybiAtMDsKKyAgICBsZXQgZG91YmxlQXJyYXkgPSBuZXcgRmxvYXQ2NEFycmF5KDEp
OworICAgIGxldCB1aW50QXJyYXkgPSBuZXcgVWludDhBcnJheShkb3VibGVBcnJheS5idWZmZXIp
OworICAgIGRvdWJsZUFycmF5WzBdID0gbnVtYmVyOworICAgIGxldCBzaWduID0gdWludEFycmF5
WzddICYgMHg4MDsKKyAgICBsZXQgZXhwb25lbnQgPSAoKHVpbnRBcnJheVs3XSAmIDB4N2YpIDw8
IDQpIHwgKCh1aW50QXJyYXlbNl0gJiAweGYwKSA+Pj4gNCk7CisgICAgbGV0IHNpZ25pZmljYW5k
ID0gKCh1aW50QXJyYXlbNl0gJiAweDBmKSA8PCA2KSB8ICgodWludEFycmF5WzVdICYgMHhmYykg
Pj4+IDIpOworCisgICAgaWYgKChleHBvbmVudCAtIDEwMjMpIDwgLTE0KSB7CisgICAgICAgIGV4
cG9uZW50ID0gMDsKKyAgICAgICAgc2lnbmlmaWNhbmQgPSAoTWF0aC5hYnMobnVtYmVyKSAqIE1h
dGgucG93KDIsIDI0KSkgPj4+IDA7CisgICAgICAgIGxldCB2YWx1ZSA9IE1hdGgucG93KDIsIC0x
NCkgKiBzaWduaWZpY2FuZCAvIDEwMjQ7CisgICAgICAgIGlmIChzaWduICE9IDApCisgICAgICAg
ICAgICB2YWx1ZSAqPSAtMTsKKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKworICAgIGRv
dWJsZUFycmF5WzBdID0gMDsKKworICAgIHVpbnRBcnJheVs3XSB8PSBzaWduOworICAgIHVpbnRB
cnJheVs3XSB8PSAoZXhwb25lbnQgPj4+IDQpOworICAgIHVpbnRBcnJheVs2XSB8PSAoKGV4cG9u
ZW50IDw8IDQpICYgMHhmMCk7CisgICAgdWludEFycmF5WzZdIHw9IChzaWduaWZpY2FuZCA+Pj4g
Nik7CisgICAgdWludEFycmF5WzVdIHw9ICgoc2lnbmlmaWNhbmQgPDwgMikgJiAweGZjKTsKKwor
ICAgIHJldHVybiBkb3VibGVBcnJheVswXTsKK30KKworZnVuY3Rpb24gY2FzdFRvRmxvYXQobnVt
YmVyKQoreworICAgIHJldHVybiBNYXRoLmZyb3VuZChudW1iZXIpOworfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMKaW5kZXggYjAwNDA2N2Y1ZWJmYjNhOGI0
YmQ5OGU0MzdhOGMwNzY4YmUyNmYxZS4uM2MyYzMyMzg1YTJiYjYyOTBiNDczMGY0NjAyYWQ4MmIz
MGQ0ZGJhOSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmlu
c2ljcy5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpz
CkBAIC00OCw2MSArNDgsNiBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CiAKLSAgICAgICAgZnVuY3Rpb24gY2FzdCh0eXBlZEFycmF5Q29u
c3RydWN0b3IsIG51bWJlcikKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIGFycmF5ID0gbmV3
IHR5cGVkQXJyYXlDb25zdHJ1Y3RvcigxKTsKLSAgICAgICAgICAgIGFycmF5WzBdID0gbnVtYmVy
OwotICAgICAgICAgICAgcmV0dXJuIGFycmF5WzBdOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVu
Y3Rpb24gYml0d2lzZUNhc3QodHlwZWRBcnJheUNvbnN0cnVjdG9yMSwgdHlwZWRBcnJheUNvbnN0
cnVjdG9yMiwgdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGxldCB0eXBlZEFycmF5MSA9
IG5ldyB0eXBlZEFycmF5Q29uc3RydWN0b3IxKDEpOwotICAgICAgICAgICAgbGV0IHR5cGVkQXJy
YXkyID0gbmV3IHR5cGVkQXJyYXlDb25zdHJ1Y3RvcjIodHlwZWRBcnJheTEuYnVmZmVyKTsKLSAg
ICAgICAgICAgIHR5cGVkQXJyYXkxWzBdID0gdmFsdWU7Ci0gICAgICAgICAgICByZXR1cm4gdHlw
ZWRBcnJheTJbMF07Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBjYXN0VG9IYWxmKG51
bWJlcikKLSAgICAgICAgewotICAgICAgICAgICAgLy8gRklYTUU6IE1ha2UgdGhpcyBtYXRoIG9i
ZXkgSUVFRSA3NTQuCi0gICAgICAgICAgICBpZiAoTnVtYmVyLmlzTmFOKG51bWJlcikpCi0gICAg
ICAgICAgICAgICByZXR1cm4gbnVtYmVyCi0gICAgICAgICAgICBpZiAobnVtYmVyID4gNjU1MDQp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE51bWJlci5QT1NJVElWRV9JTkZJTklUWTsKLSAgICAg
ICAgICAgIGlmIChudW1iZXIgPCAtNjU1MDQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE51bWJl
ci5ORUdBVElWRV9JTkZJTklUWTsKLSAgICAgICAgICAgIGlmIChudW1iZXIgPiAwICYmIG51bWJl
ciA8IE1hdGgucG93KDIsIC0yNCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAg
ICAgICBpZiAobnVtYmVyIDwgMCAmJiBudW1iZXIgPiAtTWF0aC5wb3coMiwgLTI0KSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gLTA7Ci0gICAgICAgICAgICBsZXQgZG91YmxlQXJyYXkgPSBuZXcg
RmxvYXQ2NEFycmF5KDEpOwotICAgICAgICAgICAgbGV0IHVpbnRBcnJheSA9IG5ldyBVaW50OEFy
cmF5KGRvdWJsZUFycmF5LmJ1ZmZlcik7Ci0gICAgICAgICAgICBkb3VibGVBcnJheVswXSA9IG51
bWJlcjsKLSAgICAgICAgICAgIGxldCBzaWduID0gdWludEFycmF5WzddICYgMHg4MDsKLSAgICAg
ICAgICAgIGxldCBleHBvbmVudCA9ICgodWludEFycmF5WzddICYgMHg3ZikgPDwgNCkgfCAoKHVp
bnRBcnJheVs2XSAmIDB4ZjApID4+PiA0KTsKLSAgICAgICAgICAgIGxldCBzaWduaWZpY2FuZCA9
ICgodWludEFycmF5WzZdICYgMHgwZikgPDwgNikgfCAoKHVpbnRBcnJheVs1XSAmIDB4ZmMpID4+
PiAyKTsKLQotICAgICAgICAgICAgaWYgKChleHBvbmVudCAtIDEwMjMpIDwgLTE0KSB7Ci0gICAg
ICAgICAgICAgICAgZXhwb25lbnQgPSAwOwotICAgICAgICAgICAgICAgIHNpZ25pZmljYW5kID0g
KE1hdGguYWJzKG51bWJlcikgKiBNYXRoLnBvdygyLCAyNCkpID4+PiAwOwotICAgICAgICAgICAg
ICAgIGxldCB2YWx1ZSA9IE1hdGgucG93KDIsIC0xNCkgKiBzaWduaWZpY2FuZCAvIDEwMjQ7Ci0g
ICAgICAgICAgICAgICAgaWYgKHNpZ24gIT0gMCkKLSAgICAgICAgICAgICAgICAgICAgdmFsdWUg
Kj0gLTE7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBkb3VibGVBcnJheVswXSA9IDA7Ci0KLSAgICAgICAgICAgIHVpbnRBcnJheVs3
XSB8PSBzaWduOwotICAgICAgICAgICAgdWludEFycmF5WzddIHw9IChleHBvbmVudCA+Pj4gNCk7
Ci0gICAgICAgICAgICB1aW50QXJyYXlbNl0gfD0gKChleHBvbmVudCA8PCA0KSAmIDB4ZjApOwot
ICAgICAgICAgICAgdWludEFycmF5WzZdIHw9IChzaWduaWZpY2FuZCA+Pj4gNik7Ci0gICAgICAg
ICAgICB1aW50QXJyYXlbNV0gfD0gKChzaWduaWZpY2FuZCA8PCAyKSAmIDB4ZmMpOwotCi0gICAg
ICAgICAgICByZXR1cm4gZG91YmxlQXJyYXlbMF07Ci0gICAgICAgIH0KLQogICAgICAgICB0aGlz
Ll9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIHZvaWQiLAogICAgICAgICAg
ICAgdHlwZSA9PiB7CkBAIC0xMjgsMTUgKzczLDE1IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAg
ICAgICAgICAgICAgIHR5cGUuaXNJbnQgPSB0cnVlOwogICAgICAgICAgICAgICAgIHR5cGUuaXNO
dW1iZXIgPSB0cnVlOwogICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSBmYWxzZTsKLSAg
ICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2
YWxlbnQodmFsdWUgJiAweGZmLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgdHlwZS5jYW5SZXBy
ZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KGNhc3RUb1VjaGFyKHZhbHVlKSwg
dmFsdWUpOwogICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAgICAg
dHlwZS5kZWZhdWx0VmFsdWUgPSAwOwotICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJh
bCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgdmFsdWUg
JiAweGZmLCB0eXBlKTsKLSAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFs
dWUgPT4gKHZhbHVlICsgMSkgJiAweGZmOworICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0
ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2Fz
dFRvVWNoYXIodmFsdWUpLCB0eXBlKTsKKyAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZh
bHVlID0gdmFsdWUgPT4gY2FzdFRvVWNoYXIodmFsdWUgKyAxKTsKICAgICAgICAgICAgICAgICB0
eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7CiAgICAgICAgICAgICAgICAgdHlw
ZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChv
ZmZzZXQsIDApOwotICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJh
bCA9IHZhbHVlID0+IHZhbHVlICYgMHhmZjsKLSAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZh
bHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAweGZmOworICAgICAgICAgICAg
ICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb1VjaGFy
KHZhbHVlKTsKKyAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFs
ID0gdmFsdWUgPT4gY2FzdFRvVWNoYXIodmFsdWUpOwogICAgICAgICAgICAgICAgIHR5cGUuYWxs
VmFsdWVzID0gZnVuY3Rpb24qKCkgewogICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0g
MDsgaSA8PSAweGZmOyArK2kpCiAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6
IGksIG5hbWU6IGl9OwpAQCAtMTUyLDE1ICs5NywxNSBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAg
ICAgICAgICAgICAgICAgdHlwZS5pc0ludCA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHR5cGUu
aXNOdW1iZXIgPSB0cnVlOwogICAgICAgICAgICAgICAgICB0eXBlLmlzU2lnbmVkID0gZmFsc2U7
Ci0gICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNl
RXF1aXZhbGVudCh2YWx1ZSAmIDB4ZmZmZiwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBl
LmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvVXNob3J0
KHZhbHVlKSwgdmFsdWUpOwogICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOwogICAgICAg
ICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgIHR5cGUu
Y3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9y
aWdpbiwgdmFsdWUgJiAweGZmZmYsIHR5cGUpOwotICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nl
c3NvclZhbHVlID0gdmFsdWUgPT4gKHZhbHVlICsgMSkgJiAweGZmZmY7CisgICAgICAgICAgICAg
ICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndp
dGhUeXBlKG9yaWdpbiwgY2FzdFRvVXNob3J0KHZhbHVlKSwgdHlwZSk7CisgICAgICAgICAgICAg
ICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0VG9Vc2hvcnQodmFsdWUgKyAx
KTsKICAgICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNFcXVhbCA9IChhLCBiKSA9PiBhID09PSBi
OwogICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwg
b2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7Ci0gICAgICAgICAgICAgICAgIHR5cGUu
Zm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlICYgMHhmZmZmOwotICAg
ICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4g
dmFsdWUgJiAweGZmZmY7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50
TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb1VzaG9ydCh2YWx1ZSk7CisgICAgICAgICAgICAgICAg
IHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9Vc2hvcnQo
dmFsdWUpOwogICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsK
ICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmZmZjsgKytpKQog
ICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogaSwgbmFtZTogaX07CkBAIC0x
NzUsMTUgKzEyMCwxNSBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICAgdHlw
ZS5pc0ludCA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIgPSB0cnVlOwog
ICAgICAgICAgICAgICAgICB0eXBlLmlzU2lnbmVkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAg
IHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudCh2YWx1ZSA+
Pj4gMCwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVl
ID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvVWludCh2YWx1ZSksIHZhbHVlKTsKICAgICAg
ICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKICAgICAgICAgICAgICAgICAgdHlwZS5kZWZhdWx0
VmFsdWUgPSAwOwotICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2lu
LCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIHZhbHVlID4+PiAwLCB0eXBl
KTsKLSAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+ICh2YWx1
ZSArIDEpID4+PiAwOworICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3Jp
Z2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3RUb1VpbnQodmFs
dWUpLCB0eXBlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVl
ID0+IGNhc3RUb1VpbnQodmFsdWUgKyAxKTsKICAgICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNF
cXVhbCA9IChhLCBiKSA9PiBhID09PSBiOwogICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRl
RGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7
Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVl
ID0+IHZhbHVlID4+PiAwOwotICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVp
bnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgPj4+IDA7CisgICAgICAgICAgICAgICAgIHR5cGUu
Zm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb1VpbnQodmFsdWUpOwor
ICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUg
PT4gY2FzdFRvVWludCh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0g
ZnVuY3Rpb24qKCkgewogICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0g
MHhmZmZmZmZmZjsgKytpKQogICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTog
aSwgbmFtZTogaX07CkBAIC0xOTgsMTggKzE0MywxOCBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAg
ICAgICAgICAgICAgICAgdHlwZS5pc0ludCA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHR5cGUu
aXNOdW1iZXIgPSB0cnVlOwogICAgICAgICAgICAgICAgICB0eXBlLmlzU2lnbmVkID0gdHJ1ZTsK
LSAgICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VF
cXVpdmFsZW50KGNhc3QoSW50OEFycmF5LCB2YWx1ZSksIHZhbHVlKTsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KGNhc3RU
b0NoYXIodmFsdWUpLCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CiAg
ICAgICAgICAgICAgICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAgICAgICAg
dHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5
cGUob3JpZ2luLCBjYXN0KEludDhBcnJheSwgdmFsdWUpLCB0eXBlKTsKLSAgICAgICAgICAgICAg
ICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+IGNhc3QoSW50OEFycmF5LCB2YWx1ZSAr
IDEpOworICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2luLCB2YWx1
ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3RUb0NoYXIodmFsdWUpLCB0eXBl
KTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+IGNhc3RU
b0NoYXIodmFsdWUgKyAxKTsKICAgICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNFcXVhbCA9IChh
LCBiKSA9PiBhID09PSBiOwogICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZh
bHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7Ci0gICAgICAg
ICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3Qo
SW50OEFycmF5LCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9t
VWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0KEludDhBcnJheSwgdmFsdWUpOworICAgICAgICAg
ICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9D
aGFyKHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0
ZXJhbCA9IHZhbHVlID0+IGNhc3RUb0NoYXIodmFsdWUpOwogICAgICAgICAgICAgICAgICB0eXBl
LmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsKICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0
IGkgPSAwOyBpIDw9IDB4ZmY7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2
YWx1ZSA9IGNhc3QoSW50OEFycmF5LCBpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
dmFsdWUgPSBjYXN0VG9DaGFyKGkpOwogICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2
YWx1ZTogdmFsdWUsIG5hbWU6IHZhbHVlfTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgfTsKQEAgLTIyMywxOCArMTY4LDE4IEBAIGNsYXNzIEludHJpbnNpY3Mgewog
ICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlw
ZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSB0cnVl
OwotICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lz
ZUVxdWl2YWxlbnQoY2FzdChJbnQxNkFycmF5LCB2YWx1ZSksIHZhbHVlKTsKKyAgICAgICAgICAg
ICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KGNh
c3RUb1Nob3J0KHZhbHVlKSwgdmFsdWUpOwogICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAx
OwogICAgICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAg
ICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndp
dGhUeXBlKG9yaWdpbiwgY2FzdChJbnQxNkFycmF5LCB2YWx1ZSksIHR5cGUpOwotICAgICAgICAg
ICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdChJbnQxNkFycmF5LCB2
YWx1ZSArIDEpOworICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2lu
LCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3RUb1Nob3J0KHZhbHVl
KSwgdHlwZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9
PiBjYXN0VG9TaG9ydCh2YWx1ZSArIDEpOwogICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0Vx
dWFsID0gKGEsIGIpID0+IGEgPT09IGI7CiAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVE
ZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsK
LSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUg
PT4gY2FzdChJbnQxNkFycmF5LCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0
VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0KEludDE2QXJyYXksIHZhbHVlKTsK
KyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUg
PT4gY2FzdFRvU2hvcnQodmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVl
RnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvU2hvcnQodmFsdWUpOwogICAgICAgICAg
ICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsKICAgICAgICAgICAgICAgICAg
ICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmZmZjsgKytpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IHZhbHVlID0gY2FzdChJbnQxNkFycmF5LCBpKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgdmFsdWUgPSBjYXN0VG9TaG9ydChpKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICB5aWVsZCB7dmFsdWU6IHZhbHVlLCBuYW1lOiB2YWx1ZX07CiAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH07CkBAIC0yNDgsMTggKzE5MywxOCBAQCBjbGFz
cyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICAgdHlwZS5pc0ludCA9IHRydWU7CiAgICAg
ICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIgPSB0cnVlOwogICAgICAgICAgICAgICAgICB0eXBl
LmlzU2lnbmVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2
YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVlIHwgMCwgdmFsdWUpOworICAgICAgICAg
ICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQo
Y2FzdFRvSW50KHZhbHVlKSwgdmFsdWUpOwogICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAx
OwogICAgICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAg
ICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndp
dGhUeXBlKG9yaWdpbiwgdmFsdWUgfCAwLCB0eXBlKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5z
dWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+ICh2YWx1ZSArIDEpIHwgMDsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0
aFR5cGUob3JpZ2luLCBjYXN0VG9JbnQodmFsdWUpLCB0eXBlKTsKKyAgICAgICAgICAgICAgICAg
dHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+IGNhc3RUb0ludCh2YWx1ZSArIDEpOwogICAg
ICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7CiAgICAg
ICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQp
ID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRW
YWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgfCAwOwotICAgICAgICAgICAgICAg
ICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgfCAwOwor
ICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9
PiBjYXN0VG9JbnQodmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJv
bVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvSW50KHZhbHVlKTsKICAgICAgICAgICAgICAg
ICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7CiAgICAgICAgICAgICAgICAgICAgICBm
b3IgKGxldCBpID0gMDsgaSA8PSAweGZmZmZmZmZmOyArK2kpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgdmFsdWUgPSBpIHwgMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
dmFsdWUgPSBjYXN0VG9JbnQoaSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3Zh
bHVlOiB2YWx1ZSwgbmFtZTogdmFsdWV9OwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICB9OwpAQCAtMjkyLDcgKzIzNyw3IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAg
ICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0
KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7CiAgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0
VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlOwogICAgICAgICAgICAgICAgICB0
eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWU7Ci0gICAgICAg
ICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tRmxvYXRMaXRlcmFsID0gdmFsdWUgPT4gTWF0
aC5mcm91bmQodmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUZs
b2F0TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb0Zsb2F0KHZhbHVlKTsKICAgICAgICAgICAgICB9
KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KApAQCAtMzMwLDcgKzI3NSw4IEBAIGNsYXNzIElu
dHJpbnNpY3MgewogICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIHNhbXBsZXIiLAogICAgICAg
ICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAgICAgdGhpcy5zYW1wbGVyID0gdHlwZTsKLSAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRvIHB1dCBoZXJlLgorICAg
ICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0
ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIHt9
KTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIGZvciAobGV0IHRleHR1cmVUeXBlIG9mIFsi
VGV4dHVyZTFEIiwgIlJXVGV4dHVyZTFEIiwgIlRleHR1cmUxREFycmF5IiwgIlJXVGV4dHVyZTFE
QXJyYXkiLCAiVGV4dHVyZTJEIiwgIlJXVGV4dHVyZTJEIiwgIlRleHR1cmUyREFycmF5IiwgIlJX
VGV4dHVyZTJEQXJyYXkiLCAiVGV4dHVyZTNEIiwgIlJXVGV4dHVyZTNEIiwgIlRleHR1cmVDdWJl
Il0pIHsKQEAgLTMzOSwxMiArMjg1LDE2IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9
PmAsCiAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmBdID0gdHlwZTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAg
ICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIu
c2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAg
ICBmb3IgKGxldCBpID0gMjsgaSA8PSA0OyArK2kpIHsKICAgICAgICAgICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKICAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdHlwZWRlZiAke3Rl
eHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0ke2l9PmAsCiAgICAgICAgICAgICAgICAgICAgICAg
ICB0eXBlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1cmVU
eXBlfTwke3R5cGVBcmd1bWVudH0ke2l9PmBdID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUu
cG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zm
c2V0LCB7fSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9CkBAIC0zNTYsNiArMzA2LDggQEAgY2xhc3MgSW50cmluc2ljcyB7CiAg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdHlwZWRlZiAke3RleHR1cmVUeXBlfTwke3R5cGVB
cmd1bWVudH0+YCwKICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICB0aGlzW2Ake3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YF0gPSB0eXBl
OworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+
IGJ1ZmZlci5zZXQob2Zmc2V0LCB7fSk7CiAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAg
ICAgICAgfQogICAgICAgICB9CkBAIC0zNjQsNyArMzE2LDcgQEAgY2xhc3MgSW50cmluc2ljcyB7
CiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgICAgIGBuYXRpdmUgb3Bl
cmF0b3IgdWNoYXIoJHtwcmltaXRpdmVUeXBlfSlgLAogICAgICAgICAgICAgICAgIGZ1bmMgPT4g
ewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+
IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpICYgMHhmZik7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdFRvVWNoYXIo
dmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgfQogCkBA
IC0zNzIsNyArMzI0LDcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAogICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgdXNob3J0KCR7cHJpbWl0
aXZlVHlwZX0pYCwKICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5sb2Fk
VmFsdWUoKSAmIDB4ZmZmZik7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdFRvVXNob3J0KHZhbHVlLmxvYWRWYWx1ZSgp
KSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KIApAQCAtMzgwLDcgKzMzMiw3IEBA
IGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAg
ICAgICAgICBgbmF0aXZlIG9wZXJhdG9yIHVpbnQoJHtwcmltaXRpdmVUeXBlfSlgLAogICAgICAg
ICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpID4+PiAwKTsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRy
LmJveChjYXN0VG9VaW50KHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0KIApAQCAtMzg4LDcgKzM0MCw3IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICAgICBgbmF0aXZlIG9wZXJhdG9y
IGNoYXIoJHtwcmltaXRpdmVUeXBlfSlgLAogICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIu
Ym94KGNhc3QoSW50OEFycmF5LCB2YWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb0No
YXIodmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgfQog
CkBAIC0zOTYsNyArMzQ4LDcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAogICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3Igc2hvcnQoJHtwcmlt
aXRpdmVUeXBlfSlgLAogICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3QoSW50
MTZBcnJheSwgdmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9TaG9ydCh2YWx1ZS5s
b2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKQEAgLTQyMCw3
ICszNzIsNyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CiAgICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciBmbG9hdCgke3ByaW1pdGl2ZVR5cGV9
KWAsCiAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goTWF0aC5mcm91bmQodmFsdWUu
bG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9GbG9hdCh2YWx1ZS5sb2FkVmFsdWUoKSkpOwog
ICAgICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKQEAgLTQ4NCwyOTIgKzQzNiwyOTIgQEAg
Y2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvci0oaW50
KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KCgtdmFs
dWUubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RU
b0ludCgtdmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yLShmbG9hdCki
LAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZy
b3VuZCgtdmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
Y2FzdFRvRmxvYXQoLXZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAg
ICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3IrKGlu
dCxpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkgKyByaWdo
dC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKICAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yLShpbnQsaW50KSIsCiAgICAgICAg
ICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFts
ZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRW
YWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpKTsK
ICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAi
bmF0aXZlIGludCBvcGVyYXRvciooaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9Pgot
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0Lmxv
YWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQo
bGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsK
IAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0
b3IvKGludCxpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsK
KyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkg
LyByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5f
bWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcisodWludCx1aW50KSIs
CiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChs
ZWZ0LmxvYWRWYWx1ZSgpICsgcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWludChsZWZ0LmxvYWRWYWx1ZSgpICsgcmlnaHQubG9h
ZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAg
ICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3ItKHVpbnQsdWludCkiLAogICAgICAgICAg
ICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFs
dWUoKSAtIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSAtIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAg
Im5hdGl2ZSB1aW50IG9wZXJhdG9yKih1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4g
ewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKiByaWdo
dC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0
VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAg
ICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWlu
dCBvcGVyYXRvci8odWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAg
ICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9hZFZhbHVl
KCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWludChsZWZ0
LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9y
KyhmbG9hdCxmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAg
ICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpICsgcmlnaHQubG9hZFZh
bHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQobGVmdC5s
b2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAg
ICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvci0o
ZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3goTWF0aC5mcm91bmQobGVmdC5sb2FkVmFsdWUoKSAtIHJpZ2h0LmxvYWRWYWx1
ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KGxlZnQubG9h
ZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3IqKGZs
b2F0LGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5sb2FkVmFsdWUo
KSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChsZWZ0LmxvYWRW
YWx1ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAg
IHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yLyhmbG9h
dCxmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9hZFZhbHVlKCkp
KTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQobGVmdC5sb2FkVmFs
dWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0
aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3ImKGludCxpbnQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
KGxlZnQubG9hZFZhbHVlKCkgJiByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkgJiByaWdodC5sb2Fk
VmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAg
ICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yfChpbnQsaW50KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCBy
aWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgp
IHwgcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KGNhc3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgpIHwgcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAg
ICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZl
IGludCBvcGVyYXRvcl4oaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSBeIHJpZ2h0LmxvYWRWYWx1
ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5s
b2FkVmFsdWUoKSBeIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAg
ICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3J+KGlu
dCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCgofnZhbHVlLmxvYWRWYWx1ZSgpKSB8IDAp
OworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0
ci5ib3goY2FzdFRvSW50KH52YWx1ZS5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAK
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9y
PDwoaW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgp
IDw8IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlz
Ll9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3I+PihpbnQsdWludCki
LAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgo
bGVmdC5sb2FkVmFsdWUoKSA+PiByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkgPj4gcmlnaHQubG9h
ZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAg
ICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3ImKHVpbnQsdWludCkiLAogICAgICAgICAg
ICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFs
dWUoKSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAg
Im5hdGl2ZSB1aW50IG9wZXJhdG9yfCh1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4g
ewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgfCByaWdo
dC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0
VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgfCByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAg
ICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWlu
dCBvcGVyYXRvcl4odWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAg
ICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmlnaHQubG9hZFZhbHVl
KCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWludChsZWZ0
LmxvYWRWYWx1ZSgpIF4gcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3J+
KHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goKH52YWx1ZS5sb2FkVmFsdWUoKSkg
Pj4+IDApOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkg
PT4gRVB0ci5ib3goY2FzdFRvVWludCh+dmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAg
IH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVpbnQg
b3BlcmF0b3I8PCh1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZhbHVl
KCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWludChsZWZ0
LmxvYWRWYWx1ZSgpIDw8IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAog
ICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9y
Pj4odWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpID4+PiByaWdodC5sb2FkVmFsdWUoKSkgPj4+
IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxlZnQubG9hZFZh
bHVlKCkgPj4+IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBjb3MoZmxvYXQpIiwK
ICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91
bmQoTWF0aC5jb3ModmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguY29zKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAg
ICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUg
ZmxvYXQgc2luKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguc2luKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLnNpbih2YWx1ZS5sb2Fk
VmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAg
ICAgICAgICAgICAibmF0aXZlIGZsb2F0IHRhbihmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9
PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9Pgot
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnRhbih2YWx1ZS5s
b2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQo
TWF0aC50YW4odmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBhY29zKGZsb2F0KSIs
CiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJv
dW5kKE1hdGguYWNvcyh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5hY29zKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAg
ICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRp
dmUgZmxvYXQgYXNpbihmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAg
ICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmFzaW4odmFsdWUubG9hZFZhbHVlKCkpKSk7
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguYXNpbih2YWx1
ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGF0YW4oZmxvYXQpIiwKICAgICAgICAgICAg
IGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVl
XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5hdGFu
KHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0
VG9GbG9hdChNYXRoLmF0YW4odmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsK
IAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBjb3No
KGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KE1hdGguZnJvdW5kKE1hdGguY29zaCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5jb3NoKHZhbHVlLmxvYWRWYWx1ZSgp
KSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAg
ICAgICJuYXRpdmUgZmxvYXQgc2luaChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnNpbmgodmFsdWUubG9hZFZh
bHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgu
c2luaCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IHRhbmgoZmxvYXQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQo
TWF0aC50YW5oKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRy
LmJveChjYXN0VG9GbG9hdChNYXRoLnRhbmgodmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAg
ICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBm
bG9hdCBjZWlsKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguY2VpbCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAg
ICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5jZWlsKHZhbHVlLmxv
YWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgK
ICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgZXhwKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5j
ID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+
Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguZXhwKHZhbHVl
LmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9h
dChNYXRoLmV4cCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGZsb29yKGZsb2F0
KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGgu
ZnJvdW5kKE1hdGguZmxvb3IodmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguZmxvb3IodmFsdWUubG9hZFZhbHVlKCkpKSk7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAg
Im5hdGl2ZSBmbG9hdCBsb2coZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5sb2codmFsdWUubG9hZFZhbHVlKCkp
KSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgubG9nKHZh
bHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFw
LnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgcm91bmQoZmxvYXQpIiwKICAgICAgICAg
ICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3Zh
bHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5y
b3VuZCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
Y2FzdFRvRmxvYXQoTWF0aC5yb3VuZCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAg
IH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0
IHNxcnQoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goTWF0aC5mcm91bmQoTWF0aC5zcXJ0KHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLnNxcnQodmFsdWUubG9hZFZh
bHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAg
ICAgICAgICAgIm5hdGl2ZSBmbG9hdCB0cnVuYyhmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9
PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9Pgot
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnRydW5jKHZhbHVl
LmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9h
dChNYXRoLnRydW5jKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKQEAgLTc4OCw3ICs3NDAsNyBAQCBjbGFzcyBJbnRyaW5zaWNz
IHsKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgcG93KGZsb2F0LGZsb2F0KSIsCiAgICAgICAg
ICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFts
ZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5k
KE1hdGgucG93KGxlZnQubG9hZFZhbHVlKCksIHJpZ2h0LmxvYWRWYWx1ZSgpKSkpOworICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLnBvdyhsZWZ0LmxvYWRWYWx1
ZSgpLCByaWdodC5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCkBAIC04MzIsNyArNzg0LDcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAg
ICAgICAgICAibmF0aXZlIGZsb2F0IGF0YW4yKGZsb2F0LGZsb2F0KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCBy
aWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgu
YXRhbjIobGVmdC5sb2FkVmFsdWUoKSwgcmlnaHQubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguYXRhbjIobGVmdC5sb2FkVmFsdWUo
KSwgcmlnaHQubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlz
Ll9tYXAuc2V0KApAQCAtOTE0LDYgKzg2NiwxNTA0IEBAIGNsYXNzIEludHJpbnNpY3MgewogCiAg
ICAgICAgIGZvciAobGV0IHNldHRlciBvZiBCdWlsdGluTWF0cml4U2V0dGVyLmZ1bmN0aW9ucygp
KQogICAgICAgICAgICAgdGhpcy5fbWFwLnNldChzZXR0ZXIudG9TdHJpbmcoKSwgZnVuYyA9PiBz
ZXR0ZXIuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKSk7CisKKyAgICAgICAgZnVuY3Rp
b24gY2hlY2tVbmRlZmluZWQob3JpZ2luLCBleHBsYW5hdGlvbiwgdmFsdWUpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICAgICAgdGhy
b3cgbmV3IFdUcmFwRXJyb3IoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIp
OworICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gY2hlY2tGYWxzZShvcmlnaW4sIGV4cGxhbmF0aW9uLCB2YWx1ZSkKKyAgICAgICAgeworICAg
ICAgICAgICAgaWYgKHZhbHVlID09IGZhbHNlKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBX
VHJhcEVycm9yKCJbU3RvcmVdIiwgIlRleHR1cmUgc3RvcmUgb3V0IG9mIGJvdW5kcyIpOworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gYm94VmVjdG9yKGEpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGlmIChhIGluc3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAgICAgICAgICBsZXQgcmVz
dWx0ID0gbmV3IEVQdHIobmV3IEVCdWZmZXIoYS5sZW5ndGgpLCAwKTsKKyAgICAgICAgICAgICAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgICAg
IHJlc3VsdC5zZXQoaSwgYVtpXSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChhKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHVuYm94VmVjdG9yKGEsIGxlbmd0aCkKKyAgICAg
ICAgeworICAgICAgICAgICAgaWYgKGxlbmd0aCAhPSAiIikgeworICAgICAgICAgICAgICAgIGxl
bmd0aCA9IE51bWJlci5wYXJzZUludChsZW5ndGgpOworICAgICAgICAgICAgICAgIGxldCByZXN1
bHQgPSBbXTsKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgKytp
KQorICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChhLmdldChpKSk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAg
IHJldHVybiBhLmxvYWRWYWx1ZSgpOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgdHlw
ZSBvZiBbInVjaGFyIiwgInVzaG9ydCIsICJ1aW50IiwgImNoYXIiLCAic2hvcnQiLCAiaW50Iiwg
ImhhbGYiLCAiZmxvYXQiXSkgeworICAgICAgICAgICAgZm9yICh2YXIgbGVuZ3RoVmFyaWFibGUg
b2YgW2BgLCBgMmAsIGAzYCwgYDRgXSkgeworICAgICAgICAgICAgICAgIGxldCBsZW5ndGggPSBs
ZW5ndGhWYXJpYWJsZTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxRDwke3R5
cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5sb2FkVmFsdWUo
KSwgMCwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVl
KCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0
dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdCBsb2NhdGlvbixpbnQgb2Zmc2V0
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlv
bkFycmF5ID0gW2xvY2F0aW9uLmxvYWRWYWx1ZSgpLCAwLCAwLCAxLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQubG9hZFZhbHVlKCksIDAs
IDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxl
VGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlv
bkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMUQ8JHt0eXBl
fSR7bGVuZ3RofT4saW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0
IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRp
b24uZ2V0KDEpLCAwLCAwLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2Fk
KFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixpbnQyIGxvY2F0aW9uLGludCBvZmZzZXQpYCwK
KyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tV
bmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUu
bG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDEpLCAwLCAwLCBsb2Nh
dGlvbi5nZXQoMCkgKyBvZmZzZXQubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRl
eHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0
aCx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVl
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENv
dW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJv
cigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwg
b2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBs
ZShUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlv
bilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkg
PSBbbG9jYXRpb24uZ2V0KDApLCAwLCAwLCAxLCBsb2NhdGlvbi5nZXQoMSldOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3Ro
fT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5n
ZXQoMCksIDAsIDAsIDEsIGxvY2F0aW9uLmdldCgxKV07CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmxvYWRWYWx1ZSgpLCAwLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVs
dGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVu
Z3RofT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
b3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJv
dW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDIp
LCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IExvYWQoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4saW50MyBsb2NhdGlvbixp
bnQgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9j
YXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94
VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3Vu
ZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgyKSwg
bG9jYXRpb24uZ2V0KDEpLCAwLCAwLCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZzZXQubG9hZFZhbHVl
KCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBu
YXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+
LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBFbGVtZW50cyx1
aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgZWxlbWVudHMsIG51bWJlck9mTGV2ZWxzXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1
ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxv
YWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgu
bGV2ZWxDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdU
cmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlw
IGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxl
dmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMkQ8JHt0eXBl
fSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9j
YXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5s
b2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2Ft
cGxlKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixp
bnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwg
MSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zm
c2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVu
Z3RofSBTYW1wbGVCaWFzKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0
MiBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdl
dCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVl
KCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgYmlhcy5sb2FkVmFsdWUoKSwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1w
bGVCaWFzKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlv
bixmbG9hdCBCaWFzLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhcywgb2Zmc2V0XSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwg
bG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVs
dGFBcnJheSwgYmlhcy5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVHcmFkKFRleHR1cmUyRDwke3R5
cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBE
RFkpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uLCBkZHgsIGRkeV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9j
YXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCks
IGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJh
eSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwg
c2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IGRkeEFycmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IFNhbXBsZUdyYWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQy
IGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSxpbnQyIG9mZnNldClgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJy
YXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0
KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5
LmdldCgwKSwgZGR5LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1
cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRh
QXJyYXksIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0
aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IExPRClgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQo
MCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IFNhbXBsZUxldmVsKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MiBsb2NhdGlvbixmbG9hdCBMT0QsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2QsIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgx
KSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1w
bGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0
aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxv
ZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyRDwke3R5
cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlcihUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIg
bG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdh
dGhlclJlZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRp
b24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEPCR7dHlwZX0k
e2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4
dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkQ8JHt0eXBlfSR7bGVu
Z3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJHcmVlbihUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9j
YXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9u
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50
IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkQ8JHt0eXBlfSR7
bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0
dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9JHtsZW5n
dGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdh
dGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3Ro
fSBMb2FkKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xv
YWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5l
bGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9j
YXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMkQ8JHt0eXBlfSR7
bGVuZ3RofT4saW50MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwg
IlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50
Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSArIG9mZnNldC5n
ZXQoMSksIGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5nZXQoMCkpKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNp
b25zKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVh
ZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylg
LAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRo
LCBoZWlnaHQsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3VudCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJS
ZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbCht
aXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBs
ZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwg
MSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ym94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxl
KFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
LGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAw
LCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBk
ZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFy
cmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlQmlhcyhUZXh0dXJlMkRBcnJheTwke3R5cGV9JHts
ZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5k
ZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJEQXJyYXk8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlhcyxpbnQy
IG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb24sIGJpYXMsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
MCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
ZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVy
ZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFB
cnJheSwgYmlhcy5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVHcmFkKFRleHR1cmUyREFycmF5PCR7
dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQy
IEREWSlgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBs
b2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBs
b2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJh
eSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5LmdldCgwKSwgZGR5LmdldCgxKSwgMF07CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1
cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVHcmFkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xl
bmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSxpbnQy
IG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb24sIGRkeCwgZGR5LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQo
MSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQu
Z2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCBkZHhB
cnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBT
YW1wbGVMZXZlbChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2RdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQo
MSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBs
ZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHts
ZW5ndGh9IFNhbXBsZUxldmVsKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBs
ZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IExPRCxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQo
MCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxv
YWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
cihUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlMkRBcnJheTwke3R5cGV9
JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNl
dF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRl
eHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUyREFycmF5PCR7dHlwZX0k
e2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyUmVkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJHcmVlbihUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklY
TUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1
cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1
cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1
cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHts
ZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1
cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7
bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJBbHBoYShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
bihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGludDQgbG9j
YXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNr
VW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJl
LmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0
KDIpLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IExvYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4saW50NCBsb2NhdGlvbixp
bnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxv
Y2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91
bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMyks
IGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9j
YXRpb24uZ2V0KDApICsgb2Zmc2V0LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVy
ZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lk
dGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRWxlbWVudHMsdWludCogdGhyZWFk
IE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHMsIG51bWJlck9mTGV2ZWxzXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRW
YWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2
ZWxDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFw
RXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxl
dmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5
ZXJDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxz
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRp
b24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94
VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFs
dWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRl
eHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9m
ZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9j
YXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24u
Z2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJh
eSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCBvZmZzZXQuZ2V0KDIpXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVs
dGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+
LGludDQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVj
dG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMi
LCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgzKSwg
bG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LGludDQgbG9jYXRp
b24saW50MyBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9m
IGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24u
Z2V0KDMpLCBsb2NhdGlvbi5nZXQoMikgKyBvZmZzZXQuZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSkg
KyBvZmZzZXQuZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZzZXQuZ2V0KDApKSkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQg
R2V0RGltZW5zaW9ucyhUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1
aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRGVwdGgs
dWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIG51bWJlck9mTGV2
ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxv
YWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxl
dmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+
PSB0ZXgubGV2ZWxDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cg
bmV3IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3Rh
bnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
ZXB0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguZGVwdGhBdExldmVsKG1pcElE
KSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5j
b3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0
ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENv
dW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IH0pOworCisgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZUN1YmU8JHt0eXBlfSR7
bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgY3ViZW1hcCBzYW1wbGluZworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gU2FtcGxlQmlhcyhUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGN1YmVtYXAgc2FtcGxpbmcKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24sZmxvYXQzIEREWCxmbG9hdDMgRERZKWAsCisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBjdWJlbWFw
IHNhbXBsaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlQ3ViZTwke3R5cGV9
JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2RdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBjdWJlbWFw
IHNhbXBsaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVk
KFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRl
eHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZUN1YmU8JHt0eXBlfSR7
bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJCbHVlKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog
SW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZUN1
YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRo
ZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sdWlu
dCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0
aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4LmxheWVyQ291bnQgIT0gNikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDdWJlIHRl
eHR1cmUgZG9lc24ndCBoYXZlIDYgZmFjZXMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBm
cm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWln
aHRBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRo
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwg
MSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVu
c2lvbnMoUldUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sdWludCogdGhyZWFkIFdpZHRoKWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aF0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4
dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LGZsb2F0KiB0aHJlYWQgV2lkdGgpYCwKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleHR1cmUu
bG9hZFZhbHVlKCkud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoUldUZXh0dXJlMUQ8
JHt0eXBlfSR7bGVuZ3RofT4saW50IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVh
ZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCAw
LCAwLCAwLCBsb2NhdGlvbi5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTFEPCR7
dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0aH0sdWludCBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0ZhbHNlKCJbU3RvcmVdIiwgIlRleHR1cmUg
d3JpdGUgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNr
ZWQoMCwgMCwgMCwgMCwgbG9jYXRpb24ubG9hZFZhbHVlKCksIHVuYm94VmVjdG9yKHZhbHVlLCBs
ZW5ndGgpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IH0pOworCisgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
ICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7
bGVuZ3RofT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBFbGVtZW50cylgLAorICAg
ICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGVsZW1lbnRzXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
dm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sZmxv
YXQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBlbGVtZW50c10pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRo
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xl
bmd0aH0gTG9hZChSV1RleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGludDIgbG9jYXRp
b24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5k
ZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxv
YWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgMCwgbG9jYXRp
b24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9
Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBvdXQgb2Yg
Ym91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5n
ZXQoMSksIDAsIDAsIDAsIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0b3IodmFsdWUsIGxlbmd0
aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAg
YG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4s
dWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQpYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHRdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRl
eC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMo
UldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9hdCog
dGhyZWFkIEhlaWdodClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
d2lkdGgsIGhlaWdodF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0g
dGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRl
eC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChSV1RleHR1cmUyRDwke3R5cGV9JHts
ZW5ndGh9PixpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2Yg
Ym91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCAwLCAwLCBsb2Nh
dGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTJEPCR7
dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0aH0sdWludDIgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0dXJl
IHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVj
a2VkKDAsIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApLCB1bmJveFZlY3Rv
cih2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUyREFycmF5
PCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0
LHVpbnQqIHRocmVhZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxh
eWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0
aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0
aH0+LGZsb2F0KiB0aHJlYWQgV2lkdGgsZmxvYXQqIHRocmVhZCBIZWlnaHQsZmxvYXQqIHRocmVh
ZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lk
dGgsIGhlaWdodCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAx
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX0ke2xlbmd0aH0gTG9hZChSV1RleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGludDMg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNo
ZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0
dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgyKSwgMCwgMCwgbG9j
YXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUyREFy
cmF5PCR7dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0aH0sdWludDMgbG9jYXRpb24pYCwK
KyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIsICJU
ZXh0dXJlIHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1l
bnRDaGVja2VkKGxvY2F0aW9uLmdldCgyKSwgMCwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlv
bi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVlLCBsZW5ndGgpKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNp
b25zKFJXVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50
KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBEZXB0aClgLAorICAgICAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZGVwdGhdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGVwdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LmRlcHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lk
dGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAg
YG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4s
ZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhyZWFkIEhlaWdodCxmbG9hdCogdGhyZWFkIERl
cHRoKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVp
Z2h0LCBkZXB0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4
dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aC5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguZGVwdGgpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmhl
aWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgp
LmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChS
V1RleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwg
IlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50
Q2hlY2tlZCgwLCAwLCBsb2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24u
Z2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sJHt0eXBl
fSR7bGVuZ3RofSx1aW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGVja0ZhbHNlKCJbU3RvcmVdIiwgIlRleHR1cmUgd3JpdGUgb3V0IG9mIGJvdW5kcyIs
IHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQoMCwgMCwgbG9jYXRpb24uZ2V0
KDIpLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0b3IodmFsdWUs
IGxlbmd0aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCB0eXBl
IG9mIFsiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwg
MF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRp
b24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCks
IG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVl
KCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Pixz
YW1wbGVyLGZsb2F0MiBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSlgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24u
Z2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCkp
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxl
Q21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLCR7dHlw
ZX0gQ29tcGFyZVZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwg
bG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBk
ZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9h
ZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXks
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZhbHVl
LmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVy
LGZsb2F0MiBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSlgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzCisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhU
ZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbiwke3R5cGV9IENv
bXBhcmVWYWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyRDwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBs
b2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9h
ZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgYmlhcy5sb2FkVmFsdWUoKSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgQmlhcyxpbnQyIG9mZnNl
dClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
Ymlhcywgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJy
YXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0
LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNh
bXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9j
YXRpb25BcnJheSwgZGVsdGFBcnJheSwgYmlhcy5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeV0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdl
dCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0
ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVm
aW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBT
YW1wbGVHcmFkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9u
LGZsb2F0MiBERFgsZmxvYXQyIEREWSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9m
ZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rv
cihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCks
IGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEp
LCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2Ft
cGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxv
ZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNh
bXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IExPRCxpbnQyIG9mZnNldClgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5n
ZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0
dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0
YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCks
IHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSBHYXRoZXIoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRp
b24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUg
Z2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
IEdhdGhlcihUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixp
bnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IElt
cGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1w
bGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVy
LGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJHcmVlbihUZXh0dXJlRGVw
dGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gR2F0aGVyR3JlZW4oVGV4dHVyZURl
cHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBn
YXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0g
R2F0aGVyQmx1ZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlv
bilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBn
YXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0g
R2F0aGVyQmx1ZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlv
bixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6
IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJBbHBoYShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Pixz
YW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0gR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IGNvbXBhcmVf
dmFsdWUpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIGNvbXBhcmVWYWx1ZV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBs
ZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFsdWUsaW50MiBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVW
YWx1ZSwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxl
bWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmlu
ZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJD
bXBSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxv
YXQgY29tcGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5n
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNt
cEdyZWVuKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZs
b2F0IGNvbXBhcmVfdmFsdWUpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wR3JlZW4oVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSxp
bnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29t
cGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQyIGxvY2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFsdWUsaW50MiBvZmZzZXQpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1
ZSwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSBHYXRoZXJDbXBBbHBoYShUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVy
LGZsb2F0MiBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5n
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNt
cEFscGhhKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZs
b2F0IGNvbXBhcmVfdmFsdWUsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZSwgb2Zmc2V0XSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmlu
ZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRl
eHR1cmVEZXB0aDJEPCR7dHlwZX0+LGludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBv
ZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0aW9u
LmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4saW50MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUg
cmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgw
LCBsb2NhdGlvbi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSArIG9mZnNldC5nZXQoMSksIGxv
Y2F0aW9uLmdldCgwKSArIG9mZnNldC5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1
aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3VudCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNd
IiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KHRleC5oZWlnaHRBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAg
d2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJ
RCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyREFy
cmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQo
MSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5s
b2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkRBcnJheTwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDAp
LCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEp
LCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4
dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFy
cmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBs
b2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUo
KSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFs
dWUoKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBT
YW1wbGVDbXAoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNl
dC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihz
YW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxv
Y2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJl
RGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29t
cGFyZVZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhN
RTogSW1wbGVtZW50IHRoaXMKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24sJHt0eXBlfSBDb21wYXJlVmFsdWUsaW50MiBvZmZzZXQp
YCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNv
bXBhcmVWYWx1ZSwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6
IEltcGxlbWVudCB0aGlzCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94
VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFs
dWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyREFy
cmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMsaW50MiBvZmZz
ZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24s
IGJpYXMsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFy
cmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5n
ZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0
LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5s
b2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgYmlhcy5sb2FkVmFsdWUoKSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURl
cHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdDIgRERYLGZs
b2F0MiBERFkpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9u
QXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9u
LmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4Lmdl
dCgwKSwgZGR4LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJy
YXkgPSBbZGR5LmdldCgwKSwgZGR5LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGRk
eEFycmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlRGVwdGgy
REFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQy
IEREWSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEp
LCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRk
eEFycmF5ID0gW2RkeC5nZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOworICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0
LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNh
bXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9j
YXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2RdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxv
YWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIGxvZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0
aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9ELGludDIg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uLCBsb2QsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlv
bkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlv
bi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zm
c2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gR2F0aGVyKFRleHR1cmVEZXB0
aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IEdhdGhlcihUZXh0dXJlRGVw
dGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZz
ZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1
cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0
ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJHcmVlbihUZXh0dXJlRGVwdGgy
REFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJHcmVlbihUZXh0dXJl
RGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBv
ZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRl
eHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9IEdhdGhlckJsdWUoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0gR2F0aGVyQmx1ZShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBs
ZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IEdhdGhlckFscGhhKFRleHR1cmVE
ZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IEdhdGhlckFscGhhKFRl
eHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBv
ZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0gR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmlu
ZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJD
bXAoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixm
bG9hdCBjb21wYXJlX3ZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJp
bmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gR2F0aGVy
Q21wUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBSZWQoVGV4dHVyZURl
cHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJl
X3ZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wR3JlZW4oVGV4
dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBj
b21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBG
SVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJEQXJy
YXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSxp
bnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRo
MkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3Zh
bHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1w
bGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlLGludDIgb2Zmc2V0
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBj
b21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wQWxwaGEoVGV4dHVyZURlcHRoMkRBcnJheTwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJl
VmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRl
eHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZh
bHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixpbnQ0IGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xv
YWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5l
bGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMyksIGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRp
b24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Pixp
bnQ0IGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1
cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ym94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBi
b3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgz
KSwgbG9jYXRpb24uZ2V0KDIpLCAwLCBsb2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQuZ2V0KDEpLCBs
b2NhdGlvbi5nZXQoMCkgKyBvZmZzZXQuZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmVEZXB0aDJEQXJyYXk8
JHt0eXBlfT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhl
aWdodCx1aW50KiB0aHJlYWQgRWxlbWVudHMsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0
LCBlbGVtZW50cywgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5v
bmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwo
bWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5j
b3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAg
ICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxz
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJl
RGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBjdWJlbWFwIHNhbXBsaW5nCisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJl
RGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFy
ZVZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog
SW1wbGVtZW50IGN1YmVtYXAgc2FtcGxpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aEN1YmU8JHt0
eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sJHt0eXBlfSBDb21wYXJlVmFsdWUpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVW
YWx1ZV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhp
cworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVC
aWFzKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxv
YXQgQmlhcylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgY3ViZW1hcCBzYW1wbGluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZKWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeV0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgY3ViZW1hcCBzYW1wbGluZworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChU
ZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IExP
RClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
bG9kXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBjdWJl
bWFwIHNhbXBsaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9IEdhdGhlcihUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJl
IGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSBHYXRoZXJSZWQoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVy
ZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX0gR2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBs
b2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4
dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0gR2F0aGVyQmx1ZShUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0
ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSBHYXRoZXJBbHBoYShUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxv
YXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSBHYXRoZXJDbXAoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcFJl
ZChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0
IGNvbXBhcmVfdmFsdWUpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wR3JlZW4oVGV4dHVyZURlcHRoQ3Vi
ZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21w
YXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50
IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5n
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNt
cEFscGhhKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24s
ZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmVEZXB0aEN1
YmU8JHt0eXBlfT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFk
IEhlaWdodCx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uIChbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIG51bWJlck9mTGV2ZWxzXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXgubGF5ZXJDb3VudCAhPSA2KQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ3ViZSB0ZXh0dXJlIGRv
ZXNuJ3QgaGF2ZSA2IGZhY2VzIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQg
Pj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3
IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQg
bWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAx
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2
ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9p
ZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sdWludCogdGhyZWFkIFdp
ZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVy
ZSwgd2lkdGgsIGhlaWdodF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0
ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCks
IDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1l
bnNpb25zKFJXVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9h
dCogdGhyZWFkIEhlaWdodClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB3aWR0
aCwgaGVpZ2h0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUu
bG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAg
ICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoUldUZXh0
dXJlRGVwdGgyRDwke3R5cGV9PixpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2Yg
Ym91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCAwLCAwLCBsb2Nh
dGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwke3R5
cGV9LHVpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZh
bHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltT
dG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUo
KS5zZXRFbGVtZW50Q2hlY2tlZCgwLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdl
dCgwKSwgdW5ib3hWZWN0b3IodmFsdWUsIGxlbmd0aCkpKTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmVEZXB0aDJEQXJy
YXk8JHt0eXBlfT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCog
dGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHdpZHRo
LCBoZWlnaHQsIGVsZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9
IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRl
eC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgp
LmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZURlcHRoMkRBcnJh
eTwke3R5cGV9PixmbG9hdCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0LGZsb2F0
KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgd2lk
dGgsIGhlaWdodCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4
ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRz
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoUldUZXh0dXJlRGVwdGgyREFycmF5PCR7
dHlwZX0+LGludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwg
bG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNo
ZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0
dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgyKSwgMCwgMCwgbG9j
YXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9
Piwke3R5cGV9LHVpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1
cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRmFs
c2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2Fk
VmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMiksIDAsIDAsIGxvY2F0aW9u
LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApLCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0KICAg
ICB9CiAKICAgICBhZGQodGhpbmcpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9TUElSVi5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYu
aHRtbAppbmRleCA3OGQwMDhmODM1ZjllOWMyMzRlZjJkZjZkNmRlZWEzZjc0MjZjZTY1Li4xYjI2
Y2YyYjJlNjUxNTI3YTE1MmVlOGQ5MmZmMjViZWRhNjFkMzM5IDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKQEAgLTM0LDYgKzM0LDcgQEAgdGQgewogICAgIDxzY3Jp
cHQgc3JjPSJCdWlsdGluVmVjdG9yU2V0dGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iQ2FsbEV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDYWxsRnVu
Y3Rpb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJDYXN0cy5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9IkNoZWNrLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
Q2hlY2tMaXRlcmFsVHlwZXMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDaGVja0xv
b3BzLmpzIj48L3NjcmlwdD4KQEAgLTEyMSw2ICsxMjIsNyBAQCB0ZCB7CiAgICAgPHNjcmlwdCBz
cmM9IlJldHVybi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlJldHVybkNoZWNrZXIu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJSZXR1cm5FeGNlcHRpb24uanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJTYW1wbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iU3RhbmRhcmRMaWJyYXJ5LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3Rh
dGVtZW50Q2xvbmVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3RydWN0TGF5b3V0
QnVpbGRlci5qcyI+PC9zY3JpcHQ+CkBAIC0xMzMsNiArMTM1LDggQEAgdGQgewogICAgIDxzY3Jp
cHQgc3JjPSJTeW50aGVzaXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9IlRleHR1cmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJUZXh0dXJlT3BlcmF0aW9ucy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlRy
YXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NhbXBsZXIuanMgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TYW1wbGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlNzcx
M2RmYzgxZjgzYzU4NDczNjIxMjE3NTY0ZjM5NTcyYjE0YjgKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TYW1wbGVyLmpzCkBAIC0wLDAgKzEsMTYzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyJ1c2Ugc3RyaWN0
IjsKKworY2xhc3MgU2FtcGxlciB7CisgICAgY29uc3RydWN0b3Iob3B0aW9ucykKKyAgICB7Cisg
ICAgICAgIGlmIChvcHRpb25zLnJBZGRyZXNzTW9kZSA9PSB1bmRlZmluZWQpCisgICAgICAgICAg
ICB0aGlzLl9yQWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICB0aGlzLl9yQWRkcmVzc01vZGUgPSBvcHRpb25zLnJBZGRyZXNzTW9kZTsKKyAgICAg
ICAgaWYgKG9wdGlvbnMuc0FkZHJlc3NNb2RlID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRo
aXMuX3NBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHRoaXMuX3NBZGRyZXNzTW9kZSA9IG9wdGlvbnMuc0FkZHJlc3NNb2RlOworICAgICAgICBp
ZiAob3B0aW9ucy50QWRkcmVzc01vZGUgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5f
dEFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
dGhpcy5fdEFkZHJlc3NNb2RlID0gb3B0aW9ucy50QWRkcmVzc01vZGU7CisgICAgICAgIGlmIChv
cHRpb25zLm1pbkZpbHRlciA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9taW5GaWx0
ZXIgPSAibmVhcmVzdCI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX21pbkZpbHRl
ciA9IG9wdGlvbnMubWluRmlsdGVyOworICAgICAgICBpZiAob3B0aW9ucy5tYWdGaWx0ZXIgPT0g
dW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fbWFnRmlsdGVyID0gIm5lYXJlc3QiOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9tYWdGaWx0ZXIgPSBvcHRpb25zLm1hZ0ZpbHRl
cjsKKyAgICAgICAgaWYgKG9wdGlvbnMubWlwbWFwRmlsdGVyID09IHVuZGVmaW5lZCkKKyAgICAg
ICAgICAgIHRoaXMuX21pcG1hcEZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgdGhpcy5fbWlwbWFwRmlsdGVyID0gb3B0aW9ucy5taXBtYXBGaWx0ZXI7CisgICAg
ICAgIGlmIChvcHRpb25zLmxvZE1pbkNsYW1wID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRo
aXMuX2xvZE1pbkNsYW1wID0gLU51bWJlci5NQVhfVkFMVUU7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHRoaXMuX2xvZE1pbkNsYW1wID0gb3B0aW9ucy5sb2RNaW5DbGFtcDsKKyAgICAgICAg
aWYgKG9wdGlvbnMubG9kTWF4Q2xhbXAgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5f
bG9kTWF4Q2xhbXAgPSBOdW1iZXIuTUFYX1ZBTFVFOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICB0aGlzLl9sb2RNYXhDbGFtcCA9IG9wdGlvbnMubG9kTWF4Q2xhbXA7CisgICAgICAgIGlmIChv
cHRpb25zLm1heEFuaXNvdHJvcHkgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fbWF4
QW5pc290cm9weSA9IDE7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX21heEFuaXNv
dHJvcHkgPSBvcHRpb25zLm1heEFuaXNvdHJvcHk7CisgICAgICAgIGlmIChvcHRpb25zLmNvbXBh
cmVGdW5jdGlvbiA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9jb21wYXJlRnVuY3Rp
b24gPSAibmV2ZXIiOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9jb21wYXJlRnVu
Y3Rpb24gPSBvcHRpb25zLmNvbXBhcmVGdW5jdGlvbjsKKyAgICAgICAgaWYgKG9wdGlvbnMuYm9y
ZGVyQ29sb3IgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fYm9yZGVyQ29sb3IgPSAi
dHJhbnNwYXJlbnRCbGFjayI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX2JvcmRl
ckNvbG9yID0gb3B0aW9ucy5ib3JkZXJDb2xvcjsKKyAgICB9CisgICAgCisgICAgZ2V0IHJBZGRy
ZXNzTW9kZSgpIHsgcmV0dXJuIHRoaXMuX3JBZGRyZXNzTW9kZTsgfQorICAgIGdldCBzQWRkcmVz
c01vZGUoKSB7IHJldHVybiB0aGlzLl9zQWRkcmVzc01vZGU7IH0KKyAgICBnZXQgdEFkZHJlc3NN
b2RlKCkgeyByZXR1cm4gdGhpcy5fdEFkZHJlc3NNb2RlOyB9CisgICAgZ2V0IG1pbkZpbHRlcigp
IHsgcmV0dXJuIHRoaXMuX21pbkZpbHRlcjsgfQorICAgIGdldCBtYWdGaWx0ZXIoKSB7IHJldHVy
biB0aGlzLl9tYWdGaWx0ZXI7IH0KKyAgICBnZXQgbWlwbWFwRmlsdGVyKCkgeyByZXR1cm4gdGhp
cy5fbWlwbWFwRmlsdGVyOyB9CisgICAgZ2V0IGxvZE1pbkNsYW1wKCkgeyByZXR1cm4gdGhpcy5f
bG9kTWluQ2xhbXA7IH0KKyAgICBnZXQgbG9kTWF4Q2xhbXAoKSB7IHJldHVybiB0aGlzLl9sb2RN
YXhDbGFtcDsgfQorICAgIGdldCBtYXhBbmlzb3Ryb3B5KCkgeyByZXR1cm4gdGhpcy5fbWF4QW5p
c290cm9weTsgfQorICAgIGdldCBjb21wYXJlRnVuY3Rpb24oKSB7IHJldHVybiB0aGlzLl9jb21w
YXJlRnVuY3Rpb247IH0KKyAgICBnZXQgYm9yZGVyQ29sb3IoKSB7IHJldHVybiB0aGlzLl9ib3Jk
ZXJDb2xvcjsgfQorCisgICAgY2FsY3VsYXRlQm9yZGVyQ29sb3IoaW5uZXJUeXBlKQorICAgIHsK
KyAgICAgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjMuMworICAgICAgICBmdW5jdGlv
biBjb21wdXRlVmFsdWVzKCkgeworICAgICAgICAgICAgc3dpdGNoIChpbm5lclR5cGUpIHsKKyAg
ICAgICAgICAgICAgICBjYXNlICJ1Y2hhciI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7
dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdoaXRlOiAweEZGfTsK
KyAgICAgICAgICAgICAgICBjYXNlICJ1c2hvcnQiOgorICAgICAgICAgICAgICAgICAgICByZXR1
cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMHhG
RkZGfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1aW50IjoKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazogMCwgb3BhcXVlV2hpdGU6
IDB4RkZGRkZGRkZ9OworICAgICAgICAgICAgICAgIGNhc2UgImNoYXIiOgorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFx
dWVXaGl0ZTogMHg3Rn07CisgICAgICAgICAgICAgICAgY2FzZSAic2hvcnQiOgorICAgICAgICAg
ICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBv
cGFxdWVXaGl0ZTogMHg3RkZGfTsKKyAgICAgICAgICAgICAgICBjYXNlICJpbnQiOgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAw
LCBvcGFxdWVXaGl0ZTogMHg3RkZGRkZGRn07CisgICAgICAgICAgICAgICAgY2FzZSAiaGFsZiI6
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVl
QmxhY2s6IDAsIG9wYXF1ZVdoaXRlOiAxfTsKKyAgICAgICAgICAgICAgICBjYXNlICJmbG9hdCI6
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVl
QmxhY2s6IDAsIG9wYXF1ZVdoaXRlOiAxfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1Y2hhcjIi
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwg
b3BhcXVlQmxhY2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsweEZGLCAweEZGXX07CisgICAgICAg
ICAgICAgICAgY2FzZSAidXNob3J0MiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJh
bnNwYXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTog
WzB4RkZGRiwgMHhGRkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAidWludDIiOgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxh
Y2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsweEZGRkZGRkZGLCAweEZGRkZGRkZGXX07CisgICAg
ICAgICAgICAgICAgY2FzZSAiY2hhcjIiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3Ry
YW5zcGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6
IFsweDdGLCAweDdGXX07CisgICAgICAgICAgICAgICAgY2FzZSAic2hvcnQyIjoKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNr
OiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHg3RkZGLCAweDdGRkZdfTsKKyAgICAgICAgICAgICAg
ICBjYXNlICJpbnQyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJs
YWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHg3RkZGRkZG
RiwgMHg3RkZGRkZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgImhhbGYyIjoKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNr
OiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMSwgMV19OworICAgICAgICAgICAgICAgIGNhc2UgImZs
b2F0MiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAs
IDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzEsIDFdfTsKKyAgICAgICAg
ICAgICAgICBjYXNlICJ1Y2hhcjMiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5z
cGFyZW50QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hp
dGU6IFsweEZGLCAweEZGLCAweEZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAidXNob3J0MyI6
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDBd
LCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4RkZGRiwgMHhGRkZGLCAw
eEZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1aW50MyI6CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAs
IDAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4RkZGRkZGRkYsIDB4RkZGRkZGRkYsIDB4RkZGRkZGRkZd
fTsKKyAgICAgICAgICAgICAgICBjYXNlICJjaGFyMyI6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBd
LCBvcGFxdWVXaGl0ZTogWzB4N0YsIDB4N0YsIDB4N0ZdfTsKKyAgICAgICAgICAgICAgICBjYXNl
ICJzaG9ydDMiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6
IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsweDdGRkYs
IDB4N0ZGRiwgMHg3RkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAiaW50MyI6CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVC
bGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4N0ZGRkZGRkYsIDB4N0ZGRkZGRkYsIDB4
N0ZGRkZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJoYWxmMyI6CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazog
WzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzEsIDEsIDFdfTsKKyAgICAgICAgICAgICAgICBjYXNl
ICJmbG9hdDMiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6
IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsxLCAxLCAx
XX07CisgICAgICAgICAgICAgICAgY2FzZSAidWNoYXI0IjoKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwg
MCwgMCwgMHhGRl0sIG9wYXF1ZVdoaXRlOiBbMHhGRiwgMHhGRiwgMHhGRiwgMHhGRl19OworICAg
ICAgICAgICAgICAgIGNhc2UgInVzaG9ydDQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
e3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAw
eEZGRkZdLCBvcGFxdWVXaGl0ZTogWzB4RkZGRiwgMHhGRkZGLCAweEZGRkYsIDB4RkZGRl19Owor
ICAgICAgICAgICAgICAgIGNhc2UgInVpbnQ0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwg
MHhGRkZGRkZGRl0sIG9wYXF1ZVdoaXRlOiBbMHhGRkZGRkZGRiwgMHhGRkZGRkZGRiwgMHhGRkZG
RkZGRiwgMHhGRkZGRkZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgImNoYXI0IjoKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9w
YXF1ZUJsYWNrOiBbMCwgMCwgMCwgMHg3Rl0sIG9wYXF1ZVdoaXRlOiBbMHg3RiwgMHg3RiwgMHg3
RiwgMHg3Rl19OworICAgICAgICAgICAgICAgIGNhc2UgInNob3J0NCI6CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBvcGFxdWVCbGFj
azogWzAsIDAsIDAsIDB4N0ZGRl0sIG9wYXF1ZVdoaXRlOiBbMHg3RkZGLCAweDdGRkYsIDB4N0ZG
RiwgMHg3RkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAiaW50NCI6CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBvcGFxdWVCbGFj
azogWzAsIDAsIDAsIDB4N0ZGRkZGRkZdLCBvcGFxdWVXaGl0ZTogWzB4N0ZGRkZGRkYsIDB4N0ZG
RkZGRkYsIDB4N0ZGRkZGRkYsIDB4N0ZGRkZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJo
YWxmNCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAs
IDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDAsIDFdLCBvcGFxdWVXaGl0ZTogWzEsIDEs
IDEsIDFdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJmbG9hdDQiOgorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6
IFswLCAwLCAwLCAxXSwgb3BhcXVlV2hpdGU6IFsxLCAxLCAxLCAxXX07CisgICAgICAgICAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3du
IHRleHR1cmUgaW5uZXIgdHlwZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAg
IHJldHVybiBjb21wdXRlVmFsdWVzKClbdGhpcy5ib3JkZXJDb2xvcl07CisgICAgfQorfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5Lmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCmluZGV4
IDNkZDRmZWUxODYwMGQ1Y2QyYTg5NWFkNWE0Nzk3MjFkYTc3ODhjYzEuLmEyMGY3M2M4YTliMGVm
NDIwNWI0YTU3NTU2ODJiNTZjMDg5MTc1MzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKQEAgLTU3LDcgKzU3LDcgQEAgbGV0IHN0YW5k
YXJkTGlicmFyeSA9IChmdW5jdGlvbigpIHsKICAgICAgICAgfQogICAgICAgICBwcmludChgbmF0
aXZlIHR5cGVkZWYgc2FtcGxlcjtgKTsKICAgICAgICAgZm9yICh2YXIgdHlwZSBvZiBbYFRleHR1
cmUxRGAsIGBSV1RleHR1cmUxRGAsIGBUZXh0dXJlMURBcnJheWAsIGBSV1RleHR1cmUxREFycmF5
YCwgYFRleHR1cmUyRGAsIGBSV1RleHR1cmUyRGAsIGBUZXh0dXJlMkRBcnJheWAsIGBSV1RleHR1
cmUyREFycmF5YCwgYFRleHR1cmUzRGAsIGBSV1RleHR1cmUzRGAsIGBUZXh0dXJlQ3ViZWBdKSB7
Ci0gICAgICAgICAgICBmb3IgKHZhciB0eXBlQXJndW1lbnRCYXNlIG9mIFtgYm9vbGAsIGB1Y2hh
cmAsIGB1c2hvcnRgLCBgdWludGAsIGBjaGFyYCwgYHNob3J0YCwgYGludGAsIGBoYWxmYCwgYGZs
b2F0YF0pIHsKKyAgICAgICAgICAgIGZvciAodmFyIHR5cGVBcmd1bWVudEJhc2Ugb2YgW2B1Y2hh
cmAsIGB1c2hvcnRgLCBgdWludGAsIGBjaGFyYCwgYHNob3J0YCwgYGludGAsIGBoYWxmYCwgYGZs
b2F0YF0pIHsKICAgICAgICAgICAgICAgICBmb3IgKHZhciBzaXplIG9mIFtgYCwgYDJgLCBgM2As
IGA0YF0pIHsKICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB0eXBlZGVmICR7dHlw
ZX08JHt0eXBlQXJndW1lbnRCYXNlfSR7c2l6ZX0+O2ApOwogICAgICAgICAgICAgICAgIH0KQEAg
LTE4OTcsNyArMTg5Nyw4IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAg
ICAgICAgICAgICBwcmludChgbmF0aXZlIHZvaWQgSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2Uo
dGhyZWFkIGF0b21pY18ke3R5cGV9KiwgJHt0eXBlfSwgJHt0eXBlfSwgdGhyZWFkICR7dHlwZX0q
KTtgKTsKICAgICAgICAgfQogICAgICAgICBwcmludCgpOwotICAgICAgICAKKyAgICAgICAgKi8K
KwogICAgICAgICBmb3IgKHZhciB0eXBlIG9mIFtgdWNoYXJgLCBgdXNob3J0YCwgYHVpbnRgLCBg
Y2hhcmAsIGBzaG9ydGAsIGBpbnRgLCBgaGFsZmAsIGBmbG9hdGBdKSB7CiAgICAgICAgICAgICBm
b3IgKHZhciBsZW5ndGggb2YgW2BgLCBgMmAsIGAzYCwgYDRgXSkgewogICAgICAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0k
e2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7YCk7CkBAIC0xOTU4LDE2ICsxOTU5
LDYgQEAgbGV0IHN0YW5kYXJkTGlicmFyeSA9IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAg
ICBwcmludCgpOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3Ro
fSBTYW1wbGUoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9j
YXRpb24pO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3Ro
fSBTYW1wbGUoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9j
YXRpb24sIGludDMgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX00IEdhdGhlcihUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0
MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXIoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRp
b24sIGludDMgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX00IEdhdGhlclJlZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0
MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJSZWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9j
YXRpb24sIGludDMgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwg
ZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX00IEdhdGhlckdyZWVuKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxv
YXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2Ft
cGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVy
LCBmbG9hdDMgbG9jYXRpb24sIGludDMgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwg
c2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7CiAgICAgICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTNEPCR7dHlwZX0k
e2xlbmd0aH0+LCBpbnQ0IGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIGlu
dDQgbG9jYXRpb24sIGludDMgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0
aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHVpbnQg
TWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIEhlaWdodCwgdGhyZWFk
IHVpbnQqIERlcHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpO2ApOwpAQCAtMjAxMCwx
NCArMjAwMSwxNCBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAg
ICAgICAgICAgIHByaW50KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgCisK
ICAgICAgICAgZm9yICh2YXIgdHlwZSBvZiBbYGhhbGZgLCBgZmxvYXRgXSkgewogICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwg
c2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBs
b2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25T
dGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUpO2ApOwotICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9
PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJl
VmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJDb21w
YXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgQ29tcGFyZVZhbHVlKTtgKTsKLSAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVy
ZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlv
biwgZmxvYXQgQ29tcGFyZVZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDIgbG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlKTtgKTsKKyAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgJHt0eXBlfSBDb21wYXJlVmFsdWUsIGludDIg
b2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBM
ZXZlbFplcm8oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlv
biwgJHt0eXBlfSBDb21wYXJlVmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxl
ciwgZmxvYXQyIGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1ZSwgaW50MiBvZmZzZXQpO2Ap
OwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZURl
cHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgQmlhcyk7YCk7
CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVw
dGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBCaWFzLCBpbnQy
IG9mZnNldCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3Jh
ZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9h
dDIgRERYLCBmbG9hdDIgRERZKTtgKTsKQEAgLTIwMzQsMjYgKzIwMjUsMjYgQEAgbGV0IHN0YW5k
YXJkTGlicmFyeSA9IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfSBHYXRoZXJCbHVlKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIg
bG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfSBHYXRoZXJBbHBoYShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQy
IGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJB
bHBoYShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBp
bnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVy
Q21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9h
dDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxl
ckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBp
bnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVy
Q21wUmVkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBm
bG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwg
U2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3Zh
bHVlLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0g
R2F0aGVyQ21wR3JlZW4oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29u
U3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wR3JlZW4oVGV4dHVyZURlcHRoMkQ8
JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQg
Y29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJD
b21wYXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7
Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wQmx1ZShUZXh0dXJl
RGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9u
LCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wQWxwaGEoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4s
IFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92
YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wQWxw
aGEoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0
MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOworICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyRDwke3R5
cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsK
KyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXAoVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1
ZSwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdh
dGhlckNtcFJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0
aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfSBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZs
b2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOworICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0
aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFs
dWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEdyZWVu
KFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0
IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVy
LCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOworICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBv
ZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEFs
cGhhKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZs
b2F0IGNvbXBhcmVfdmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIg
bG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBp
bnQzIGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBMb2Fk
KFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBpbnQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7
CiAgICAgICAgICAgICBwcmludChgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlRGVw
dGgyRDwke3R5cGV9PiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQg
dWludCogSGVpZ2h0LCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpO2ApOwogICAgICAgICAg
ICAgcHJpbnQoKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4
dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsK
ICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7
Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0
aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlv
biwgZmxvYXQgQ29tcGFyZVZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBh
cmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUsIGludDIgb2Zm
c2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZl
bFplcm8oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0
ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUpO2ApOwotICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyREFy
cmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZs
b2F0IENvbXBhcmVWYWx1ZSwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDMgbG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlKTtgKTsKKyAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoMkRBcnJheTwk
e3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1ZSwg
aW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9h
dDMgbG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkRBcnJheTwk
e3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1ZSwg
aW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZUJpYXMoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0
aW9uLCBmbG9hdCBCaWFzKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBT
YW1wbGVCaWFzKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBs
b2NhdGlvbiwgZmxvYXQgQmlhcywgaW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwg
c2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdDIgRERYLCBmbG9hdDIgRERZKTtgKTsKQEAg
LTIwNzAsMjMgKzIwNjEsMjMgQEAgbGV0IHN0YW5kYXJkTGlicmFyeSA9IChmdW5jdGlvbigpIHsK
ICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJCbHVlKFRleHR1cmVEZXB0
aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQp
O2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckFscGhhKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CiAg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRo
MkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7
YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wKFRleHR1cmVE
ZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2Nh
dGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0gR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJD
b21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50
MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNt
cFJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRl
LCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7
dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNv
bXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfSBHYXRoZXJDbXBHcmVlbihUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1w
bGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUp
O2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEdyZWVuKFRl
eHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0
MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBm
bG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21w
YXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBv
ZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEFs
cGhhKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUs
IGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wQWxwaGEoVGV4dHVyZURlcHRoMkRBcnJheTwk
e3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBj
b21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0gR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIs
IGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7CisgICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBl
fT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBv
ZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcFJl
ZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24s
IGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBm
bG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBHcmVlbihUZXh0dXJlRGVw
dGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBh
cmVfdmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNt
cEdyZWVuKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2Nh
dGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRoMkRBcnJheTwk
e3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtg
KTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBCbHVlKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQg
Y29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7CisgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wQWxwaGEoVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3Zh
bHVlLCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0g
TG9hZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBpbnQ0IGxvY2F0aW9uKTtgKTsKICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmVEZXB0aDJEQXJyYXk8
JHt0eXBlfT4sIGludDQgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBl
fT4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIEhlaWdo
dCwgdGhyZWFkIHVpbnQqIEVsZW1lbnRzLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpO2Ap
OwogICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSBTYW1wbGUoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0
aW9uKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4
dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxv
Y2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBT
YW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IENvbXBhcmVWYWx1
ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1
cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgJHt0eXBlfSBD
b21wYXJlVmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMg
bG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlKTtgKTsKICAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBs
ZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgQmlhcyk7YCk7CiAgICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0MiBERFgsIGZsb2F0MiBERFkpO2ApOwogICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0aEN1YmU8
JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgTE9EKTtgKTsKQEAgLTIw
OTUsMTIgKzIwODYsMTEgQEAgbGV0IHN0YW5kYXJkTGlicmFyeSA9IChmdW5jdGlvbigpIHsKICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJHcmVlbihUZXh0dXJlRGVwdGhD
dWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwogICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckJsdWUoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBHYXRoZXJBbHBoYShUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVy
LCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
IEdhdGhlckNtcChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0
YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGhDdWJlPCR7
dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNv
bXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhl
ckNtcEdyZWVuKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3Rh
dGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wQmx1ZShUZXh0dXJlRGVwdGhDdWJlPCR7
dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNv
bXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhl
ckNtcEFscGhhKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3Rh
dGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBp
bnQ0IGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRo
ZXJDbXAoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9u
LCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfSBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxv
YXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBHcmVlbihUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+
LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOworICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRo
Q3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3Zh
bHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBBbHBo
YShUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZs
b2F0IGNvbXBhcmVfdmFsdWUpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEdl
dERpbWVuc2lvbnMoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgdWludCBNaXBMZXZlbCwgdGhy
ZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogSGVpZ2h0LCB0aHJlYWQgdWludCogTnVtYmVy
T2ZMZXZlbHMpO2ApOwogICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHRocmVh
ZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIEhlaWdodCk7YCk7CkBAIC0yMTE0LDcgKzIxMDQs
NiBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgJHt0
eXBlfSwgdWludDMgbG9jYXRpb24pO2ApOwogICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAg
fQotICAgICAgICAqLwogICAgIH0pKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0pKCk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKaW5kZXggNjA3YTY5NTMyNTNkYTcyN2Ix
ZGUzNzY3OGVjMzg4YjRmYTI0MDQwNS4uZTc4Y2NhYzFhMDI1NGNiYzkyM2I5ZGQ2YzE4NWFlZTc4
YzcyYTgxNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5o
dG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbApAQCAtMjgs
NiArMjgsNyBAQAogPHNjcmlwdCBzcmM9IkJ1aWx0aW5WZWN0b3JTZXR0ZXIuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IkNhbGxFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJDYWxsRnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNhc3RzLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJDaGVjay5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2hl
Y2tMaXRlcmFsVHlwZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNoZWNrTG9vcHMuanMi
Pjwvc2NyaXB0PgpAQCAtMTE1LDYgKzExNiw3IEBACiA8c2NyaXB0IHNyYz0iUmV0dXJuLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZXR1cm5DaGVja2VyLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJSZXR1cm5FeGNlcHRpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlNhbXBs
ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN0YW5kYXJkTGlicmFyeS5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iU3RhdGVtZW50Q2xvbmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIj48L3NjcmlwdD4KQEAgLTEyNyw2ICsxMjksOCBA
QAogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9y
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4
dHVyZU9wZXJhdGlvbnMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CkBAIC0xNTIsNyArMTU2LDcgQEAK
IDxzY3JpcHQ+CiBmdW5jdGlvbiBkb1Rlc3RJbkJyb3dzZXIoKQogewotICAgIHZhciB0ZXN0ZXIg
PSBkb1Rlc3QoLy4qLyk7CisgICAgdmFyIHRlc3RlciA9IGRvVGVzdCgvdGV4dHVyZS8pOwogICAg
IHZhciBsYXN0VGltZTsKICAgICBmdW5jdGlvbiBuZXh0KCkKICAgICB7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvVGVzdC5qcwppbmRleCA0YTExYzE4NTg1OTk3NzhmZjM5MWIwNGYyNjM1YzVi
NzEwMDVkZjdmLi42YTVkYjU4YjBhNTdkYjlhNzY0MjYzNDYwNWRhMTUyOTdlZTQ2NmZjIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCisrKyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKQEAgLTk0LDYgKzk0LDEzMyBAQCBmdW5j
dGlvbiBtYWtlRW51bShwcm9ncmFtLCBlbnVtTmFtZSwgdmFsdWUpCiAgICAgcmV0dXJuIFR5cGVk
VmFsdWUuYm94KGVudW1UeXBlLCBlbnVtTWVtYmVyLnZhbHVlLnVuaWZ5Tm9kZS52YWx1ZUZvclNl
bGVjdGVkVHlwZSk7CiB9CiAKK2Z1bmN0aW9uIG1ha2VTYW1wbGVyKHByb2dyYW0sIG9wdGlvbnMp
Cit7CisgICAgLy8gZW51bSBXZWJHUFVBZGRyZXNzTW9kZSB7CisgICAgLy8gICAgICJjbGFtcFRv
RWRnZSIsCisgICAgLy8gICAgICJyZXBlYXQiLAorICAgIC8vICAgICAibWlycm9yUmVwZWF0IiwK
KyAgICAvLyAgICAgImNsYW1wVG9Cb3JkZXJDb2xvciIKKyAgICAvLyB9CisgICAgLy8KKyAgICAv
LyBlbnVtIFdlYkdQVUZpbHRlck1vZGUgeworICAgIC8vICAgICAibmVhcmVzdCIsCisgICAgLy8g
ICAgICJsaW5lYXIiCisgICAgLy8gfQorICAgIC8vCisgICAgLy8gZW51bSBXZWJHUFVDb21wYXJl
RnVuY3Rpb24geworICAgIC8vICAgICAibmV2ZXIiLAorICAgIC8vICAgICAibGVzcyIsCisgICAg
Ly8gICAgICJlcXVhbCIsCisgICAgLy8gICAgICJsZXNzRXF1YWwiLAorICAgIC8vICAgICAiZ3Jl
YXRlciIsCisgICAgLy8gICAgICJub3RFcXVhbCIsCisgICAgLy8gICAgICJncmVhdGVyRXF1YWwi
LAorICAgIC8vICAgICAiYWx3YXlzIgorICAgIC8vIH0KKyAgICAvLworICAgIC8vIGVudW0gV2Vi
R1BVQm9yZGVyQ29sb3IgeworICAgIC8vICAgICAidHJhbnNwYXJlbnRCbGFjayIsCisgICAgLy8g
ICAgICJvcGFxdWVCbGFjayIsCisgICAgLy8gICAgICJvcGFxdWVXaGl0ZSIKKyAgICAvLyB9Cisg
ICAgLy8KKyAgICAvLyBkaWN0aW9uYXJ5IFdlYkdQVVNhbXBsZXJEZXNjcmlwdG9yIHsKKyAgICAv
LyAgICAgV2ViR1BVZGRyZXNzTW9kZSByQWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAg
IC8vICAgICBXZWJHUFVkZHJlc3NNb2RlIHNBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7Cisg
ICAgLy8gICAgIFdlYkdQVWRkcmVzc01vZGUgdEFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsK
KyAgICAvLyAgICAgV2ViR1BVRmlsdGVyTW9kZUVudW0gbWFnRmlsdGVyID0gIm5lYXJlc3QiOwor
ICAgIC8vICAgICBXZWJHUFVGaWx0ZXJNb2RlRW51bSBtaW5GaWx0ZXIgPSAibmVhcmVzdCI7Cisg
ICAgLy8gICAgIFdlYkdQVUZpbHRlck1vZGVFbnVtIG1pcG1hcEZpbHRlciA9ICJuZWFyZXN0IjsK
KyAgICAvLyAgICAgZmxvYXQgbG9kTWluQ2xhbXAgPSAwOworICAgIC8vICAgICBmbG9hdCBsb2RN
YXhDbGFtcCA9IE51bWJlci5NQVhfVkFMVUU7CisgICAgLy8gICAgIHVuc2lnbmVkIGxvbmcgbWF4
QW5pc290cm9weSA9IDE7CisgICAgLy8gICAgIFdlYkdQVUNvbXBhcmVGdW5jdGlvbiBjb21wYXJl
RnVuY3Rpb24gPSAibmV2ZXIiOworICAgIC8vICAgICBXZWJHUFVCb3JkZXJDb2xvciBib3JkZXJD
b2xvciA9ICJ0cmFuc3BhcmVudEJsYWNrIjsKKyAgICAvLyB9OworICAgIHJldHVybiBUeXBlZFZh
bHVlLmJveChwcm9ncmFtLmludHJpbnNpY3Muc2FtcGxlciwgbmV3IFNhbXBsZXIob3B0aW9ucykp
OworfQorCitmdW5jdGlvbiBtYWtlMURUZXh0dXJlKHByb2dyYW0sIG1pcG1hcHMsIGVsZW1lbnRU
eXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRl
eHR1cmUxRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUxRChlbGVtZW50VHlwZSwgbWlw
bWFwcykpOworfQorCitmdW5jdGlvbiBtYWtlMURUZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXks
IGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJp
bnNpY3NbYFRleHR1cmUxREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTFEQXJy
YXkoZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UyRFRleHR1cmUocHJv
Z3JhbSwgbWlwbWFwcywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94
KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZTJEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4
dHVyZTJEKGVsZW1lbnRUeXBlLCBtaXBtYXBzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UyRFRleHR1
cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVk
VmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZTJEQXJyYXk8JHtlbGVtZW50VHlw
ZX0+YF0sIG5ldyBUZXh0dXJlMkRBcnJheShlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVu
Y3Rpb24gbWFrZTNEVGV4dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50VHlwZSkKK3sKKyAg
ICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlM0Q8JHtl
bGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlM0QoZWxlbWVudFR5cGUsIG1pcG1hcHMpKTsKK30K
KworZnVuY3Rpb24gbWFrZVRleHR1cmVDdWJlKHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkK
K3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJl
Q3ViZTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmVDdWJlKGVsZW1lbnRUeXBlLCBhcnJh
eSkpOworfQorCitmdW5jdGlvbiBtYWtlUlcxRFRleHR1cmUocHJvZ3JhbSwgZWxlbWVudHMsIGVs
ZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNp
Y3NbYFJXVGV4dHVyZTFEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTFEUlcoZWxlbWVu
dFR5cGUsIGVsZW1lbnRzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzFEVGV4dHVyZUFycmF5KHBy
b2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3go
cHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUxREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBu
ZXcgVGV4dHVyZTFEQXJyYXlSVyhlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24g
bWFrZVJXMkRUZXh0dXJlKHByb2dyYW0sIHJvd3MsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVy
biBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTJEPCR7ZWxlbWVu
dFR5cGV9PmBdLCBuZXcgVGV4dHVyZTJEUlcoZWxlbWVudFR5cGUsIHJvd3MpKTsKK30KKworZnVu
Y3Rpb24gbWFrZVJXMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQor
eworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVy
ZTJEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlMkRBcnJheVJXKGVsZW1lbnRU
eXBlLCBhcnJheSkpOworfQorCitmdW5jdGlvbiBtYWtlUlczRFRleHR1cmUocHJvZ3JhbSwgZGVw
dGhTbGljZXMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9n
cmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTNEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVy
ZTNEUlcoZWxlbWVudFR5cGUsIGRlcHRoU2xpY2VzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UyRERl
cHRoVGV4dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4g
VHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlRGVwdGgyRDwke2VsZW1l
bnRUeXBlfT5gXSwgbmV3IFRleHR1cmVEZXB0aDJEKGVsZW1lbnRUeXBlLCBtaXBtYXBzKSk7Cit9
CisKK2Z1bmN0aW9uIG1ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVt
ZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNz
W2BUZXh0dXJlRGVwdGgyREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZURlcHRo
MkRBcnJheShlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24gbWFrZURlcHRoVGV4
dHVyZUN1YmUocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBl
ZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmVEZXB0aEN1YmU8JHtlbGVtZW50
VHlwZX0+YF0sIG5ldyBUZXh0dXJlRGVwdGhDdWJlKGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQor
CitmdW5jdGlvbiBtYWtlUlcyRERlcHRoVGV4dHVyZShwcm9ncmFtLCByb3dzLCBlbGVtZW50VHlw
ZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1Rl
eHR1cmVEZXB0aDJEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZURlcHRoMkRSVyhlbGVt
ZW50VHlwZSwgcm93cykpOworfQorCitmdW5jdGlvbiBtYWtlUlcyRERlcHRoVGV4dHVyZUFycmF5
KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5i
b3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmVEZXB0aDJEQXJyYXk8JHtlbGVtZW50VHlw
ZX0+YF0sIG5ldyBUZXh0dXJlRGVwdGgyREFycmF5UlcoZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9
CisKIGZ1bmN0aW9uIGNoZWNrTnVtYmVyKHByb2dyYW0sIHJlc3VsdCwgZXhwZWN0ZWQpCiB7CiAg
ICAgaWYgKCFyZXN1bHQudHlwZS51bmlmeU5vZGUuaXNOdW1iZXIpCkBAIC01NTgyLDcgKzU3MDks
MTU5MiBAQCB0ZXN0cy5hcnJheUluZGV4ID0gZnVuY3Rpb24oKSB7CiAgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMikgXSksIDMpOwogICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApIF0pLCA0KTsKICAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBbIG1ha2VVaW50
KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSBdKSwgNSk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMikgXSksIDYpOyAgICAKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBbIG1h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAyKSBdKSwgNik7Cit9CisKK2Z1
bmN0aW9uIGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9ncmFtKQoreworICAgIGxldCB0ZXh0
dXJlMUQgPSBtYWtlMURUZXh0dXJlKHByb2dyYW0sIFtbMSwgNywgMTQsIDc5XSwgWzEzLCAxNl0s
IFsxNV1dLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZTFEQXJyYXkgPSBtYWtlMURUZXh0dXJl
QXJyYXkocHJvZ3JhbSwgW1tbMSwgNywgMTQsIDc5XSwgWzEzLCAxNl0sIFsxNV1dLCBbWzE2LCAx
NywgMTgsIDE5XSwgWzIwLCAyMV0sIFsyMl1dXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmUy
RCA9IG1ha2UyRFRleHR1cmUocHJvZ3JhbSwgWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYs
IDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAg
ICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcs
IDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2XSwKKyAgICAg
ICAgWzM3LCAzOCwgMzksIDQwXV0sCisgICAgICAgIFtbNDEsIDQyXV0KKyAgICBdLCAiZmxvYXQi
KTsKKyAgICBsZXQgdGV4dHVyZTJEQXJyYXkgPSBtYWtlMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwg
W1sKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAx
MSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIs
IDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAg
ICAgICAgW1szMywgMzQsIDM1LCAzNl0sCisgICAgICAgIFszNywgMzgsIDM5LCA0MF1dLAorICAg
ICAgICBbWzQxLCA0Ml1dCisgICAgXSwgWworICAgICAgICBbWzQzLCA0NCwgNDUsIDQ2LCA0Nywg
NDgsIDQ5LCA1MF0sCisgICAgICAgIFs1MSwgNTIsIDUzLCA1NCwgNTUsIDU2LCA1NywgNThdLAor
ICAgICAgICBbNTksIDYwLCA2MSwgNjIsIDYzLCA2NCwgNjUsIDY2XSwKKyAgICAgICAgWzY3LCA2
OCwgNjksIDcwLCA3MSwgNzIsIDczLCA3NF1dLAorICAgICAgICBbWzc1LCA3NiwgNzcsIDc4XSwK
KyAgICAgICAgWzc5LCA4MCwgODEsIDgyXV0sCisgICAgICAgIFtbODMsIDg0XV0KKyAgICBdXSwg
ImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmUzRCA9IG1ha2UzRFRleHR1cmUocHJvZ3JhbSwgWwor
ICAgICAgICBbW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwg
MTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIz
LCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAg
ICAgW1szMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDBdLAorICAgICAgICBbNDEsIDQyLCA0
MywgNDQsIDQ1LCA0NiwgNDcsIDQ4XSwKKyAgICAgICAgWzQ5LCA1MCwgNTEsIDUyLCA1MywgNTQs
IDU1LCA1Nl0sCisgICAgICAgIFs1NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2MywgNjRdXV0sCisg
ICAgICAgIFtbWzY1LCA2NiwgNjcsIDY4XSwKKyAgICAgICAgWzY5LCA3MCwgNzEsIDcyXV1dCisg
ICAgXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmVDdWJlID0gbWFrZVRleHR1cmVDdWJlKHBy
b2dyYW0sIFtbCisgICAgICAgIFtbMSwgMl0sCisgICAgICAgIFszLCA0XSwKKyAgICAgICAgWzUs
IDZdLAorICAgICAgICBbNywgOF1dLAorICAgICAgICBbWzldLAorICAgICAgICBbMTBdXSwKKyAg
ICBdLCBbCisgICAgICAgIFtbMTEsIDEyXSwKKyAgICAgICAgWzEzLCAxNF0sCisgICAgICAgIFsx
NSwgMTZdLAorICAgICAgICBbMTcsIDE4XV0sCisgICAgICAgIFtbMTldLAorICAgICAgICBbMjBd
XSwKKyAgICBdLCBbCisgICAgICAgIFtbMjEsIDIyXSwKKyAgICAgICAgWzIzLCAyNF0sCisgICAg
ICAgIFsyNSwgMjZdLAorICAgICAgICBbMjcsIDI4XV0sCisgICAgICAgIFtbMjldLAorICAgICAg
ICBbMzBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbMzEsIDMyXSwKKyAgICAgICAgWzMzLCAzNF0s
CisgICAgICAgIFszNSwgMzZdLAorICAgICAgICBbMzcsIDM4XV0sCisgICAgICAgIFtbMzldLAor
ICAgICAgICBbNDBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbNDEsIDQyXSwKKyAgICAgICAgWzQz
LCA0NF0sCisgICAgICAgIFs0NSwgNDZdLAorICAgICAgICBbNDcsIDQ4XV0sCisgICAgICAgIFtb
NDldLAorICAgICAgICBbNTBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbNTEsIDUyXSwKKyAgICAg
ICAgWzUzLCA1NF0sCisgICAgICAgIFs1NSwgNTZdLAorICAgICAgICBbNTcsIDU4XV0sCisgICAg
ICAgIFtbNTldLAorICAgICAgICBbNjBdXSwKKyAgICBdXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3
VGV4dHVyZTFEID0gbWFrZVJXMURUZXh0dXJlKHByb2dyYW0sIFsxLCAyLCAzLCA0LCA1LCA2LCA3
LCA4XSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4dHVyZTFEQXJyYXkgPSBtYWtlUlcxRFRleHR1
cmVBcnJheShwcm9ncmFtLCBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLCBbOSwgMTAsIDExLCAx
MiwgMTMsIDE0LCAxNSwgMTZdLCBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XV0sICJm
bG9hdCIpOworICAgIGxldCByd1RleHR1cmUyRCA9IG1ha2VSVzJEVGV4dHVyZShwcm9ncmFtLCBb
CisgICAgICAgIFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwg
MTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIz
LCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwgImZsb2F0
Iik7CisgICAgbGV0IHJ3VGV4dHVyZTJEQXJyYXkgPSBtYWtlUlcyRFRleHR1cmVBcnJheShwcm9n
cmFtLCBbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAx
MCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEs
IDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0s
CisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwXSwKKyAgICAgICAgWzQx
LCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OF0sCisgICAgICAgIFs0OSwgNTAsIDUxLCA1Miwg
NTMsIDU0LCA1NSwgNTZdLAorICAgICAgICBbNTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjMsIDY0
XV1dLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlM0QgPSBtYWtlUlczRFRleHR1cmUocHJv
Z3JhbSwgWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwg
MTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIx
LCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1d
LAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MF0sCisgICAgICAgIFs0
MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDhdLAorICAgICAgICBbNDksIDUwLCA1MSwgNTIs
IDUzLCA1NCwgNTUsIDU2XSwKKyAgICAgICAgWzU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLCA2
NF1dXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmVEZXB0aDJEID0gbWFrZTJERGVwdGhUZXh0
dXJlKHByb2dyYW0sIFsKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAg
ICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTks
IDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAz
MSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNl0sCisgICAgICAgIFszNywgMzgsIDM5
LCA0MF1dLAorICAgICAgICBbWzQxLCA0Ml1dCisgICAgXSwgImZsb2F0Iik7CisgICAgbGV0IHRl
eHR1cmVEZXB0aDJEQXJyYXkgPSBtYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbWwor
ICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAx
MiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMs
IDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAg
ICBbWzMzLCAzNCwgMzUsIDM2XSwKKyAgICAgICAgWzM3LCAzOCwgMzksIDQwXV0sCisgICAgICAg
IFtbNDEsIDQyXV0KKyAgICBdLCBbCisgICAgICAgIFtbNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwg
NDksIDUwXSwKKyAgICAgICAgWzUxLCA1MiwgNTMsIDU0LCA1NSwgNTYsIDU3LCA1OF0sCisgICAg
ICAgIFs1OSwgNjAsIDYxLCA2MiwgNjMsIDY0LCA2NSwgNjZdLAorICAgICAgICBbNjcsIDY4LCA2
OSwgNzAsIDcxLCA3MiwgNzMsIDc0XV0sCisgICAgICAgIFtbNzUsIDc2LCA3NywgNzhdLAorICAg
ICAgICBbNzksIDgwLCA4MSwgODJdXSwKKyAgICAgICAgW1s4MywgODRdXQorICAgIF1dLCAiZmxv
YXQiKTsKKyAgICBsZXQgdGV4dHVyZURlcHRoQ3ViZSA9IG1ha2VEZXB0aFRleHR1cmVDdWJlKHBy
b2dyYW0sIFtbCisgICAgICAgIFtbMSwgMl0sCisgICAgICAgIFszLCA0XSwKKyAgICAgICAgWzUs
IDZdLAorICAgICAgICBbNywgOF1dLAorICAgICAgICBbWzldLAorICAgICAgICBbMTBdXSwKKyAg
ICBdLCBbCisgICAgICAgIFtbMTEsIDEyXSwKKyAgICAgICAgWzEzLCAxNF0sCisgICAgICAgIFsx
NSwgMTZdLAorICAgICAgICBbMTcsIDE4XV0sCisgICAgICAgIFtbMTldLAorICAgICAgICBbMjBd
XSwKKyAgICBdLCBbCisgICAgICAgIFtbMjEsIDIyXSwKKyAgICAgICAgWzIzLCAyNF0sCisgICAg
ICAgIFsyNSwgMjZdLAorICAgICAgICBbMjcsIDI4XV0sCisgICAgICAgIFtbMjldLAorICAgICAg
ICBbMzBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbMzEsIDMyXSwKKyAgICAgICAgWzMzLCAzNF0s
CisgICAgICAgIFszNSwgMzZdLAorICAgICAgICBbMzcsIDM4XV0sCisgICAgICAgIFtbMzldLAor
ICAgICAgICBbNDBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbNDEsIDQyXSwKKyAgICAgICAgWzQz
LCA0NF0sCisgICAgICAgIFs0NSwgNDZdLAorICAgICAgICBbNDcsIDQ4XV0sCisgICAgICAgIFtb
NDldLAorICAgICAgICBbNTBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbNTEsIDUyXSwKKyAgICAg
ICAgWzUzLCA1NF0sCisgICAgICAgIFs1NSwgNTZdLAorICAgICAgICBbNTcsIDU4XV0sCisgICAg
ICAgIFtbNTldLAorICAgICAgICBbNjBdXSwKKyAgICBdXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3
VGV4dHVyZURlcHRoMkQgPSBtYWtlUlcyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAg
IFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAx
NCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisg
ICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwgImZsb2F0Iik7CisgICAg
bGV0IHJ3VGV4dHVyZURlcHRoMkRBcnJheSA9IG1ha2VSVzJERGVwdGhUZXh0dXJlQXJyYXkocHJv
Z3JhbSwgWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwg
MTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIx
LCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1d
LAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MF0sCisgICAgICAgIFs0
MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDhdLAorICAgICAgICBbNDksIDUwLCA1MSwgNTIs
IDUzLCA1NCwgNTUsIDU2XSwKKyAgICAgICAgWzU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLCA2
NF1dXSwgImZsb2F0Iik7CisgICAgcmV0dXJuIFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0
ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1
cmUxRCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3
VGV4dHVyZTNELCB0ZXh0dXJlRGVwdGgyRCwgdGV4dHVyZURlcHRoMkRBcnJheSwgdGV4dHVyZURl
cHRoQ3ViZSwgcndUZXh0dXJlRGVwdGgyRCwgcndUZXh0dXJlRGVwdGgyREFycmF5XTsKK30KKwor
dGVzdHMudGV4dHVyZURpbWVuc2lvbnMgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3JhbSA9
IGRvUHJlcChgCisgICAgICAgIHVpbnQgZm9vMShUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUpIHsK
KyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxz
OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZudW1iZXJP
ZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAg
dWludCBmb28yKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3
aWR0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXRE
aW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAg
ICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzMo
VGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7
CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxl
dmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmZWxl
bWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb280KFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7
CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAg
ICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25z
KHRleHR1cmUsIDAsICZ3aWR0aCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAg
ICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNShUZXh0
dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAg
ICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxz
OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZlbGVtZW50
cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzYoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7
CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAg
ICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0
ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAg
ICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb283KFRleHR1cmUyRDxm
bG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVp
bnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAg
IEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZl
bHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50
IGZvbzgoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRo
OworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2
ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWln
aHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7
CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb285KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0
dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7
CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxl
dmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVp
Z2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lk
dGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xMChUZXh0dXJlMkRBcnJheTxmbG9hdD4g
dGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVp
Z2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVy
T2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwg
JmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJu
IGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzExKFRleHR1cmUyREFycmF5PGZs
b2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWlu
dCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBu
dW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndp
ZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICBy
ZXR1cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xMihUZXh0dXJlMkRB
cnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAg
ICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAg
IHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUs
IDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAg
ICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9v
MTMoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOwor
ICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAg
ICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4
dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgsICZudW1iZXJPZkxldmVscyk7CisgICAg
ICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xNChUZXh0
dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAg
ICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICB1
aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAw
LCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAg
IHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xNShUZXh0dXJlM0Q8
ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1
aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICB1aW50IG51
bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lk
dGgsICZoZWlnaHQsICZkZXB0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVy
biBkZXB0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE2KFRleHR1cmUzRDxmbG9hdD4g
dGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVp
Z2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZM
ZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhl
aWdodCwgJmRlcHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJl
ck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTcoVGV4dHVyZUN1YmU8Zmxv
YXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50
IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBH
ZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxz
KTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZv
bzE4KFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRo
OworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2
ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWln
aHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAg
ICB9CisgICAgICAgIHVpbnQgZm9vMTkoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAg
ICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAg
ICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1
cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJl
dHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIwKFJXVGV4
dHVyZTFEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAg
ICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgpOworICAgICAgICAgICAgcmV0dXJu
IHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjEoUldUZXh0dXJlMURBcnJheTxm
bG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVp
bnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwg
JmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAg
ICB1aW50IGZvbzIyKFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAg
ICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAg
R2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZlbGVtZW50cyk7CisgICAgICAgICAgICBy
ZXR1cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yMyhSV1RleHR1cmUy
RDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAg
IHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgs
ICZoZWlnaHQpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAg
IHVpbnQgZm9vMjQoUldUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVp
bnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIEdldERpbWVu
c2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICAgICAgICAgIHJldHVybiBoZWln
aHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yNShSV1RleHR1cmUyREFycmF5PGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5z
aW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cyk7CisgICAgICAgICAgICBy
ZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yNihSV1RleHR1cmUyREFy
cmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAg
ICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAg
R2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cyk7CisgICAg
ICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjcoUldU
ZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsK
KyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAg
ICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVu
dHMpOworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAgICB9CisgICAgICAgIHVp
bnQgZm9vMjgoUldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQg
d2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7
CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmRl
cHRoKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50
IGZvbzI5KFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdp
ZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0
aCk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQg
Zm9vMzAoUldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lk
dGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7Cisg
ICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRo
KTsKKyAgICAgICAgICAgIHJldHVybiBkZXB0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZv
bzMxKFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdp
ZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9m
TGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZo
ZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb28zMihUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSkg
eworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAg
ICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnMo
dGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAg
ICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzMzKFRleHR1cmVE
ZXB0aDJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAg
ICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAg
ICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1i
ZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAg
IH0KKyAgICAgICAgdWludCBmb28zNChUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJl
KSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7Cisg
ICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVs
czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0
LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7
CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28zNShUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1i
ZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRo
LCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1
cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMzYoVGV4dHVyZURlcHRoMkRB
cnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAg
ICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAg
IHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUs
IDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAg
ICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMzcoVGV4
dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0
aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsK
KyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNp
b25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZl
bHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAg
ICAgIHVpbnQgZm9vMzgoVGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAg
ICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAg
dWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwg
MCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJu
IHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMzkoVGV4dHVyZURlcHRoQ3ViZTxm
bG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVp
bnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAg
IEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZl
bHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50
IGZvbzQwKFRleHR1cmVEZXB0aEN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVp
bnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVt
YmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0
aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJP
ZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzQxKFJXVGV4dHVyZURlcHRoMkQ8
ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1
aW50IGhlaWdodDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAm
aGVpZ2h0KTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1
aW50IGZvbzQyKFJXVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAg
IHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIEdldERp
bWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICAgICAgICAgIHJldHVybiBo
ZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb280MyhSV1RleHR1cmVEZXB0aDJEQXJy
YXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAg
ICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBH
ZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAg
ICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzQ0KFJXVGV4
dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0
aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsK
KyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxl
bWVudHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1
aW50IGZvbzQ1KFJXVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAg
ICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAg
dWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRo
LCAmaGVpZ2h0LCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAg
ICAgICB9CisgICAgYCk7CisgICAgbGV0IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0ZXh0
dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1cmUx
RCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3VGV4
dHVyZTNELCB0ZXh0dXJlRGVwdGgyRCwgdGV4dHVyZURlcHRoMkRBcnJheSwgdGV4dHVyZURlcHRo
Q3ViZSwgcndUZXh0dXJlRGVwdGgyRCwgcndUZXh0dXJlRGVwdGgyREFycmF5XSA9IGNyZWF0ZVRl
eHR1cmVzRm9yVGVzdGluZyhwcm9ncmFtKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRF0pLCA0KTsKKyAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRF0pLCAzKTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3Rl
eHR1cmUxREFycmF5XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXldKSwgMik7CisgICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMURBcnJheV0pLCAz
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282Iiwg
W3RleHR1cmUyRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb283IiwgW3RleHR1cmUyRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyRF0pLCAzKTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUyREFy
cmF5XSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEwIiwgW3RleHR1cmUyREFycmF5XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3RleHR1cmUyREFycmF5XSksIDIpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1
cmUyREFycmF5XSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEzIiwgW3RleHR1cmUzRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlM0RdKSwgNCk7CisgICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTNE
XSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE2IiwgW3RleHR1cmUzRF0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlQ3ViZV0pLCAyKTsKKyAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlQ3ViZV0pLCA0
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIs
IFt0ZXh0dXJlQ3ViZV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmUxRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmUxREFycmF5XSks
IDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIy
IiwgW3J3VGV4dHVyZTFEQXJyYXldKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbcndUZXh0dXJlMkRdKSwgOCk7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjQiLCBbcndUZXh0dXJlMkRd
KSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjUiLCBbcndUZXh0dXJlMkRBcnJheV0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNiIsIFtyd1RleHR1cmUyREFycmF5XSksIDQpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI3IiwgW3J3VGV4
dHVyZTJEQXJyYXldKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjgiLCBbcndUZXh0dXJlM0RdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjkiLCBbcndUZXh0dXJlM0RdKSwgNCk7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzAiLCBbcndU
ZXh0dXJlM0RdKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRoMkRdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzIiLCBbdGV4dHVyZURlcHRoMkRdKSwgNCk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzMiLCBb
dGV4dHVyZURlcHRoMkRdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMzQiLCBbdGV4dHVyZURlcHRoMkRBcnJheV0pLCA4KTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNSIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJEQXJyYXldKSwgMik7CisgICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzciLCBbdGV4dHVyZURlcHRoMkRB
cnJheV0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zOCIsIFt0ZXh0dXJlRGVwdGhDdWJlXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM5IiwgW3RleHR1cmVEZXB0aEN1YmVdKSwgNCk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDAiLCBb
dGV4dHVyZURlcHRoQ3ViZV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280MSIsIFtyd1RleHR1cmVEZXB0aDJEXSksIDgpOworICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3J3VGV4dHVyZURl
cHRoMkRdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNDMiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5XSksIDgpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3J3VGV4dHVyZURlcHRoMkRB
cnJheV0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280NSIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXldKSwgMik7Cit9CisKK3Rlc3RzLnRleHR1
cmVMb2FkID0gZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAg
ICBmbG9hdCBmb28xKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQg
bWlwbWFwKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGxvY2F0aW9u
LCBtaXBtYXApKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28yKFRleHR1cmUxRDxmbG9h
dD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQgbWlwbWFwLCBpbnQgb2Zmc2V0KSB7CisgICAg
ICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGxvY2F0aW9uLCBtaXBtYXApLCBvZmZz
ZXQpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzMoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+
IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50IG1pcG1hcCwgaW50IGxheWVyKSB7CisgICAgICAg
ICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKGxvY2F0aW9uLCBtaXBtYXAsIGxheWVyKSk7
CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNChUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4
dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQgbWlwbWFwLCBpbnQgbGF5ZXIsIGludCBvZmZzZXQpIHsK
KyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMobG9jYXRpb24sIG1pcG1hcCwg
bGF5ZXIpLCBvZmZzZXQpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzUoVGV4dHVyZTJE
PGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXApIHsKKyAgICAgICAgICAg
IHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgbWlwbWFwKSk7CisgICAgICAgIH0KKyAg
ICAgICAgZmxvYXQgZm9vNihUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwg
aW50IG1pcG1hcCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1
cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIG1pcG1hcCksIGludDIob2Zmc2V0WCwgb2Zmc2V0
WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzcoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+
IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCwgaW50IGxheWVyKSB7CisgICAgICAg
ICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgsIHksIG1pcG1hcCwgbGF5ZXIpKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb284KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJl
LCBpbnQgeCwgaW50IHksIGludCBtaXBtYXAsIGludCBsYXllciwgaW50IG9mZnNldFgsIGludCBv
ZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgsIHksIG1p
cG1hcCwgbGF5ZXIpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAg
ICBmbG9hdCBmb285KFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQg
eiwgaW50IG1pcG1hcCkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50NCh4
LCB5LCB6LCBtaXBtYXApKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xMChUZXh0dXJl
M0Q8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IHosIGludCBtaXBtYXAsIGludCBv
ZmZzZXRYLCBpbnQgb2Zmc2V0WSwgaW50IG9mZnNldFopIHsKKyAgICAgICAgICAgIHJldHVybiBM
b2FkKHRleHR1cmUsIGludDQoeCwgeSwgeiwgbWlwbWFwKSwgaW50MyhvZmZzZXRYLCBvZmZzZXRZ
LCBvZmZzZXRaKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTEoUldUZXh0dXJlMUQ8
ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQo
dGV4dHVyZSwgbG9jYXRpb24pOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzEyKFJXVGV4
dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50IGxheWVyKSB7Cisg
ICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGxvY2F0aW9uLCBsYXllcikpOwor
ICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzEzKFJXVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJl
LCBpbnQgeCwgaW50IHkpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIo
eCwgeSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE0KFJXVGV4dHVyZTJEQXJyYXk8
ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IGxheWVyKSB7CisgICAgICAgICAgICBy
ZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAg
ICAgZmxvYXQgZm9vMTUoUldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwg
aW50IHopIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgeikp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE2KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0
ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXApIHsKKyAgICAgICAgICAgIHJldHVybiBM
b2FkKHRleHR1cmUsIGludDMoeCwgeSwgbWlwbWFwKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxv
YXQgZm9vMTcoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50
IG1pcG1hcCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4g
TG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIG1pcG1hcCksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE4KFRleHR1cmVEZXB0aDJEQXJyYXk8Zmxv
YXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCwgaW50IGxheWVyKSB7CisgICAg
ICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgsIHksIG1pcG1hcCwgbGF5ZXIpKTsK
KyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xOShUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0
PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXAsIGludCBsYXllciwgaW50IG9mZnNl
dFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0
KHgsIHksIG1pcG1hcCwgbGF5ZXIpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAg
fQorICAgICAgICBmbG9hdCBmb28yMChSV1RleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBp
bnQgeCwgaW50IHkpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIoeCwg
eSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzIxKFJXVGV4dHVyZURlcHRoMkRBcnJh
eTxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbGF5ZXIpIHsKKyAgICAgICAgICAg
IHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgbGF5ZXIpKTsKKyAgICAgICAgfQorICAg
IGApOworICAgIGxldCBbdGV4dHVyZTFELCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0ZXh0
dXJlMkRBcnJheSwgdGV4dHVyZTNELCB0ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVy
ZTFEQXJyYXksIHJ3VGV4dHVyZTJELCByd1RleHR1cmUyREFycmF5LCByd1RleHR1cmUzRCwgdGV4
dHVyZURlcHRoMkQsIHRleHR1cmVEZXB0aDJEQXJyYXksIHRleHR1cmVEZXB0aEN1YmUsIHJ3VGV4
dHVyZURlcHRoMkQsIHJ3VGV4dHVyZURlcHRoMkRBcnJheV0gPSBjcmVhdGVUZXh0dXJlc0ZvclRl
c3RpbmcocHJvZ3JhbSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgMTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDcpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAt
MSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEzKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0
ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0
dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTYpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1
cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVy
ZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMjApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDIxKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJl
MURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIC0xKV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAx
Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQi
LCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMjEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1
cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAyMCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4
dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzgpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3Rl
eHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0x
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxOCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0
dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0x
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzNyk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM4KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDM0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0
ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHBy
b2dyYW0sIC0xKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0Myk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDUxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgNzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDc2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCA3OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgODAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAxMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAxMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzOCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDM5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzOCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgLTEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzOSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDM1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCA0NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTIpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDQ1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1Myk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDYwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA1Myk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgNjEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDc2KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA4MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgNzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDgxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA4MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDc2KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA4MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEp
XSksIDc3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVy
ZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzMyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4
dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCA0Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDY1
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIs
IFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNjYpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA2OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDcwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwg
W3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVy
ZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDQxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAi
LCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4
dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQxKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNE
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIC0xKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDQyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDQ5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0p
LCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQzKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBb
dGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUwKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVy
ZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAxMCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2Nik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCA2Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCA3MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCA3MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgNjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
NzEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDY2KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBb
cndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAyKV0p
LCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFE
LCBtYWtlSW50KHByb2dyYW0sIDQpXSksIDUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFt
LCA1KV0pLCA2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgNildKSwgNyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4
dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1Rl
eHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDUpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDgpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1
cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIs
IFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAxMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MyksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJh
eSwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4
dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
MTUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAyKV0pLCAxNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTgpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURB
cnJheSwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3
VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMild
KSwgMjEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHBy
b2dyYW0sIDIpXSksIDIyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA2KSwg
bWFrZUludChwcm9ncmFtLCAyKV0pLCAyMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJE
LCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1
cmUyRCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndU
ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwg
W3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MyksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9n
cmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1h
a2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTUpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4
dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE3KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBb
cndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwg
MTgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAy
KV0pLCAxOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dy
YW0sIDIpXSksIDIwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQo
cHJvZ3JhbSwgMildKSwgMjEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFr
ZUludChwcm9ncmFtLCAyKV0pLCAyMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDYp
LCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyNSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI2KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjcpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1
cmUyRCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyOCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3
VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMi
LCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMyld
KSwgMzApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFt
LCAzKV0pLCAzMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHBy
b2dyYW0sIDMpXSksIDMyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJl
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFty
d1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0
MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0
IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAx
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUi
LCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1Rl
eHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJl
M0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0MSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDQyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmVEZXB0aDJELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZURlcHRoMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmVEZXB0aDJELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzcpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlRGVwdGgyRCwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4
dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0
dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMzKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4
dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzcpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0
ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3Jh
bSwgLTEpXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAx
MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzMp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBb
dGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzgpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQzKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0NCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTEpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDUyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3NSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNzYpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDc5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA4MCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTgpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCAxOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAzNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAtMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDM5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMzUpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQ0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCA1Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDUpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDUzKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCA1Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
NjApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
OSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUzKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCA2MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgNzYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDgwKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgODEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDgwKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBb
dGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgNzYpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDgxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSld
KSwgNzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dy
YW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtl
SW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0
aDJELCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1Rl
eHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgy
RCwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4
dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
MTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTUpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtl
SW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVw
dGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxNyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3
VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMild
KSwgMTgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHBy
b2dyYW0sIDIpXSksIDE5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAzKSwg
bWFrZUludChwcm9ncmFtLCAyKV0pLCAyMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJv
Z3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBt
YWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIyKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJl
RGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMyk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwg
W3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwg
MildKSwgMjQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDMpXSksIDI1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjcpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJE
LCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI4KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0
dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAy
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIw
IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3Jh
bSwgMyldKSwgMzApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtl
SW50KHByb2dyYW0sIDMpXSksIDMxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFt
LCA3KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAzMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjEiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAx
MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIx
IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0MSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3
VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0Mik7Cit9CisKK3Rlc3RzLnRleHR1cmVTdG9y
ZSA9IGZ1bmN0aW9uKCkgeworICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKKyAgICAgICAgZmxv
YXQgZm9vMShSV1RleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSwgdWludCBsb2NhdGlvbiwgZmxvYXQg
dmFsdWUpIHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1cmUsIHZhbHVlLCBsb2NhdGlvbik7Cisg
ICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQobG9jYXRpb24pKTsKKyAgICAgICAg
fQorICAgICAgICBmbG9hdCBmb28yKFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHVp
bnQgbG9jYXRpb24sIHVpbnQgbGF5ZXIsIGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICBTdG9y
ZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDIobG9jYXRpb24sIGxheWVyKSk7CisgICAgICAgICAgICBy
ZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGludChsb2NhdGlvbiksIGludChsYXllcikpKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb28zKFJXVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCB1
aW50IHgsIHVpbnQgeSwgZmxvYXQgdmFsdWUpIHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1cmUs
IHZhbHVlLCB1aW50Mih4LCB5KSk7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBp
bnQyKGludCh4KSwgaW50KHkpKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNChSV1Rl
eHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCB1aW50IHgsIHVpbnQgeSwgdWludCBsYXllciwg
ZmxvYXQgdmFsdWUpIHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1cmUsIHZhbHVlLCB1aW50Myh4
LCB5LCBsYXllcikpOworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MyhpbnQo
eCksIGludCh5KSwgaW50KGxheWVyKSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzUo
UldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIHVpbnQgeCwgdWludCB5LCB1aW50IHosIGZsb2F0
IHZhbHVlKSB7CisgICAgICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDMoeCwgeSwg
eikpOworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MyhpbnQoeCksIGludCh5
KSwgaW50KHopKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNihSV1RleHR1cmVEZXB0
aDJEPGZsb2F0PiB0ZXh0dXJlLCB1aW50IHgsIHVpbnQgeSwgZmxvYXQgdmFsdWUpIHsKKyAgICAg
ICAgICAgIFN0b3JlKHRleHR1cmUsIHZhbHVlLCB1aW50Mih4LCB5KSk7CisgICAgICAgICAgICBy
ZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGludCh4KSwgaW50KHkpKSk7CisgICAgICAgIH0KKyAg
ICAgICAgZmxvYXQgZm9vNyhSV1RleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHVp
bnQgeCwgdWludCB5LCB1aW50IGxheWVyLCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3Rv
cmUodGV4dHVyZSwgdmFsdWUsIHVpbnQzKHgsIHksIGxheWVyKSk7CisgICAgICAgICAgICByZXR1
cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKGludCh4KSwgaW50KHkpLCBpbnQobGF5ZXIpKSk7CisgICAg
ICAgIH0KKyAgICBgKTsKKyAgICBsZXQgW3RleHR1cmUxRCwgdGV4dHVyZTFEQXJyYXksIHRleHR1
cmUyRCwgdGV4dHVyZTJEQXJyYXksIHRleHR1cmUzRCwgdGV4dHVyZUN1YmUsIHJ3VGV4dHVyZTFE
LCByd1RleHR1cmUxREFycmF5LCByd1RleHR1cmUyRCwgcndUZXh0dXJlMkRBcnJheSwgcndUZXh0
dXJlM0QsIHRleHR1cmVEZXB0aDJELCB0ZXh0dXJlRGVwdGgyREFycmF5LCB0ZXh0dXJlRGVwdGhD
dWJlLCByd1RleHR1cmVEZXB0aDJELCByd1RleHR1cmVEZXB0aDJEQXJyYXldID0gY3JlYXRlVGV4
dHVyZXNGb3JUZXN0aW5nKHByb2dyYW0pOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQs
IG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3
VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFt
LCA2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVp
bnQocHJvZ3JhbSwgNyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJl
MURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURB
cnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dy
YW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJh
eSwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0s
IDcpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIs
IFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDIp
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFty
d1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFr
ZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDUpLCBt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1Rl
eHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVp
bnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
VWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1
cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWlu
dChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUx
REFycmF5LCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJv
Z3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChw
cm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFy
cmF5LCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFty
d1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9n
cmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVp
bnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQs
IG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1h
a2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4
dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0s
IDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIs
IFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChw
cm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFr
ZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVp
bnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJl
MkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3
VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dy
YW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0s
IDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWlu
dChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChw
cm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwg
bWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0
dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwg
W3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHBy
b2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dy
YW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtl
VWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWlu
dChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUy
RCwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VV
aW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0
dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50
KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJl
RGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHBy
b2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVw
dGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgy
RCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0s
IDMpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIs
IFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwg
bWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDYp
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFty
d1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1Rl
eHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVp
bnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtl
VWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1
cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWlu
dChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVE
ZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChw
cm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0
aDJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282
IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9n
cmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJE
LCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwg
NyksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283Iiwg
W3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHBy
b2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
VWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzciLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb283IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbcndUZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3J3VGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtyd1RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
Cit9CisKK3Rlc3RzLnRleHR1cmVTYW1wbGUgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3Jh
bSA9IGRvUHJlcChgCisgICAgICAgIGZsb2F0IGZvbzEoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJl
LCBzYW1wbGVyIHMsIGZsb2F0IGxvY2F0aW9uKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxl
KHRleHR1cmUsIHMsIGxvY2F0aW9uKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28yKFRl
eHR1cmUxRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9m
ZnNldCkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBsb2NhdGlvbiwg
b2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28zKFRleHR1cmUxREFycmF5PGZs
b2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IGxheWVyKSB7CisgICAgICAg
ICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Mih4LCBsYXllcikpOworICAgICAg
ICB9CisgICAgICAgIGZsb2F0IGZvbzQoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNh
bXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgbGF5ZXIsIGludCBvZmZzZXQpIHsKKyAgICAgICAgICAg
IHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQyKHgsIGxheWVyKSwgb2Zmc2V0KTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb281KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2Ft
cGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRl
eHR1cmUsIHMsIGZsb2F0Mih4LCB5KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNihU
ZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgaW50
IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1
cmUsIHMsIGZsb2F0Mih4LCB5KSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0K
KyAgICAgICAgZmxvYXQgZm9vNyhUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxl
ciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJu
IFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmb284KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMs
IGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkp
IHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxh
eWVyKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQg
Zm9vOShUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQg
eSwgZmxvYXQgeikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9h
dDMoeCwgeSwgeikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzEwKFRleHR1cmUzRDxm
bG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBpbnQg
b2Zmc2V0WCwgaW50IG9mZnNldFksIGludCBvZmZzZXRaKSB7CisgICAgICAgICAgICByZXR1cm4g
U2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSwgaW50MyhvZmZzZXRYLCBvZmZzZXRZ
LCBvZmZzZXRaKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTEoVGV4dHVyZUN1YmU8
ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeikgewor
ICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeikpOwor
ICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzEyKFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwg
c2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBCaWFzKSB7CisgICAgICAgICAgICBy
ZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIEJpYXMpOworICAgICAg
ICB9CisgICAgICAgIGZsb2F0IGZvbzEzKFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxl
ciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBCaWFzLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNl
dFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0Mih4
LCB5KSwgQmlhcywgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAg
ZmxvYXQgZm9vMTQoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgs
IGZsb2F0IHksIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEp
IHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5
KSwgZmxvYXQyKGRkeDAsIGRkeDEpLCBmbG9hdDIoZGR5MCwgZGR5MSkpOworICAgICAgICB9Cisg
ICAgICAgIGZsb2F0IGZvbzE1KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBm
bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHkwLCBmbG9h
dCBkZHkxLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBT
YW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgZmxvYXQyKGRkeDAsIGRkeDEpLCBm
bG9hdDIoZGR5MCwgZGR5MSksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9Cisg
ICAgICAgIGZsb2F0IGZvbzE2KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBm
bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBMT0QpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVM
ZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIExPRCk7CisgICAgICAgIH0KKyAgICAgICAg
ZmxvYXQgZm9vMTcoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgs
IGZsb2F0IHksIGZsb2F0IExPRCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAg
ICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBMT0QsIGlu
dDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE4KFRl
eHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHks
IGZsb2F0IGxheWVyLCBmbG9hdCBCaWFzKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQmlh
cyh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBCaWFzKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmb28xOShUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBz
LCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgQmlhcywgaW50IG9mZnNldFgs
IGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBz
LCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBCaWFzLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb28yMChUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVy
ZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgZGR4MCwg
ZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSkgeworICAgICAgICAgICAgcmV0dXJu
IFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgZmxvYXQyKGRkeDAs
IGRkeDEpLCBmbG9hdDIoZGR5MCwgZGR5MSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZv
bzIxKFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZs
b2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHkwLCBm
bG9hdCBkZHkxLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVy
biBTYW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGZsb2F0MihkZHgw
LCBkZHgxKSwgZmxvYXQyKGRkeTAsIGRkeTEpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb28yMihUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVy
ZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgTE9EKSB7
CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQzKHgsIHks
IGxheWVyKSwgTE9EKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28yMyhUZXh0dXJlMkRB
cnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBs
YXllciwgZmxvYXQgTE9ELCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAg
IHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBMT0Qs
IGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGludCBmb28yNChU
ZXh0dXJlMUQ8aW50ND4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCBsb2NhdGlvbikgeworICAg
ICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBsb2NhdGlvbikueDsKKyAgICAgICAg
fQorICAgICAgICBpbnQgZm9vMjUoVGV4dHVyZTFEPGludDQ+IHRleHR1cmUsIHNhbXBsZXIgcywg
ZmxvYXQgbG9jYXRpb24pIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywg
bG9jYXRpb24pLnk7CisgICAgICAgIH0KKyAgICAgICAgaW50IGZvbzI2KFRleHR1cmUxRDxpbnQ0
PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IGxvY2F0aW9uKSB7CisgICAgICAgICAgICByZXR1
cm4gU2FtcGxlKHRleHR1cmUsIHMsIGxvY2F0aW9uKS56OworICAgICAgICB9CisgICAgICAgIGlu
dCBmb28yNyhUZXh0dXJlMUQ8aW50ND4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCBsb2NhdGlv
bikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBsb2NhdGlvbikudzsK
KyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28yOChUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4
dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5KSB7CisgICAgICAgICAgICByZXR1cm4g
U2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxv
YXQgZm9vMjkoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQg
eCwgZmxvYXQgeSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1
cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgaW50MihvZmZzZXRYLCBvZmZzZXRZ
KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMzAoVGV4dHVyZURlcHRoMkRBcnJheTxm
bG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllcikg
eworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5
ZXIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28zMShUZXh0dXJlRGVwdGgyREFycmF5
PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVy
LCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUo
dGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7
CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMzIoVGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4g
dGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KSB7CisgICAgICAg
ICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSk7CisgICAgICAg
IH0KKyAgICAgICAgZmxvYXQgZm9vMzMoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNh
bXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgQmlhcykgeworICAgICAgICAgICAgcmV0
dXJuIFNhbXBsZUJpYXModGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBCaWFzKTsKKyAgICAgICAg
fQorICAgICAgICBmbG9hdCBmb28zNChUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgc2Ft
cGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBCaWFzLCBpbnQgb2Zmc2V0WCwgaW50IG9m
ZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0
Mih4LCB5KSwgQmlhcywgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAg
ICAgZmxvYXQgZm9vMzUoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywg
ZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxv
YXQgZGR5MSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxv
YXQyKHgsIHkpLCBmbG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0MihkZHkwLCBkZHkxKSk7CisgICAg
ICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMzYoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUs
IHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxv
YXQgZGR5MCwgZmxvYXQgZGR5MSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAg
ICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGZsb2F0Mihk
ZHgwLCBkZHgxKSwgZmxvYXQyKGRkeTAsIGRkeTEpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsK
KyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28zNyhUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4
dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBMT0QpIHsKKyAgICAgICAg
ICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIExPRCk7Cisg
ICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMzgoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1
cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgTE9ELCBpbnQgb2Zmc2V0WCwg
aW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBz
LCBmbG9hdDIoeCwgeSksIExPRCwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0K
KyAgICAgICAgZmxvYXQgZm9vMzkoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwg
c2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgQmlhcykgewor
ICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxh
eWVyKSwgQmlhcyk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDAoVGV4dHVyZURlcHRo
MkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9h
dCBsYXllciwgZmxvYXQgQmlhcywgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAg
ICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBC
aWFzLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBm
b280MShUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0
IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBk
ZHkwLCBmbG9hdCBkZHkxKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJl
LCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBmbG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0MihkZHkw
LCBkZHkxKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDIoVGV4dHVyZURlcHRoMkRB
cnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBs
YXllciwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSwgaW50
IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0
ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBmbG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0
MihkZHkwLCBkZHkxKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAg
ICAgZmxvYXQgZm9vNDMoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxl
ciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgTE9EKSB7CisgICAgICAg
ICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwg
TE9EKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb280NChUZXh0dXJlRGVwdGgyREFycmF5
PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVy
LCBmbG9hdCBMT0QsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0
dXJuIFNhbXBsZUxldmVsKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIExPRCwgaW50
MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDUoVGV4
dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgY29tcGFyZVZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQ21wKHRleHR1
cmUsIHMsIGZsb2F0Mih4LCB5KSwgY29tcGFyZVZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdCBmb280NihUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9h
dCB4LCBmbG9hdCB5LCBmbG9hdCBjb21wYXJlVmFsdWUsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0
WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUNtcCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwg
eSksIGNvbXBhcmVWYWx1ZSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAg
ICAgICAgZmxvYXQgZm9vNDcoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2Ft
cGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgY29tcGFyZVZhbHVl
KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQ21wKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5
LCBsYXllciksIGNvbXBhcmVWYWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDgo
VGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBm
bG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgY29tcGFyZVZhbHVlLCBpbnQgb2Zmc2V0WCwgaW50
IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVDbXAodGV4dHVyZSwgcywgZmxv
YXQzKHgsIHksIGxheWVyKSwgY29tcGFyZVZhbHVlLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsK
KyAgICAgICAgfQorICAgIGApOworICAgIGxldCBbdGV4dHVyZTFELCB0ZXh0dXJlMURBcnJheSwg
dGV4dHVyZTJELCB0ZXh0dXJlMkRBcnJheSwgdGV4dHVyZTNELCB0ZXh0dXJlQ3ViZSwgcndUZXh0
dXJlMUQsIHJ3VGV4dHVyZTFEQXJyYXksIHJ3VGV4dHVyZTJELCByd1RleHR1cmUyREFycmF5LCBy
d1RleHR1cmUzRCwgdGV4dHVyZURlcHRoMkQsIHRleHR1cmVEZXB0aDJEQXJyYXksIHRleHR1cmVE
ZXB0aEN1YmUsIHJ3VGV4dHVyZURlcHRoMkQsIHJ3VGV4dHVyZURlcHRoMkRBcnJheV0gPSBjcmVh
dGVUZXh0dXJlc0ZvclRlc3RpbmcocHJvZ3JhbSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjM3NSldKSwgNyk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjQzNzUpXSksIDcpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3Rl
eHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge30pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
NjI1KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7fSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjYyNSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuMzc1KV0pLCA3KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0
ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjQzNzUpXSksICgzICogNyArIDEgKiAxNCkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJl
MUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpXSksICg3ICsgMTQpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41NjI1
KV0pLCAoMSAqIDcgKyAzICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC42MjUpXSksIDE0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIs
IFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBy
QWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjM3NSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC40Mzc1KV0pLCAoMyAqIDcgKyAxICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xh
bXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoNyArIDE0KSAv
IDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
IiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIs
IHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNTYyNSldKSwgKDEgKiA3ICsgMyAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3Jk
ZXJDb2xvciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNjI1KV0pLCAxNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAi
cmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuMzc1KV0pLCA3KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6
ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC40Mzc1KV0pLCAoMyAqIDcgKyAx
ICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAr
IDAuNSldKSwgKDcgKyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxICsgMC41NjI1KV0pLCAoMSAqIDcgKyAzICogMTQpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAi
cmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuNjI1KV0pLCAxNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2Rl
OiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuMzc1KV0pLCA3KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJl
MUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01v
ZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC40Mzc1KV0pLCAoMyAqIDcg
KyAxICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MiArIDAuNSldKSwgKDcgKyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAyICsgMC41NjI1KV0pLCAoMSAqIDcgKyAzICogMTQpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2Rl
OiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuNjI1KV0pLCAxNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVy
ZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NN
b2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuNjI1KV0pLCA3
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIs
IFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBy
QWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC41
NjI1KV0pLCAoMyAqIDcgKyAxICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuNSldKSwgKDcgKyAxNCkgLyAyKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6
ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC40Mzc1KV0pLCAoMSAq
IDcgKyAzICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSArIDAuMzc1KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuMzc1KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBl
YXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC40Mzc1KV0pLCAoMyAqIDcgKyAxICogMTQp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
IiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAr
IDAuNSldKSwgKDcgKyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAyICsgMC41NjI1KV0pLCAoMSAqIDcgKyAzICogMTQpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVy
ZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NN
b2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuNjI1KV0pLCAx
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEi
LCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgLTAuMzc1KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxLjM3
NSldKSwgNzkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIC0wLjM3NSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMS4zNzUpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJD
b2xvciIsIGJvcmRlckNvbG9yOiAib3BhcXVlQmxhY2sifSksIG1ha2VGbG9hdChwcm9ncmFtLCAt
MC4zNzUpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciIsIGJvcmRlckNvbG9y
OiAib3BhcXVlQmxhY2sifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxLjM3NSldKSwgMCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVy
ZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NN
b2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIiwgYm9yZGVyQ29sb3I6ICJvcGFxdWVXaGl0ZSJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIC0wLjM3NSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRl
ckNvbG9yIiwgYm9yZGVyQ29sb3I6ICJvcGFxdWVXaGl0ZSJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEuMzc1KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IiLCBib3JkZXJDb2xv
cjogIm9wYXF1ZVdoaXRlIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDc5ICsgMSkgLyAy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIs
IFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBs
b2RNaW5DbGFtcDogMX0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTMgKyAxNikgLyAy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIs
IFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgxNCArIDc5
KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
XSksICg3ICsgMTQpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSldKSwgKDE3ICsgMTgpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDE0ICsgNzkp
IC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDE4ICsgMTkpIC8gMik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281Iiwg
W3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAo
MTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDYgLyA4KV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUy
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAy
MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiAr
IDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksICg2MiArIDYzICsgNzAgKyA3MSkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0Qs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSldKSwgKDEyICsgMTMgKyAyMCArIDIxICsgNDQgKyA0NSArIDUyICsgNTMpIC8gOCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4
dHVyZTNELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KV0pLCAoMTMgKyAxNCArIDIxICsgMjIgKyA0NSArIDQ2ICsgNTMgKyA1
NCkgLyA4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMjAgKyAyMSArIDI4ICsgMjkgKyA1MiArIDUz
ICsgNjAgKyA2MSkgLyA4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDUgLyA4KV0pLCAoMTIgKyAxMyArIDIwICsgMjEg
KyAoNDQgKyA0NSArIDUyICsgNTMpICogMykgLyAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAoMTMgKyAxNCArIDIxICsgMjIgKyA0NSArIDQ2ICsgNTMgKyA1NCkgLyA4KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksICgyMCArIDIxICsgMjggKyAyOSArIDUyICsgNTMgKyA2MCArIDYxKSAv
IDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MCIsIFt0ZXh0dXJlM0QsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuMjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICg0NCArIDQ1ICsgNTIgKyA1MykgLyA0KTsK
KyAgICAvLyBVbmZvcnR1bmF0ZWx5LCB3ZSBjYW4ndCBhY3R1YWxseSB0ZXN0IHRoZSAiQmlhcyIg
YXJndW1lbnQsIGJlY2F1c2UgaXQgaXMgc3VwcG9zZWQgdG8gYmUgYXBwbGllZAorICAgIC8vIHRv
IHRoZSB1bmNsYW1wZWQgTE9ELCB3aGljaCBmb3IgdXMgaXMgLUluZmluaXR5IChiZWNhdXNlIG91
ciBkZXJpdmF0aXZlcyBhcmUgYWxsIDApCisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCAr
IDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwg
W3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3RleHR1cmUyRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQg
KyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVyZTJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmUyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAv
IHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJE
LmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3Rl
eHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAy
IC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMzQgKyAzNSArIDM4ICsg
MzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE0IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQu
ZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4
dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFw
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0
ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgoKDEyICsgMTMgKyAyMCArIDIx
KSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTJELCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
MTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIy
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
NSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIs
IFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9h
ZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndp
ZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
KCgxMyArIDE0ICsgMjEgKyAyMikgLyA0KSArICgoMzUgKyAzNiArIDM5ICsgNDApIC8gNCkpIC8g
Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2
IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlMkQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMiAr
IDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWlu
RmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkg
LyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmUyRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM0ICsgMzUgKyAzOCAr
IDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCAr
IDM5KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMzUgKyAzNiAr
IDM5ICsgNDApIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE3IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmUyRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoKCgxMyArIDE0ICsgMjEgKyAyMikgLyA0KSArICgoMzUgKyAzNiAr
IDM5ICsgNDApIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxMCAvIDE2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMjAgKyAyMSArIDI4
ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE4IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSks
ICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNjIgKyA2MyArIDcwICsgNzEpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTki
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICg2MiArIDYzICsgNzAgKyA3MSkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgxMiArIDEzICsgMjAgKyAy
MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjAiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1
cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIu
bG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMTIgKyAxMyArIDIwICsgMjEp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUo
KS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRW
YWx1ZSgpLmhlaWdodCldKSwgKCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUg
KyAzOCArIDM5KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFs
dWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdo
dCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICg3NiArIDc3ICsg
ODAgKyA4MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0
aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQp
XSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRl
eHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUp
IC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoKCg1NCArIDU1ICsgNjIg
KyA2MykgLyA0KSArICgoNzYgKyA3NyArIDgwICsgODEpIC8gNCkpIC8gMik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSAr
IDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMzUgKyAzNiArIDM5ICsgNDApIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIx
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAu
MjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93
KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIx
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGlu
ZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53
aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1
ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
KCgoMTMgKyAxNCArIDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAv
IDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSAr
IDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAx
IC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1
cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2Fk
VmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhl
aWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDc3ICsg
NzggKyA4MSArIDgyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhl
aWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsg
NTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQ
dHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJl
MkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksICgoKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpICsgKCg3NyArIDc4ICsg
ODEgKyA4MikgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3RleHR1cmUy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEyICsgMTMgKyAyMCArIDIx
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCAr
IDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMiIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNzYgKyA3NyArIDgwICsgODEpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDU0ICsgNTUgKyA2
MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZp
bHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgoKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpICsg
KCg3NiArIDc3ICsgODAgKyA4MSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQp
ICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAoMzUgKyAzNiArIDM5ICsgNDApIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDEzICsgMTQgKyAyMSArIDIyKSAv
IDQpICsgKCgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAoNzYgKyA3NyArIDgwICsgODEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDU0ICsgNTUgKyA2MiArIDYz
KSAvIDQpICsgKCg3NiArIDc3ICsgODAgKyA4MSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoNzcgKyA3OCArIDgxICsgODIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDU1ICsgNTYgKyA2MyAr
IDY0KSAvIDQpICsgKCg3NyArIDc4ICsgODEgKyA4MikgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZTJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbG9kTWluQ2xhbXA6IDEs
IGxvZE1heENsYW1wOiAxfSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIpXSksICgzNCArIDM1ICsgMzggKyAzOSkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTYiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
IiwgbG9kTWluQ2xhbXA6IDEsIGxvZE1heENsYW1wOiAxfSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgz
NCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0
dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQi
LCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwg
bWlwbWFwRmlsdGVyOiAibGluZWFyIiwgbWF4QW5pc290cm9weTogMn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA0
IC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sICg0LzMpIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8g
NCk7CisgICAgbGV0IHRleHR1cmUxREludDQgPSBtYWtlMURUZXh0dXJlKHByb2dyYW0sIFtbWzEs
IDIsIDMsIDRdLCBbMTAwLCAyMDAsIDMwMCwgNDAwXSwgWzEwMSwgMjAyLCAzMDEsIDQwMV0sIFsx
MywgMTQsIDE1LCAxNl1dLCBbWzE3LCAxOCwgMTksIDIwXSwgWzIxLCAyMiwgMjMsIDI0XV0sIFtb
MjUsIDI2LCAyNywgMjhdXV0sICJpbnQ0Iik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yNCIsIFt0ZXh0dXJlMURJbnQ0LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAx
MDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjUi
LCBbdGV4dHVyZTFESW50NCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgMjAxKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI2IiwgW3RleHR1cmUxREludDQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpXSksIDMwMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yNyIsIFt0ZXh0dXJlMURJbnQ0LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCA0MDApOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOCIsIFt0ZXh0dXJl
RGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMiArIDEz
ICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOCIsIFt0ZXh0dXJlRGVw
dGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCldKSwgKDIwICsgMjEg
KyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yOSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMjkiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMwIiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzAiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSld
KSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsg
MjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBbdGV4dHVyZURl
cHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoNjIgKyA2MyArIDcwICsg
NzEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzI4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEwIC8gMTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTMgKyAxNCArIDIxICsgMjIp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzI4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYg
LyA4KV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI5IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOSIsIFt0ZXh0dXJlRGVwdGgy
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzAiLCBbdGV4
dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMCIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zMSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
ICg2MiArIDYzICsgNzAgKyA3MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMzMiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEz
ICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMzMiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIx
ICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMzIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDYgLyA4KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgyMCArIDIxICsgMjggKyAyOSkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MzQiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzQiLCBbdGV4dHVyZURlcHRoMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsg
MjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzUiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEz
ICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMzUiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2Fk
VmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhl
aWdodCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRl
eHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQ
dHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM1IiwgW3RleHR1
cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgp
LndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRW
YWx1ZSgpLmhlaWdodCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNSIsIFt0ZXh0dXJlRGVwdGgy
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5l
UHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0
KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
MTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIx
ICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsg
MjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFs
dWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdo
dCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYg
KyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21p
bkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0
dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzYiLCBbdGV4dHVy
ZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBt
YXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0
dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAv
IHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsgMjIpIC8gNCkgKyAoKDM1
ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsg
MTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDM0ICsgMzUgKyAzOCAr
IDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM3
IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGlu
ZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgoKDEy
ICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzgiLCBb
dGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNCArIDM1ICsgMzggKyAz
OSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMzgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOCIsIFt0ZXh0dXJlRGVwdGgy
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAz
NSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4Iiwg
W3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAoMzUgKyAzNiArIDM5ICsgNDApIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEg
KyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMzgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCAr
IDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOSIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAg
KyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOSIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1NCArIDU1
ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOSIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDYyICsgNjMgKyA3MCArIDcxKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
MCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAy
MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNDAiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4
ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQwIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYg
KyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280MCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICg2MiAr
IDYzICsgNzAgKyA3MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNDEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRy
LmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkuaGVpZ2h0KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgp
LndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0p
LCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFs
dWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS5oZWlnaHQpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBbdGV4dHVyZURl
cHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1p
cG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWln
aHQpXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkg
LyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNDEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1
ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0
KV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoNzYgKyA3
NyArIDgwICsgODEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0
aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUo
KS5oZWlnaHQpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBv
dygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1h
dGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgo
KDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpICsgKCg3NiArIDc3ICsgODAgKyA4MSkgLyA0KSkgLyAy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIi
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTIgKyAx
MyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0
aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIy
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0
ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5l
UHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQ
dHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0
aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMyArIDE0ICsg
MjEgKyAyMikgLyA0KSArICgoMzUgKyAzNiArIDM5ICsgNDApIC8gNCkpIC8gMik7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYz
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1
NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4
dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQ
dHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFs
dWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICg3NyArIDc4ICsgODEgKyA4MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1
ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAu
NSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3co
MiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoNTUgKyA1NiArIDYzICsgNjQpIC8g
NCkgKyAoKDc3ICsgNzggKyA4MSArIDgyKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDMiLCBb
dGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoMzQgKyAz
NSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0p
LCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkp
IC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzQzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280MyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpXSksICg3NiArIDc3ICsgODAgKyA4MSkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDMiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICg1NCArIDU1ICsgNjIgKyA2
MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNDMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZp
bHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgoKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpICsg
KCg3NiArIDc3ICsgODAgKyA4MSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlw
bWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTIg
KyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAvIDIpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQi
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMzUgKyAzNiArIDM5ICsgNDAp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIx
ICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoKCgxMyArIDE0ICsgMjEgKyAyMikgLyA0KSArICgoMzUgKyAzNiAr
IDM5ICsgNDApIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
KDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksICg3NiArIDc3ICsgODAgKyA4MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDU0ICsgNTUgKyA2MiAr
IDYzKSAvIDQpICsgKCg3NiArIDc3ICsgODAgKyA4MSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDc3ICsgNzggKyA4MSArIDgyKSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKCgoNTUgKyA1NiArIDYzICsgNjQpIC8gNCkgKyAoKDc3ICsgNzggKyA4MSArIDgyKSAv
IDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIp
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDExKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAi
ZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5ldmVyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxNyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sx
N11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJu
ZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3Jh
bSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0
aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUo
cHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFy
ZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDApOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRl
eHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
Y29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkRE
ZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAwKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBb
bWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyld
KSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJlcXVhbCJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMjMpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9h
dCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sx
N11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJs
ZXNzRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHBy
b2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVG
dW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0
aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDApOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFtt
YWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcp
XSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMjMpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJm
bG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibm90RXF1YWwi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDExKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtb
WzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjog
Im5vdEVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShw
cm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJl
RnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0
aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwg
MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1
IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAi
ZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXJF
cXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3Jh
bSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0
aW9uOiAiYWx3YXlzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVy
ZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21w
YXJlRnVuY3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVw
dGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge2NvbXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFtt
YWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5ldmVyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxMSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0s
ICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3Jh
bSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVu
Y3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1
cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3MifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAxKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFr
ZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNzIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
NyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJm
bG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBb
W1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlv
bjogImVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFy
cmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
Y29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJE
RGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMp
XSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxv
YXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFt
LCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5j
dGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDEpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRl
eHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSks
IDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQi
KSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDExKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tb
WzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246
ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFy
cmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtl
MkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5vdEVxdWFsIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0s
ICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibm90RXF1
YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJv
Z3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJl
RnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0
aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MTEpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAi
ZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXJF
cXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShw
cm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBh
cmVGdW5jdGlvbjogImdyZWF0ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtl
MkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAi
ZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMTcpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFt
LCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5j
dGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOwogfQogCiBva1RvVGVzdCA9
IHRydWU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJl
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kMDc2OTRmYWMyNjdhNzc4MzY1Yjk0YTY4YzAyMTM3MDI1NGNhNTBmCi0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZS5qcwpAQCAtMCwwICsx
LDU0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisidXNl
IHN0cmljdCI7CisKK2NsYXNzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGRpbWVuc2lvbiwg
d2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwg
ZGF0YSkKKyAgICB7CisgICAgICAgIHRoaXMuX2RpbWVuc2lvbiA9IGRpbWVuc2lvbjsKKyAgICAg
ICAgdGhpcy5fd2lkdGggPSB3aWR0aDsKKyAgICAgICAgdGhpcy5faGVpZ2h0ID0gaGVpZ2h0Owor
ICAgICAgICB0aGlzLl9kZXB0aCA9IGRlcHRoOworICAgICAgICB0aGlzLl9sZXZlbENvdW50ID0g
bGV2ZWxDb3VudDsKKyAgICAgICAgdGhpcy5fbGF5ZXJDb3VudCA9IGxheWVyQ291bnQ7CisgICAg
ICAgIHRoaXMuX2lubmVyVHlwZSA9IGlubmVyVHlwZTsKKyAgICAgICAgdGhpcy5fZGF0YSA9IGRh
dGE7CisgICAgfQorCisgICAgZ2V0IGRpbWVuc2lvbigpIHsgcmV0dXJuIHRoaXMuX2RpbWVuc2lv
bjsgfQorICAgIGdldCB3aWR0aCgpIHsgcmV0dXJuIHRoaXMuX3dpZHRoOyB9CisgICAgZ2V0IGhl
aWdodCgpIHsgcmV0dXJuIHRoaXMuX2hlaWdodDsgfQorICAgIGdldCBkZXB0aCgpIHsgcmV0dXJu
IHRoaXMuX2RlcHRoOyB9CisgICAgZ2V0IGxldmVsQ291bnQoKSB7IHJldHVybiB0aGlzLl9sZXZl
bENvdW50OyB9CisgICAgZ2V0IGxheWVyQ291bnQoKSB7IHJldHVybiB0aGlzLl9sYXllckNvdW50
OyB9CisgICAgZ2V0IGlubmVyVHlwZSgpIHsgcmV0dXJuIHRoaXMuX2lubmVyVHlwZTsgfQorICAg
IGdldCBkYXRhKCkgeyByZXR1cm4gdGhpcy5fZGF0YTsgfQorCisgICAgZWxlbWVudENoZWNrZWQo
bGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgaWYgKGxheWVyIDwgMCB8fCBs
YXllciA+PSB0aGlzLmxheWVyQ291bnQKKyAgICAgICAgICAgIHx8IGxldmVsIDwgMCB8fCBsZXZl
bCA+PSB0aGlzLmxldmVsQ291bnQKKyAgICAgICAgICAgIHx8IGsgPCAwIHx8IGsgPj0gdGhpcy5k
ZXB0aAorICAgICAgICAgICAgfHwgaiA8IDAgfHwgaiA+PSB0aGlzLmhlaWdodAorICAgICAgICAg
ICAgfHwgaSA8IDAgfHwgaSA+PSB0aGlzLndpZHRoKQorICAgICAgICAgICAgcmV0dXJuIHVuZGVm
aW5lZDsKKyAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkp
OworICAgIH0KKworICAgIHNldEVsZW1lbnRDaGVja2VkKGxheWVyLCBsZXZlbCwgaywgaiwgaSwg
dmFsdWUpCisgICAgeworICAgICAgICBpZiAobGF5ZXIgPCAwIHx8IGxheWVyID49IHRoaXMubGF5
ZXJDb3VudAorICAgICAgICAgICAgfHwgbGV2ZWwgPCAwIHx8IGxldmVsID49IHRoaXMubGV2ZWxD
b3VudAorICAgICAgICAgICAgfHwgayA8IDAgfHwgayA+PSB0aGlzLmRlcHRoCisgICAgICAgICAg
ICB8fCBqIDwgMCB8fCBqID49IHRoaXMuaGVpZ2h0CisgICAgICAgICAgICB8fCBpIDwgMCB8fCBp
ID49IHRoaXMud2lkdGgpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHRoaXMu
c2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKTsKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlMUQgZXh0ZW5kcyBUZXh0dXJlIHsKKyAg
ICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIg
aXMgYW4gYXJyYXkgb2YgbWlwbWFwcy4KKyAgICAgICAgLy8gVGhlIGZpcnN0IG1pcG1hcCBpcyBh
biBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBhIHNj
YWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRoIG11
c3QgYmUgYSBwb3dlci1vZi10d28uCisgICAgICAgIC8vIEVhY2ggbWlwbWFwIGlzIGhhbGYtc2l6
ZSBvZiB0aGUgcHJldmlvdXMgc2l6ZS4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMTsKKyAg
ICAgICAgbGV0IHdpZHRoID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSAx
OworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGEu
bGVuZ3RoOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IDE7CisgICAgICAgIHN1cGVyKGRpbWVu
c2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVy
VHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdo
dEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBk
ZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAg
ICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLmRhdGFbbGV2ZWxdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVs
LCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsZXZlbF1baV0gPSB2
YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUxREFycmF5IGV4dGVuZHMgVGV4dHVyZSB7
CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRh
dGEiIGlzIGFuIGFycmF5IG9mIDFEIHRleHR1cmVzLgorICAgICAgICAvLyBBbGwgdGV4dHVyZXMg
bXVzdCBoYXZlIHRoZSBzYW1lIHdpZHRoIGFuZCBudW1iZXIgb2YgbWlwbWFwcy4KKworICAgICAg
ICBsZXQgZGltZW5zaW9uID0gMTsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXS5sZW5n
dGg7CisgICAgICAgIGxldCBoZWlnaHQgPSAxOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAg
ICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgbGF5ZXJD
b3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWln
aHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAg
IH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
LmRhdGFbMF1bbGV2ZWxdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVs
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxl
dmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXll
ciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xheWVy
XVtsZXZlbF1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGos
IGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1baV0gPSB2
YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUyRCBleHRlbmRzIFRleHR1cmUgeworICAg
IGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBp
cyBhbiBhcnJheSBvZiBtaXBtYXBzLgorICAgICAgICAvLyBUaGUgZmlyc3QgbWlwbWFwIGlzIGEg
cmVjdGFuZ3VsYXIgYXJyYXkgb2Ygcm93cywgd2hlcmUgZWFjaCByb3cgaXMgYW4gYXJyYXkgb2Yg
ZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2FsYXIgb3IgYW4g
YXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IG11
c3QgYmUgcG93ZXJzLW9mLXR3by4KKyAgICAgICAgLy8gRWFjaCBtaXBtYXAgaXMgaGFsZi13aWR0
aCBhbmQgaGFsZi1oZWlnaHQgb2YgdGhlIHByZXZpb3VzIHNpemUuCisKKyAgICAgICAgbGV0IGRp
bWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAg
ICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0aCA9IDE7
CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBsYXll
ckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0
aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAg
ICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xl
dmVsXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdLmxlbmd0aDsKKyAgICB9CisKKyAgICBk
ZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAg
ICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLmRhdGFbbGV2ZWxdW2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxl
dmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsZXZlbF1bal1b
aV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2xldCBUZXh0dXJlRGVwdGgyRCA9IFRleHR1cmUyRDsK
KworY2xhc3MgVGV4dHVyZTJEQXJyYXkgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rv
cihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkg
b2YgMkQgdGV4dHVyZXMuCisgICAgICAgIC8vIEFsbCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNh
bWUgd2lkdGgsIGhlaWdodCBhbmQgbnVtYmVyIG9mIG1pcG1hcHMuCisKKyAgICAgICAgbGV0IGRp
bWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF1bMF0ubGVuZ3RoOwor
ICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0
aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAg
IGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwg
d2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwg
ZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF1bMF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdo
dEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdW2xldmVs
XS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkp
CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1bal1baV07Cisg
ICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAg
IHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1bal1baV0gPSB2YWx1ZTsKKyAgICB9
Cit9CisKK2xldCBUZXh0dXJlRGVwdGgyREFycmF5ID0gVGV4dHVyZTJEQXJyYXk7CisKK2NsYXNz
IFRleHR1cmUzRCBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwg
ZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiBtaXBtYXBzLgor
ICAgICAgICAvLyBUaGUgZmlyc3QgbWlwbWFwIGlzIGFuIGFycmF5IG9mIGRlcHRoIHNsaWNlcywg
ZWFjaCBkZXB0aCBzbGljZSBpcyBhbiBhcnJheSBvZiByb3dzLCBhbmQgZWFjaCByb3cgaXMgYW4g
YXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2Fs
YXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCwgaGVp
Z2h0LCBhbmQgZGVwdGggbXVzdCBiZSBwb3dlcnMtb2YtdHdvLgorICAgICAgICAvLyBFYWNoIG1p
cG1hcCBpcyBoYWxmLXdpZHRoLCBoYWxmLWhlaWdodCwgYW5kIGhhbGYtZGVwdGggb2YgdGhlIHBy
ZXZpb3VzIHNpemUuCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDM7CisgICAgICAgIGxldCB3
aWR0aCA9IGRhdGFbMF1bMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVsw
XVswXS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0aCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAg
ICBsZXQgbGV2ZWxDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9
IDE7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVs
Q291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhB
dExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1bMF1b
MF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgZGVw
dGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF0u
bGVuZ3RoOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1ba11bal1baV07CisgICAgfQorCisg
ICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAg
ICAgdGhpcy5kYXRhW2xldmVsXVtrXVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3Mg
VGV4dHVyZUN1YmUgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUs
IGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgNiAyRCB0ZXh0
dXJlcy4KKyAgICAgICAgLy8gQWxsIHRleHR1cmVzIG11c3QgaGF2ZSB0aGUgc2FtZSB3aWR0aCwg
aGVpZ2h0LCBkZXB0aCwgYW5kIG51bWJlciBvZiBtaXBtYXBzLgorCisgICAgICAgIGxldCBkaW1l
bnNpb24gPSAyOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdWzBdLmxlbmd0aDsKKyAg
ICAgICAgbGV0IGhlaWdodCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGgg
PSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBs
ZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdp
ZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRh
dGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB0aGlzLmRhdGFbMF1bbGV2ZWxdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRB
dExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF0u
bGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAg
IHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2pdW2ldOworICAg
IH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7
CisgICAgICAgIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2pdW2ldID0gdmFsdWU7CisgICAgfQor
fQorCitsZXQgVGV4dHVyZURlcHRoQ3ViZSA9IFRleHR1cmVDdWJlOworCitjbGFzcyBUZXh0dXJl
MURSVyBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkK
KyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAg
ICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2Nh
bGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRoIG11c3QgYmUgYSBwb3dlci1vZi10d28uCisKKyAg
ICAgICAgbGV0IGRpbWVuc2lvbiA9IDE7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGEubGVuZ3Ro
OworICAgICAgICBsZXQgaGVpZ2h0ID0gMTsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAg
ICAgbGV0IGxldmVsQ291bnQgPSAxOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IDE7CisgICAg
ICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxh
eWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxl
dmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5sZW5ndGg7CisgICAgfQorCisg
ICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0K
KworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAg
IH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuZGF0YVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZl
bCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbaV0gPSB2YWx1ZTsK
KyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUxREFycmF5UlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAg
ICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIg
aXMgYW4gYXJyYXkgb2YgMUQgUlcgdGV4dHVyZXMuCisgICAgICAgIC8vIEFsbCB0ZXh0dXJlcyBt
dXN0IGhhdmUgdGhlIHNhbWUgc2l6ZS4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMTsKKyAg
ICAgICAgbGV0IHdpZHRoID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSAx
OworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7Cisg
ICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIHN1cGVyKGRpbWVu
c2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVy
VHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRM
ZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGRlcHRo
QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVs
ZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
ZGF0YVtsYXllcl1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGss
IGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtpXSA9IHZhbHVl
OworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTJEUlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBj
b25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMg
YSByZWN0YW5ndWxhciBhcnJheSBvZiByb3dzLCB3aGVyZSBlYWNoIHJvdyBpcyBhbiBhcnJheSBv
ZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBhIHNjYWxhciBvciBh
biBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRoIGFuZCBoZWlnaHQg
bXVzdCBiZSBwb3dlcnMtb2YtdHdvLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAyOworICAg
ICAgICBsZXQgd2lkdGggPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRh
dGEubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3Vu
dCA9IDE7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5z
aW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJU
eXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpcy5kYXRhWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExl
dmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5sZW5ndGg7CisgICAg
fQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7Cisg
ICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5kYXRhW2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIs
IGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtqXVtpXSA9
IHZhbHVlOworICAgIH0KK30KKworbGV0IFRleHR1cmVEZXB0aDJEUlcgPSBUZXh0dXJlMkRSVzsK
KworY2xhc3MgVGV4dHVyZTJEQXJyYXlSVyBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVj
dG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJh
eSBvZiAyRCBSVyB0ZXh0dXJlcy4KKyAgICAgICAgLy8gQWxsIHRleHR1cmVzIG11c3QgaGF2ZSB0
aGUgc2FtZSB3aWR0aCBhbmQgaGVpZ2h0LgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAyOwor
ICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdo
dCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQg
bGV2ZWxDb3VudCA9IDE7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7Cisg
ICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQs
IGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVs
KGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVswXS5sZW5ndGg7Cisg
ICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLmRhdGFbMF0ubGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAg
ICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVs
LCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsYXllcl1bal1baV07
CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQor
ICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30K
KworbGV0IFRleHR1cmVEZXB0aDJEQXJyYXlSVyA9IFRleHR1cmUyREFycmF5UlcKKworY2xhc3Mg
VGV4dHVyZTNEUlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUs
IGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgZGVwdGggc2xp
Y2VzLCBlYWNoIGRlcHRoIHNsaWNlIGlzIGFuIGFycmF5IG9mIHJvd3MsIGFuZCBlYWNoIHJvdyBp
cyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBh
IHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRo
LCBoZWlnaHQsIGFuZCBkZXB0aCBtdXN0IGJlIHBvd2Vycy1vZi10d28uCisKKyAgICAgICAgbGV0
IGRpbWVuc2lvbiA9IDM7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF0ubGVuZ3RoOwor
ICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0aCA9
IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7CisgICAgICAgIGxldCBs
YXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBk
ZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisK
KyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRh
WzBdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhB
dExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5sZW5ndGg7Cisg
ICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5kYXRhW2tdW2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5
ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtrXVtq
XVtpXSA9IHZhbHVlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1RleHR1cmVPcGVyYXRpb25zLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzc0Nzk5OTI3ODA1ZGMwNzg3
OTQyZGQzNDE5YzcwMTc5MDZhMjYzYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1RleHR1cmVPcGVyYXRpb25zLmpzCkBAIC0wLDAgKzEsNjEzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyJ1c2Ugc3RyaWN0IjsK
KworZnVuY3Rpb24gZGVwdGhDb21wYXJlT3BlcmF0aW9uKGRyZWYsIGQsIGNvbXBhcmVGdW5jdGlv
bikKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuMy40CisgICAgc3dpdGNoIChj
b21wYXJlRnVuY3Rpb24pIHsKKyAgICAgICAgY2FzZSAibmV2ZXIiOgorICAgICAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIGNhc2UgImxlc3MiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYgPCBk
ID8gMSA6IDA7CisgICAgICAgIGNhc2UgImVxdWFsIjoKKyAgICAgICAgICAgIHJldHVybiBkcmVm
ID09IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAibGVzc0VxdWFsIjoKKyAgICAgICAgICAgIHJl
dHVybiBkcmVmIDw9IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAiZ3JlYXRlciI6CisgICAgICAg
ICAgICByZXR1cm4gZHJlZiA+IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAibm90RXF1YWwiOgor
ICAgICAgICAgICAgcmV0dXJuIGRyZWYgIT0gZCA/IDEgOiAwOworICAgICAgICBjYXNlICJncmVh
dGVyRXF1YWwiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYgPj0gZCA/IDEgOiAwOworICAgICAg
ICBjYXNlICJhbHdheXMiOgorICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZGVwdGggY29tcGFyaXNvbiBm
dW5jdGlvbiIpOworICAgIH0KK30KKworZnVuY3Rpb24gY29udmVyc2lvblRvUkdCQSh2YWx1ZSkK
K3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuMy41CisgICAgaWYgKHZhbHVlIGlu
c3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IFtdOworICAgICAgICBmb3Ig
KGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgcmVzdWx0LnB1
c2godmFsdWVbaV0pOworICAgICAgICB3aGlsZSAocmVzdWx0Lmxlbmd0aCAhPSA0KQorICAgICAg
ICAgICAgcmVzdWx0LnB1c2gocmVzdWx0Lmxlbmd0aCA9PSAzID8gMSA6IDApOworICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgIH0gZWxzZQorICAgICAgICByZXR1cm4gW3ZhbHVlLCAwLCAwLCAx
XTsKK30KKworZnVuY3Rpb24gcHJvamVjdGlvbk9wZXJhdGlvbihzLCB0LCByLCBkcmVmLCBxKQor
eworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjEKKyAgICByZXR1cm4gW3MgLyBx
LCB0IC8gcSwgciAvIHEsIGRyZWYgIT0gdW5kZWZpbmVkID8gZHJlZiAvIHEgOiB1bmRlZmluZWRd
OworfQorCitmdW5jdGlvbiBjdWJlTWFwRmFjZVNlbGVjdGlvbihzLCB0LCByLCBwYXJ0aWFsUnhX
aXRoUmVzcGVjdFRvWCwgcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSeVdpdGhSZXNw
ZWN0VG9YLCBwYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1gs
IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlv
biAxNS42LjQKKyAgICBsZXQgcnggPSBzOworICAgIGxldCByeSA9IHQ7CisgICAgbGV0IHJ6ID0g
cjsKKyAgICBsZXQgd2lubmVyID0gMDsKKyAgICBpZiAoTWF0aC5hYnMocnopID49IE1hdGguYWJz
KHJ5KSAmJiBNYXRoLmFicyhyeikgPj0gTWF0aC5hYnMocngpKQorICAgICAgICB3aW5uZXIgPSAy
OworICAgIGVsc2UgaWYgKE1hdGguYWJzKHJ5KSA+PSBNYXRoLmFicyhyeCkgJiYgTWF0aC5hYnMo
cnkpID49IE1hdGguYWJzKHJ6KSkKKyAgICAgICAgd2lubmVyID0gMTsKKworICAgIGxldCBsYXll
ck51bWJlcjsKKyAgICBsZXQgc2M7CisgICAgbGV0IHRjOworICAgIGxldCByYzsKKyAgICBsZXQg
cGFydGlhbFNjV2l0aFJlc3BlY3RUb1g7CisgICAgbGV0IHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9Z
OworICAgIGxldCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWDsKKyAgICBsZXQgcGFydGlhbFRjV2l0
aFJlc3BlY3RUb1k7CisgICAgbGV0IHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YOworICAgIGxldCBw
YXJ0aWFsUmNXaXRoUmVzcGVjdFRvWTsKKyAgICBpZiAod2lubmVyID09IDAgJiYgcnggPj0gMCkg
eworICAgICAgICBsYXllck51bWJlciA9IDA7CisgICAgICAgIHNjID0gLXJ6OworICAgICAgICB0
YyA9IC1yeTsKKyAgICAgICAgcmMgPSByeDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RU
b1ggPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNw
ZWN0VG9ZID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRo
UmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRj
V2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRp
YWxSY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBh
cnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgfSBl
bHNlIGlmICh3aW5uZXIgPT0gMCkgeworICAgICAgICBsYXllck51bWJlciA9IDE7CisgICAgICAg
IHNjID0gcno7CisgICAgICAgIHRjID0gLXJ5OworICAgICAgICByYyA9IHJ4OworICAgICAgICBw
YXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAg
ICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAg
ICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsK
KyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RU
b1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeFdpdGhSZXNw
ZWN0VG9YOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnhXaXRo
UmVzcGVjdFRvWTsKKyAgICB9IGVsc2UgaWYgKHdpbm5lciA9PSAxICYmIHJ5ID49IDApIHsKKyAg
ICAgICAgbGF5ZXJOdW1iZXIgPSAyOworICAgICAgICBzYyA9IHJ4OworICAgICAgICB0YyA9IC1y
ejsKKyAgICAgICAgcmMgPSByeTsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSBw
YXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kg
PSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RU
b1ggPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3Bl
Y3RUb1kgPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJl
c3BlY3RUb1ggPSBwYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJjV2l0
aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICB9IGVsc2UgaWYgKHdp
bm5lciA9PSAxKSB7CisgICAgICAgIGxheWVyTnVtYmVyID0gMzsKKyAgICAgICAgc2MgPSByeDsK
KyAgICAgICAgdGMgPSAtcno7CisgICAgICAgIHJjID0gcnk7CisgICAgICAgIHBhcnRpYWxTY1dp
dGhSZXNwZWN0VG9YID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxT
Y1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRp
YWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBw
YXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAg
ICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7Cisg
ICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9Z
OworICAgIH0gZWxzZSBpZiAod2lubmVyID09IDIgJiYgcnogPj0gMCkgeworICAgICAgICBsYXll
ck51bWJlciA9IDQ7CisgICAgICAgIHNjID0gcng7CisgICAgICAgIHRjID0gLXJ5OworICAgICAg
ICByYyA9IHJ6OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeFdp
dGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxS
eFdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0
aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgPSAt
cGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9Y
ID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0
VG9ZID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbGF5
ZXJOdW1iZXIgPSA1OworICAgICAgICBzYyA9IC1yeDsKKyAgICAgICAgdGMgPSAtcnk7CisgICAg
ICAgIHJjID0gcno7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxS
eFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0
aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAt
cGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9Z
ID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVj
dFRvWCA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJl
c3BlY3RUb1kgPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgfQorICAgIHJldHVybiBb
bGF5ZXJOdW1iZXIsIHNjLCB0YywgcmMsIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFs
U2NXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxUY1dpdGhS
ZXNwZWN0VG9ZLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJjV2l0aFJlc3BlY3RU
b1ldCit9CisKK2Z1bmN0aW9uIGN1YmVNYXBDb29yZGluYXRlVHJhbnNmb3JtYXRpb24oc2MsIHJj
KQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjUKKyAgICBsZXQgc0ZhY2Ug
PSAoMSAvIDIpICogc2MgLyBNYXRoLmFicyhyYykgKyAoMSAvIDIpOworICAgIGxldCB0RmFjZSA9
ICgxIC8gMikgKiB0YyAvIE1hdGguYWJzKHJjKSArICgxIC8gMik7CisgICAgcmV0dXJuIFtzRmFj
ZSwgdEZhY2VdOworfQorCitmdW5jdGlvbiBjdWJlTWFwRGVyaXZhdGl2ZVRyYW5zZm9ybWF0aW9u
KHNjLCB0YywgcmMsIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU2NXaXRoUmVzcGVj
dFRvWSwgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZLCBw
YXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kpCit7CisgICAg
Ly8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuNgorICAgIGxldCBwYXJ0aWFsU0ZhY2VXaXRo
UmVzcGVjdFRvWCA9ICgxIC8gMikgKiAoKE1hdGguYWJzKHJjKSAqIHBhcnRpYWxTY1dpdGhSZXNw
ZWN0VG9YIC0gc2MgKiBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCkgLyBNYXRoLnBvdyhyYywgMikp
OworICAgIGxldCBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWSA9ICgxIC8gMikgKiAoKE1hdGgu
YWJzKHJjKSAqIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZIC0gc2MgKiBwYXJ0aWFsUmNXaXRoUmVz
cGVjdFRvWSkgLyBNYXRoLnBvdyhyYywgMikpOworICAgIGxldCBwYXJ0aWFsVEZhY2VXaXRoUmVz
cGVjdFRvWCA9ICgxIC8gMikgKiAoKE1hdGguYWJzKHJjKSAqIHBhcnRpYWxUY1dpdGhSZXNwZWN0
VG9YIC0gdGMgKiBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCkgLyBNYXRoLnBvdyhyYywgMikpOwor
ICAgIGxldCBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRvWSA9ICgxIC8gMikgKiAoKE1hdGguYWJz
KHJjKSAqIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZIC0gdGMgKiBwYXJ0aWFsUmNXaXRoUmVzcGVj
dFRvWSkgLyBNYXRoLnBvdyhyYywgMikpOworICAgIHJldHVybiBbcGFydGlhbFNGYWNlV2l0aFJl
c3BlY3RUb1gsIHBhcnRpYWxTRmFjZVdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVEZhY2VXaXRoUmVz
cGVjdFRvWCwgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1ldOworfQorCitmdW5jdGlvbiBzY2Fs
ZUZhY3Rvck9wZXJhdGlvbihkZXZpY2VNYXhBbmlzb3Ryb3B5LCB3aWR0aCwgaGVpZ2h0LCBkZXB0
aCwgc2FtcGxlck1heEFuaXNvdHJvcHksIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxU
V2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTV2l0aFJlc3Bl
Y3RUb1ksIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kpCit7
CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuNworICAgIGxldCBtdXggPSBNYXRo
LmFicyhwYXJ0aWFsU1dpdGhSZXNwZWN0VG9YKSAqIHdpZHRoOworICAgIGxldCBtdnggPSBNYXRo
LmFicyhwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YKSAqIGhlaWdodDsKKyAgICBsZXQgbXd4ID0gTWF0
aC5hYnMocGFydGlhbFJXaXRoUmVzcGVjdFRvWCkgKiBkZXB0aDsKKyAgICBsZXQgbXV5ID0gTWF0
aC5hYnMocGFydGlhbFNXaXRoUmVzcGVjdFRvWSkgKiB3aWR0aDsKKyAgICBsZXQgbXZ5ID0gTWF0
aC5hYnMocGFydGlhbFRXaXRoUmVzcGVjdFRvWSkgKiBoZWlnaHQ7CisgICAgbGV0IG13eSA9IE1h
dGguYWJzKHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kpICogZGVwdGg7CisKKyAgICAvLyBJIG1hZGUg
dGhpcyB1cC4gVGhlIGZvcm11bGEgaXNuJ3QgbGlzdGVkIGluIHRoZSBzcGVjLgorICAgIGxldCBm
eCA9IE1hdGguc3FydChtdXggKiBtdXggKyBtdnggKiBtdnggKyBtd3ggKiBtd3gpOworICAgIGxl
dCBmeSA9IE1hdGguc3FydChtdXkgKiBtdXkgKyBtdnkgKiBtdnkgKyBtd3kgKiBtd3kpOworCisg
ICAgbGV0IHJob1ggPSBmeDsKKyAgICBsZXQgcmhvWSA9IGZ5OworICAgIGxldCByaG9NYXggPSBN
YXRoLm1heChyaG9YLCByaG9ZKTsKKyAgICBsZXQgcmhvTWluID0gTWF0aC5taW4ocmhvWCwgcmhv
WSk7CisKKyAgICBsZXQgbWF4QW5pc28gPSBNYXRoLm1pbihzYW1wbGVyTWF4QW5pc290cm9weSwg
ZGV2aWNlTWF4QW5pc290cm9weSk7CisKKyAgICBsZXQgZXRhOworICAgIGlmIChyaG9NYXggPT0g
MCAmJiByaG9NaW4gPT0gMCkKKyAgICAgICAgZXRhID0gMTsKKyAgICBlbHNlIGlmIChyaG9NaW4g
PT0gMCkKKyAgICAgICAgZXRhID0gbWF4QW5pc287CisgICAgZWxzZQorICAgICAgICBldGEgPSBN
YXRoLm1pbihyaG9NYXggLyByaG9NaW4sIG1heEFuaXNvKTsKKworICAgIGxldCBOID0gTWF0aC5j
ZWlsKGV0YSk7CisgICAgcmV0dXJuIFtyaG9NYXgsIHJob01pbiwgZXRhLCBOXTsKK30KKworZnVu
Y3Rpb24gbGV2ZWxPZkRldGFpbE9wZXJhdGlvbihkZXZpY2VNYXhTYW1wbGVyTG9kQmlhcywgbG9k
RnJvbUZ1bmN0aW9uT3BlcmFuZCwgbG9kTWluRnJvbUZ1bmN0aW9uT3BlcmFuZCwgYmlhc0Zyb21G
dW5jdGlvbk9wZXJhbmQsIHNhbXBsZXJCaWFzLCBzYW1wbGVyTG9kTWluLCBzYW1wbGVyTG9kTWF4
LCByaG9NYXgsIGV0YSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi43Cisg
ICAgaWYgKGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kID09IHVuZGVmaW5lZCkKKyAgICAgICAgYmlh
c0Zyb21GdW5jdGlvbk9wZXJhbmQgPSAwOworCisgICAgbGV0IGxhbWJkYUJhc2UgPSBsb2RGcm9t
RnVuY3Rpb25PcGVyYW5kICE9IHVuZGVmaW5lZCA/IGxvZEZyb21GdW5jdGlvbk9wZXJhbmQgOiBN
YXRoLmxvZzIocmhvTWF4IC8gZXRhKTsKKyAgICBsZXQgbGFtYmRhUHJpbWUgPSBsYW1iZGFCYXNl
ICsgTWF0aC5taW4oTWF0aC5tYXgoc2FtcGxlckJpYXMgKyBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFu
ZCwgLWRldmljZU1heFNhbXBsZXJMb2RCaWFzKSwgZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMpOwor
ICAgIGxldCBsb2RNaW4gPSBNYXRoLm1heChzYW1wbGVyTG9kTWluLCBsb2RNaW5Gcm9tRnVuY3Rp
b25PcGVyYW5kKTsKKyAgICBsZXQgbG9kTWF4ID0gc2FtcGxlckxvZE1heDsKKyAgICBsZXQgbGFt
YmRhOworICAgIGlmIChsYW1iZGFQcmltZSA+IGxvZE1heCkKKyAgICAgICAgbGFtYmRhID0gbG9k
TWF4OworICAgIGVsc2UgaWYgKGxvZE1pbiA8PSBsYW1iZGFQcmltZSAmJiBsYW1iZGFQcmltZSA8
PSBsb2RNYXgpCisgICAgICAgIGxhbWJkYSA9IGxhbWJkYVByaW1lOworICAgIGVsc2UgaWYgKGxh
bWJkYVByaW1lIDwgbG9kTWluKQorICAgICAgICBsYW1iZGEgPSBsb2RNaW47CisgICAgZWxzZQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImxvZE1pbiA+PSBsb2RNYXgiKTsKKyAgICByZXR1cm4g
bGFtYmRhOworfQorCitmdW5jdGlvbiBpbWFnZUxldmVsU2VsZWN0aW9uKGJhc2VNaXBMZXZlbCwg
bGV2ZWxDb3VudCwgbWlwbWFwTW9kZSwgbGFtYmRhKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMg
c2VjdGlvbiAxNS42LjcKKyAgICBmdW5jdGlvbiBuZWFyZXN0KGRQcmltZSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBNYXRoLmNlaWwoZFByaW1lICsgMC41KSAtIDE7CisgICAgfQorCisgICAgbGV0
IHEgPSBsZXZlbENvdW50IC0gMTsKKyAgICBsZXQgZFByaW1lID0gYmFzZU1pcExldmVsICsgTWF0
aC5taW4oTWF0aC5tYXgobGFtYmRhLCAwKSwgcSk7CisgICAgbGV0IGRsOworICAgIGlmIChtaXBt
YXBNb2RlID09ICJuZWFyZXN0IikKKyAgICAgICAgZGwgPSBuZWFyZXN0KGRQcmltZSk7CisgICAg
ZWxzZQorICAgICAgICBkbCA9IGRQcmltZTsKKyAgICBpZiAobWlwbWFwTW9kZSA9PSAibmVhcmVz
dCIpCisgICAgICAgIHJldHVybiBkbDsKKyAgICBlbHNlIHsKKyAgICAgICAgbGV0IGRIaSA9IE1h
dGguZmxvb3IoZGwpOworICAgICAgICBsZXQgZExvdyA9IE1hdGgubWluKGRIaSArIDEsIHEpOwor
ICAgICAgICBsZXQgZGVsdGEgPSBkbCAtIGRIaTsKKyAgICAgICAgcmV0dXJuIFtkSGksIGRMb3cs
IGRlbHRhXTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHN0cnFhVG9VVldBVHJhbnNmb3JtYXRpb24o
cywgdCwgciwgd2lkdGgsIGhlaWdodCwgZGVwdGgpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBz
ZWN0aW9uIDE1LjYuOAorICAgIGxldCB1ID0gcyAqIHdpZHRoOworICAgIGxldCB2ID0gdCAqIGhl
aWdodDsKKyAgICBsZXQgdyA9IHIgKiBkZXB0aDsKKyAgICByZXR1cm4gW3UsIHYsIHddOworfQor
CitmdW5jdGlvbiB1dndhVG9JSktMTlRyYW5zZm9ybWF0aW9uQW5kQXJyYXlMYXllclNlbGVjdGlv
bihsYXllckNvdW50LCBiYXNlQXJyYXlMYXllciwgZmlsdGVyLCB1LCB2LCB3LCBhLCBkZWx0YUks
IGRlbHRhSiwgZGVsdGFLKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS43LjEK
KworICAgIGlmIChkZWx0YUkgPT0gdW5kZWZpbmVkKQorICAgICAgICBkZWx0YUkgPSAwOworICAg
IGlmIChkZWx0YUogPT0gdW5kZWZpbmVkKQorICAgICAgICBkZWx0YUogPSAwOworICAgIGlmIChk
ZWx0YUsgPT0gdW5kZWZpbmVkKQorICAgICAgICBkZWx0YUsgPSAwOworCisgICAgZnVuY3Rpb24g
cm5lKGEpCisgICAgeworICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihhICsgMC41KTsKKyAgICB9
CisgICAgbGV0IGwgPSBNYXRoLm1pbihNYXRoLm1heChybmUoYSksIDApLCBsYXllckNvdW50IC0g
MSkgKyBiYXNlQXJyYXlMYXllcjsKKyAgICBsZXQgaTsKKyAgICBsZXQgajsKKyAgICBsZXQgazsK
KyAgICBpZiAoZmlsdGVyID09ICJuZWFyZXN0IikgeworICAgICAgICBpID0gTWF0aC5mbG9vcih1
KTsKKyAgICAgICAgaiA9IE1hdGguZmxvb3Iodik7CisgICAgICAgIGsgPSBNYXRoLmZsb29yKHcp
OworICAgICAgICAKKyAgICAgICAgaSArPSBkZWx0YUk7CisgICAgICAgIGogKz0gZGVsdGFKOwor
ICAgICAgICBrICs9IGRlbHRhSzsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBbaSwgaiwgaywg
bF07CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGZpbHRlciAhPSAibGluZWFyIikKKyAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBmaWx0ZXIiKTsKKyAgICAgICAgbGV0IGkw
ID0gTWF0aC5mbG9vcih1IC0gMC41KTsKKyAgICAgICAgbGV0IGkxID0gaTAgKyAxOworICAgICAg
ICBsZXQgajAgPSBNYXRoLmZsb29yKHYgLSAwLjUpOworICAgICAgICBsZXQgajEgPSBqMCArIDE7
CisgICAgICAgIGxldCBrMCA9IE1hdGguZmxvb3IodyAtIDAuNSk7CisgICAgICAgIGxldCBrMSA9
IGswICsgMTsKKyAgICAgICAgbGV0IGFscGhhID0gKHUgLSAwLjUpIC0gaTA7CisgICAgICAgIGxl
dCBiZXRhID0gKHYgLSAwLjUpIC0gajA7CisgICAgICAgIGxldCBnYW1tYSA9ICh3IC0gMC41KSAt
IGswOworICAgICAgICAKKyAgICAgICAgaTAgKz0gZGVsdGFJOworICAgICAgICBpMSArPSBkZWx0
YUk7CisgICAgICAgIGowICs9IGRlbHRhSjsKKyAgICAgICAgajEgKz0gZGVsdGFKOworICAgICAg
ICBrMCArPSBkZWx0YUs7CisgICAgICAgIGsxICs9IGRlbHRhSzsKKyAgICAgICAgCisgICAgICAg
IHJldHVybiBbaTAsIGkxLCBqMCwgajEsIGswLCBrMSwgbCwgYWxwaGEsIGJldGEsIGdhbW1hXTsK
KyAgICB9Cit9CisKK2Z1bmN0aW9uIGludGVnZXJUZXhlbENvb3JkaW5hdGVPcGVyYXRpb25zKGJh
c2VNaXBMZXZlbCwgbGV2ZWxDb3VudCwgbGV2ZWxCYXNlLCBsb2RGcm9tRnVuY3Rpb25PcGVyYW5k
KQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS44CisgICAgbGV0IGQgPSBsZXZl
bEJhc2UgKyBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kOworICAgIGlmIChkIDwgYmFzZU1pcExldmVs
IHx8IGQgPj0gYmFzZU1pcExldmVsICsgbGV2ZWxDb3VudCkKKyAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJTZWxlY3RlZCBsZXZlbCBkb2VzIG5vdCBsaWUgaW5zaWRlIHRoZSBpbWFnZSIpOworICAg
IHJldHVybiBkOworfQorCitmdW5jdGlvbiB3cmFwcGluZ09wZXJhdGlvbih3aWR0aCwgaGVpZ2h0
LCBkZXB0aCwgYWRkcmVzc01vZGVVLCBhZGRyZXNzTW9kZVYsIGFkZHJlc3NNb2RlVywgaSwgaiwg
aykKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOS4xCisgICAgLy8gRklYTUU6
IEltcGxlbWVudCBjdWJlIG1hcCBoYW5kbGluZworICAgIGZ1bmN0aW9uIHRyYW5zZm9ybShhZGRy
ZXNzTW9kZSwgc2l6ZSwgaSkKKyAgICB7CisgICAgICAgIGZ1bmN0aW9uIG1pcnJvcihuKSB7Cisg
ICAgICAgICAgICBpZiAobiA+PSAwKQorICAgICAgICAgICAgICAgIHJldHVybiBuOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiAtKDEgKyBuKTsKKyAgICAgICAgfQor
ICAgICAgICBzd2l0Y2ggKGFkZHJlc3NNb2RlKSB7CisgICAgICAgICAgICBjYXNlICJjbGFtcFRv
RWRnZSI6CisgICAgICAgICAgICAgICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGksIDApLCBz
aXplIC0gMSk7CisgICAgICAgICAgICBjYXNlICJyZXBlYXQiOgorICAgICAgICAgICAgICAgIHJl
dHVybiBpICUgc2l6ZTsKKyAgICAgICAgICAgIGNhc2UgIm1pcnJvclJlcGVhdCI6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIChzaXplIC0gMSkgLSBtaXJyb3IoKGkgJSAoMiAqIHNpemUpKSAtIHNp
emUpOworICAgICAgICAgICAgY2FzZSAiY2xhbXBUb0JvcmRlckNvbG9yIjoKKyAgICAgICAgICAg
ICAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoaSwgLTEpLCBzaXplKTsKKyAgICAgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGFkZHJl
c3MgbW9kZSIpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBbdHJhbnNmb3JtKGFkZHJl
c3NNb2RlVSwgd2lkdGgsIGkpLCB0cmFuc2Zvcm0oYWRkcmVzc01vZGVWLCBoZWlnaHQsIGopLCB0
cmFuc2Zvcm0oYWRkcmVzc01vZGVXLCBkZXB0aCwgayldOworfQorCitmdW5jdGlvbiB0ZXhlbEdh
dGhlcmluZygpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjkuMgorICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgdGhpcworICAgIC8qbGV0IHRhdVIgPSA7CisgICAgbGV0IHRhdUcg
PSA7CisgICAgbGV0IHRhdUIgPSA7CisgICAgbGV0IHRhdUEgPSA7Ki8KK30KKworZnVuY3Rpb24g
dGV4ZWxGaWx0ZXJpbmcoCisgICAgZGV2aWNlTWF4QW5pc290cm9weSwKKyAgICBkZXZpY2VNYXhT
YW1wbGVyTG9kQmlhcywKKyAgICBiYXNlTWlwTGV2ZWwsCisgICAgYmFzZUFycmF5TGF5ZXIsCisg
ICAgdGV4dHVyZSwKKyAgICBzYW1wbGVyLAorICAgIHNhbXBsZXJCaWFzLAorICAgIHMsIHQsIHIs
IGEsCisgICAgZGVsdGFJLCBkZWx0YUosIGRlbHRhSywKKyAgICBsb2RGcm9tRnVuY3Rpb25PcGVy
YW5kLAorICAgIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgYmlhc0Zyb21GdW5jdGlv
bk9wZXJhbmQsCisgICAgZGR4LCBkZHkpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9u
IDE1LjkuMworCisgICAgLy8gVGhlIHNwZWMgdXNlcyBkaWZmZXJlbnQgbmFtZXMgdGhhbiBXZWJH
UFUgZG9lcy4KKyAgICBsZXQgYWRkcmVzc01vZGVVID0gc2FtcGxlci5yQWRkcmVzc01vZGU7Cisg
ICAgbGV0IGFkZHJlc3NNb2RlViA9IHNhbXBsZXIuc0FkZHJlc3NNb2RlOworICAgIGxldCBhZGRy
ZXNzTW9kZVcgPSBzYW1wbGVyLnRBZGRyZXNzTW9kZTsKKworICAgIC8vIEZJWE1FOiBNYWtlIHRo
aXMgd29yayB3aXRoIGN1YmVtYXBzCisgICAgbGV0IHBhcnRpYWxTV2l0aFJlc3BlY3RUb1ggPSAw
OworICAgIGxldCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YID0gMDsKKyAgICBsZXQgcGFydGlhbFJX
aXRoUmVzcGVjdFRvWCA9IDA7CisgICAgaWYgKGRkeCAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAg
cGFydGlhbFNXaXRoUmVzcGVjdFRvWCA9IGRkeFswXTsKKyAgICAgICAgcGFydGlhbFRXaXRoUmVz
cGVjdFRvWCA9IGRkeFsxXTsKKyAgICAgICAgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCA9IGRkeFsy
XTsKKyAgICB9CisgICAgbGV0IHBhcnRpYWxTV2l0aFJlc3BlY3RUb1kgPSAwOworICAgIGxldCBw
YXJ0aWFsVFdpdGhSZXNwZWN0VG9ZID0gMDsKKyAgICBsZXQgcGFydGlhbFJXaXRoUmVzcGVjdFRv
WSA9IDA7CisgICAgaWYgKGRkeSAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgcGFydGlhbFNXaXRo
UmVzcGVjdFRvWSA9IGRkeVswXTsKKyAgICAgICAgcGFydGlhbFRXaXRoUmVzcGVjdFRvWSA9IGRk
eVsxXTsKKyAgICAgICAgcGFydGlhbFJXaXRoUmVzcGVjdFRvWSA9IGRkeVsyXTsKKyAgICB9Cisg
ICAgbGV0IFtyaG9NYXgsIHJob01pbiwgZXRhLCBOXSA9IHNjYWxlRmFjdG9yT3BlcmF0aW9uKGRl
dmljZU1heEFuaXNvdHJvcHksIHRleHR1cmUud2lkdGgsIHRleHR1cmUuaGVpZ2h0LCB0ZXh0dXJl
LmRlcHRoLCBzYW1wbGVyLm1heEFuaXNvdHJvcHksIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1gsIHBh
cnRpYWxUV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTV2l0
aFJlc3BlY3RUb1ksIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSV2l0aFJlc3BlY3RU
b1kpOworICAgIGxldCBsYW1iZGEgPSBsZXZlbE9mRGV0YWlsT3BlcmF0aW9uKGRldmljZU1heFNh
bXBsZXJMb2RCaWFzLCBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLCBsb2RNaW5Gcm9tRnVuY3Rpb25P
cGVyYW5kLCBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwgc2FtcGxlckJpYXMsIHNhbXBsZXIubG9k
TWluQ2xhbXAsIHNhbXBsZXIubG9kTWF4Q2xhbXAsIHJob01heCwgZXRhKTsKKworICAgIGxldCBm
aWx0ZXI7CisgICAgaWYgKGxhbWJkYSA8PSAwKQorICAgICAgICBmaWx0ZXIgPSBzYW1wbGVyLm1h
Z0ZpbHRlcjsKKyAgICBlbHNlCisgICAgICAgIGZpbHRlciA9IHNhbXBsZXIubWluRmlsdGVyOwor
CisgICAgZnVuY3Rpb24gcmVkdWNlKC4uLnZhbHVlcykKKyAgICB7CisgICAgICAgIGlmICh2YWx1
ZXMubGVuZ3RoICUgMiAhPSAwKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJEb24ndCBo
YXZlIGEgd2VpZ2h0IGNvcnJlc3BvbmRpbmcgdG8gZWFjaCB2YWx1ZSIpOworICAgICAgICBpZiAo
dmFsdWVzLmxlbmd0aCA8IDIpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkRvbid0IGhh
dmUgZW5vdWdoIHRoaW5ncyB0byBjYWxjdWxhdGUgYW4gYXZlcmFnZSIpOworICAgICAgICBsZXQg
c3VtOworICAgICAgICBpZiAodmFsdWVzWzFdIGluc3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAg
ICAgIHN1bSA9IFtdOworICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXNbMV0u
bGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgc3VtLnB1c2goMCk7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgc3VtID0gMDsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1
ZXMubGVuZ3RoIC8gMjsgKytpKSB7CisgICAgICAgICAgICBsZXQgd2VpZ2h0ID0gdmFsdWVzWzIg
KiBpXTsKKyAgICAgICAgICAgIGxldCBjb2xvciA9IHZhbHVlc1syICogaSArIDFdOworICAgICAg
ICAgICAgaWYgKGNvbG9yIGluc3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAgICAgICAgICBmb3Ig
KGxldCBpID0gMDsgaSA8IGNvbG9yLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgICAgICAgICBz
dW1baV0gKz0gd2VpZ2h0ICogY29sb3JbaV07CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgICAgICBzdW0gKz0gd2VpZ2h0ICogY29sb3I7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
IHN1bTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjb21wdXRlVGF1KGxldmVsKQorICAgIHsKKyAg
ICAgICAgZnVuY3Rpb24gYWNjZXNzQ29sb3Iod2lkdGgsIGhlaWdodCwgZGVwdGgsIGwsIGksIGos
IGspCisgICAgICAgIHsKKyAgICAgICAgICAgIGZ1bmN0aW9uIHNob3VsZEJlQm9yZGVyKHZhbHVl
LCBtYXgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlIDwgLTEgfHwg
dmFsdWUgPiBtYXgpCisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiT3V0LW9m
LWJvdW5kcyB0ZXh0dXJlIHJlYWQiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPT0g
LTEgfHwgdmFsdWUgPT0gbWF4OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsZXQgW3dy
YXBwZWRJLCB3cmFwcGVkSiwgd3JhcHBlZEtdID0gd3JhcHBpbmdPcGVyYXRpb24od2lkdGgsIGhl
aWdodCwgZGVwdGgsIGFkZHJlc3NNb2RlVSwgYWRkcmVzc01vZGVWLCBhZGRyZXNzTW9kZVcsIGks
IGosIGspCisgICAgICAgICAgICBpZiAoc2hvdWxkQmVCb3JkZXIod3JhcHBlZEksIHdpZHRoKSB8
fCBzaG91bGRCZUJvcmRlcih3cmFwcGVkSiwgaGVpZ2h0KSB8fCBzaG91bGRCZUJvcmRlcih3cmFw
cGVkSywgZGVwdGgpKQorICAgICAgICAgICAgICAgIHJldHVybiBzYW1wbGVyLmNhbGN1bGF0ZUJv
cmRlckNvbG9yKHRleHR1cmUuaW5uZXJUeXBlKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdGV4dHVyZS5lbGVtZW50KGwsIGxldmVsLCB3cmFwcGVkSywgd3JhcHBl
ZEosIHdyYXBwZWRJKTsKKyAgICAgICAgfQorCisgICAgICAgIGxldCBbdSwgdiwgd10gPSBzdHJx
YVRvVVZXQVRyYW5zZm9ybWF0aW9uKHMsIHQsIHIsIHRleHR1cmUud2lkdGhBdExldmVsKGxldmVs
KSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2
ZWwpKTsKKyAgICAgICAgaWYgKGZpbHRlciA9PSAibmVhcmVzdCIpIHsKKyAgICAgICAgICAgIGxl
dCBbaSwgaiwgaywgbF0gPSB1dndhVG9JSktMTlRyYW5zZm9ybWF0aW9uQW5kQXJyYXlMYXllclNl
bGVjdGlvbih0ZXh0dXJlLmxheWVyQ291bnQsIGJhc2VBcnJheUxheWVyLCBmaWx0ZXIsIHUsIHYs
IHcsIGEsIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUspOworICAgICAgICAgICAgcmV0dXJuIGFjY2Vz
c0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVs
KGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpLCBqLCBrKTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChmaWx0ZXIgIT0gImxpbmVhciIpCisgICAgICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGZpbHRlciIpOworICAgICAgICAgICAg
bGV0IFtpMCwgaTEsIGowLCBqMSwgazAsIGsxLCBsLCBhbHBoYSwgYmV0YSwgZ2FtbWFdID0gdXZ3
YVRvSUpLTE5UcmFuc2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJTZWxlY3Rpb24odGV4dHVyZS5sYXll
ckNvdW50LCBiYXNlQXJyYXlMYXllciwgZmlsdGVyLCB1LCB2LCB3LCBhLCBkZWx0YUksIGRlbHRh
SiwgZGVsdGFLKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjAwMCA9IGFjY2Vzc0NvbG9yKHRleHR1
cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4
dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMCwgajAsIGswKTsKKyAgICAgICAgICAgIGxl
dCBjb2xvcjEwMCA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4
dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBs
LCBpMSwgajAsIGswKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjAxMCA9IGFjY2Vzc0NvbG9yKHRl
eHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwg
dGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMCwgajEsIGswKTsKKyAgICAgICAgICAg
IGxldCBjb2xvcjExMCA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwg
dGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwp
LCBsLCBpMSwgajEsIGswKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjAwMSA9IGFjY2Vzc0NvbG9y
KHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVs
KSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMCwgajAsIGsxKTsKKyAgICAgICAg
ICAgIGxldCBjb2xvcjEwMSA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVs
KSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2
ZWwpLCBsLCBpMSwgajAsIGsxKTsKKyAgICAgICAgICAgIGxldCBjb2xvcjAxMSA9IGFjY2Vzc0Nv
bG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxl
dmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMCwgajEsIGsxKTsKKyAgICAg
ICAgICAgIGxldCBjb2xvcjExMSA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxl
dmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwo
bGV2ZWwpLCBsLCBpMSwgajEsIGsxKTsKKyAgICAgICAgICAgIHN3aXRjaCAodGV4dHVyZS5kaW1l
bnNpb24pIHsKKyAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgIGxl
dCBjb2xvcjAgPSBjb2xvcjAxMTsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMSA9IGNv
bG9yMTExOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVkdWNlKDEgLSBhbHBoYSwgY29s
b3IwLCBhbHBoYSwgY29sb3IxKTsKKyAgICAgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAg
ICAgICAgICAgIGxldCBjb2xvcjAwID0gY29sb3IwMDE7CisgICAgICAgICAgICAgICAgICAgIGxl
dCBjb2xvcjEwID0gY29sb3IxMDE7CisgICAgICAgICAgICAgICAgICAgIGxldCBjb2xvcjAxID0g
Y29sb3IwMTE7CisgICAgICAgICAgICAgICAgICAgIGxldCBjb2xvcjExID0gY29sb3IxMTE7Cisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiByZWR1Y2UoKDEgLSBhbHBoYSkgKiAoMSAtIGJldGEp
LCBjb2xvcjAwLCBhbHBoYSAqICgxIC0gYmV0YSksIGNvbG9yMTAsICgxIC0gYWxwaGEpICogYmV0
YSwgY29sb3IwMSwgYWxwaGEgKiBiZXRhLCBjb2xvcjExKTsKKyAgICAgICAgICAgICAgICBjYXNl
IDM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWR1Y2UoCisgICAgICAgICAgICAgICAg
ICAgICAgICAoMSAtIGFscGhhKSAqICgxIC0gYmV0YSkgKiAoMSAtIGdhbW1hKSwgY29sb3IwMDAs
CisgICAgICAgICAgICAgICAgICAgICAgICBhbHBoYSAqICgxIC0gYmV0YSkgKiAoMSAtIGdhbW1h
KSwgY29sb3IxMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAoMSAtIGFscGhhKSAqIGJldGEg
KiAoMSAtIGdhbW1hKSwgY29sb3IwMTAsCisgICAgICAgICAgICAgICAgICAgICAgICBhbHBoYSAq
IGJldGEgKiAoMSAtIGdhbW1hKSwgY29sb3IxMTAsCisgICAgICAgICAgICAgICAgICAgICAgICAo
MSAtIGFscGhhKSAqICgxIC0gYmV0YSkgKiBnYW1tYSwgY29sb3IwMDEsCisgICAgICAgICAgICAg
ICAgICAgICAgICBhbHBoYSAqICgxIC0gYmV0YSkgKiBnYW1tYSwgY29sb3IxMDEsCisgICAgICAg
ICAgICAgICAgICAgICAgICAoMSAtIGFscGhhKSAqIGJldGEgKiBnYW1tYSwgY29sb3IwMTEsCisg
ICAgICAgICAgICAgICAgICAgICAgICBhbHBoYSAqIGJldGEgKiBnYW1tYSwgY29sb3IxMTEpOwor
ICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBF
cnJvcigiVW5rbm93biBkaW1lbnNpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
IH0KKworICAgIGlmIChzYW1wbGVyLm1pcG1hcEZpbHRlciA9PSAibmVhcmVzdCIpIHsKKyAgICAg
ICAgbGV0IGltYWdlTGV2ZWwgPSBpbWFnZUxldmVsU2VsZWN0aW9uKGJhc2VNaXBMZXZlbCwgdGV4
dHVyZS5sZXZlbENvdW50LCBzYW1wbGVyLm1pcG1hcEZpbHRlciwgbGFtYmRhKTsKKyAgICAgICAg
cmV0dXJuIGNvbXB1dGVUYXUoaW1hZ2VMZXZlbCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYg
KHNhbXBsZXIubWlwbWFwRmlsdGVyICE9ICJsaW5lYXIiKQorICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJVbmtub3duIGZpbHRlciIpOworICAgICAgICBsZXQgW2RIaSwgZExvdywgZGVsdGFd
ID0gaW1hZ2VMZXZlbFNlbGVjdGlvbihiYXNlTWlwTGV2ZWwsIHRleHR1cmUubGV2ZWxDb3VudCwg
c2FtcGxlci5taXBtYXBGaWx0ZXIsIGxhbWJkYSk7CisgICAgICAgIHJldHVybiByZWR1Y2UoMSAt
IGRlbHRhLCBjb21wdXRlVGF1KGRIaSksIGRlbHRhLCBjb21wdXRlVGF1KGRMb3cpKTsKKyAgICB9
Cit9CisKK2Z1bmN0aW9uIGNhc3RUb0lubmVyVHlwZSh2YWx1ZSwgaW5uZXJUeXBlKQoreworICAg
IHN3aXRjaCAoaW5uZXJUeXBlKSB7CisgICAgICAgIGNhc2UgInVjaGFyIjoKKyAgICAgICAgICAg
IHJldHVybiBjYXN0VG9VY2hhcih2YWx1ZSk7CisgICAgICAgIGNhc2UgInVzaG9ydCI6CisgICAg
ICAgICAgICByZXR1cm4gY2FzdFRvVXNob3J0KHZhbHVlKTsKKyAgICAgICAgY2FzZSAidWludCI6
CisgICAgICAgICAgICByZXR1cm4gY2FzdFRvVWludCh2YWx1ZSk7CisgICAgICAgIGNhc2UgImNo
YXIiOgorICAgICAgICAgICAgcmV0dXJuIGNhc3RUb0NoYXIodmFsdWUpOworICAgICAgICBjYXNl
ICJzaG9ydCI6CisgICAgICAgICAgICByZXR1cm4gY2FzdFRvU2hvcnQodmFsdWUpOworICAgICAg
ICBjYXNlICJpbnQiOgorICAgICAgICAgICAgcmV0dXJuIGNhc3RUb0ludCh2YWx1ZSk7CisgICAg
ICAgIGNhc2UgImhhbGYiOgorICAgICAgICAgICAgcmV0dXJuIGNhc3RUb0hhbGYodmFsdWUpOwor
ICAgICAgICBjYXNlICJmbG9hdCI6CisgICAgICAgICAgICByZXR1cm4gY2FzdFRvRmxvYXQodmFs
dWUpOworICAgICAgICAKKyAgICAgICAgY2FzZSAidWNoYXIyIjoKKyAgICAgICAgY2FzZSAidWNo
YXIzIjoKKyAgICAgICAgY2FzZSAidWNoYXI0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5t
YXAoY2FzdFRvVWNoYXIpOworICAgICAgICBjYXNlICJ1c2hvcnQyIjoKKyAgICAgICAgY2FzZSAi
dXNob3J0MyI6CisgICAgICAgIGNhc2UgInVzaG9ydDQiOgorICAgICAgICAgICAgcmV0dXJuIHZh
bHVlLm1hcChjYXN0VG9Vc2hvcnQpOworICAgICAgICBjYXNlICJ1aW50MiI6CisgICAgICAgIGNh
c2UgInVpbnQzIjoKKyAgICAgICAgY2FzZSAidWludDQiOgorICAgICAgICAgICAgcmV0dXJuIHZh
bHVlLm1hcChjYXN0VG9VaW50KTsKKyAgICAgICAgY2FzZSAiY2hhcjIiOgorICAgICAgICBjYXNl
ICJjaGFyMyI6CisgICAgICAgIGNhc2UgImNoYXI0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1
ZS5tYXAoY2FzdFRvQ2hhcik7CisgICAgICAgIGNhc2UgInNob3J0MiI6CisgICAgICAgIGNhc2Ug
InNob3J0MyI6CisgICAgICAgIGNhc2UgInNob3J0NCI6CisgICAgICAgICAgICByZXR1cm4gdmFs
dWUubWFwKGNhc3RUb1Nob3J0KTsKKyAgICAgICAgY2FzZSAiaW50MiI6CisgICAgICAgIGNhc2Ug
ImludDMiOgorICAgICAgICBjYXNlICJpbnQ0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5t
YXAoY2FzdFRvSW50KTsKKyAgICAgICAgY2FzZSAiaGFsZjIiOgorICAgICAgICBjYXNlICJoYWxm
MyI6CisgICAgICAgIGNhc2UgImhhbGY0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAo
Y2FzdFRvSGFsZik7CisgICAgICAgIGNhc2UgImZsb2F0MiI6CisgICAgICAgIGNhc2UgImZsb2F0
MyI6CisgICAgICAgIGNhc2UgImZsb2F0NCI6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFw
KGNhc3RUb0Zsb2F0KTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBF
cnJvcigiVW5rbm93biB0ZXh0dXJlIGlubmVyIHR5cGUiKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9u
IHNhbXBsZVRleHR1cmUodGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRlbHRhLCBiaWFzRnJv
bUZ1bmN0aW9uT3BlcmFuZCwgZGR4LCBkZHksIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsIGRyZWYp
Cit7CisgICAgbGV0IHMgPSBsb2NhdGlvblswXTsKKyAgICBsZXQgdCA9IGxvY2F0aW9uWzFdOwor
ICAgIGxldCByID0gbG9jYXRpb25bMl07CisgICAgbGV0IHEgPSBsb2NhdGlvblszXTsKKyAgICBs
ZXQgYSA9IGxvY2F0aW9uWzRdOworCisgICAgbGV0IGRlbHRhSSA9IHVuZGVmaW5lZDsKKyAgICBs
ZXQgZGVsdGFKID0gdW5kZWZpbmVkOworICAgIGxldCBkZWx0YUsgPSB1bmRlZmluZWQ7CisgICAg
aWYgKGRlbHRhICE9IHVuZGVmaW5lZCkgeworICAgICAgICBkZWx0YUkgPSBkZWx0YVswXTsKKyAg
ICAgICAgZGVsdGFKID0gZGVsdGFbMV07CisgICAgICAgIGRlbHRhSyA9IGRlbHRhWzJdOworICAg
IH0KKworICAgIFtzLCB0LCByLCBkcmVmXSA9IHByb2plY3Rpb25PcGVyYXRpb24ocywgdCwgciwg
ZHJlZiwgcSk7CisgICAgbGV0IHJlc3VsdCA9IHRleGVsRmlsdGVyaW5nKAorICAgICAgICBOdW1i
ZXIuTUFYX1ZBTFVFLAorICAgICAgICBOdW1iZXIuTUFYX1ZBTFVFLAorICAgICAgICAwLAorICAg
ICAgICAwLAorICAgICAgICB0ZXh0dXJlLAorICAgICAgICBzYW1wbGVyLAorICAgICAgICAwLAor
ICAgICAgICBzLCB0LCByLCBhLAorICAgICAgICBkZWx0YUksIGRlbHRhSiwgZGVsdGFLLAorICAg
ICAgICBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgICAgICAtTnVtYmVyLk1BWF9WQUxVRSwK
KyAgICAgICAgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgICAgIGRkeCwgZGR5KTsKKyAg
ICBpZiAoZHJlZiAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9m
IEFycmF5KQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJEZXB0aCBjb21wYXJpc29uIG5v
dCBzdXBwb3J0ZWQgb24gbXVsdGljaGFubmVsIHRleHR1cmVzIik7CisgICAgICAgIHJlc3VsdCA9
IGRlcHRoQ29tcGFyZU9wZXJhdGlvbihkcmVmLCByZXN1bHQsIHNhbXBsZXIuY29tcGFyZUZ1bmN0
aW9uKTsKKyAgICB9CisgICAgcmV0dXJuIGNhc3RUb0lubmVyVHlwZShyZXN1bHQsIHRleHR1cmUu
aW5uZXJUeXBlKTsKKyAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRvIGRvIHdpdGggYW5p
c290cm9weQorICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IGhvdyB0byBkbyBtdWx0aXNhbXBsaW5n
LgorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRt
bCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKaW5kZXggNjVhODY0
MTFiM2U3NzBiNTU3YjQxYWNjN2U0MTRkZWY0MjQwMzAxMy4uZTZlMTNkZmU4ZGZhNWM1MzMyYWQ5
ZWYwNDllY2VhMzU5YjdlM2E0MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvaW5kZXguaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRl
eC5odG1sCkBAIC0yOCw2ICsyOCw3IEBACiA8c2NyaXB0IHNyYz0iQnVpbHRpblZlY3RvclNldHRl
ci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2FsbEV4cHJlc3Npb24uanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IkNhbGxGdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Q2FzdHMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNoZWNrLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJDaGVja0xpdGVyYWxUeXBlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
Q2hlY2tMb29wcy5qcyI+PC9zY3JpcHQ+CkBAIC0xMTUsNiArMTE2LDcgQEAKIDxzY3JpcHQgc3Jj
PSJSZXR1cm4uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJldHVybkNoZWNrZXIuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IlJldHVybkV4Y2VwdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iU2FtcGxlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3RhbmRhcmRMaWJy
YXJ5LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTdGF0ZW1lbnRDbG9uZXIuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IlN0cnVjdExheW91dEJ1aWxkZXIuanMiPjwvc2NyaXB0PgpAQCAt
MTI3LDYgKzEyOSw4IEBACiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9w
ZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRGVmYXVsdENvbnN0
cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRlcm5hcnlFeHByZXNz
aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUZXh0dXJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJUZXh0dXJlT3BlcmF0aW9ucy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
VHJhcFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348727</attachid>
            <date>2018-09-01 22:40:39 -0700</date>
            <delta_ts>2018-09-02 17:03:32 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188940-20180901224038.patch</filename>
            <type>text/plain</type>
            <size>411202</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTg0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmZiYjA3NGE1ODRmZjk0OTQxMDdjZWFmZjY5NTQzM2Nk
ZGFiMWQ0NS4uYzBkNjY3MDI3OTg2ZTBiYzA5MGQ5MTkwY2JmOTE3Yjk5MDYwMmY5YyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
OSBAQAorMjAxOC0wOS0wMSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRleHR1cmUgdHlwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNp
Y3MuanM6CisgICAgICAgIChJbnRyaW5zaWNzLik6CisgICAgICAgIChJbnRyaW5zaWNzLmNoZWNr
RmFsc2UpOgorICAgICAgICAoSW50cmluc2ljcy5ib3hWZWN0b3IpOgorICAgICAgICAoSW50cmlu
c2ljcy51bmJveFZlY3Rvcik6CisgICAgICAgIChJbnRyaW5zaWNzKToKKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qczoKKyAgICAgICAgKGxldC5zdGFuZGFyZExpYnJh
cnkpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAobWFrZVNhbXBs
ZXIpOgorICAgICAgICAobWFrZTFEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMURUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMkRUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTNEVGV4dHVyZSk6CisgICAgICAgIChtYWtlVGV4dHVyZUN1YmUp
OgorICAgICAgICAobWFrZVJXMURUZXh0dXJlKToKKyAgICAgICAgKG1ha2VSVzFEVGV4dHVyZUFy
cmF5KToKKyAgICAgICAgKG1ha2VSVzJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlUlcyRFRleHR1
cmVBcnJheSk6CisgICAgICAgIChtYWtlUlczRFRleHR1cmUpOgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1RleHR1cmUuanM6IEFkZGVkLgorICAgICAgICAoVGV4dHVyZSk6Cisg
ICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQgZGltZW5zaW9uKToKKyAgICAgICAgKFRleHR1
cmUucHJvdG90eXBlLmdldCB3aWR0aCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aGVpZ2h0KToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkZXB0aCk6CisgICAgICAg
IChUZXh0dXJlLnByb3RvdHlwZS5nZXQgbGV2ZWxDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnBy
b3RvdHlwZS5nZXQgbGF5ZXJDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aW5uZXJUeXBlKToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkYXRhKToKKyAgICAg
ICAgKFRleHR1cmUucHJvdG90eXBlLmVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUu
cHJvdG90eXBlLnNldEVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUxRCk6CisgICAg
ICAgIChUZXh0dXJlMUQucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJl
MUQucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlw
ZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlwZS5lbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUxRC5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0
dXJlMURBcnJheSk6CisgICAgICAgIChUZXh0dXJlMURBcnJheS5wcm90b3R5cGUud2lkdGhBdExl
dmVsKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToK
KyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTFEQXJyYXkucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTFE
QXJyYXkucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEKToKKyAgICAg
ICAgKFRleHR1cmUyRC5wcm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUy
RC5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBl
LmRlcHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBlLmVsZW1lbnQpOgor
ICAgICAgICAoVGV4dHVyZTJELnByb3RvdHlwZS5zZXRFbGVtZW50KToKKyAgICAgICAgKFRleHR1
cmUyREFycmF5KToKKyAgICAgICAgKFRleHR1cmUyREFycmF5LnByb3RvdHlwZS53aWR0aEF0TGV2
ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgor
ICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMkRBcnJheS5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMkRB
cnJheS5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlM0QpOgorICAgICAg
ICAoVGV4dHVyZTNELnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTNE
LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUuZWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0QucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVy
ZUN1YmUpOgorICAgICAgICAoVGV4dHVyZUN1YmUucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6Cisg
ICAgICAgIChUZXh0dXJlQ3ViZS5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlQ3ViZS5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmVDdWJl
LnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmVDdWJlLnByb3RvdHlwZS5zZXRF
bGVtZW50KToKKyAgICAgICAgKFRleHR1cmUxRFJXKToKKyAgICAgICAgKFRleHR1cmUxRFJXLnBy
b3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmhl
aWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmRlcHRoQXRMZXZl
bCk6CisgICAgICAgIChUZXh0dXJlMURSVy5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChU
ZXh0dXJlMURSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMURBcnJh
eVJXKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6
CisgICAgICAgIChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAg
ICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUx
REFycmF5UlcucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEUlcpOgor
ICAgICAgICAoVGV4dHVyZTJEUlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlMkRSVy5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkRS
Vy5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlw
ZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlwZS5zZXRFbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUyREFycmF5UlcpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5w
cm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90
eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90eXBlLmVsZW1l
bnQpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0RSVyk6CisgICAgICAgIChUZXh0dXJlM0RSVy5wcm90b3R5cGUud2lk
dGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVs
KToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTNEUlcucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTNEUlcu
cHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1RleHR1cmVPcGVyYXRpb25zLmpzOiBBZGRlZC4KKyAgICAgICAgKGRlcHRoQ29tcGFyZU9wZXJh
dGlvbik6CisgICAgICAgIChjb252ZXJzaW9uVG9SR0JBKToKKyAgICAgICAgKHByb2plY3Rpb25P
cGVyYXRpb24pOgorICAgICAgICAoY3ViZU1hcEZhY2VTZWxlY3Rpb24pOgorICAgICAgICAoY3Vi
ZU1hcENvb3JkaW5hdGVUcmFuc2Zvcm1hdGlvbik6CisgICAgICAgIChjdWJlTWFwRGVyaXZhdGl2
ZVRyYW5zZm9ybWF0aW9uKToKKyAgICAgICAgKHNjYWxlRmFjdG9yT3BlcmF0aW9uKToKKyAgICAg
ICAgKGxldmVsT2ZEZXRhaWxPcGVyYXRpb24pOgorICAgICAgICAobmVhcmVzdCk6CisgICAgICAg
IChpbWFnZUxldmVsU2VsZWN0aW9uKToKKyAgICAgICAgKHN0cnFhVG9VVldBVHJhbnNmb3JtYXRp
b24pOgorICAgICAgICAocm5lKToKKyAgICAgICAgKHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25B
bmRBcnJheUxheWVyU2VsZWN0aW9uKToKKyAgICAgICAgKGludGVnZXJUZXhlbENvb3JkaW5hdGVP
cGVyYXRpb25zKToKKyAgICAgICAgKG1pcnJvcik6CisgICAgICAgICh0cmFuc2Zvcm0pOgorICAg
ICAgICAod3JhcHBpbmdPcGVyYXRpb24pOgorICAgICAgICAodGV4ZWxHYXRoZXJpbmcpOgorICAg
ICAgICAoY29tcHV0ZVRhdS5yZWR1Y2UpOgorICAgICAgICAoY29tcHV0ZVRhdS5zaG91bGRCZUJv
cmRlcik6CisgICAgICAgIChjb21wdXRlVGF1LmFjY2Vzc0NvbG9yKToKKyAgICAgICAgKGNvbXB1
dGVUYXUpOgorICAgICAgICAodGV4ZWxGaWx0ZXJpbmcpOgorICAgICAgICAoc2FtcGxlVGV4dHVy
ZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAx
OC0wOS0wMSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2Nv
YV0gQ3Jhc2ggdXNpbmcgS1ZPIGZvciAnc2VydmVyVHJ1c3QnIHByb3BlcnR5IG9mIFdLV2ViVmll
dyAtICJ0aGlzIGNsYXNzIGlzIG5vdCBrZXkgdmFsdWUgY29kaW5nLWNvbXBsaWFudCBmb3IgdGhl
IGtleSBzZXJ2ZXJUcnVzdCIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0FsbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwppbmRleCA5
YzJhMzcxNTBjMWU5NzZiOTI2Y2ZiZWUyMzQzNzUyMGE4ZGU0YTQ3Li45MGZjODQxM2E2NTEyMjQ0
NmJmMDFmZDk2N2RkNjUxMzlhMGY4N2U5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9BbGwuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxs
LmpzCkBAIC01MSw2ICs1MSw3IEBAIGxvYWQoIkJ1aWx0aW5WZWN0b3JHZXR0ZXIuanMiKTsKIGxv
YWQoIkJ1aWx0aW5WZWN0b3JTZXR0ZXIuanMiKTsKIGxvYWQoIkNhbGxFeHByZXNzaW9uLmpzIik7
CiBsb2FkKCJDYWxsRnVuY3Rpb24uanMiKTsKK2xvYWQoIkNhc3RzLmpzIik7CiBsb2FkKCJDaGVj
ay5qcyIpOwogbG9hZCgiQ2hlY2tMaXRlcmFsVHlwZXMuanMiKTsKIGxvYWQoIkNoZWNrTG9vcHMu
anMiKTsKQEAgLTEzOCw2ICsxMzksNyBAQCBsb2FkKCJSZXNvbHZlVHlwZURlZnMuanMiKTsKIGxv
YWQoIlJldHVybi5qcyIpOwogbG9hZCgiUmV0dXJuQ2hlY2tlci5qcyIpOwogbG9hZCgiUmV0dXJu
RXhjZXB0aW9uLmpzIik7Citsb2FkKCJTYW1wbGVyLmpzIik7CiBsb2FkKCJTdGFuZGFyZExpYnJh
cnkuanMiKTsKIGxvYWQoIlN0YXRlbWVudENsb25lci5qcyIpOwogbG9hZCgiU3RydWN0TGF5b3V0
QnVpbGRlci5qcyIpOwpAQCAtMTUwLDYgKzE1Miw4IEBAIGxvYWQoIlN5bnRoZXNpemVTdHJ1Y3RB
Y2Nlc3NvcnMuanMiKTsKIGxvYWQoIlN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5q
cyIpOwogbG9hZCgiU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIik7CiBs
b2FkKCJUZXJuYXJ5RXhwcmVzc2lvbi5qcyIpOworbG9hZCgiVGV4dHVyZS5qcyIpOworbG9hZCgi
VGV4dHVyZU9wZXJhdGlvbnMuanMiKTsKIGxvYWQoIlRyYXBTdGF0ZW1lbnQuanMiKTsKIGxvYWQo
IlR5cGVEZWYuanMiKTsKIGxvYWQoIlR5cGVEZWZSZXNvbHZlci5qcyIpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FzdHMuanMgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9DYXN0cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hY2JiMmVhMDI4NTM1YjQ2NzA0MjMw
OTdmN2E1YjU3Y2FmNmI4YjFjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvQ2FzdHMuanMKQEAgLTAsMCArMSwxMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKyJ1c2Ugc3RyaWN0IjsKKworZnVuY3Rpb24gY2Fz
dCh0eXBlZEFycmF5Q29uc3RydWN0b3IsIG51bWJlcikKK3sKKyAgICB2YXIgYXJyYXkgPSBuZXcg
dHlwZWRBcnJheUNvbnN0cnVjdG9yKDEpOworICAgIGFycmF5WzBdID0gbnVtYmVyOworICAgIHJl
dHVybiBhcnJheVswXTsKK30KKworZnVuY3Rpb24gYml0d2lzZUNhc3QodHlwZWRBcnJheUNvbnN0
cnVjdG9yMSwgdHlwZWRBcnJheUNvbnN0cnVjdG9yMiwgdmFsdWUpCit7CisgICAgbGV0IHR5cGVk
QXJyYXkxID0gbmV3IHR5cGVkQXJyYXlDb25zdHJ1Y3RvcjEoMSk7CisgICAgbGV0IHR5cGVkQXJy
YXkyID0gbmV3IHR5cGVkQXJyYXlDb25zdHJ1Y3RvcjIodHlwZWRBcnJheTEuYnVmZmVyKTsKKyAg
ICB0eXBlZEFycmF5MVswXSA9IHZhbHVlOworICAgIHJldHVybiB0eXBlZEFycmF5MlswXTsKK30K
KworZnVuY3Rpb24gY2FzdFRvVWNoYXIobnVtYmVyKQoreworICAgIHJldHVybiBudW1iZXIgJiAw
eEZGOworfQorCitmdW5jdGlvbiBjYXN0VG9Vc2hvcnQobnVtYmVyKQoreworICAgIHJldHVybiBu
dW1iZXIgJiAweEZGRkY7Cit9CisKK2Z1bmN0aW9uIGNhc3RUb1VpbnQobnVtYmVyKQoreworICAg
IHJldHVybiBudW1iZXIgPj4+IDA7Cit9CisKK2Z1bmN0aW9uIGNhc3RUb0NoYXIobnVtYmVyKQor
eworICAgIHJldHVybiBjYXN0KEludDhBcnJheSwgbnVtYmVyKTsKK30KKworZnVuY3Rpb24gY2Fz
dFRvU2hvcnQobnVtYmVyKQoreworICAgIHJldHVybiBjYXN0KEludDE2QXJyYXksIG51bWJlcik7
Cit9CisKK2Z1bmN0aW9uIGNhc3RUb0ludChudW1iZXIpCit7CisgICAgcmV0dXJuIG51bWJlciB8
IDA7Cit9CisKK2Z1bmN0aW9uIGNhc3RUb0hhbGYobnVtYmVyKQoreworICAgIC8vIEZJWE1FOiBN
YWtlIHRoaXMgbWF0aCBvYmV5IElFRUUgNzU0LgorICAgIGlmIChOdW1iZXIuaXNOYU4obnVtYmVy
KSkKKyAgICAgICByZXR1cm4gbnVtYmVyCisgICAgaWYgKG51bWJlciA+IDY1NTA0KQorICAgICAg
ICByZXR1cm4gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOworICAgIGlmIChudW1iZXIgPCAtNjU1
MDQpCisgICAgICAgIHJldHVybiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7CisgICAgaWYgKG51
bWJlciA+IDAgJiYgbnVtYmVyIDwgTWF0aC5wb3coMiwgLTI0KSkKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgaWYgKG51bWJlciA8IDAgJiYgbnVtYmVyID4gLU1hdGgucG93KDIsIC0yNCkpCisgICAg
ICAgIHJldHVybiAtMDsKKyAgICBsZXQgZG91YmxlQXJyYXkgPSBuZXcgRmxvYXQ2NEFycmF5KDEp
OworICAgIGxldCB1aW50QXJyYXkgPSBuZXcgVWludDhBcnJheShkb3VibGVBcnJheS5idWZmZXIp
OworICAgIGRvdWJsZUFycmF5WzBdID0gbnVtYmVyOworICAgIGxldCBzaWduID0gdWludEFycmF5
WzddICYgMHg4MDsKKyAgICBsZXQgZXhwb25lbnQgPSAoKHVpbnRBcnJheVs3XSAmIDB4N2YpIDw8
IDQpIHwgKCh1aW50QXJyYXlbNl0gJiAweGYwKSA+Pj4gNCk7CisgICAgbGV0IHNpZ25pZmljYW5k
ID0gKCh1aW50QXJyYXlbNl0gJiAweDBmKSA8PCA2KSB8ICgodWludEFycmF5WzVdICYgMHhmYykg
Pj4+IDIpOworCisgICAgaWYgKChleHBvbmVudCAtIDEwMjMpIDwgLTE0KSB7CisgICAgICAgIGV4
cG9uZW50ID0gMDsKKyAgICAgICAgc2lnbmlmaWNhbmQgPSAoTWF0aC5hYnMobnVtYmVyKSAqIE1h
dGgucG93KDIsIDI0KSkgPj4+IDA7CisgICAgICAgIGxldCB2YWx1ZSA9IE1hdGgucG93KDIsIC0x
NCkgKiBzaWduaWZpY2FuZCAvIDEwMjQ7CisgICAgICAgIGlmIChzaWduICE9IDApCisgICAgICAg
ICAgICB2YWx1ZSAqPSAtMTsKKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKworICAgIGRv
dWJsZUFycmF5WzBdID0gMDsKKworICAgIHVpbnRBcnJheVs3XSB8PSBzaWduOworICAgIHVpbnRB
cnJheVs3XSB8PSAoZXhwb25lbnQgPj4+IDQpOworICAgIHVpbnRBcnJheVs2XSB8PSAoKGV4cG9u
ZW50IDw8IDQpICYgMHhmMCk7CisgICAgdWludEFycmF5WzZdIHw9IChzaWduaWZpY2FuZCA+Pj4g
Nik7CisgICAgdWludEFycmF5WzVdIHw9ICgoc2lnbmlmaWNhbmQgPDwgMikgJiAweGZjKTsKKwor
ICAgIHJldHVybiBkb3VibGVBcnJheVswXTsKK30KKworZnVuY3Rpb24gY2FzdFRvRmxvYXQobnVt
YmVyKQoreworICAgIHJldHVybiBNYXRoLmZyb3VuZChudW1iZXIpOworfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMKaW5kZXggYjAwNDA2N2Y1ZWJmYjNhOGI0
YmQ5OGU0MzdhOGMwNzY4YmUyNmYxZS4uMTM3Zjk1N2ZjMDg3ZWY2NmQ4OWM4NzNkZWE0Mjk2NTBh
YTQ4Y2EzNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmlu
c2ljcy5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpz
CkBAIC00OCw2MSArNDgsNiBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CiAKLSAgICAgICAgZnVuY3Rpb24gY2FzdCh0eXBlZEFycmF5Q29u
c3RydWN0b3IsIG51bWJlcikKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIGFycmF5ID0gbmV3
IHR5cGVkQXJyYXlDb25zdHJ1Y3RvcigxKTsKLSAgICAgICAgICAgIGFycmF5WzBdID0gbnVtYmVy
OwotICAgICAgICAgICAgcmV0dXJuIGFycmF5WzBdOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVu
Y3Rpb24gYml0d2lzZUNhc3QodHlwZWRBcnJheUNvbnN0cnVjdG9yMSwgdHlwZWRBcnJheUNvbnN0
cnVjdG9yMiwgdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGxldCB0eXBlZEFycmF5MSA9
IG5ldyB0eXBlZEFycmF5Q29uc3RydWN0b3IxKDEpOwotICAgICAgICAgICAgbGV0IHR5cGVkQXJy
YXkyID0gbmV3IHR5cGVkQXJyYXlDb25zdHJ1Y3RvcjIodHlwZWRBcnJheTEuYnVmZmVyKTsKLSAg
ICAgICAgICAgIHR5cGVkQXJyYXkxWzBdID0gdmFsdWU7Ci0gICAgICAgICAgICByZXR1cm4gdHlw
ZWRBcnJheTJbMF07Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBjYXN0VG9IYWxmKG51
bWJlcikKLSAgICAgICAgewotICAgICAgICAgICAgLy8gRklYTUU6IE1ha2UgdGhpcyBtYXRoIG9i
ZXkgSUVFRSA3NTQuCi0gICAgICAgICAgICBpZiAoTnVtYmVyLmlzTmFOKG51bWJlcikpCi0gICAg
ICAgICAgICAgICByZXR1cm4gbnVtYmVyCi0gICAgICAgICAgICBpZiAobnVtYmVyID4gNjU1MDQp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE51bWJlci5QT1NJVElWRV9JTkZJTklUWTsKLSAgICAg
ICAgICAgIGlmIChudW1iZXIgPCAtNjU1MDQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE51bWJl
ci5ORUdBVElWRV9JTkZJTklUWTsKLSAgICAgICAgICAgIGlmIChudW1iZXIgPiAwICYmIG51bWJl
ciA8IE1hdGgucG93KDIsIC0yNCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAg
ICAgICBpZiAobnVtYmVyIDwgMCAmJiBudW1iZXIgPiAtTWF0aC5wb3coMiwgLTI0KSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gLTA7Ci0gICAgICAgICAgICBsZXQgZG91YmxlQXJyYXkgPSBuZXcg
RmxvYXQ2NEFycmF5KDEpOwotICAgICAgICAgICAgbGV0IHVpbnRBcnJheSA9IG5ldyBVaW50OEFy
cmF5KGRvdWJsZUFycmF5LmJ1ZmZlcik7Ci0gICAgICAgICAgICBkb3VibGVBcnJheVswXSA9IG51
bWJlcjsKLSAgICAgICAgICAgIGxldCBzaWduID0gdWludEFycmF5WzddICYgMHg4MDsKLSAgICAg
ICAgICAgIGxldCBleHBvbmVudCA9ICgodWludEFycmF5WzddICYgMHg3ZikgPDwgNCkgfCAoKHVp
bnRBcnJheVs2XSAmIDB4ZjApID4+PiA0KTsKLSAgICAgICAgICAgIGxldCBzaWduaWZpY2FuZCA9
ICgodWludEFycmF5WzZdICYgMHgwZikgPDwgNikgfCAoKHVpbnRBcnJheVs1XSAmIDB4ZmMpID4+
PiAyKTsKLQotICAgICAgICAgICAgaWYgKChleHBvbmVudCAtIDEwMjMpIDwgLTE0KSB7Ci0gICAg
ICAgICAgICAgICAgZXhwb25lbnQgPSAwOwotICAgICAgICAgICAgICAgIHNpZ25pZmljYW5kID0g
KE1hdGguYWJzKG51bWJlcikgKiBNYXRoLnBvdygyLCAyNCkpID4+PiAwOwotICAgICAgICAgICAg
ICAgIGxldCB2YWx1ZSA9IE1hdGgucG93KDIsIC0xNCkgKiBzaWduaWZpY2FuZCAvIDEwMjQ7Ci0g
ICAgICAgICAgICAgICAgaWYgKHNpZ24gIT0gMCkKLSAgICAgICAgICAgICAgICAgICAgdmFsdWUg
Kj0gLTE7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBkb3VibGVBcnJheVswXSA9IDA7Ci0KLSAgICAgICAgICAgIHVpbnRBcnJheVs3
XSB8PSBzaWduOwotICAgICAgICAgICAgdWludEFycmF5WzddIHw9IChleHBvbmVudCA+Pj4gNCk7
Ci0gICAgICAgICAgICB1aW50QXJyYXlbNl0gfD0gKChleHBvbmVudCA8PCA0KSAmIDB4ZjApOwot
ICAgICAgICAgICAgdWludEFycmF5WzZdIHw9IChzaWduaWZpY2FuZCA+Pj4gNik7Ci0gICAgICAg
ICAgICB1aW50QXJyYXlbNV0gfD0gKChzaWduaWZpY2FuZCA8PCAyKSAmIDB4ZmMpOwotCi0gICAg
ICAgICAgICByZXR1cm4gZG91YmxlQXJyYXlbMF07Ci0gICAgICAgIH0KLQogICAgICAgICB0aGlz
Ll9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIHZvaWQiLAogICAgICAgICAg
ICAgdHlwZSA9PiB7CkBAIC0xMjgsMTUgKzczLDE1IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAg
ICAgICAgICAgICAgIHR5cGUuaXNJbnQgPSB0cnVlOwogICAgICAgICAgICAgICAgIHR5cGUuaXNO
dW1iZXIgPSB0cnVlOwogICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSBmYWxzZTsKLSAg
ICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2
YWxlbnQodmFsdWUgJiAweGZmLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgdHlwZS5jYW5SZXBy
ZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KGNhc3RUb1VjaGFyKHZhbHVlKSwg
dmFsdWUpOwogICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAgICAg
dHlwZS5kZWZhdWx0VmFsdWUgPSAwOwotICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJh
bCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgdmFsdWUg
JiAweGZmLCB0eXBlKTsKLSAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFs
dWUgPT4gKHZhbHVlICsgMSkgJiAweGZmOworICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0
ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2Fz
dFRvVWNoYXIodmFsdWUpLCB0eXBlKTsKKyAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZh
bHVlID0gdmFsdWUgPT4gY2FzdFRvVWNoYXIodmFsdWUgKyAxKTsKICAgICAgICAgICAgICAgICB0
eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7CiAgICAgICAgICAgICAgICAgdHlw
ZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChv
ZmZzZXQsIDApOwotICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJh
bCA9IHZhbHVlID0+IHZhbHVlICYgMHhmZjsKLSAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZh
bHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAweGZmOworICAgICAgICAgICAg
ICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb1VjaGFy
KHZhbHVlKTsKKyAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFs
ID0gdmFsdWUgPT4gY2FzdFRvVWNoYXIodmFsdWUpOwogICAgICAgICAgICAgICAgIHR5cGUuYWxs
VmFsdWVzID0gZnVuY3Rpb24qKCkgewogICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0g
MDsgaSA8PSAweGZmOyArK2kpCiAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6
IGksIG5hbWU6IGl9OwpAQCAtMTUyLDE1ICs5NywxNSBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAg
ICAgICAgICAgICAgICAgdHlwZS5pc0ludCA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHR5cGUu
aXNOdW1iZXIgPSB0cnVlOwogICAgICAgICAgICAgICAgICB0eXBlLmlzU2lnbmVkID0gZmFsc2U7
Ci0gICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNl
RXF1aXZhbGVudCh2YWx1ZSAmIDB4ZmZmZiwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBl
LmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvVXNob3J0
KHZhbHVlKSwgdmFsdWUpOwogICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOwogICAgICAg
ICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgIHR5cGUu
Y3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9y
aWdpbiwgdmFsdWUgJiAweGZmZmYsIHR5cGUpOwotICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nl
c3NvclZhbHVlID0gdmFsdWUgPT4gKHZhbHVlICsgMSkgJiAweGZmZmY7CisgICAgICAgICAgICAg
ICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndp
dGhUeXBlKG9yaWdpbiwgY2FzdFRvVXNob3J0KHZhbHVlKSwgdHlwZSk7CisgICAgICAgICAgICAg
ICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0VG9Vc2hvcnQodmFsdWUgKyAx
KTsKICAgICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNFcXVhbCA9IChhLCBiKSA9PiBhID09PSBi
OwogICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwg
b2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7Ci0gICAgICAgICAgICAgICAgIHR5cGUu
Zm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlICYgMHhmZmZmOwotICAg
ICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4g
dmFsdWUgJiAweGZmZmY7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50
TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb1VzaG9ydCh2YWx1ZSk7CisgICAgICAgICAgICAgICAg
IHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9Vc2hvcnQo
dmFsdWUpOwogICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsK
ICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmZmZjsgKytpKQog
ICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogaSwgbmFtZTogaX07CkBAIC0x
NzUsMTUgKzEyMCwxNSBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICAgdHlw
ZS5pc0ludCA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIgPSB0cnVlOwog
ICAgICAgICAgICAgICAgICB0eXBlLmlzU2lnbmVkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAg
IHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudCh2YWx1ZSA+
Pj4gMCwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVl
ID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvVWludCh2YWx1ZSksIHZhbHVlKTsKICAgICAg
ICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKICAgICAgICAgICAgICAgICAgdHlwZS5kZWZhdWx0
VmFsdWUgPSAwOwotICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2lu
LCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIHZhbHVlID4+PiAwLCB0eXBl
KTsKLSAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+ICh2YWx1
ZSArIDEpID4+PiAwOworICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3Jp
Z2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3RUb1VpbnQodmFs
dWUpLCB0eXBlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVl
ID0+IGNhc3RUb1VpbnQodmFsdWUgKyAxKTsKICAgICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNF
cXVhbCA9IChhLCBiKSA9PiBhID09PSBiOwogICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRl
RGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7
Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVl
ID0+IHZhbHVlID4+PiAwOwotICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVp
bnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgPj4+IDA7CisgICAgICAgICAgICAgICAgIHR5cGUu
Zm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb1VpbnQodmFsdWUpOwor
ICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUg
PT4gY2FzdFRvVWludCh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0g
ZnVuY3Rpb24qKCkgewogICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0g
MHhmZmZmZmZmZjsgKytpKQogICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTog
aSwgbmFtZTogaX07CkBAIC0xOTgsMTggKzE0MywxOCBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAg
ICAgICAgICAgICAgICAgdHlwZS5pc0ludCA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHR5cGUu
aXNOdW1iZXIgPSB0cnVlOwogICAgICAgICAgICAgICAgICB0eXBlLmlzU2lnbmVkID0gdHJ1ZTsK
LSAgICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VF
cXVpdmFsZW50KGNhc3QoSW50OEFycmF5LCB2YWx1ZSksIHZhbHVlKTsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KGNhc3RU
b0NoYXIodmFsdWUpLCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CiAg
ICAgICAgICAgICAgICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAgICAgICAg
dHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5
cGUob3JpZ2luLCBjYXN0KEludDhBcnJheSwgdmFsdWUpLCB0eXBlKTsKLSAgICAgICAgICAgICAg
ICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+IGNhc3QoSW50OEFycmF5LCB2YWx1ZSAr
IDEpOworICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2luLCB2YWx1
ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3RUb0NoYXIodmFsdWUpLCB0eXBl
KTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+IGNhc3RU
b0NoYXIodmFsdWUgKyAxKTsKICAgICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNFcXVhbCA9IChh
LCBiKSA9PiBhID09PSBiOwogICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZh
bHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7Ci0gICAgICAg
ICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3Qo
SW50OEFycmF5LCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9t
VWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0KEludDhBcnJheSwgdmFsdWUpOworICAgICAgICAg
ICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9D
aGFyKHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0
ZXJhbCA9IHZhbHVlID0+IGNhc3RUb0NoYXIodmFsdWUpOwogICAgICAgICAgICAgICAgICB0eXBl
LmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsKICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0
IGkgPSAwOyBpIDw9IDB4ZmY7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2
YWx1ZSA9IGNhc3QoSW50OEFycmF5LCBpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
dmFsdWUgPSBjYXN0VG9DaGFyKGkpOwogICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2
YWx1ZTogdmFsdWUsIG5hbWU6IHZhbHVlfTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgfTsKQEAgLTIyMywxOCArMTY4LDE4IEBAIGNsYXNzIEludHJpbnNpY3Mgewog
ICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlw
ZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSB0cnVl
OwotICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lz
ZUVxdWl2YWxlbnQoY2FzdChJbnQxNkFycmF5LCB2YWx1ZSksIHZhbHVlKTsKKyAgICAgICAgICAg
ICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KGNh
c3RUb1Nob3J0KHZhbHVlKSwgdmFsdWUpOwogICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAx
OwogICAgICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAg
ICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndp
dGhUeXBlKG9yaWdpbiwgY2FzdChJbnQxNkFycmF5LCB2YWx1ZSksIHR5cGUpOwotICAgICAgICAg
ICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdChJbnQxNkFycmF5LCB2
YWx1ZSArIDEpOworICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2lu
LCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3RUb1Nob3J0KHZhbHVl
KSwgdHlwZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9
PiBjYXN0VG9TaG9ydCh2YWx1ZSArIDEpOwogICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0Vx
dWFsID0gKGEsIGIpID0+IGEgPT09IGI7CiAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVE
ZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsK
LSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUg
PT4gY2FzdChJbnQxNkFycmF5LCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0
VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0KEludDE2QXJyYXksIHZhbHVlKTsK
KyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUg
PT4gY2FzdFRvU2hvcnQodmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVl
RnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvU2hvcnQodmFsdWUpOwogICAgICAgICAg
ICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsKICAgICAgICAgICAgICAgICAg
ICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmZmZjsgKytpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IHZhbHVlID0gY2FzdChJbnQxNkFycmF5LCBpKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgdmFsdWUgPSBjYXN0VG9TaG9ydChpKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICB5aWVsZCB7dmFsdWU6IHZhbHVlLCBuYW1lOiB2YWx1ZX07CiAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH07CkBAIC0yNDgsMTggKzE5MywxOCBAQCBjbGFz
cyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICAgdHlwZS5pc0ludCA9IHRydWU7CiAgICAg
ICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIgPSB0cnVlOwogICAgICAgICAgICAgICAgICB0eXBl
LmlzU2lnbmVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2
YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVlIHwgMCwgdmFsdWUpOworICAgICAgICAg
ICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQo
Y2FzdFRvSW50KHZhbHVlKSwgdmFsdWUpOwogICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAx
OwogICAgICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAg
ICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndp
dGhUeXBlKG9yaWdpbiwgdmFsdWUgfCAwLCB0eXBlKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5z
dWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+ICh2YWx1ZSArIDEpIHwgMDsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0
aFR5cGUob3JpZ2luLCBjYXN0VG9JbnQodmFsdWUpLCB0eXBlKTsKKyAgICAgICAgICAgICAgICAg
dHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+IGNhc3RUb0ludCh2YWx1ZSArIDEpOwogICAg
ICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7CiAgICAg
ICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQp
ID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRW
YWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgfCAwOwotICAgICAgICAgICAgICAg
ICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgfCAwOwor
ICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9
PiBjYXN0VG9JbnQodmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJv
bVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvSW50KHZhbHVlKTsKICAgICAgICAgICAgICAg
ICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7CiAgICAgICAgICAgICAgICAgICAgICBm
b3IgKGxldCBpID0gMDsgaSA8PSAweGZmZmZmZmZmOyArK2kpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgdmFsdWUgPSBpIHwgMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
dmFsdWUgPSBjYXN0VG9JbnQoaSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3Zh
bHVlOiB2YWx1ZSwgbmFtZTogdmFsdWV9OwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICB9OwpAQCAtMjkyLDcgKzIzNyw3IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAg
ICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0
KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7CiAgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0
VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlOwogICAgICAgICAgICAgICAgICB0
eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWU7Ci0gICAgICAg
ICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tRmxvYXRMaXRlcmFsID0gdmFsdWUgPT4gTWF0
aC5mcm91bmQodmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUZs
b2F0TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb0Zsb2F0KHZhbHVlKTsKICAgICAgICAgICAgICB9
KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KApAQCAtMzMwLDcgKzI3NSw4IEBAIGNsYXNzIElu
dHJpbnNpY3MgewogICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIHNhbXBsZXIiLAogICAgICAg
ICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAgICAgdGhpcy5zYW1wbGVyID0gdHlwZTsKLSAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRvIHB1dCBoZXJlLgorICAg
ICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0
ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIHt9
KTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIGZvciAobGV0IHRleHR1cmVUeXBlIG9mIFsi
VGV4dHVyZTFEIiwgIlJXVGV4dHVyZTFEIiwgIlRleHR1cmUxREFycmF5IiwgIlJXVGV4dHVyZTFE
QXJyYXkiLCAiVGV4dHVyZTJEIiwgIlJXVGV4dHVyZTJEIiwgIlRleHR1cmUyREFycmF5IiwgIlJX
VGV4dHVyZTJEQXJyYXkiLCAiVGV4dHVyZTNEIiwgIlJXVGV4dHVyZTNEIiwgIlRleHR1cmVDdWJl
Il0pIHsKQEAgLTMzOSwxMiArMjg1LDE2IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9
PmAsCiAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmBdID0gdHlwZTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAg
ICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIu
c2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAg
ICBmb3IgKGxldCBpID0gMjsgaSA8PSA0OyArK2kpIHsKICAgICAgICAgICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKICAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdHlwZWRlZiAke3Rl
eHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0ke2l9PmAsCiAgICAgICAgICAgICAgICAgICAgICAg
ICB0eXBlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1cmVU
eXBlfTwke3R5cGVBcmd1bWVudH0ke2l9PmBdID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUu
cG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zm
c2V0LCB7fSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9CkBAIC0zNTYsNiArMzA2LDggQEAgY2xhc3MgSW50cmluc2ljcyB7CiAg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdHlwZWRlZiAke3RleHR1cmVUeXBlfTwke3R5cGVB
cmd1bWVudH0+YCwKICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICB0aGlzW2Ake3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YF0gPSB0eXBl
OworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+
IGJ1ZmZlci5zZXQob2Zmc2V0LCB7fSk7CiAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAg
ICAgICAgfQogICAgICAgICB9CkBAIC0zNjQsNyArMzE2LDcgQEAgY2xhc3MgSW50cmluc2ljcyB7
CiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgICAgIGBuYXRpdmUgb3Bl
cmF0b3IgdWNoYXIoJHtwcmltaXRpdmVUeXBlfSlgLAogICAgICAgICAgICAgICAgIGZ1bmMgPT4g
ewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+
IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpICYgMHhmZik7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdFRvVWNoYXIo
dmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgfQogCkBA
IC0zNzIsNyArMzI0LDcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAogICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgdXNob3J0KCR7cHJpbWl0
aXZlVHlwZX0pYCwKICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5sb2Fk
VmFsdWUoKSAmIDB4ZmZmZik7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdFRvVXNob3J0KHZhbHVlLmxvYWRWYWx1ZSgp
KSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KIApAQCAtMzgwLDcgKzMzMiw3IEBA
IGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAg
ICAgICAgICBgbmF0aXZlIG9wZXJhdG9yIHVpbnQoJHtwcmltaXRpdmVUeXBlfSlgLAogICAgICAg
ICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpID4+PiAwKTsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRy
LmJveChjYXN0VG9VaW50KHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0KIApAQCAtMzg4LDcgKzM0MCw3IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICAgICBgbmF0aXZlIG9wZXJhdG9y
IGNoYXIoJHtwcmltaXRpdmVUeXBlfSlgLAogICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIu
Ym94KGNhc3QoSW50OEFycmF5LCB2YWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb0No
YXIodmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgfQog
CkBAIC0zOTYsNyArMzQ4LDcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAogICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3Igc2hvcnQoJHtwcmlt
aXRpdmVUeXBlfSlgLAogICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3QoSW50
MTZBcnJheSwgdmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9TaG9ydCh2YWx1ZS5s
b2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKQEAgLTQyMCw3
ICszNzIsNyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CiAgICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciBmbG9hdCgke3ByaW1pdGl2ZVR5cGV9
KWAsCiAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goTWF0aC5mcm91bmQodmFsdWUu
bG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9GbG9hdCh2YWx1ZS5sb2FkVmFsdWUoKSkpOwog
ICAgICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKQEAgLTQ4NCwyOTIgKzQzNiwyOTIgQEAg
Y2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvci0oaW50
KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KCgtdmFs
dWUubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RU
b0ludCgtdmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yLShmbG9hdCki
LAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZy
b3VuZCgtdmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
Y2FzdFRvRmxvYXQoLXZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAg
ICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3IrKGlu
dCxpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkgKyByaWdo
dC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKICAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yLShpbnQsaW50KSIsCiAgICAgICAg
ICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFts
ZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRW
YWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpKTsK
ICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAi
bmF0aXZlIGludCBvcGVyYXRvciooaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9Pgot
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0Lmxv
YWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQo
bGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsK
IAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0
b3IvKGludCxpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsK
KyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkg
LyByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5f
bWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcisodWludCx1aW50KSIs
CiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChs
ZWZ0LmxvYWRWYWx1ZSgpICsgcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWludChsZWZ0LmxvYWRWYWx1ZSgpICsgcmlnaHQubG9h
ZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAg
ICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3ItKHVpbnQsdWludCkiLAogICAgICAgICAg
ICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFs
dWUoKSAtIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSAtIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAg
Im5hdGl2ZSB1aW50IG9wZXJhdG9yKih1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4g
ewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKiByaWdo
dC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0
VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAg
ICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWlu
dCBvcGVyYXRvci8odWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAg
ICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9hZFZhbHVl
KCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWludChsZWZ0
LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9y
KyhmbG9hdCxmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAg
ICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpICsgcmlnaHQubG9hZFZh
bHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQobGVmdC5s
b2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAg
ICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvci0o
ZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3goTWF0aC5mcm91bmQobGVmdC5sb2FkVmFsdWUoKSAtIHJpZ2h0LmxvYWRWYWx1
ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KGxlZnQubG9h
ZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3IqKGZs
b2F0LGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5sb2FkVmFsdWUo
KSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChsZWZ0LmxvYWRW
YWx1ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAg
IHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yLyhmbG9h
dCxmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9hZFZhbHVlKCkp
KTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQobGVmdC5sb2FkVmFs
dWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0
aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3ImKGludCxpbnQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
KGxlZnQubG9hZFZhbHVlKCkgJiByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkgJiByaWdodC5sb2Fk
VmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAg
ICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yfChpbnQsaW50KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCBy
aWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgp
IHwgcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KGNhc3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgpIHwgcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAg
ICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZl
IGludCBvcGVyYXRvcl4oaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSBeIHJpZ2h0LmxvYWRWYWx1
ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5s
b2FkVmFsdWUoKSBeIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAg
ICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3J+KGlu
dCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCgofnZhbHVlLmxvYWRWYWx1ZSgpKSB8IDAp
OworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0
ci5ib3goY2FzdFRvSW50KH52YWx1ZS5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAK
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9y
PDwoaW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgp
IDw8IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlz
Ll9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3I+PihpbnQsdWludCki
LAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgo
bGVmdC5sb2FkVmFsdWUoKSA+PiByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkgPj4gcmlnaHQubG9h
ZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAg
ICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3ImKHVpbnQsdWludCkiLAogICAgICAgICAg
ICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFs
dWUoKSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAg
Im5hdGl2ZSB1aW50IG9wZXJhdG9yfCh1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4g
ewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgfCByaWdo
dC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0
VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgfCByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAg
ICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWlu
dCBvcGVyYXRvcl4odWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAg
ICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmlnaHQubG9hZFZhbHVl
KCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWludChsZWZ0
LmxvYWRWYWx1ZSgpIF4gcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3J+
KHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goKH52YWx1ZS5sb2FkVmFsdWUoKSkg
Pj4+IDApOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkg
PT4gRVB0ci5ib3goY2FzdFRvVWludCh+dmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAg
IH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVpbnQg
b3BlcmF0b3I8PCh1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZhbHVl
KCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWludChsZWZ0
LmxvYWRWYWx1ZSgpIDw8IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAog
ICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9y
Pj4odWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpID4+PiByaWdodC5sb2FkVmFsdWUoKSkgPj4+
IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxlZnQubG9hZFZh
bHVlKCkgPj4+IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBjb3MoZmxvYXQpIiwK
ICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91
bmQoTWF0aC5jb3ModmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguY29zKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAg
ICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUg
ZmxvYXQgc2luKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguc2luKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLnNpbih2YWx1ZS5sb2Fk
VmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAg
ICAgICAgICAgICAibmF0aXZlIGZsb2F0IHRhbihmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9
PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9Pgot
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnRhbih2YWx1ZS5s
b2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQo
TWF0aC50YW4odmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBhY29zKGZsb2F0KSIs
CiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJv
dW5kKE1hdGguYWNvcyh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5hY29zKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAg
ICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRp
dmUgZmxvYXQgYXNpbihmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAg
ICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmFzaW4odmFsdWUubG9hZFZhbHVlKCkpKSk7
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguYXNpbih2YWx1
ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGF0YW4oZmxvYXQpIiwKICAgICAgICAgICAg
IGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVl
XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5hdGFu
KHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0
VG9GbG9hdChNYXRoLmF0YW4odmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsK
IAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBjb3No
KGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KE1hdGguZnJvdW5kKE1hdGguY29zaCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5jb3NoKHZhbHVlLmxvYWRWYWx1ZSgp
KSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAg
ICAgICJuYXRpdmUgZmxvYXQgc2luaChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnNpbmgodmFsdWUubG9hZFZh
bHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgu
c2luaCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IHRhbmgoZmxvYXQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQo
TWF0aC50YW5oKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRy
LmJveChjYXN0VG9GbG9hdChNYXRoLnRhbmgodmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAg
ICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBm
bG9hdCBjZWlsKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguY2VpbCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAg
ICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5jZWlsKHZhbHVlLmxv
YWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgK
ICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgZXhwKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5j
ID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+
Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguZXhwKHZhbHVl
LmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9h
dChNYXRoLmV4cCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGZsb29yKGZsb2F0
KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGgu
ZnJvdW5kKE1hdGguZmxvb3IodmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguZmxvb3IodmFsdWUubG9hZFZhbHVlKCkpKSk7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAg
Im5hdGl2ZSBmbG9hdCBsb2coZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5sb2codmFsdWUubG9hZFZhbHVlKCkp
KSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgubG9nKHZh
bHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFw
LnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgcm91bmQoZmxvYXQpIiwKICAgICAgICAg
ICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3Zh
bHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5y
b3VuZCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
Y2FzdFRvRmxvYXQoTWF0aC5yb3VuZCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAg
IH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0
IHNxcnQoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goTWF0aC5mcm91bmQoTWF0aC5zcXJ0KHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLnNxcnQodmFsdWUubG9hZFZh
bHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAg
ICAgICAgICAgIm5hdGl2ZSBmbG9hdCB0cnVuYyhmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9
PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9Pgot
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnRydW5jKHZhbHVl
LmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9h
dChNYXRoLnRydW5jKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKQEAgLTc4OCw3ICs3NDAsNyBAQCBjbGFzcyBJbnRyaW5zaWNz
IHsKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgcG93KGZsb2F0LGZsb2F0KSIsCiAgICAgICAg
ICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFts
ZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5k
KE1hdGgucG93KGxlZnQubG9hZFZhbHVlKCksIHJpZ2h0LmxvYWRWYWx1ZSgpKSkpOworICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLnBvdyhsZWZ0LmxvYWRWYWx1
ZSgpLCByaWdodC5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCkBAIC04MzIsNyArNzg0LDcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAg
ICAgICAgICAibmF0aXZlIGZsb2F0IGF0YW4yKGZsb2F0LGZsb2F0KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCBy
aWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgu
YXRhbjIobGVmdC5sb2FkVmFsdWUoKSwgcmlnaHQubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguYXRhbjIobGVmdC5sb2FkVmFsdWUo
KSwgcmlnaHQubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlz
Ll9tYXAuc2V0KApAQCAtOTE0LDYgKzg2NiwxNTA0IEBAIGNsYXNzIEludHJpbnNpY3MgewogCiAg
ICAgICAgIGZvciAobGV0IHNldHRlciBvZiBCdWlsdGluTWF0cml4U2V0dGVyLmZ1bmN0aW9ucygp
KQogICAgICAgICAgICAgdGhpcy5fbWFwLnNldChzZXR0ZXIudG9TdHJpbmcoKSwgZnVuYyA9PiBz
ZXR0ZXIuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihmdW5jKSk7CisKKyAgICAgICAgZnVuY3Rp
b24gY2hlY2tVbmRlZmluZWQob3JpZ2luLCBleHBsYW5hdGlvbiwgdmFsdWUpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICAgICAgdGhy
b3cgbmV3IFdUcmFwRXJyb3IoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIp
OworICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gY2hlY2tGYWxzZShvcmlnaW4sIGV4cGxhbmF0aW9uLCB2YWx1ZSkKKyAgICAgICAgeworICAg
ICAgICAgICAgaWYgKHZhbHVlID09IGZhbHNlKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBX
VHJhcEVycm9yKCJbU3RvcmVdIiwgIlRleHR1cmUgc3RvcmUgb3V0IG9mIGJvdW5kcyIpOworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gYm94VmVjdG9yKGEpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGlmIChhIGluc3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAgICAgICAgICBsZXQgcmVz
dWx0ID0gbmV3IEVQdHIobmV3IEVCdWZmZXIoYS5sZW5ndGgpLCAwKTsKKyAgICAgICAgICAgICAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgICAg
IHJlc3VsdC5zZXQoaSwgYVtpXSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChhKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHVuYm94VmVjdG9yKGEsIGxlbmd0aCkKKyAgICAg
ICAgeworICAgICAgICAgICAgaWYgKGxlbmd0aCAhPSAiIikgeworICAgICAgICAgICAgICAgIGxl
bmd0aCA9IE51bWJlci5wYXJzZUludChsZW5ndGgpOworICAgICAgICAgICAgICAgIGxldCByZXN1
bHQgPSBbXTsKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgKytp
KQorICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChhLmdldChpKSk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAg
IHJldHVybiBhLmxvYWRWYWx1ZSgpOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgdHlw
ZSBvZiBbInVjaGFyIiwgInVzaG9ydCIsICJ1aW50IiwgImNoYXIiLCAic2hvcnQiLCAiaW50Iiwg
ImhhbGYiLCAiZmxvYXQiXSkgeworICAgICAgICAgICAgZm9yICh2YXIgbGVuZ3RoVmFyaWFibGUg
b2YgW2BgLCBgMmAsIGAzYCwgYDRgXSkgeworICAgICAgICAgICAgICAgIGxldCBsZW5ndGggPSBs
ZW5ndGhWYXJpYWJsZTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxRDwke3R5
cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5sb2FkVmFsdWUo
KSwgMCwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVl
KCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0
dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdCBsb2NhdGlvbixpbnQgb2Zmc2V0
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlv
bkFycmF5ID0gW2xvY2F0aW9uLmxvYWRWYWx1ZSgpLCAwLCAwLCAxLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQubG9hZFZhbHVlKCksIDAs
IDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxl
VGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlv
bkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMUQ8JHt0eXBl
fSR7bGVuZ3RofT4saW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0
IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRp
b24uZ2V0KDEpLCAwLCAwLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2Fk
KFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixpbnQyIGxvY2F0aW9uLGludCBvZmZzZXQpYCwK
KyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tV
bmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUu
bG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDEpLCAwLCAwLCBsb2Nh
dGlvbi5nZXQoMCkgKyBvZmZzZXQubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRl
eHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0
aCx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVl
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENv
dW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJv
cigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwg
b2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBs
ZShUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlv
bilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkg
PSBbbG9jYXRpb24uZ2V0KDApLCAwLCAwLCAxLCBsb2NhdGlvbi5nZXQoMSldOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3Ro
fT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5n
ZXQoMCksIDAsIDAsIDEsIGxvY2F0aW9uLmdldCgxKV07CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmxvYWRWYWx1ZSgpLCAwLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVs
dGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVu
Z3RofT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
b3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJv
dW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDIp
LCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IExvYWQoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4saW50MyBsb2NhdGlvbixp
bnQgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9j
YXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94
VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3Vu
ZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgyKSwg
bG9jYXRpb24uZ2V0KDEpLCAwLCAwLCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZzZXQubG9hZFZhbHVl
KCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBu
YXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+
LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBFbGVtZW50cyx1
aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgZWxlbWVudHMsIG51bWJlck9mTGV2ZWxzXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1
ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxv
YWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgu
bGV2ZWxDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdU
cmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlw
IGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxl
dmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMkQ8JHt0eXBl
fSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9j
YXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5s
b2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2Ft
cGxlKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixp
bnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwg
MSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zm
c2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVu
Z3RofSBTYW1wbGVCaWFzKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0
MiBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdl
dCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVl
KCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgYmlhcy5sb2FkVmFsdWUoKSwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1w
bGVCaWFzKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlv
bixmbG9hdCBCaWFzLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhcywgb2Zmc2V0XSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwg
bG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVs
dGFBcnJheSwgYmlhcy5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVHcmFkKFRleHR1cmUyRDwke3R5
cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBE
RFkpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uLCBkZHgsIGRkeV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9j
YXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCks
IGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJh
eSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwg
c2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IGRkeEFycmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IFNhbXBsZUdyYWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQy
IGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSxpbnQyIG9mZnNldClgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJy
YXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0
KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5
LmdldCgwKSwgZGR5LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1
cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRh
QXJyYXksIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0
aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IExPRClgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQo
MCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IFNhbXBsZUxldmVsKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MiBsb2NhdGlvbixmbG9hdCBMT0QsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2QsIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgx
KSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1w
bGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0
aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxv
ZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyRDwke3R5
cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlcihUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIg
bG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdh
dGhlclJlZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRp
b24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEPCR7dHlwZX0k
e2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4
dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkQ8JHt0eXBlfSR7bGVu
Z3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJHcmVlbihUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9j
YXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9u
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50
IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkQ8JHt0eXBlfSR7
bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0
dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9JHtsZW5n
dGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdh
dGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3Ro
fSBMb2FkKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xv
YWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5l
bGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9j
YXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMkQ8JHt0eXBlfSR7
bGVuZ3RofT4saW50MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwg
IlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50
Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSArIG9mZnNldC5n
ZXQoMSksIGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5nZXQoMCkpKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNp
b25zKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVh
ZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylg
LAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRo
LCBoZWlnaHQsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3VudCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJS
ZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbCht
aXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBs
ZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwg
MSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ym94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxl
KFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
LGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAw
LCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBk
ZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFy
cmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlQmlhcyhUZXh0dXJlMkRBcnJheTwke3R5cGV9JHts
ZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5k
ZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJEQXJyYXk8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlhcyxpbnQy
IG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb24sIGJpYXMsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
MCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
ZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVy
ZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFB
cnJheSwgYmlhcy5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVHcmFkKFRleHR1cmUyREFycmF5PCR7
dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQy
IEREWSlgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBs
b2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBs
b2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJh
eSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5LmdldCgwKSwgZGR5LmdldCgxKSwgMF07CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1
cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVHcmFkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xl
bmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSxpbnQy
IG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb24sIGRkeCwgZGR5LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQo
MSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQu
Z2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCBkZHhB
cnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBT
YW1wbGVMZXZlbChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2RdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQo
MSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBs
ZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHts
ZW5ndGh9IFNhbXBsZUxldmVsKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBs
ZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IExPRCxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQo
MCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxv
YWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
cihUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlMkRBcnJheTwke3R5cGV9
JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNl
dF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRl
eHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUyREFycmF5PCR7dHlwZX0k
e2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyUmVkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJHcmVlbihUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklY
TUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1
cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1
cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1
cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHts
ZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1
cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7
bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJBbHBoYShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
bihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGludDQgbG9j
YXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNr
VW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJl
LmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0
KDIpLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IExvYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4saW50NCBsb2NhdGlvbixp
bnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxv
Y2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91
bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMyks
IGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9j
YXRpb24uZ2V0KDApICsgb2Zmc2V0LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVy
ZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lk
dGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRWxlbWVudHMsdWludCogdGhyZWFk
IE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHMsIG51bWJlck9mTGV2ZWxzXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRW
YWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2
ZWxDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFw
RXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxl
dmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5
ZXJDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxz
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRp
b24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94
VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFs
dWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRl
eHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9m
ZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9j
YXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24u
Z2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJh
eSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCBvZmZzZXQuZ2V0KDIpXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVs
dGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+
LGludDQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVj
dG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMi
LCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgzKSwg
bG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LGludDQgbG9jYXRp
b24saW50MyBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9m
IGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24u
Z2V0KDMpLCBsb2NhdGlvbi5nZXQoMikgKyBvZmZzZXQuZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSkg
KyBvZmZzZXQuZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZzZXQuZ2V0KDApKSkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQg
R2V0RGltZW5zaW9ucyhUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1
aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRGVwdGgs
dWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIG51bWJlck9mTGV2
ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxv
YWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxl
dmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+
PSB0ZXgubGV2ZWxDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cg
bmV3IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3Rh
bnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
ZXB0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguZGVwdGhBdExldmVsKG1pcElE
KSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5j
b3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0
ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENv
dW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IH0pOworCisgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZUN1YmU8JHt0eXBlfSR7
bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgY3ViZW1hcCBzYW1wbGluZworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gU2FtcGxlQmlhcyhUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGN1YmVtYXAgc2FtcGxpbmcKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24sZmxvYXQzIEREWCxmbG9hdDMgRERZKWAsCisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBjdWJlbWFw
IHNhbXBsaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlQ3ViZTwke3R5cGV9
JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2RdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBjdWJlbWFw
IHNhbXBsaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVk
KFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRl
eHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZUN1YmU8JHt0eXBlfSR7
bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJCbHVlKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog
SW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZUN1
YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRo
ZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sdWlu
dCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0
aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4LmxheWVyQ291bnQgIT0gNikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDdWJlIHRl
eHR1cmUgZG9lc24ndCBoYXZlIDYgZmFjZXMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBm
cm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWln
aHRBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRo
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwg
MSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVu
c2lvbnMoUldUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sdWludCogdGhyZWFkIFdpZHRoKWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aF0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4
dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LGZsb2F0KiB0aHJlYWQgV2lkdGgpYCwKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleHR1cmUu
bG9hZFZhbHVlKCkud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoUldUZXh0dXJlMUQ8
JHt0eXBlfSR7bGVuZ3RofT4saW50IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVh
ZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCAw
LCAwLCAwLCBsb2NhdGlvbi5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTFEPCR7
dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0aH0sdWludCBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0ZhbHNlKCJbU3RvcmVdIiwgIlRleHR1cmUg
d3JpdGUgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNr
ZWQoMCwgMCwgMCwgMCwgbG9jYXRpb24ubG9hZFZhbHVlKCksIHVuYm94VmVjdG9yKHZhbHVlLCBs
ZW5ndGgpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IH0pOworCisgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
ICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7
bGVuZ3RofT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBFbGVtZW50cylgLAorICAg
ICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGVsZW1lbnRzXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
dm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sZmxv
YXQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBlbGVtZW50c10pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRo
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xl
bmd0aH0gTG9hZChSV1RleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGludDIgbG9jYXRp
b24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5k
ZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxv
YWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgMCwgbG9jYXRp
b24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9
Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBvdXQgb2Yg
Ym91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5n
ZXQoMSksIDAsIDAsIDAsIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0b3IodmFsdWUsIGxlbmd0
aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAg
YG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4s
dWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQpYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHRdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRl
eC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMo
UldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9hdCog
dGhyZWFkIEhlaWdodClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
d2lkdGgsIGhlaWdodF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0g
dGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRl
eC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChSV1RleHR1cmUyRDwke3R5cGV9JHts
ZW5ndGh9PixpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2Yg
Ym91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCAwLCAwLCBsb2Nh
dGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTJEPCR7
dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0aH0sdWludDIgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0dXJl
IHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVj
a2VkKDAsIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApLCB1bmJveFZlY3Rv
cih2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUyREFycmF5
PCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0
LHVpbnQqIHRocmVhZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxh
eWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0
aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0
aH0+LGZsb2F0KiB0aHJlYWQgV2lkdGgsZmxvYXQqIHRocmVhZCBIZWlnaHQsZmxvYXQqIHRocmVh
ZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lk
dGgsIGhlaWdodCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAx
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX0ke2xlbmd0aH0gTG9hZChSV1RleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGludDMg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNo
ZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0
dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgyKSwgMCwgMCwgbG9j
YXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUyREFy
cmF5PCR7dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0aH0sdWludDMgbG9jYXRpb24pYCwK
KyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIsICJU
ZXh0dXJlIHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1l
bnRDaGVja2VkKGxvY2F0aW9uLmdldCgyKSwgMCwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlv
bi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVlLCBsZW5ndGgpKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNp
b25zKFJXVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50
KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBEZXB0aClgLAorICAgICAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZGVwdGhdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGVwdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LmRlcHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lk
dGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAg
YG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4s
ZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhyZWFkIEhlaWdodCxmbG9hdCogdGhyZWFkIERl
cHRoKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVp
Z2h0LCBkZXB0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4
dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aC5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguZGVwdGgpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmhl
aWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgp
LmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChS
V1RleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwg
IlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50
Q2hlY2tlZCgwLCAwLCBsb2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24u
Z2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sJHt0eXBl
fSR7bGVuZ3RofSx1aW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGVja0ZhbHNlKCJbU3RvcmVdIiwgIlRleHR1cmUgd3JpdGUgb3V0IG9mIGJvdW5kcyIs
IHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQoMCwgMCwgbG9jYXRpb24uZ2V0
KDIpLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0b3IodmFsdWUs
IGxlbmd0aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCB0eXBl
IG9mIFsiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwg
MF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRp
b24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCks
IG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVl
KCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Pixz
YW1wbGVyLGZsb2F0MiBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSlgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24u
Z2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCkp
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxl
Q21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLCR7dHlw
ZX0gQ29tcGFyZVZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwg
bG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBk
ZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9h
ZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXks
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZhbHVl
LmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVy
LGZsb2F0MiBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSlgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzCisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhU
ZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbiwke3R5cGV9IENv
bXBhcmVWYWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyRDwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBs
b2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9h
ZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgYmlhcy5sb2FkVmFsdWUoKSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgQmlhcyxpbnQyIG9mZnNl
dClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
Ymlhcywgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJy
YXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0
LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNh
bXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9j
YXRpb25BcnJheSwgZGVsdGFBcnJheSwgYmlhcy5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeV0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdl
dCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0
ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVm
aW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBT
YW1wbGVHcmFkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9u
LGZsb2F0MiBERFgsZmxvYXQyIEREWSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9m
ZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rv
cihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCks
IGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEp
LCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2Ft
cGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxv
ZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNh
bXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IExPRCxpbnQyIG9mZnNldClgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5n
ZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0
dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0
YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCks
IHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJl
IGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9u
LGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog
SW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog
SW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4
dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQp
YCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9m
ZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4
dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRl
eHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQy
IGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAv
LyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlRGVwdGgyRDwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24g
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmVEZXB0aDJE
PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVy
aW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxv
YXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEPCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFsdWUsaW50MiBv
ZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIGNvbXBhcmVWYWx1ZSwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aDJEPCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFsdWUpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVW
YWx1ZV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4
dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MiBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9m
ZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4
dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFsdWUpYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZV0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEdy
ZWVuKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0
IGNvbXBhcmVfdmFsdWUsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZSwgb2Zmc2V0XSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21w
Qmx1ZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9h
dCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAv
LyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aDJE
PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFsdWUsaW50
MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIGNvbXBhcmVWYWx1ZSwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wQWxwaGEoVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29t
cGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyQ21wQWxwaGEoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZh
bHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4saW50MyBsb2NhdGlvbilg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIs
ICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVu
dENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDIpLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9u
LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX0gTG9hZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixpbnQzIGxvY2F0aW9uLGludDIgb2Zmc2V0
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVk
KCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1
ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEp
ICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0LmdldCgwKSkpKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhU
ZXh0dXJlRGVwdGgyRDwke3R5cGV9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1
aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgbnVtYmVy
T2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5s
b2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVs
LmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5s
ZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVy
cm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZl
bCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0
ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgbnVt
YmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQp
LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5n
ZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShU
ZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJh
eSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0
KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5n
ZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9h
ZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyREFycmF5
PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlKWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21w
YXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9
IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIp
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVy
ZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
Y29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlLGludDIgb2Zmc2V0
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBj
b21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2Nh
dGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBb
b2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCkp
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxl
Q21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24sJHt0eXBlfSBDb21wYXJlVmFsdWUpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZV0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURl
cHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbiwke3R5cGV9IENvbXBh
cmVWYWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyREFycmF5
PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCks
IGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1
ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIGJpYXMu
bG9hZFZhbHVlKCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkp
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVC
aWFzKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24s
ZmxvYXQgQmlhcyxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhcywgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQo
MSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
ZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5
LCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0g
U2FtcGxlR3JhZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdl
dCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0
dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1w
bGVHcmFkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24sZmxvYXQyIEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeSwgb2Zmc2V0XSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0
KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5LmdldCgwKSwgZGR5
LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtv
ZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1w
bGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIGRk
eEFycmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRo
MkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdl
dCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9h
ZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmlu
ZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlTGV2ZWwoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbixmbG9hdCBMT0QsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFy
cmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVu
ZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9j
YXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1
cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBs
b2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8
JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdh
dGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBs
b2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4
dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZURlcHRo
MkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVy
ZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNl
dClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
b2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0
ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcChUZXh0
dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IGNv
bXBhcmVfdmFsdWUpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIGNvbXBhcmVWYWx1ZV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFsdWUsaW50MiBv
ZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIGNvbXBhcmVWYWx1ZSwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aDJEQXJy
YXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29t
cGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFy
ZVZhbHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1w
bGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBHcmVlbihUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlw
ZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFsdWUpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1
ZV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVy
ZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX00IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVl
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50
IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhl
cmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyQ21wQmx1ZShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFsdWUsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZSwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJl
IGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyQ21wQWxwaGEoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBB
bHBoYShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
LGZsb2F0IGNvbXBhcmVfdmFsdWUsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZSwgb2Zmc2V0XSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhl
cmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2Fk
KFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4saW50NCBsb2NhdGlvbilgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJl
YWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9j
YXRpb24uZ2V0KDMpLCBsb2NhdGlvbi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRp
b24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSBMb2FkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4saW50NCBsb2NhdGlvbixpbnQy
IG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1Vu
ZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5s
b2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMyksIGxvY2F0aW9uLmdldCgy
KSwgMCwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApICsg
b2Zmc2V0LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
IHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHVpbnQgTWlw
TGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFk
IEVsZW1lbnRzLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHMsIG51bWJl
ck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUu
bG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZl
bC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgu
bGV2ZWxDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBF
cnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2
ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHRBdExldmVsKG1pcElEKSksIDEpOworICAg
ICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVs
ZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5
RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgY3ViZW1hcCBzYW1wbGluZworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSlgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVl
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBjdWJlbWFw
IHNhbXBsaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxv
YXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGhD
dWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGN1YmVtYXAgc2FtcGxp
bmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxl
R3JhZChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZs
b2F0MiBERFgsZmxvYXQyIEREWSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAv
LyBGSVhNRTogSW1wbGVtZW50IGN1YmVtYXAgc2FtcGxpbmcKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoQ3ViZTwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgY3ViZW1hcCBzYW1wbGluZworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1
cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4
dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVu
KFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5n
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJC
bHVlKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVy
aW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJBbHBoYShUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdh
dGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyQ21wKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wUmVkKFRleHR1cmVE
ZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92
YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IElt
cGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wR3JlZW4oVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUg
Z2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wQWxwaGEo
VGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBj
b21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBG
SVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZURlcHRoQ3ViZTwke3R5
cGV9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0
LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0
ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sYXllckNvdW50ICE9IDYpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDdWJlIHRleHR1cmUgZG9lc24ndCBo
YXZlIDYgZmFjZXMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgu
bGV2ZWxDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBF
cnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2
ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHRBdExldmVsKG1pcElEKSksIDEpOworICAg
ICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51
bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERp
bWVuc2lvbnMoUldUZXh0dXJlRGVwdGgyRDwke3R5cGV9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWlu
dCogdGhyZWFkIEhlaWdodClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB3aWR0
aCwgaGVpZ2h0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUu
bG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAg
ICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMo
UldUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixmbG9hdCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJl
YWQgSGVpZ2h0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHdpZHRoLCBoZWln
aHRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFs
dWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJv
bShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0
aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChSV1RleHR1cmVEZXB0
aDJEPCR7dHlwZX0+LGludDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVj
dG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMi
LCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIDAsIDAsIGxvY2F0aW9uLmdl
dCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCR7dHlwZX0sdWlu
dDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIs
ICJUZXh0dXJlIHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVs
ZW1lbnRDaGVja2VkKDAsIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApLCB1
bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZURlcHRoMkRBcnJheTwke3R5
cGV9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQg
RWxlbWVudHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgd2lkdGgsIGhlaWdo
dCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVy
ZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdo
dCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlw
ZX0+LGZsb2F0KiB0aHJlYWQgV2lkdGgsZmxvYXQqIHRocmVhZCBIZWlnaHQsZmxvYXQqIHRocmVh
ZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB3aWR0aCwgaGVp
Z2h0LCBlbGVtZW50c10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0
dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVp
Z2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5
RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChSV1RleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4s
aW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRl
ZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9h
ZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDIpLCAwLCAwLCBsb2NhdGlvbi5n
ZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCR7dHlw
ZX0sdWludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFs
dWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tGYWxzZSgiW1N0
b3JlXSIsICJUZXh0dXJlIHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgp
LnNldEVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgyKSwgMCwgMCwgbG9jYXRpb24uZ2V0KDEp
LCBsb2NhdGlvbi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVlLCBsZW5ndGgpKSk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfQogICAgIH0KIAog
ICAgIGFkZCh0aGluZykKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1NQSVJWLmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCmlu
ZGV4IDc4ZDAwOGY4MzVmOWU5YzIzNGVmMmRmNmQ2ZGVlYTNmNzQyNmNlNjUuLjFiMjZjZjJiMmU2
NTE1MjdhMTUyZWU4ZDkyZmYyNWJlZGE2MWQzMzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU1BJUlYuaHRtbApAQCAtMzQsNiArMzQsNyBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9
IkJ1aWx0aW5WZWN0b3JTZXR0ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDYWxs
RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNhbGxGdW5jdGlvbi5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IkNhc3RzLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iQ2hlY2suanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDaGVja0xp
dGVyYWxUeXBlcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNoZWNrTG9vcHMuanMi
Pjwvc2NyaXB0PgpAQCAtMTIxLDYgKzEyMiw3IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iUmV0
dXJuLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUmV0dXJuQ2hlY2tlci5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlJldHVybkV4Y2VwdGlvbi5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9IlNhbXBsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJT
dGFuZGFyZExpYnJhcnkuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJTdGF0ZW1lbnRD
bG9uZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJTdHJ1Y3RMYXlvdXRCdWlsZGVy
LmpzIj48L3NjcmlwdD4KQEAgLTEzMyw2ICsxMzUsOCBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9
IlN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IlN5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IlRlcm5hcnlFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iVGV4dHVyZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlRl
eHR1cmVPcGVyYXRpb25zLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVHJhcFN0YXRl
bWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU2FtcGxlci5qcyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NhbXBsZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWU3NzEzZGZjODFm
ODNjNTg0NzM2MjEyMTc1NjRmMzk1NzJiMTRiOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NhbXBsZXIuanMKQEAgLTAsMCArMSwxNjMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworInVzZSBzdHJpY3QiOworCitj
bGFzcyBTYW1wbGVyIHsKKyAgICBjb25zdHJ1Y3RvcihvcHRpb25zKQorICAgIHsKKyAgICAgICAg
aWYgKG9wdGlvbnMuckFkZHJlc3NNb2RlID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMu
X3JBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHRoaXMuX3JBZGRyZXNzTW9kZSA9IG9wdGlvbnMuckFkZHJlc3NNb2RlOworICAgICAgICBpZiAo
b3B0aW9ucy5zQWRkcmVzc01vZGUgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fc0Fk
ZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhp
cy5fc0FkZHJlc3NNb2RlID0gb3B0aW9ucy5zQWRkcmVzc01vZGU7CisgICAgICAgIGlmIChvcHRp
b25zLnRBZGRyZXNzTW9kZSA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl90QWRkcmVz
c01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl90
QWRkcmVzc01vZGUgPSBvcHRpb25zLnRBZGRyZXNzTW9kZTsKKyAgICAgICAgaWYgKG9wdGlvbnMu
bWluRmlsdGVyID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX21pbkZpbHRlciA9ICJu
ZWFyZXN0IjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fbWluRmlsdGVyID0gb3B0
aW9ucy5taW5GaWx0ZXI7CisgICAgICAgIGlmIChvcHRpb25zLm1hZ0ZpbHRlciA9PSB1bmRlZmlu
ZWQpCisgICAgICAgICAgICB0aGlzLl9tYWdGaWx0ZXIgPSAibmVhcmVzdCI7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHRoaXMuX21hZ0ZpbHRlciA9IG9wdGlvbnMubWFnRmlsdGVyOworICAg
ICAgICBpZiAob3B0aW9ucy5taXBtYXBGaWx0ZXIgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAg
dGhpcy5fbWlwbWFwRmlsdGVyID0gIm5lYXJlc3QiOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICB0aGlzLl9taXBtYXBGaWx0ZXIgPSBvcHRpb25zLm1pcG1hcEZpbHRlcjsKKyAgICAgICAgaWYg
KG9wdGlvbnMubG9kTWluQ2xhbXAgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fbG9k
TWluQ2xhbXAgPSAtTnVtYmVyLk1BWF9WQUxVRTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
dGhpcy5fbG9kTWluQ2xhbXAgPSBvcHRpb25zLmxvZE1pbkNsYW1wOworICAgICAgICBpZiAob3B0
aW9ucy5sb2RNYXhDbGFtcCA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9sb2RNYXhD
bGFtcCA9IE51bWJlci5NQVhfVkFMVUU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMu
X2xvZE1heENsYW1wID0gb3B0aW9ucy5sb2RNYXhDbGFtcDsKKyAgICAgICAgaWYgKG9wdGlvbnMu
bWF4QW5pc290cm9weSA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9tYXhBbmlzb3Ry
b3B5ID0gMTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fbWF4QW5pc290cm9weSA9
IG9wdGlvbnMubWF4QW5pc290cm9weTsKKyAgICAgICAgaWYgKG9wdGlvbnMuY29tcGFyZUZ1bmN0
aW9uID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX2NvbXBhcmVGdW5jdGlvbiA9ICJu
ZXZlciI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX2NvbXBhcmVGdW5jdGlvbiA9
IG9wdGlvbnMuY29tcGFyZUZ1bmN0aW9uOworICAgICAgICBpZiAob3B0aW9ucy5ib3JkZXJDb2xv
ciA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9ib3JkZXJDb2xvciA9ICJ0cmFuc3Bh
cmVudEJsYWNrIjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fYm9yZGVyQ29sb3Ig
PSBvcHRpb25zLmJvcmRlckNvbG9yOworICAgIH0KKyAgICAKKyAgICBnZXQgckFkZHJlc3NNb2Rl
KCkgeyByZXR1cm4gdGhpcy5fckFkZHJlc3NNb2RlOyB9CisgICAgZ2V0IHNBZGRyZXNzTW9kZSgp
IHsgcmV0dXJuIHRoaXMuX3NBZGRyZXNzTW9kZTsgfQorICAgIGdldCB0QWRkcmVzc01vZGUoKSB7
IHJldHVybiB0aGlzLl90QWRkcmVzc01vZGU7IH0KKyAgICBnZXQgbWluRmlsdGVyKCkgeyByZXR1
cm4gdGhpcy5fbWluRmlsdGVyOyB9CisgICAgZ2V0IG1hZ0ZpbHRlcigpIHsgcmV0dXJuIHRoaXMu
X21hZ0ZpbHRlcjsgfQorICAgIGdldCBtaXBtYXBGaWx0ZXIoKSB7IHJldHVybiB0aGlzLl9taXBt
YXBGaWx0ZXI7IH0KKyAgICBnZXQgbG9kTWluQ2xhbXAoKSB7IHJldHVybiB0aGlzLl9sb2RNaW5D
bGFtcDsgfQorICAgIGdldCBsb2RNYXhDbGFtcCgpIHsgcmV0dXJuIHRoaXMuX2xvZE1heENsYW1w
OyB9CisgICAgZ2V0IG1heEFuaXNvdHJvcHkoKSB7IHJldHVybiB0aGlzLl9tYXhBbmlzb3Ryb3B5
OyB9CisgICAgZ2V0IGNvbXBhcmVGdW5jdGlvbigpIHsgcmV0dXJuIHRoaXMuX2NvbXBhcmVGdW5j
dGlvbjsgfQorICAgIGdldCBib3JkZXJDb2xvcigpIHsgcmV0dXJuIHRoaXMuX2JvcmRlckNvbG9y
OyB9CisKKyAgICBjYWxjdWxhdGVCb3JkZXJDb2xvcihpbm5lclR5cGUpCisgICAgeworICAgICAg
ICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuMy4zCisgICAgICAgIGZ1bmN0aW9uIGNvbXB1
dGVWYWx1ZXMoKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGlubmVyVHlwZSkgeworICAgICAgICAg
ICAgICAgIGNhc2UgInVjaGFyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3Bh
cmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDB4RkZ9OworICAgICAg
ICAgICAgICAgIGNhc2UgInVzaG9ydCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJh
bnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdoaXRlOiAweEZGRkZ9Owor
ICAgICAgICAgICAgICAgIGNhc2UgInVpbnQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
e3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMHhGRkZG
RkZGRn07CisgICAgICAgICAgICAgICAgY2FzZSAiY2hhciI6CisgICAgICAgICAgICAgICAgICAg
IHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdoaXRl
OiAweDdGfTsKKyAgICAgICAgICAgICAgICBjYXNlICJzaG9ydCI6CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdo
aXRlOiAweDdGRkZ9OworICAgICAgICAgICAgICAgIGNhc2UgImludCI6CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1
ZVdoaXRlOiAweDdGRkZGRkZGfTsKKyAgICAgICAgICAgICAgICBjYXNlICJoYWxmIjoKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazog
MCwgb3BhcXVlV2hpdGU6IDF9OworICAgICAgICAgICAgICAgIGNhc2UgImZsb2F0IjoKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazog
MCwgb3BhcXVlV2hpdGU6IDF9OworICAgICAgICAgICAgICAgIGNhc2UgInVjaGFyMiI6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVC
bGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4RkYsIDB4RkZdfTsKKyAgICAgICAgICAgICAg
ICBjYXNlICJ1c2hvcnQyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVu
dEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHhGRkZG
LCAweEZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1aW50MiI6CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazogWzAs
IDBdLCBvcGFxdWVXaGl0ZTogWzB4RkZGRkZGRkYsIDB4RkZGRkZGRkZdfTsKKyAgICAgICAgICAg
ICAgICBjYXNlICJjaGFyMiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJl
bnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4N0Ys
IDB4N0ZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJzaG9ydDIiOgorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAw
XSwgb3BhcXVlV2hpdGU6IFsweDdGRkYsIDB4N0ZGRl19OworICAgICAgICAgICAgICAgIGNhc2Ug
ImludDIiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFsw
LCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsweDdGRkZGRkZGLCAweDdG
RkZGRkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAiaGFsZjIiOgorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAw
XSwgb3BhcXVlV2hpdGU6IFsxLCAxXX07CisgICAgICAgICAgICAgICAgY2FzZSAiZmxvYXQyIjoK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9w
YXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMSwgMV19OworICAgICAgICAgICAgICAg
IGNhc2UgInVjaGFyMyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRC
bGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4
RkYsIDB4RkYsIDB4RkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1c2hvcnQzIjoKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1
ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHhGRkZGLCAweEZGRkYsIDB4RkZGRl19
OworICAgICAgICAgICAgICAgIGNhc2UgInVpbnQzIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMF0s
IG9wYXF1ZVdoaXRlOiBbMHhGRkZGRkZGRiwgMHhGRkZGRkZGRiwgMHhGRkZGRkZGRl19OworICAg
ICAgICAgICAgICAgIGNhc2UgImNoYXIzIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0
cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1
ZVdoaXRlOiBbMHg3RiwgMHg3RiwgMHg3Rl19OworICAgICAgICAgICAgICAgIGNhc2UgInNob3J0
MyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAs
IDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4N0ZGRiwgMHg3RkZG
LCAweDdGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJpbnQzIjoKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBb
MCwgMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHg3RkZGRkZGRiwgMHg3RkZGRkZGRiwgMHg3RkZGRkZG
Rl19OworICAgICAgICAgICAgICAgIGNhc2UgImhhbGYzIjoKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwg
MF0sIG9wYXF1ZVdoaXRlOiBbMSwgMSwgMV19OworICAgICAgICAgICAgICAgIGNhc2UgImZsb2F0
MyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAs
IDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzEsIDEsIDFdfTsKKyAg
ICAgICAgICAgICAgICBjYXNlICJ1Y2hhcjQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
e3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAw
eEZGXSwgb3BhcXVlV2hpdGU6IFsweEZGLCAweEZGLCAweEZGLCAweEZGXX07CisgICAgICAgICAg
ICAgICAgY2FzZSAidXNob3J0NCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNw
YXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDAsIDB4RkZGRl0s
IG9wYXF1ZVdoaXRlOiBbMHhGRkZGLCAweEZGRkYsIDB4RkZGRiwgMHhGRkZGXX07CisgICAgICAg
ICAgICAgICAgY2FzZSAidWludDQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5z
cGFyZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAweEZGRkZG
RkZGXSwgb3BhcXVlV2hpdGU6IFsweEZGRkZGRkZGLCAweEZGRkZGRkZGLCAweEZGRkZGRkZGLCAw
eEZGRkZGRkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAiY2hhcjQiOgorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxh
Y2s6IFswLCAwLCAwLCAweDdGXSwgb3BhcXVlV2hpdGU6IFsweDdGLCAweDdGLCAweDdGLCAweDdG
XX07CisgICAgICAgICAgICAgICAgY2FzZSAic2hvcnQ0IjoKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwg
MCwgMCwgMHg3RkZGXSwgb3BhcXVlV2hpdGU6IFsweDdGRkYsIDB4N0ZGRiwgMHg3RkZGLCAweDdG
RkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJpbnQ0IjoKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwg
MCwgMCwgMHg3RkZGRkZGRl0sIG9wYXF1ZVdoaXRlOiBbMHg3RkZGRkZGRiwgMHg3RkZGRkZGRiwg
MHg3RkZGRkZGRiwgMHg3RkZGRkZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgImhhbGY0IjoK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwg
MF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMV0sIG9wYXF1ZVdoaXRlOiBbMSwgMSwgMSwgMV19
OworICAgICAgICAgICAgICAgIGNhc2UgImZsb2F0NCI6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAs
IDAsIDFdLCBvcGFxdWVXaGl0ZTogWzEsIDEsIDEsIDFdfTsKKyAgICAgICAgICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gdGV4dHVy
ZSBpbm5lciB0eXBlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
IGNvbXB1dGVWYWx1ZXMoKVt0aGlzLmJvcmRlckNvbG9yXTsKKyAgICB9Cit9CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKaW5kZXggM2RkNGZl
ZTE4NjAwZDVjZDJhODk1YWQ1YTQ3OTcyMWRhNzc4OGNjMS4uNWM0ODBhNjE4ZmM2NGM2OGQzM2Jh
MmQxYzAzMGJkYzMxNmQ2ZDg3MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1N0YW5kYXJkTGlicmFyeS5qcwpAQCAtNTcsNyArNTcsNyBAQCBsZXQgc3RhbmRhcmRMaWJy
YXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICB9CiAgICAgICAgIHByaW50KGBuYXRpdmUgdHlw
ZWRlZiBzYW1wbGVyO2ApOwogICAgICAgICBmb3IgKHZhciB0eXBlIG9mIFtgVGV4dHVyZTFEYCwg
YFJXVGV4dHVyZTFEYCwgYFRleHR1cmUxREFycmF5YCwgYFJXVGV4dHVyZTFEQXJyYXlgLCBgVGV4
dHVyZTJEYCwgYFJXVGV4dHVyZTJEYCwgYFRleHR1cmUyREFycmF5YCwgYFJXVGV4dHVyZTJEQXJy
YXlgLCBgVGV4dHVyZTNEYCwgYFJXVGV4dHVyZTNEYCwgYFRleHR1cmVDdWJlYF0pIHsKLSAgICAg
ICAgICAgIGZvciAodmFyIHR5cGVBcmd1bWVudEJhc2Ugb2YgW2Bib29sYCwgYHVjaGFyYCwgYHVz
aG9ydGAsIGB1aW50YCwgYGNoYXJgLCBgc2hvcnRgLCBgaW50YCwgYGhhbGZgLCBgZmxvYXRgXSkg
eworICAgICAgICAgICAgZm9yICh2YXIgdHlwZUFyZ3VtZW50QmFzZSBvZiBbYHVjaGFyYCwgYHVz
aG9ydGAsIGB1aW50YCwgYGNoYXJgLCBgc2hvcnRgLCBgaW50YCwgYGhhbGZgLCBgZmxvYXRgXSkg
ewogICAgICAgICAgICAgICAgIGZvciAodmFyIHNpemUgb2YgW2BgLCBgMmAsIGAzYCwgYDRgXSkg
ewogICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlIHR5cGVkZWYgJHt0eXBlfTwke3R5
cGVBcmd1bWVudEJhc2V9JHtzaXplfT47YCk7CiAgICAgICAgICAgICAgICAgfQpAQCAtMTg5Nyw3
ICsxODk3LDggQEAgbGV0IHN0YW5kYXJkTGlicmFyeSA9IChmdW5jdGlvbigpIHsKICAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgdm9pZCBJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZSh0aHJlYWQg
YXRvbWljXyR7dHlwZX0qLCAke3R5cGV9LCAke3R5cGV9LCB0aHJlYWQgJHt0eXBlfSopO2ApOwog
ICAgICAgICB9CiAgICAgICAgIHByaW50KCk7Ci0gICAgICAgIAorICAgICAgICAqLworCiAgICAg
ICAgIGZvciAodmFyIHR5cGUgb2YgW2B1Y2hhcmAsIGB1c2hvcnRgLCBgdWludGAsIGBjaGFyYCwg
YHNob3J0YCwgYGludGAsIGBoYWxmYCwgYGZsb2F0YF0pIHsKICAgICAgICAgICAgIGZvciAodmFy
IGxlbmd0aCBvZiBbYGAsIGAyYCwgYDNgLCBgNGBdKSB7CiAgICAgICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3Ro
fT4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTtgKTsKQEAgLTE5NTgsMTYgKzE5NTksNiBAQCBs
ZXQgc3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIHByaW50
KCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBs
ZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7
YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBs
ZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwg
aW50MyBvZmZzZXQpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0
aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlcihU
ZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50
MyBvZmZzZXQpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyUmVkKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0
aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlclJl
ZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwg
aW50MyBvZmZzZXQpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyR3JlZW4oVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMg
bG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyR3JlZW4oVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9j
YXRpb24sIGludDMgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBm
bG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyQmx1ZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0
MyBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1w
bGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVy
LCBmbG9hdDMgbG9jYXRpb24sIGludDMgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3Ro
fT4sIGludDQgbG9jYXRpb24pO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PiwgaW50NCBsb2Nh
dGlvbiwgaW50MyBvZmZzZXQpO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9p
ZCBHZXREaW1lbnNpb25zKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PiwgdWludCBNaXBMZXZl
bCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogSGVpZ2h0LCB0aHJlYWQgdWludCog
RGVwdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7YCk7CkBAIC0yMDEwLDk3ICsyMDAx
LDk2IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAg
ICAgcHJpbnQoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICAKKwogICAgICAg
ICBmb3IgKHZhciB0eXBlIG9mIFtgaGFsZmAsIGBmbG9hdGBdKSB7CiAgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVy
LCBmbG9hdDIgbG9jYXRpb24pO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
IFNhbXBsZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9u
LCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlQ21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBm
bG9hdDIgbG9jYXRpb24sIGZsb2F0IENvbXBhcmVWYWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1w
bGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IENvbXBhcmVWYWx1ZSwg
aW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25T
dGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUpO2ApOwotICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgy
RDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9h
dCBDb21wYXJlVmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZs
b2F0MiBsb2NhdGlvbiwgJHt0eXBlfSBDb21wYXJlVmFsdWUpO2ApOworICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2Ft
cGxlciwgZmxvYXQyIGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1ZSwgaW50MiBvZmZzZXQp
O2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVy
byhUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCAke3R5
cGV9IENvbXBhcmVWYWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0g
U2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9h
dDIgbG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CiAgICAg
ICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyRDwk
e3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBCaWFzKTtgKTsKICAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0aDJEPCR7
dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IEJpYXMsIGludDIgb2Zmc2V0
KTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0MiBERFgs
IGZsb2F0MiBERFkpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZUdyYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwg
ZmxvYXQyIEREWCwgZmxvYXQyIEREWSwgaW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBz
YW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IExPRCk7YCk7CiAgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNh
bXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgTE9ELCBpbnQyIG9mZnNldCk7YCk7Ci0gICAg
ICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyKFRleHR1cmVEZXB0aDJEPCR7dHlw
ZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9IEdhdGhlcihUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxv
YXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0gR2F0aGVyUmVkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9h
dDIgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhl
clJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBp
bnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVy
R3JlZW4oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7
YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyR3JlZW4oVGV4dHVy
ZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQp
O2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckJsdWUoVGV4dHVy
ZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7Ci0gICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQmx1ZShUZXh0dXJlRGVwdGgyRDwke3R5
cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkQ8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX0gR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBs
ZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxl
ckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtg
KTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXAoVGV4dHVyZURl
cHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwg
ZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2Ft
cGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVl
KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBSZWQoVGV4
dHVyZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MiBsb2Nh
dGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJEPCR7dHlw
ZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBh
cmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNt
cEdyZWVuKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBm
bG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKLSAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0
aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZs
b2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29u
U3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQp
O2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEFscGhhKFRl
eHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9j
YXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVy
Q29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGlu
dDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
KFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwor
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRoMkQ8
JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkQ8
JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2Ft
cGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBz
YW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxv
YXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZs
b2F0MiBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdh
dGhlckJsdWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlv
biwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJBbHBoYShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0
aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEo
VGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBv
ZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXAo
VGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQg
Y29tcGFyZV92YWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdh
dGhlckNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9u
LCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwg
c2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKKyAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aDJE
PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUs
IGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyQ21wR3JlZW4oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2Nh
dGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX00IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVy
LCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsK
KyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wQmx1ZShUZXh0dXJl
RGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJl
X3ZhbHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21w
Qmx1ZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBm
bG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBz
YW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOworICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBBbHBoYShUZXh0dXJlRGVwdGgy
RDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVl
LCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gTG9h
ZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgaW50MyBsb2NhdGlvbik7YCk7CiAgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgaW50
MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2
b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHVpbnQgTWlwTGV2ZWws
IHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIEhlaWdodCwgdGhyZWFkIHVpbnQqIE51
bWJlck9mTGV2ZWxzKTtgKTsKICAgICAgICAgICAgIHByaW50KCk7CiAgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0
MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29t
cGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IENvbXBhcmVWYWx1ZSk7YCk7Ci0g
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJE
QXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwg
ZmxvYXQgQ29tcGFyZVZhbHVlLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0
eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgQ29t
cGFyZVZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVD
bXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlz
b25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUsIGludDIgb2Zmc2V0
KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVy
ZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCAke3R5cGV9
IENvbXBhcmVWYWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2Nh
dGlvbiwgJHt0eXBlfSBDb21wYXJlVmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVW
YWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2
ZWxaZXJvKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2Nh
dGlvbiwgJHt0eXBlfSBDb21wYXJlVmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgQmlhcyk7YCk7CiAgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyREFycmF5
PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IEJpYXMsIGludDIgb2Zm
c2V0KTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRl
eHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxv
YXQyIEREWCwgZmxvYXQyIEREWSk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX0gU2FtcGxlR3JhZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9h
dDMgbG9jYXRpb24sIGZsb2F0MiBERFgsIGZsb2F0MiBERFksIGludDIgb2Zmc2V0KTtgKTsKICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlRGVwdGgy
REFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IExPRCk7YCk7
CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURl
cHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBMT0Qs
IGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRo
ZXIoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9u
KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXIoVGV4dHVyZURl
cHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNl
dCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyUmVkKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0g
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyUmVkKFRleHR1cmVEZXB0aDJE
QXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2Ap
OwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckdyZWVuKFRleHR1cmVE
ZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAg
ICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7
Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQmx1ZShUZXh0dXJlRGVw
dGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckJsdWUoVGV4dHVyZURlcHRoMkRBcnJh
eTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0g
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRo
MkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJBbHBoYShUZXh0dXJlRGVwdGgyREFycmF5
PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBm
bG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlz
b25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNl
dCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wUmVkKFRl
eHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0
MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4s
IFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92
YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21w
YXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0g
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wR3JlZW4oVGV4dHVyZURl
cHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0
aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wQmx1ZShUZXh0dXJlRGVwdGgyREFycmF5PCR7
dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNv
bXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhl
ckNtcEJsdWUoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25T
dGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7
YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wQWxwaGEoVGV4
dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQz
IGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBBbHBoYShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+
LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVf
dmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBs
b2NhdGlvbik7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlcihU
ZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGlu
dDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
UmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlv
bik7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0
dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIg
b2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3Jl
ZW4oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9u
KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4
dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQy
IG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJs
dWUoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9u
KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0
dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIg
b2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxw
aGEoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9u
KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4
dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQy
IG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNt
cChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24s
IGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxv
YXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAg
ICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgy
REFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVf
dmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBS
ZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9u
LCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7
CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEdyZWVuKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQg
Y29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7CisgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3Zh
bHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00
IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZs
b2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7CisgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50
MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4
dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgaW50NCBsb2NhdGlvbik7YCk7CiAgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+
LCBpbnQ0IGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0
aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCB1aW50
IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBIZWlnaHQsIHRocmVh
ZCB1aW50KiBFbGVtZW50cywgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTtgKTsKICAgICAg
ICAgICAgIHByaW50KCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxl
KFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7
Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0
aEN1YmU8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwg
ZmxvYXQgQ29tcGFyZVZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxlckNv
bXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUpO2ApOwor
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGhD
dWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZh
bHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZl
bFplcm8oVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9u
LCAke3R5cGV9IENvbXBhcmVWYWx1ZSk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9h
dDMgbG9jYXRpb24sIGZsb2F0IEJpYXMpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxv
YXQzIGxvY2F0aW9uLCBmbG9hdDIgRERYLCBmbG9hdDIgRERZKTtgKTsKICAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+
LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IExPRCk7YCk7Ci0gICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gR2F0aGVyUmVkKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0
MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVy
R3JlZW4oVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9u
KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJCbHVlKFRleHR1
cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAg
ICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoQ3Vi
ZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXAoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwg
U2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3Zh
bHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBSZWQo
VGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQz
IGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBHcmVlbihUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBT
YW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFs
dWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEJsdWUo
VGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQz
IGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBBbHBoYShUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBT
YW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFs
dWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURl
cHRoQ3ViZTwke3R5cGV9PiwgaW50NCBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVy
LCBmbG9hdDMgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxv
Y2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3Jl
ZW4oVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtg
KTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJl
RGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOworICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlRGVwdGhDdWJl
PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXAoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwg
c2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKKyAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aEN1
YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1
ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEdyZWVu
KFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxv
YXQgY29tcGFyZV92YWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00
IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wQWxwaGEoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwg
c2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKICAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmVEZXB0aEN1YmU8
JHt0eXBlfT4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQq
IEhlaWdodCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTtgKTsKICAgICAgICAgICAgIHBy
aW50KCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1Rl
eHR1cmVEZXB0aDJEPCR7dHlwZX0+LCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBI
ZWlnaHQpO2ApOwpAQCAtMjExNCw3ICsyMTA0LDYgQEAgbGV0IHN0YW5kYXJkTGlicmFyeSA9IChm
dW5jdGlvbigpIHsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sICR7dHlwZX0sIHVpbnQzIGxvY2F0aW9uKTtgKTsKICAg
ICAgICAgICAgIHByaW50KCk7CiAgICAgICAgIH0KLSAgICAgICAgKi8KICAgICB9KSgpOwogICAg
IHJldHVybiByZXN1bHQ7CiB9KSgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVGVzdC5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5o
dG1sCmluZGV4IDYwN2E2OTUzMjUzZGE3MjdiMWRlMzc2NzhlYzM4OGI0ZmEyNDA0MDUuLmU3OGNj
YWMxYTAyNTRjYmM5MjNiOWRkNmMxODVhZWU3OGM3MmE4MTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKQEAgLTI4LDYgKzI4LDcgQEAKIDxzY3JpcHQgc3JjPSJCdWls
dGluVmVjdG9yU2V0dGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDYWxsRXhwcmVzc2lv
bi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2FsbEZ1bmN0aW9uLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJDYXN0cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2hlY2suanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNoZWNrTGl0ZXJhbFR5cGVzLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJDaGVja0xvb3BzLmpzIj48L3NjcmlwdD4KQEAgLTExNSw2ICsxMTYsNyBA
QAogPHNjcmlwdCBzcmM9IlJldHVybi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUmV0dXJu
Q2hlY2tlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUmV0dXJuRXhjZXB0aW9uLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJTYW1wbGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJTdGFuZGFyZExpYnJhcnkuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN0YXRlbWVudENs
b25lci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3RydWN0TGF5b3V0QnVpbGRlci5qcyI+
PC9zY3JpcHQ+CkBAIC0xMjcsNiArMTI5LDggQEAKIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplQ29w
eUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN5bnRoZXNp
emVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
VGVybmFyeUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlRleHR1cmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlRleHR1cmVPcGVyYXRpb25zLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJUcmFwU3RhdGVtZW50LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJU
eXBlRGVmLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwv
c2NyaXB0PgpAQCAtMTUyLDcgKzE1Niw3IEBACiA8c2NyaXB0PgogZnVuY3Rpb24gZG9UZXN0SW5C
cm93c2VyKCkKIHsKLSAgICB2YXIgdGVzdGVyID0gZG9UZXN0KC8uKi8pOworICAgIHZhciB0ZXN0
ZXIgPSBkb1Rlc3QoL3RleHR1cmUvKTsKICAgICB2YXIgbGFzdFRpbWU7CiAgICAgZnVuY3Rpb24g
bmV4dCgpCiAgICAgewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
VGVzdC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKaW5kZXggNGEx
MWMxODU4NTk5Nzc4ZmYzOTFiMDRmMjYzNWM1YjcxMDA1ZGY3Zi4uYjZmNDczZTY2ODEzMTZkNDM4
ZWFhOWZiNjJjMWUyZTIxOTczNmY2NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVGVzdC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0
LmpzCkBAIC05NCw2ICs5NCwxMzMgQEAgZnVuY3Rpb24gbWFrZUVudW0ocHJvZ3JhbSwgZW51bU5h
bWUsIHZhbHVlKQogICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChlbnVtVHlwZSwgZW51bU1lbWJl
ci52YWx1ZS51bmlmeU5vZGUudmFsdWVGb3JTZWxlY3RlZFR5cGUpOwogfQogCitmdW5jdGlvbiBt
YWtlU2FtcGxlcihwcm9ncmFtLCBvcHRpb25zKQoreworICAgIC8vIGVudW0gV2ViR1BVQWRkcmVz
c01vZGUgeworICAgIC8vICAgICAiY2xhbXBUb0VkZ2UiLAorICAgIC8vICAgICAicmVwZWF0IiwK
KyAgICAvLyAgICAgIm1pcnJvclJlcGVhdCIsCisgICAgLy8gICAgICJjbGFtcFRvQm9yZGVyQ29s
b3IiCisgICAgLy8gfQorICAgIC8vCisgICAgLy8gZW51bSBXZWJHUFVGaWx0ZXJNb2RlIHsKKyAg
ICAvLyAgICAgIm5lYXJlc3QiLAorICAgIC8vICAgICAibGluZWFyIgorICAgIC8vIH0KKyAgICAv
LworICAgIC8vIGVudW0gV2ViR1BVQ29tcGFyZUZ1bmN0aW9uIHsKKyAgICAvLyAgICAgIm5ldmVy
IiwKKyAgICAvLyAgICAgImxlc3MiLAorICAgIC8vICAgICAiZXF1YWwiLAorICAgIC8vICAgICAi
bGVzc0VxdWFsIiwKKyAgICAvLyAgICAgImdyZWF0ZXIiLAorICAgIC8vICAgICAibm90RXF1YWwi
LAorICAgIC8vICAgICAiZ3JlYXRlckVxdWFsIiwKKyAgICAvLyAgICAgImFsd2F5cyIKKyAgICAv
LyB9CisgICAgLy8KKyAgICAvLyBlbnVtIFdlYkdQVUJvcmRlckNvbG9yIHsKKyAgICAvLyAgICAg
InRyYW5zcGFyZW50QmxhY2siLAorICAgIC8vICAgICAib3BhcXVlQmxhY2siLAorICAgIC8vICAg
ICAib3BhcXVlV2hpdGUiCisgICAgLy8gfQorICAgIC8vCisgICAgLy8gZGljdGlvbmFyeSBXZWJH
UFVTYW1wbGVyRGVzY3JpcHRvciB7CisgICAgLy8gICAgIFdlYkdQVWRkcmVzc01vZGUgckFkZHJl
c3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICAvLyAgICAgV2ViR1BVZGRyZXNzTW9kZSBzQWRk
cmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgIC8vICAgICBXZWJHUFVkZHJlc3NNb2RlIHRB
ZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAgLy8gICAgIFdlYkdQVUZpbHRlck1vZGVF
bnVtIG1hZ0ZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICAvLyAgICAgV2ViR1BVRmlsdGVyTW9kZUVu
dW0gbWluRmlsdGVyID0gIm5lYXJlc3QiOworICAgIC8vICAgICBXZWJHUFVGaWx0ZXJNb2RlRW51
bSBtaXBtYXBGaWx0ZXIgPSAibmVhcmVzdCI7CisgICAgLy8gICAgIGZsb2F0IGxvZE1pbkNsYW1w
ID0gMDsKKyAgICAvLyAgICAgZmxvYXQgbG9kTWF4Q2xhbXAgPSBOdW1iZXIuTUFYX1ZBTFVFOwor
ICAgIC8vICAgICB1bnNpZ25lZCBsb25nIG1heEFuaXNvdHJvcHkgPSAxOworICAgIC8vICAgICBX
ZWJHUFVDb21wYXJlRnVuY3Rpb24gY29tcGFyZUZ1bmN0aW9uID0gIm5ldmVyIjsKKyAgICAvLyAg
ICAgV2ViR1BVQm9yZGVyQ29sb3IgYm9yZGVyQ29sb3IgPSAidHJhbnNwYXJlbnRCbGFjayI7Cisg
ICAgLy8gfTsKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzLnNh
bXBsZXIsIG5ldyBTYW1wbGVyKG9wdGlvbnMpKTsKK30KKworZnVuY3Rpb24gbWFrZTFEVGV4dHVy
ZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1
ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlMUQ8JHtlbGVtZW50VHlwZX0+YF0sIG5l
dyBUZXh0dXJlMUQoZWxlbWVudFR5cGUsIG1pcG1hcHMpKTsKK30KKworZnVuY3Rpb24gbWFrZTFE
VGV4dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4g
VHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlMURBcnJheTwke2VsZW1l
bnRUeXBlfT5gXSwgbmV3IFRleHR1cmUxREFycmF5KGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQor
CitmdW5jdGlvbiBtYWtlMkRUZXh0dXJlKHByb2dyYW0sIG1pcG1hcHMsIGVsZW1lbnRUeXBlKQor
eworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmUy
RDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUyRChlbGVtZW50VHlwZSwgbWlwbWFwcykp
OworfQorCitmdW5jdGlvbiBtYWtlMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVsZW1l
bnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3Nb
YFRleHR1cmUyREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTJEQXJyYXkoZWxl
bWVudFR5cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UzRFRleHR1cmUocHJvZ3JhbSwg
bWlwbWFwcywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dy
YW0uaW50cmluc2ljc1tgVGV4dHVyZTNEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTNE
KGVsZW1lbnRUeXBlLCBtaXBtYXBzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VUZXh0dXJlQ3ViZShw
cm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94
KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZUN1YmU8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBU
ZXh0dXJlQ3ViZShlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24gbWFrZVJXMURU
ZXh0dXJlKHByb2dyYW0sIGVsZW1lbnRzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlw
ZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUxRDwke2VsZW1lbnRUeXBl
fT5gXSwgbmV3IFRleHR1cmUxRFJXKGVsZW1lbnRUeXBlLCBlbGVtZW50cykpOworfQorCitmdW5j
dGlvbiBtYWtlUlcxRFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7
CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldUZXh0dXJl
MURBcnJheTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUxREFycmF5UlcoZWxlbWVudFR5
cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzJEVGV4dHVyZShwcm9ncmFtLCByb3dz
LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRy
aW5zaWNzW2BSV1RleHR1cmUyRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUyRFJXKGVs
ZW1lbnRUeXBlLCByb3dzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzJEVGV4dHVyZUFycmF5KHBy
b2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3go
cHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUyREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBu
ZXcgVGV4dHVyZTJEQXJyYXlSVyhlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24g
bWFrZVJXM0RUZXh0dXJlKHByb2dyYW0sIGRlcHRoU2xpY2VzLCBlbGVtZW50VHlwZSkKK3sKKyAg
ICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUzRDwk
e2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUzRFJXKGVsZW1lbnRUeXBlLCBkZXB0aFNsaWNl
cykpOworfQorCitmdW5jdGlvbiBtYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgbWlwbWFwcywg
ZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmlu
c2ljc1tgVGV4dHVyZURlcHRoMkQ8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlRGVwdGgy
RChlbGVtZW50VHlwZSwgbWlwbWFwcykpOworfQorCitmdW5jdGlvbiBtYWtlMkREZXB0aFRleHR1
cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVk
VmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZURlcHRoMkRBcnJheTwke2VsZW1l
bnRUeXBlfT5gXSwgbmV3IFRleHR1cmVEZXB0aDJEQXJyYXkoZWxlbWVudFR5cGUsIGFycmF5KSk7
Cit9CisKK2Z1bmN0aW9uIG1ha2VEZXB0aFRleHR1cmVDdWJlKHByb2dyYW0sIGFycmF5LCBlbGVt
ZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNz
W2BUZXh0dXJlRGVwdGhDdWJlPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZURlcHRoQ3Vi
ZShlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24gbWFrZVJXMkREZXB0aFRleHR1
cmUocHJvZ3JhbSwgcm93cywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUu
Ym94KHByb2dyYW0uaW50cmluc2ljc1tgUldUZXh0dXJlRGVwdGgyRDwke2VsZW1lbnRUeXBlfT5g
XSwgbmV3IFRleHR1cmVEZXB0aDJEUlcoZWxlbWVudFR5cGUsIHJvd3MpKTsKK30KKworZnVuY3Rp
b24gbWFrZVJXMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUp
Cit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldUZXh0
dXJlRGVwdGgyREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZURlcHRoMkRBcnJh
eVJXKGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQorCiBmdW5jdGlvbiBjaGVja051bWJlcihwcm9n
cmFtLCByZXN1bHQsIGV4cGVjdGVkKQogewogICAgIGlmICghcmVzdWx0LnR5cGUudW5pZnlOb2Rl
LmlzTnVtYmVyKQpAQCAtNTU4Miw3ICs1NzA5LDE1OTIgQEAgdGVzdHMuYXJyYXlJbmRleCA9IGZ1
bmN0aW9uKCkgewogICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
YXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0s
IDIpIF0pLCAzKTsKICAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImFycmF5SW5kZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFt
LCAwKSBdKSwgNCk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMSkgXSksIDUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiYXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dy
YW0sIDIpIF0pLCA2KTsgICAgCisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMikgXSksIDYpOworfQorCitmdW5jdGlvbiBjcmVhdGVUZXh0dXJlc0ZvclRlc3Rp
bmcocHJvZ3JhbSkKK3sKKyAgICBsZXQgdGV4dHVyZTFEID0gbWFrZTFEVGV4dHVyZShwcm9ncmFt
LCBbWzEsIDcsIDE0LCA3OV0sIFsxMywgMTZdLCBbMTVdXSwgImZsb2F0Iik7CisgICAgbGV0IHRl
eHR1cmUxREFycmF5ID0gbWFrZTFEVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbWzEsIDcsIDE0LCA3
OV0sIFsxMywgMTZdLCBbMTVdXSwgW1sxNiwgMTcsIDE4LCAxOV0sIFsyMCwgMjFdLCBbMjJdXV0s
ICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlMkQgPSBtYWtlMkRUZXh0dXJlKHByb2dyYW0sIFsK
KyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwg
MTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIz
LCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAg
ICAgW1szMywgMzQsIDM1LCAzNl0sCisgICAgICAgIFszNywgMzgsIDM5LCA0MF1dLAorICAgICAg
ICBbWzQxLCA0Ml1dCisgICAgXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmUyREFycmF5ID0g
bWFrZTJEVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwg
NiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAg
ICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAy
NywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzZdLAorICAg
ICAgICBbMzcsIDM4LCAzOSwgNDBdXSwKKyAgICAgICAgW1s0MSwgNDJdXQorICAgIF0sIFsKKyAg
ICAgICAgW1s0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4LCA0OSwgNTBdLAorICAgICAgICBbNTEsIDUy
LCA1MywgNTQsIDU1LCA1NiwgNTcsIDU4XSwKKyAgICAgICAgWzU5LCA2MCwgNjEsIDYyLCA2Mywg
NjQsIDY1LCA2Nl0sCisgICAgICAgIFs2NywgNjgsIDY5LCA3MCwgNzEsIDcyLCA3MywgNzRdXSwK
KyAgICAgICAgW1s3NSwgNzYsIDc3LCA3OF0sCisgICAgICAgIFs3OSwgODAsIDgxLCA4Ml1dLAor
ICAgICAgICBbWzgzLCA4NF1dCisgICAgXV0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlM0Qg
PSBtYWtlM0RUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAgICAgW1tbMSwgMiwgMywgNCwgNSwgNiwg
NywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAg
IFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywg
MjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwg
MzksIDQwXSwKKyAgICAgICAgWzQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OF0sCisgICAg
ICAgIFs0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTZdLAorICAgICAgICBbNTcsIDU4LCA1
OSwgNjAsIDYxLCA2MiwgNjMsIDY0XV1dLAorICAgICAgICBbW1s2NSwgNjYsIDY3LCA2OF0sCisg
ICAgICAgIFs2OSwgNzAsIDcxLCA3Ml1dXQorICAgIF0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0
dXJlQ3ViZSA9IG1ha2VUZXh0dXJlQ3ViZShwcm9ncmFtLCBbWworICAgICAgICBbWzEsIDJdLAor
ICAgICAgICBbMywgNF0sCisgICAgICAgIFs1LCA2XSwKKyAgICAgICAgWzcsIDhdXSwKKyAgICAg
ICAgW1s5XSwKKyAgICAgICAgWzEwXV0sCisgICAgXSwgWworICAgICAgICBbWzExLCAxMl0sCisg
ICAgICAgIFsxMywgMTRdLAorICAgICAgICBbMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOF1dLAor
ICAgICAgICBbWzE5XSwKKyAgICAgICAgWzIwXV0sCisgICAgXSwgWworICAgICAgICBbWzIxLCAy
Ml0sCisgICAgICAgIFsyMywgMjRdLAorICAgICAgICBbMjUsIDI2XSwKKyAgICAgICAgWzI3LCAy
OF1dLAorICAgICAgICBbWzI5XSwKKyAgICAgICAgWzMwXV0sCisgICAgXSwgWworICAgICAgICBb
WzMxLCAzMl0sCisgICAgICAgIFszMywgMzRdLAorICAgICAgICBbMzUsIDM2XSwKKyAgICAgICAg
WzM3LCAzOF1dLAorICAgICAgICBbWzM5XSwKKyAgICAgICAgWzQwXV0sCisgICAgXSwgWworICAg
ICAgICBbWzQxLCA0Ml0sCisgICAgICAgIFs0MywgNDRdLAorICAgICAgICBbNDUsIDQ2XSwKKyAg
ICAgICAgWzQ3LCA0OF1dLAorICAgICAgICBbWzQ5XSwKKyAgICAgICAgWzUwXV0sCisgICAgXSwg
WworICAgICAgICBbWzUxLCA1Ml0sCisgICAgICAgIFs1MywgNTRdLAorICAgICAgICBbNTUsIDU2
XSwKKyAgICAgICAgWzU3LCA1OF1dLAorICAgICAgICBbWzU5XSwKKyAgICAgICAgWzYwXV0sCisg
ICAgXV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmUxRCA9IG1ha2VSVzFEVGV4dHVyZShw
cm9ncmFtLCBbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sICJmbG9hdCIpOworICAgIGxldCByd1Rl
eHR1cmUxREFycmF5ID0gbWFrZVJXMURUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1sxLCAyLCAzLCA0
LCA1LCA2LCA3LCA4XSwgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwgWzE3LCAxOCwg
MTksIDIwLCAyMSwgMjIsIDIzLCAyNF1dLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlMkQg
PSBtYWtlUlcyRFRleHR1cmUocHJvZ3JhbSwgWworICAgICAgICBbMSwgMiwgMywgNCwgNSwgNiwg
NywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAg
IFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywg
MjgsIDI5LCAzMCwgMzEsIDMyXV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmUyREFycmF5
ID0gbWFrZVJXMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwgWworICAgICAgICBbWzEsIDIsIDMsIDQs
IDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAor
ICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAy
NiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2LCAz
NywgMzgsIDM5LCA0MF0sCisgICAgICAgIFs0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDhd
LAorICAgICAgICBbNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2XSwKKyAgICAgICAgWzU3
LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLCA2NF1dXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4
dHVyZTNEID0gbWFrZVJXM0RUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAgICAgW1sxLCAyLCAzLCA0
LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwK
KyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwg
MjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNiwg
MzcsIDM4LCAzOSwgNDBdLAorICAgICAgICBbNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4
XSwKKyAgICAgICAgWzQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1Nl0sCisgICAgICAgIFs1
NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2MywgNjRdXV0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0
dXJlRGVwdGgyRCA9IG1ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAgIFtbMSwg
MiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1
LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAg
ICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAz
NSwgMzZdLAorICAgICAgICBbMzcsIDM4LCAzOSwgNDBdXSwKKyAgICAgICAgW1s0MSwgNDJdXQor
ICAgIF0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlRGVwdGgyREFycmF5ID0gbWFrZTJERGVw
dGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1sKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3
LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAg
WzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAy
OCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNl0sCisgICAgICAg
IFszNywgMzgsIDM5LCA0MF1dLAorICAgICAgICBbWzQxLCA0Ml1dCisgICAgXSwgWworICAgICAg
ICBbWzQzLCA0NCwgNDUsIDQ2LCA0NywgNDgsIDQ5LCA1MF0sCisgICAgICAgIFs1MSwgNTIsIDUz
LCA1NCwgNTUsIDU2LCA1NywgNThdLAorICAgICAgICBbNTksIDYwLCA2MSwgNjIsIDYzLCA2NCwg
NjUsIDY2XSwKKyAgICAgICAgWzY3LCA2OCwgNjksIDcwLCA3MSwgNzIsIDczLCA3NF1dLAorICAg
ICAgICBbWzc1LCA3NiwgNzcsIDc4XSwKKyAgICAgICAgWzc5LCA4MCwgODEsIDgyXV0sCisgICAg
ICAgIFtbODMsIDg0XV0KKyAgICBdXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmVEZXB0aEN1
YmUgPSBtYWtlRGVwdGhUZXh0dXJlQ3ViZShwcm9ncmFtLCBbWworICAgICAgICBbWzEsIDJdLAor
ICAgICAgICBbMywgNF0sCisgICAgICAgIFs1LCA2XSwKKyAgICAgICAgWzcsIDhdXSwKKyAgICAg
ICAgW1s5XSwKKyAgICAgICAgWzEwXV0sCisgICAgXSwgWworICAgICAgICBbWzExLCAxMl0sCisg
ICAgICAgIFsxMywgMTRdLAorICAgICAgICBbMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOF1dLAor
ICAgICAgICBbWzE5XSwKKyAgICAgICAgWzIwXV0sCisgICAgXSwgWworICAgICAgICBbWzIxLCAy
Ml0sCisgICAgICAgIFsyMywgMjRdLAorICAgICAgICBbMjUsIDI2XSwKKyAgICAgICAgWzI3LCAy
OF1dLAorICAgICAgICBbWzI5XSwKKyAgICAgICAgWzMwXV0sCisgICAgXSwgWworICAgICAgICBb
WzMxLCAzMl0sCisgICAgICAgIFszMywgMzRdLAorICAgICAgICBbMzUsIDM2XSwKKyAgICAgICAg
WzM3LCAzOF1dLAorICAgICAgICBbWzM5XSwKKyAgICAgICAgWzQwXV0sCisgICAgXSwgWworICAg
ICAgICBbWzQxLCA0Ml0sCisgICAgICAgIFs0MywgNDRdLAorICAgICAgICBbNDUsIDQ2XSwKKyAg
ICAgICAgWzQ3LCA0OF1dLAorICAgICAgICBbWzQ5XSwKKyAgICAgICAgWzUwXV0sCisgICAgXSwg
WworICAgICAgICBbWzUxLCA1Ml0sCisgICAgICAgIFs1MywgNTRdLAorICAgICAgICBbNTUsIDU2
XSwKKyAgICAgICAgWzU3LCA1OF1dLAorICAgICAgICBbWzU5XSwKKyAgICAgICAgWzYwXV0sCisg
ICAgXV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmVEZXB0aDJEID0gbWFrZVJXMkREZXB0
aFRleHR1cmUocHJvZ3JhbSwgWworICAgICAgICBbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisg
ICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgs
IDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAz
MCwgMzEsIDMyXV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmVEZXB0aDJEQXJyYXkgPSBt
YWtlUlcyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFsKKyAgICAgICAgW1sxLCAyLCAzLCA0
LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwK
KyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwg
MjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNiwg
MzcsIDM4LCAzOSwgNDBdLAorICAgICAgICBbNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4
XSwKKyAgICAgICAgWzQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1Nl0sCisgICAgICAgIFs1
NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2MywgNjRdXV0sICJmbG9hdCIpOworICAgIHJldHVybiBb
dGV4dHVyZTFELCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0ZXh0dXJlMkRBcnJheSwgdGV4
dHVyZTNELCB0ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVyZTFEQXJyYXksIHJ3VGV4
dHVyZTJELCByd1RleHR1cmUyREFycmF5LCByd1RleHR1cmUzRCwgdGV4dHVyZURlcHRoMkQsIHRl
eHR1cmVEZXB0aDJEQXJyYXksIHRleHR1cmVEZXB0aEN1YmUsIHJ3VGV4dHVyZURlcHRoMkQsIHJ3
VGV4dHVyZURlcHRoMkRBcnJheV07Cit9CisKK3Rlc3RzLnRleHR1cmVEaW1lbnNpb25zID0gZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICB1aW50IGZvbzEo
VGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAg
ICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnMo
dGV4dHVyZSwgMCwgJndpZHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJu
IHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMihUZXh0dXJlMUQ8ZmxvYXQ+IHRl
eHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IG51bWJl
ck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgs
ICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7Cisg
ICAgICAgIH0KKyAgICAgICAgdWludCBmb28zKFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJl
KSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBlbGVtZW50czsK
KyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNp
b25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAg
ICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNChUZXh0
dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAg
ICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxz
OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZlbGVtZW50
cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50czsKKyAgICAg
ICAgfQorICAgICAgICB1aW50IGZvbzUoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsK
KyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAg
ICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnMo
dGV4dHVyZSwgMCwgJndpZHRoLCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAg
ICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb282
KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAg
ICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsK
KyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAm
bnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9Cisg
ICAgICAgIHVpbnQgZm9vNyhUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAg
IHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQg
bnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3
aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWln
aHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb284KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVy
ZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0Owor
ICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAg
ICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9v
OShUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0
aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsK
KyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNp
b25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZl
bHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQg
Zm9vMTAoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQg
d2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVu
dHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGlt
ZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJlck9m
TGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAg
dWludCBmb28xMShUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAg
dWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBl
bGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBH
ZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVt
YmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAgICB9Cisg
ICAgICAgIHVpbnQgZm9vMTIoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAg
ICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAg
IHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAg
ICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50
cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzEzKFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkg
eworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAg
ICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7Cisg
ICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmRl
cHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAg
ICB9CisgICAgICAgIHVpbnQgZm9vMTQoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAg
ICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAg
ICB1aW50IGRlcHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAg
ICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgsICZu
dW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9Cisg
ICAgICAgIHVpbnQgZm9vMTUoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAg
ICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50
IGRlcHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdl
dERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgsICZudW1iZXJP
ZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gZGVwdGg7CisgICAgICAgIH0KKyAgICAgICAg
dWludCBmb28xNihUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQg
d2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7
CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5z
aW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCwgJm51bWJlck9mTGV2ZWxz
KTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAg
ICB1aW50IGZvbzE3KFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1
aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51
bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lk
dGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7
CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xOChUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVy
ZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0Owor
ICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAg
ICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE5KFRleHR1
cmVDdWJlPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAg
ICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAg
ICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1i
ZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAg
IH0KKyAgICAgICAgdWludCBmb28yMChSV1RleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwg
JndpZHRoKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1
aW50IGZvbzIxKFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAg
IHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0
RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1
cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yMihSV1RleHR1cmUxREFycmF5
PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAg
dWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRo
LCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAgICB9Cisg
ICAgICAgIHVpbnQgZm9vMjMoUldUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAg
ICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIEdl
dERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICAgICAgICAgIHJldHVy
biB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI0KFJXVGV4dHVyZTJEPGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdo
dCk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQg
Zm9vMjUoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWlu
dCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVt
ZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0
LCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAg
ICAgIHVpbnQgZm9vMjYoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAg
ICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAg
dWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRo
LCAmaGVpZ2h0LCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAg
ICAgfQorICAgICAgICB1aW50IGZvbzI3KFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUp
IHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAg
ICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1
cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVt
ZW50czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI4KFJXVGV4dHVyZTNEPGZsb2F0PiB0
ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWln
aHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0
ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCk7CisgICAgICAgICAgICByZXR1cm4gd2lk
dGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yOShSV1RleHR1cmUzRDxmbG9hdD4gdGV4
dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0
OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4
dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdo
dDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzMwKFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0
dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7
CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0
dXJlLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCk7CisgICAgICAgICAgICByZXR1cm4gZGVwdGg7
CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28zMShUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4
dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0
OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVu
c2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAg
ICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMzIoVGV4
dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7Cisg
ICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7
CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwg
Jm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0K
KyAgICAgICAgdWludCBmb28zMyhUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAg
ICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0
dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMzQoVGV4dHVy
ZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsK
KyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAg
ICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25z
KHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMp
OworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9v
MzUoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWlu
dCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVt
ZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXRE
aW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVy
T2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAg
ICB1aW50IGZvbzM2KFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAg
ICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAg
IHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAg
ICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50
cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50czsKKyAgICAg
ICAgfQorICAgICAgICB1aW50IGZvbzM3KFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1
cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsK
KyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2
ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWln
aHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1i
ZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzM4KFRleHR1cmVEZXB0aEN1
YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAg
ICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAg
ICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9m
TGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1
aW50IGZvbzM5KFRleHR1cmVEZXB0aEN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAg
IHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQg
bnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3
aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWln
aHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb280MChUZXh0dXJlRGVwdGhDdWJlPGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0
RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7
CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAg
dWludCBmb280MShSV1RleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAg
ICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICBHZXRE
aW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCk7CisgICAgICAgICAgICByZXR1cm4g
d2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb280MihSV1RleHR1cmVEZXB0aDJEPGZs
b2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWlu
dCBoZWlnaHQ7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhl
aWdodCk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVp
bnQgZm9vNDMoUldUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAg
ICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1
aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgs
ICZoZWlnaHQsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAg
IH0KKyAgICAgICAgdWludCBmb280NChSV1RleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1
cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsK
KyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRl
eHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBo
ZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb280NShSV1RleHR1cmVEZXB0aDJEQXJy
YXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAg
ICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBH
ZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAg
ICAgICAgIHJldHVybiBlbGVtZW50czsKKyAgICAgICAgfQorICAgIGApOworICAgIGxldCBbdGV4
dHVyZTFELCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0ZXh0dXJlMkRBcnJheSwgdGV4dHVy
ZTNELCB0ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVyZTFEQXJyYXksIHJ3VGV4dHVy
ZTJELCByd1RleHR1cmUyREFycmF5LCByd1RleHR1cmUzRCwgdGV4dHVyZURlcHRoMkQsIHRleHR1
cmVEZXB0aDJEQXJyYXksIHRleHR1cmVEZXB0aEN1YmUsIHJ3VGV4dHVyZURlcHRoMkQsIHJ3VGV4
dHVyZURlcHRoMkRBcnJheV0gPSBjcmVhdGVUZXh0dXJlc0ZvclRlc3RpbmcocHJvZ3JhbSk7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0
dXJlMURdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMiIsIFt0ZXh0dXJlMURdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheV0pLCA0KTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFy
cmF5XSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzUiLCBbdGV4dHVyZTFEQXJyYXldKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkRdKSwgOCk7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRdKSwg
NCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIs
IFt0ZXh0dXJlMkRdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlMkRBcnJheV0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlMkRBcnJheV0pLCA0
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIs
IFt0ZXh0dXJlMkRBcnJheV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMiIsIFt0ZXh0dXJlMkRBcnJheV0pLCAzKTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFt0ZXh0dXJlM0RdKSwg
OCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQi
LCBbdGV4dHVyZTNEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE1IiwgW3RleHR1cmUzRF0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlM0RdKSwgMik7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVy
ZUN1YmVdKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTgiLCBbdGV4dHVyZUN1YmVdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZUN1YmVdKSwgMik7CisgICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJl
MURdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjEiLCBbcndUZXh0dXJlMURBcnJheV0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMiIsIFtyd1RleHR1cmUxREFycmF5XSksIDMpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3J3
VGV4dHVyZTJEXSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzI0IiwgW3J3VGV4dHVyZTJEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI1IiwgW3J3VGV4dHVyZTJEQXJyYXldKSwgOCk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjYiLCBb
cndUZXh0dXJlMkRBcnJheV0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yNyIsIFtyd1RleHR1cmUyREFycmF5XSksIDIpOworICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4IiwgW3J3VGV4dHVyZTNE
XSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzI5IiwgW3J3VGV4dHVyZTNEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzMwIiwgW3J3VGV4dHVyZTNEXSksIDIpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1cmVEZXB0aDJE
XSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMyIiwgW3RleHR1cmVEZXB0aDJEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMzIiwgW3RleHR1cmVEZXB0aDJEXSksIDMpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM0IiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXldKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMzUiLCBbdGV4dHVyZURlcHRoMkRBcnJheV0pLCA0KTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNiIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5XSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzM3IiwgW3RleHR1cmVEZXB0aDJEQXJyYXldKSwgMyk7CisgICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzgiLCBbdGV4dHVyZURlcHRoQ3ViZV0p
LCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28z
OSIsIFt0ZXh0dXJlRGVwdGhDdWJlXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQwIiwgW3RleHR1cmVEZXB0aEN1YmVdKSwgMik7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBbcndUZXh0
dXJlRGVwdGgyRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280MiIsIFtyd1RleHR1cmVEZXB0aDJEXSksIDQpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwgW3J3VGV4dHVyZURlcHRoMkRB
cnJheV0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280NCIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXldKSwgNCk7CisgICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbcndUZXh0dXJlRGVwdGgyREFy
cmF5XSksIDIpOworfQorCit0ZXN0cy50ZXh0dXJlTG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGxl
dCBwcm9ncmFtID0gZG9QcmVwKGAKKyAgICAgICAgZmxvYXQgZm9vMShUZXh0dXJlMUQ8ZmxvYXQ+
IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50IG1pcG1hcCkgeworICAgICAgICAgICAgcmV0dXJu
IExvYWQodGV4dHVyZSwgaW50Mihsb2NhdGlvbiwgbWlwbWFwKSk7CisgICAgICAgIH0KKyAgICAg
ICAgZmxvYXQgZm9vMihUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50
IG1pcG1hcCwgaW50IG9mZnNldCkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwg
aW50Mihsb2NhdGlvbiwgbWlwbWFwKSwgb2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb28zKFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgbG9jYXRpb24sIGludCBt
aXBtYXAsIGludCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50
Myhsb2NhdGlvbiwgbWlwbWFwLCBsYXllcikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZv
bzQoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50IG1pcG1h
cCwgaW50IGxheWVyLCBpbnQgb2Zmc2V0KSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0
dXJlLCBpbnQzKGxvY2F0aW9uLCBtaXBtYXAsIGxheWVyKSwgb2Zmc2V0KTsKKyAgICAgICAgfQor
ICAgICAgICBmbG9hdCBmb281KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5
LCBpbnQgbWlwbWFwKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgs
IHksIG1pcG1hcCkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzYoVGV4dHVyZTJEPGZs
b2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXAsIGludCBvZmZzZXRYLCBpbnQg
b2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myh4LCB5LCBt
aXBtYXApLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb283KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBt
aXBtYXAsIGludCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50
NCh4LCB5LCBtaXBtYXAsIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vOChU
ZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbWlwbWFwLCBp
bnQgbGF5ZXIsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJu
IExvYWQodGV4dHVyZSwgaW50NCh4LCB5LCBtaXBtYXAsIGxheWVyKSwgaW50MihvZmZzZXRYLCBv
ZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vOShUZXh0dXJlM0Q8ZmxvYXQ+
IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IHosIGludCBtaXBtYXApIHsKKyAgICAgICAgICAg
IHJldHVybiBMb2FkKHRleHR1cmUsIGludDQoeCwgeSwgeiwgbWlwbWFwKSk7CisgICAgICAgIH0K
KyAgICAgICAgZmxvYXQgZm9vMTAoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50
IHksIGludCB6LCBpbnQgbWlwbWFwLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFksIGludCBvZmZz
ZXRaKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgsIHksIHosIG1p
cG1hcCksIGludDMob2Zmc2V0WCwgb2Zmc2V0WSwgb2Zmc2V0WikpOworICAgICAgICB9CisgICAg
ICAgIGZsb2F0IGZvbzExKFJXVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgbG9jYXRpb24p
IHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGxvY2F0aW9uKTsKKyAgICAgICAg
fQorICAgICAgICBmbG9hdCBmb28xMihSV1RleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBp
bnQgbG9jYXRpb24sIGludCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVy
ZSwgaW50Mihsb2NhdGlvbiwgbGF5ZXIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28x
MyhSV1RleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5KSB7CisgICAgICAgICAg
ICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKHgsIHkpKTsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdCBmb28xNChSV1RleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHks
IGludCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myh4LCB5
LCBsYXllcikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE1KFJXVGV4dHVyZTNEPGZs
b2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCB6KSB7CisgICAgICAgICAgICByZXR1cm4g
TG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIHopKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBm
b28xNihUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbWlw
bWFwKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIG1pcG1h
cCkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE3KFRleHR1cmVEZXB0aDJEPGZsb2F0
PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXAsIGludCBvZmZzZXRYLCBpbnQgb2Zm
c2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myh4LCB5LCBtaXBt
YXApLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBm
b28xOChUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGlu
dCBtaXBtYXAsIGludCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwg
aW50NCh4LCB5LCBtaXBtYXAsIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9v
MTkoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQg
bWlwbWFwLCBpbnQgbGF5ZXIsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAg
ICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50NCh4LCB5LCBtaXBtYXAsIGxheWVyKSwgaW50Mihv
ZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMjAoUldUZXh0
dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5KSB7CisgICAgICAgICAgICBy
ZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKHgsIHkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb28yMShSV1RleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQg
eSwgaW50IGxheWVyKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgs
IHksIGxheWVyKSk7CisgICAgICAgIH0KKyAgICBgKTsKKyAgICBsZXQgW3RleHR1cmUxRCwgdGV4
dHVyZTFEQXJyYXksIHRleHR1cmUyRCwgdGV4dHVyZTJEQXJyYXksIHRleHR1cmUzRCwgdGV4dHVy
ZUN1YmUsIHJ3VGV4dHVyZTFELCByd1RleHR1cmUxREFycmF5LCByd1RleHR1cmUyRCwgcndUZXh0
dXJlMkRBcnJheSwgcndUZXh0dXJlM0QsIHRleHR1cmVEZXB0aDJELCB0ZXh0dXJlRGVwdGgyREFy
cmF5LCB0ZXh0dXJlRGVwdGhDdWJlLCByd1RleHR1cmVEZXB0aDJELCByd1RleHR1cmVEZXB0aDJE
QXJyYXldID0gY3JlYXRlVGV4dHVyZXNGb3JUZXN0aW5nKHByb2dyYW0pOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNyk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEzKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQs
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUx
RCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMiIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRCwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAx
Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIi
LCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIC0xKV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4
dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTMpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1
cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVy
ZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDIwKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJl
MURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAyMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSks
IDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0
dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMTMpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE3KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDIxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAtMSldKSwgMjApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUi
LCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJE
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAz
Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUi
LCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgOSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBb
dGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMTgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IC0xKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzgpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzMp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282Iiwg
W3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgMzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIC0xKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMzMpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAz
Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzci
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM3KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDQ0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCA1MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
NTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDc1KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3Nik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNzkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDgwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTEpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAx
OCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgi
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDE5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM1
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzOSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAzNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMzkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAz
NSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgi
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDUyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0NSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgNTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA2MCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgNTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDYxKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCA3Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgODAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDc3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCA4MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgODApOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIC0xKV0pLCA3Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgODEp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCA3Nyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVy
ZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQxKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0
ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDIpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA2NSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDY2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
NjkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285
IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3MCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUz
RCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAx
MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEw
IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxNyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3Rl
eHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0MSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUz
RCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxOCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA0MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAtMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAzNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0Mik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwg
W3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1
cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0Mik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCA0Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCA1MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAtMSldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgNjYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
NjkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNjcpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0
ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNzApOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJl
M0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNzApOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDY1KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCA2Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAyKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0
dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHBy
b2dyYW0sIDMpXSksIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCA0KV0pLCA1KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBb
cndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgNik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtl
SW50KHByb2dyYW0sIDYpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCA3KV0p
LCA4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFt
LCAyKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJh
eSwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA1KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0
dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIi
LCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCA4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTEpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1
cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIi
LCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDYpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTcpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1Rl
eHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDIpXSks
IDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9n
cmFtLCAyKV0pLCAxOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1h
a2VJbnQocHJvZ3JhbSwgMildKSwgMjApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFr
ZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjMpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFty
d1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDIp
XSksIDI0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDQp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFt
LCA1KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJv
Z3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDgpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTApOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1
cmUyRCwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3
VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMi
LCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgMTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDE1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAyKV0pLCAxNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJv
Z3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUlu
dChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBt
YWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIxKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJl
MkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjIpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1Rl
eHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMyk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwg
W3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDIpXSks
IDI0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MyldKSwgMjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAzKV0pLCAyNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50
KHByb2dyYW0sIDMpXSksIDI3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1h
a2VJbnQocHJvZ3JhbSwgMyldKSwgMjgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA0
KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dy
YW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDMwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMzEpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFr
ZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAzMik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1Rl
eHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0Iiwg
W3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDQyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFty
d1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1
cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0Qs
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0Mik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmVEZXB0aDJELCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZURlcHRoMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZURlcHRoMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmVEZXB0aDJELCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzgpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4
dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0
dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAxOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE3KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0
dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzNyk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM4KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4
dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
LTEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAzMyk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCA0Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgNDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDUxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCA1Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgNzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDc2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCA3OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgODApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5Iiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzUpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDM0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4
dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzOSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgLTEpXSksIDM1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTIpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDQ1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCA1Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNTIpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDYwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCA1Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNjEpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDc2KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCA4MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
NzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
OSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDgxKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCA4MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
LTEpXSksIDc2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA4MSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDc3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVw
dGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndU
ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCA1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFt
LCA1KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUlu
dChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgy
RCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA4KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0
dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAi
LCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0s
IDMpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUlu
dChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMyk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRo
MkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1Rl
eHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDE1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMildKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFr
ZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxOSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURl
cHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjApOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFty
d1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDIp
XSksIDIxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChw
cm9ncmFtLCAyKV0pLCAyMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNiks
IG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHBy
b2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDI0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyNSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVy
ZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjYp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIs
IFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0s
IDMpXSksIDI3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUlu
dChwcm9ncmFtLCAzKV0pLCAyOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwg
NCksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50
KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDMwKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgy
RCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAzMSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4
dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwg
MzIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MSIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjEiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yMSIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
NDIpOworfQorCit0ZXN0cy50ZXh0dXJlU3RvcmUgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJv
Z3JhbSA9IGRvUHJlcChgCisgICAgICAgIGZsb2F0IGZvbzEoUldUZXh0dXJlMUQ8ZmxvYXQ+IHRl
eHR1cmUsIHVpbnQgbG9jYXRpb24sIGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICBTdG9yZSh0
ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb24pOworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVy
ZSwgaW50KGxvY2F0aW9uKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMihSV1RleHR1
cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlLCB1aW50IGxvY2F0aW9uLCB1aW50IGxheWVyLCBmbG9h
dCB2YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4dHVyZSwgdmFsdWUsIHVpbnQyKGxvY2F0
aW9uLCBsYXllcikpOworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MihpbnQo
bG9jYXRpb24pLCBpbnQobGF5ZXIpKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMyhS
V1RleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgdWludCB4LCB1aW50IHksIGZsb2F0IHZhbHVlKSB7
CisgICAgICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDIoeCwgeSkpOworICAgICAg
ICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MihpbnQoeCksIGludCh5KSkpOworICAgICAg
ICB9CisgICAgICAgIGZsb2F0IGZvbzQoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwg
dWludCB4LCB1aW50IHksIHVpbnQgbGF5ZXIsIGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICBT
dG9yZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDMoeCwgeSwgbGF5ZXIpKTsKKyAgICAgICAgICAgIHJl
dHVybiBMb2FkKHRleHR1cmUsIGludDMoaW50KHgpLCBpbnQoeSksIGludChsYXllcikpKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb281KFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCB1
aW50IHgsIHVpbnQgeSwgdWludCB6LCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUo
dGV4dHVyZSwgdmFsdWUsIHVpbnQzKHgsIHksIHopKTsKKyAgICAgICAgICAgIHJldHVybiBMb2Fk
KHRleHR1cmUsIGludDMoaW50KHgpLCBpbnQoeSksIGludCh6KSkpOworICAgICAgICB9CisgICAg
ICAgIGZsb2F0IGZvbzYoUldUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgdWludCB4LCB1
aW50IHksIGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwg
dWludDIoeCwgeSkpOworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MihpbnQo
eCksIGludCh5KSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzcoUldUZXh0dXJlRGVw
dGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCB1aW50IHgsIHVpbnQgeSwgdWludCBsYXllciwgZmxv
YXQgdmFsdWUpIHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1cmUsIHZhbHVlLCB1aW50Myh4LCB5
LCBsYXllcikpOworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MyhpbnQoeCks
IGludCh5KSwgaW50KGxheWVyKSkpOworICAgICAgICB9CisgICAgYCk7CisgICAgbGV0IFt0ZXh0
dXJlMUQsIHRleHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJl
M0QsIHRleHR1cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJl
MkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNELCB0ZXh0dXJlRGVwdGgyRCwgdGV4dHVy
ZURlcHRoMkRBcnJheSwgdGV4dHVyZURlcHRoQ3ViZSwgcndUZXh0dXJlRGVwdGgyRCwgcndUZXh0
dXJlRGVwdGgyREFycmF5XSA9IGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9ncmFtKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1Rl
eHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwg
MyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50
KHByb2dyYW0sIDQpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFE
LCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFty
d1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFty
d1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBt
YWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1Rl
eHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVp
bnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtl
VWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1
cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUx
REFycmF5LCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJv
Z3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFy
cmF5LCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3Jh
bSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
IiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwg
W3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFt
LCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBt
YWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNCks
IG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3
VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAy
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtl
VWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1h
a2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4
dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0s
IDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIs
IFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChw
cm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFr
ZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJl
MkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3
VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dy
YW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWlu
dChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwg
bWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0
dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwg
W3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHBy
b2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dy
YW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtl
VWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWlu
dChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUy
RCwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndU
ZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28z
IiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50
KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHBy
b2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBt
YWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtl
VWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1
cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4
dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndU
ZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEp
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFty
d1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280Iiwg
W3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFt
LCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQi
LCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFt
LCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUi
LCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBb
cndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndU
ZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0
dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJl
M0QsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0Qs
IG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgy
RCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0s
IDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIs
IFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwg
bWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDQp
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFty
d1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFr
ZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBt
YWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1Rl
eHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVp
bnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1
cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVE
ZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJv
Z3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChw
cm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0
aDJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282
IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9n
cmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJE
LCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwg
NSksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282Iiwg
W3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFt
LCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBt
YWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3
VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAz
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtl
VWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1h
a2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4
dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAzKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWlu
dChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VV
aW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVy
ZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbcndUZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3J3VGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
VWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtyd1RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBb
cndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b283IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzciLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlVWludChwcm9n
cmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworfQorCit0ZXN0cy50ZXh0dXJlU2FtcGxlID0g
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICBmbG9hdCBm
b28xKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCBsb2NhdGlvbikg
eworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBsb2NhdGlvbik7CisgICAg
ICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMihUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBs
ZXIgcywgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBT
YW1wbGUodGV4dHVyZSwgcywgbG9jYXRpb24sIG9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAg
ZmxvYXQgZm9vMyhUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9h
dCB4LCBmbG9hdCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBz
LCBmbG9hdDIoeCwgbGF5ZXIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb280KFRleHR1
cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IGxheWVy
LCBpbnQgb2Zmc2V0KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZs
b2F0Mih4LCBsYXllciksIG9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNShU
ZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSkgewor
ICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSkpOworICAg
ICAgICB9CisgICAgICAgIGZsb2F0IGZvbzYoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1w
bGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAg
ICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGludDIob2Zm
c2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzcoVGV4dHVyZTJE
QXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg
bGF5ZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQzKHgs
IHksIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vOChUZXh0dXJlMkRBcnJh
eTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXll
ciwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxl
KHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzkoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJl
LCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopIHsKKyAgICAgICAgICAgIHJl
dHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmb28xMChUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxv
YXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZLCBpbnQgb2Zm
c2V0WikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwg
eSwgeiksIGludDMob2Zmc2V0WCwgb2Zmc2V0WSwgb2Zmc2V0WikpOworICAgICAgICB9CisgICAg
ICAgIGZsb2F0IGZvbzExKFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZs
b2F0IHgsIGZsb2F0IHksIGZsb2F0IHopIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4
dHVyZSwgcywgZmxvYXQzKHgsIHksIHopKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28x
MihUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgQmlhcykgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVyZSwgcywg
ZmxvYXQyKHgsIHkpLCBCaWFzKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xMyhUZXh0
dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg
QmlhcywgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2Ft
cGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIEJpYXMsIGludDIob2Zmc2V0WCwgb2Zm
c2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE0KFRleHR1cmUyRDxmbG9hdD4g
dGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBkZHgwLCBmbG9hdCBk
ZHgxLCBmbG9hdCBkZHkwLCBmbG9hdCBkZHkxKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxl
R3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGZsb2F0MihkZHgwLCBkZHgxKSwgZmxvYXQy
KGRkeTAsIGRkeTEpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xNShUZXh0dXJlMkQ8
ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgZGR4MCwg
ZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSwgaW50IG9mZnNldFgsIGludCBvZmZz
ZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDIo
eCwgeSksIGZsb2F0MihkZHgwLCBkZHgxKSwgZmxvYXQyKGRkeTAsIGRkeTEpLCBpbnQyKG9mZnNl
dFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xNihUZXh0dXJlMkQ8
ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgTE9EKSB7
CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkp
LCBMT0QpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE3KFRleHR1cmUyRDxmbG9hdD4g
dGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBMT0QsIGludCBvZmZz
ZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUxldmVsKHRleHR1
cmUsIHMsIGZsb2F0Mih4LCB5KSwgTE9ELCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb28xOChUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwg
c2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgQmlhcykgewor
ICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxh
eWVyKSwgQmlhcyk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTkoVGV4dHVyZTJEQXJy
YXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5
ZXIsIGZsb2F0IEJpYXMsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAg
cmV0dXJuIFNhbXBsZUJpYXModGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgQmlhcywg
aW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMjAo
VGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQg
eSwgZmxvYXQgbGF5ZXIsIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0IGRkeTAsIGZsb2F0
IGRkeTEpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0
Myh4LCB5LCBsYXllciksIGZsb2F0MihkZHgwLCBkZHgxKSwgZmxvYXQyKGRkeTAsIGRkeTEpKTsK
KyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28yMShUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4
dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgZGR4
MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSwgaW50IG9mZnNldFgsIGludCBv
ZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJlLCBzLCBmbG9h
dDMoeCwgeSwgbGF5ZXIpLCBmbG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0MihkZHkwLCBkZHkxKSwg
aW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMjIo
VGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQg
eSwgZmxvYXQgbGF5ZXIsIGZsb2F0IExPRCkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUxl
dmVsKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIExPRCk7CisgICAgICAgIH0KKyAg
ICAgICAgZmxvYXQgZm9vMjMoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIg
cywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IExPRCwgaW50IG9mZnNldFgs
IGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwg
cywgZmxvYXQzKHgsIHksIGxheWVyKSwgTE9ELCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAg
ICAgICAgfQorICAgICAgICBpbnQgZm9vMjQoVGV4dHVyZTFEPGludDQ+IHRleHR1cmUsIHNhbXBs
ZXIgcywgZmxvYXQgbG9jYXRpb24pIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVy
ZSwgcywgbG9jYXRpb24pLng7CisgICAgICAgIH0KKyAgICAgICAgaW50IGZvbzI1KFRleHR1cmUx
RDxpbnQ0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IGxvY2F0aW9uKSB7CisgICAgICAgICAg
ICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGxvY2F0aW9uKS55OworICAgICAgICB9CisgICAg
ICAgIGludCBmb28yNihUZXh0dXJlMUQ8aW50ND4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCBs
b2NhdGlvbikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBsb2NhdGlv
bikuejsKKyAgICAgICAgfQorICAgICAgICBpbnQgZm9vMjcoVGV4dHVyZTFEPGludDQ+IHRleHR1
cmUsIHNhbXBsZXIgcywgZmxvYXQgbG9jYXRpb24pIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1w
bGUodGV4dHVyZSwgcywgbG9jYXRpb24pLnc7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9v
MjgoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxv
YXQgeSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwg
eSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzI5KFRleHR1cmVEZXB0aDJEPGZsb2F0
PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGludCBvZmZzZXRYLCBpbnQg
b2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDIo
eCwgeSksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0
IGZvbzMwKFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxv
YXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUo
dGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxv
YXQgZm9vMzEoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBm
bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7
CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXll
ciksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZv
bzMyKFRleHR1cmVEZXB0aEN1YmU8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwg
ZmxvYXQgeSwgZmxvYXQgeikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBz
LCBmbG9hdDMoeCwgeSwgeikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzMzKFRleHR1
cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZs
b2F0IEJpYXMpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZs
b2F0Mih4LCB5KSwgQmlhcyk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMzQoVGV4dHVy
ZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxv
YXQgQmlhcywgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4g
U2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIEJpYXMsIGludDIob2Zmc2V0WCwg
b2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzM1KFRleHR1cmVEZXB0aDJE
PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGRkeDAs
IGZsb2F0IGRkeDEsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEpIHsKKyAgICAgICAgICAgIHJldHVy
biBTYW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgZmxvYXQyKGRkeDAsIGRkeDEp
LCBmbG9hdDIoZGR5MCwgZGR5MSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzM2KFRl
eHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHks
IGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEsIGludCBvZmZz
ZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVy
ZSwgcywgZmxvYXQyKHgsIHkpLCBmbG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0MihkZHkwLCBkZHkx
KSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9v
MzcoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxv
YXQgeSwgZmxvYXQgTE9EKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVy
ZSwgcywgZmxvYXQyKHgsIHkpLCBMT0QpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzM4
KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0
IHksIGZsb2F0IExPRCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICBy
ZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBMT0QsIGludDIob2Zm
c2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzM5KFRleHR1cmVE
ZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgbGF5ZXIsIGZsb2F0IEJpYXMpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFz
KHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIEJpYXMpOworICAgICAgICB9CisgICAg
ICAgIGZsb2F0IGZvbzQwKFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBs
ZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IEJpYXMsIGludCBvZmZz
ZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVy
ZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgQmlhcywgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7
CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDEoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9h
dD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxv
YXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSkgeworICAgICAgICAg
ICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgZmxv
YXQyKGRkeDAsIGRkeDEpLCBmbG9hdDIoZGR5MCwgZGR5MSkpOworICAgICAgICB9CisgICAgICAg
IGZsb2F0IGZvbzQyKFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIg
cywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEs
IGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAg
ICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVy
KSwgZmxvYXQyKGRkeDAsIGRkeDEpLCBmbG9hdDIoZGR5MCwgZGR5MSksIGludDIob2Zmc2V0WCwg
b2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQzKFRleHR1cmVEZXB0aDJE
QXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg
bGF5ZXIsIGZsb2F0IExPRCkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUxldmVsKHRleHR1
cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIExPRCk7CisgICAgICAgIH0KKyAgICAgICAgZmxv
YXQgZm9vNDQoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBm
bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgTE9ELCBpbnQgb2Zmc2V0WCwgaW50
IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBm
bG9hdDMoeCwgeSwgbGF5ZXIpLCBMT0QsIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAg
ICB9CisgICAgICAgIGZsb2F0IGZvbzQ1KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBz
YW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGNvbXBhcmVWYWx1ZSkgeworICAgICAg
ICAgICAgcmV0dXJuIFNhbXBsZUNtcCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGNvbXBhcmVW
YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDYoVGV4dHVyZURlcHRoMkQ8Zmxv
YXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgY29tcGFyZVZh
bHVlLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1w
bGVDbXAodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBjb21wYXJlVmFsdWUsIGludDIob2Zmc2V0
WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQ3KFRleHR1cmVEZXB0
aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxv
YXQgbGF5ZXIsIGZsb2F0IGNvbXBhcmVWYWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBs
ZUNtcCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBjb21wYXJlVmFsdWUpOworICAg
ICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQ4KFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRl
eHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IGNv
bXBhcmVWYWx1ZSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1
cm4gU2FtcGxlQ21wKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGNvbXBhcmVWYWx1
ZSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICBgKTsKKyAgICBsZXQg
W3RleHR1cmUxRCwgdGV4dHVyZTFEQXJyYXksIHRleHR1cmUyRCwgdGV4dHVyZTJEQXJyYXksIHRl
eHR1cmUzRCwgdGV4dHVyZUN1YmUsIHJ3VGV4dHVyZTFELCByd1RleHR1cmUxREFycmF5LCByd1Rl
eHR1cmUyRCwgcndUZXh0dXJlMkRBcnJheSwgcndUZXh0dXJlM0QsIHRleHR1cmVEZXB0aDJELCB0
ZXh0dXJlRGVwdGgyREFycmF5LCB0ZXh0dXJlRGVwdGhDdWJlLCByd1RleHR1cmVEZXB0aDJELCBy
d1RleHR1cmVEZXB0aDJEQXJyYXldID0gY3JlYXRlVGV4dHVyZXNGb3JUZXN0aW5nKHByb2dyYW0p
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge30pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC4zNzUpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge30pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC40Mzc1KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHt9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNTYyNSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge30pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC42MjUpXSksIDE0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0
dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjM3NSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC40Mzc1KV0pLCAo
MyAqIDcgKyAxICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoNyArIDE0KSAv
IDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
IiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNTYyNSldKSwgKDEgKiA3ICsgMyAqIDE0KSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3Rl
eHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNjI1KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNv
bG9yIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC4zNzUpXSksIDcpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1w
VG9Cb3JkZXJDb2xvciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNDM3NSldKSwgKDMgKiA3ICsg
MSAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSldKSwgKDcgKyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVy
Q29sb3IifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjU2MjUpXSksICgxICogNyArIDMgKiAxNCkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
LCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjYyNSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEgKyAwLjM3NSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSArIDAuNDM3NSldKSwgKDMgKiA3ICsgMSAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVh
dCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjUpXSksICg3ICsgMTQpIC8gMik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVy
ZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NN
b2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuNTYyNSldKSwgKDEgKiA3
ICsgMyAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEgKyAwLjYyNSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDIgKyAwLjM3NSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMiArIDAuNDM3NSldKSwgKDMgKiA3ICsgMSAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJl
cGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjUpXSksICg3ICsgMTQpIC8gMik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4
dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJl
c3NNb2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuNTYyNSldKSwgKDEg
KiA3ICsgMyAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDIgKyAwLjYyNSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEgKyAwLjYyNSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuNTYyNSldKSwgKDMgKiA3ICsgMSAqIDE0KSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJB
ZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjUp
XSksICg3ICsgMTQpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSArIDAuNDM3NSldKSwgKDEgKiA3ICsgMyAqIDE0KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTog
Im1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjM3NSldKSwgMTQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3Rl
eHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRy
ZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjM3NSld
KSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
IiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAr
IDAuNDM3NSldKSwgKDMgKiA3ICsgMSAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVh
dCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjUpXSksICg3ICsgMTQpIC8gMik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVy
ZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NN
b2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuNTYyNSldKSwg
KDEgKiA3ICsgMyAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDIgKyAwLjYyNSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0wLjM3NSld
KSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMS4zNzUpXSksIDc5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRv
Qm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMC4zNzUpXSksIDApOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUx
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9k
ZTogImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEuMzc1KV0pLCAw
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIs
IFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBy
QWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IiLCBib3JkZXJDb2xvcjogIm9wYXF1ZUJs
YWNrIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTAuMzc1KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFt
cFRvQm9yZGVyQ29sb3IiLCBib3JkZXJDb2xvcjogIm9wYXF1ZUJsYWNrIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMS4zNzUpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciIsIGJv
cmRlckNvbG9yOiAib3BhcXVlV2hpdGUifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMC4zNzUpXSks
IDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
IiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIs
IHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciIsIGJvcmRlckNvbG9yOiAib3BhcXVl
V2hpdGUifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxLjM3NSldKSwgMSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xh
bXBUb0JvcmRlckNvbG9yIiwgYm9yZGVyQ29sb3I6ICJvcGFxdWVXaGl0ZSJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpXSksICg3OSArIDEpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbG9kTWluQ2xhbXA6IDF9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSldKSwgKDEzICsgMTYpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCAoMTQgKyA3OSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNyArIDE0KSAvIDIpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICgxNyArIDE4KSAvIDIp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280Iiwg
W3RleHR1cmUxREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksICgxNCArIDc5KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgxOCAr
IDE5KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb281IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
XSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1
cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCldKSwgKDIwICsgMjEg
KyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyAr
IDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAo
MjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsg
MjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsgMjgg
KyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoNjIgKyA2
MyArIDcwICsgNzEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMiArIDEzICsgMjAgKyAyMSAr
IDQ0ICsgNDUgKyA1MiArIDUzKSAvIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEzICsgMTQg
KyAyMSArIDIyICsgNDUgKyA0NiArIDUzICsgNTQpIC8gOCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwg
KDIwICsgMjEgKyAyOCArIDI5ICsgNTIgKyA1MyArIDYwICsgNjEpIC8gOCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA1
IC8gOCldKSwgKDEyICsgMTMgKyAyMCArIDIxICsgKDQ0ICsgNDUgKyA1MiArIDUzKSAqIDMpIC8g
MTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MCIsIFt0ZXh0dXJlM0QsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyICsgNDUgKyA0
NiArIDUzICsgNTQpIC8gOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMjAgKyAyMSArIDI4
ICsgMjkgKyA1MiArIDUzICsgNjAgKyA2MSkgLyA4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjI1KSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAoNDQgKyA0NSArIDUyICsgNTMpIC8gNCk7CisgICAgLy8gVW5mb3J0dW5hdGVseSwgd2UgY2Fu
J3QgYWN0dWFsbHkgdGVzdCB0aGUgIkJpYXMiIGFyZ3VtZW50LCBiZWNhdXNlIGl0IGlzIHN1cHBv
c2VkIHRvIGJlIGFwcGxpZWQKKyAgICAvLyB0byB0aGUgdW5jbGFtcGVkIExPRCwgd2hpY2ggZm9y
IHVzIGlzIC1JbmZpbml0eSAoYmVjYXVzZSBvdXIgZGVyaXZhdGl2ZXMgYXJlIGFsbCAwKQorICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFt0ZXh0
dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbdGV4dHVyZTJELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgNiAvIDgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIwICsgMjEg
KyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZTJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSAr
IDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE0IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAy
MCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xNCIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53
aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwg
KDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgp
LmhlaWdodCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93
KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1h
dGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAo
MTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVp
Z2h0KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkp
IC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE1IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFt0ZXh0
dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJE
LmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2Fk
VmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksICgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1
KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygy
LCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIs
IFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBt
aXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0
ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41
KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsgMjIpIC8gNCkgKyAo
KDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEz
ICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2
IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUy
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkg
LyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmUyRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCAr
IDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAg
KyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDEyICsgMTMgKyAyMCAr
IDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCAr
IDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE3IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQg
KyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCAr
IDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE4IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAo
MTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiAr
IDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE4IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDYgLyA4KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCldKSwgKDYyICsgNjMgKyA3MCArIDcxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAoNjIgKyA2MyArIDcwICsgNzEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
aGVpZ2h0KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM0ICsg
MzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhl
aWdodCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUp
IC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIs
IDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgoKDEyICsgMTMg
KyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDU0ICsg
NTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0
dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAi
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5l
UHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZh
bHVlKCkuaGVpZ2h0KV0pLCAoNzYgKyA3NyArIDgwICsgODEpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQ
dHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwg
W3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
IiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0
aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgp
LmhlaWdodCldKSwgKCgoNTQgKyA1NSArIDYyICsgNjMpIC8gNCkgKyAoKDc2ICsgNzcgKyA4MCAr
IDgxKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRo
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJl
MkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1
ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAu
NSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpICsg
KCgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgp
LmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1
ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0
ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksICg3NyArIDc4ICsgODEgKyA4MikgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJl
MkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0
ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0
aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCg1NSArIDU2ICsg
NjMgKyA2NCkgLyA0KSArICgoNzcgKyA3OCArIDgxICsgODIpIC8gNCkpIC8gMik7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3RleHR1cmUy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjIiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDM0ICsg
MzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoKCgxMiAr
IDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIg
KyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwg
KDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAo
KCg1NCArIDU1ICsgNjIgKyA2MykgLyA0KSArICgoNzYgKyA3NyArIDgwICsgODEpIC8gNCkpIC8g
Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIz
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMi
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMi
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkp
IC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoKCgxMyArIDE0ICsgMjEgKyAyMikgLyA0KSArICgoMzUgKyAzNiArIDM5ICsgNDApIC8g
NCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2
MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDc2ICsgNzcgKyA4MCArIDgx
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2
MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAoKCg1NCArIDU1ICsgNjIgKyA2MykgLyA0KSArICgoNzYgKyA3NyArIDgwICsgODEp
IC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMg
KyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDc3ICsgNzggKyA4MSAr
IDgyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMg
KyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAoKCg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KSArICgoNzcgKyA3OCArIDgxICsg
ODIpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE2IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRl
cjogImxpbmVhciIsIGxvZE1pbkNsYW1wOiAxLCBsb2RNYXhDbGFtcDogMX0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAyKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIGxvZE1pbkNsYW1wOiAxLCBsb2RNYXhDbGFt
cDogMX0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1
cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1
ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0
KV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciIsIG1heEFu
aXNvdHJvcHk6IDJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNCAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgp
LndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAoNC8zKSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdo
dCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGxldCB0ZXh0dXJlMURJbnQ0ID0g
bWFrZTFEVGV4dHVyZShwcm9ncmFtLCBbW1sxLCAyLCAzLCA0XSwgWzEwMCwgMjAwLCAzMDAsIDQw
MF0sIFsxMDEsIDIwMiwgMzAxLCA0MDFdLCBbMTMsIDE0LCAxNSwgMTZdXSwgW1sxNywgMTgsIDE5
LCAyMF0sIFsyMSwgMjIsIDIzLCAyNF1dLCBbWzI1LCAyNiwgMjcsIDI4XV1dLCAiaW50NCIpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjQiLCBbdGV4
dHVyZTFESW50NCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgMTAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI1IiwgW3RleHR1cmUxREludDQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
XSksIDIwMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yNiIsIFt0ZXh0dXJlMURJbnQ0LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAzMDApOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjciLCBbdGV4dHVyZTFESW50NCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSldKSwgNDAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4IiwgW3RleHR1cmVEZXB0
aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMyArIDE0
ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgNiAvIDgpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjkiLCBbdGV4dHVyZURlcHRo
MkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI5IiwgW3Rl
eHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zMCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMw
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBb
dGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAy
MSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBb
dGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgKDYyICsgNjMgKyA3MCArIDcxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMiArIDEzICsgMjAgKyAyMSkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
OSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsg
MjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjkiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAo
MjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzMwIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiAr
IDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMzAiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDU0ICsgNTUg
KyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zMSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYg
KyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zMSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoNjIgKyA2MyArIDcwICsgNzEpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMzIiwgW3Rl
eHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMzIiwgW3RleHR1cmVEZXB0
aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMyIsIFt0ZXh0dXJlRGVwdGgyRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM0IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsg
MjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzM0IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM1IiwgW3RleHR1cmVEZXB0aDJE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM1IiwgW3RleHR1cmVEZXB0
aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0
ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgxMiArIDEzICsgMjAgKyAyMSkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MzUiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0
aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM0
ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zNSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwg
MC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgxMiArIDEzICsg
MjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzUiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1h
dGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCld
KSwgKCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQp
KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNiIsIFt0ZXh0
dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNiIsIFt0ZXh0dXJlRGVwdGgyRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0
dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksICgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzYiLCBbdGV4dHVyZURlcHRo
MkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
aGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMg
KyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5o
ZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDEz
ICsgMTQgKyAyMSArIDIyKSAvIDQpICsgKCgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KSkgLyAyKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzciLCBb
dGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzciLCBbdGV4dHVyZURl
cHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzciLCBbdGV4dHVyZURlcHRoMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQg
KyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4
IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsg
MjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTIgKyAx
MyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAvIDIpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOCIsIFt0ZXh0
dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28z
OCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1cmVEZXB0aDJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksICgoKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpICsgKCgzNSArIDM2ICsg
MzkgKyA0MCkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM5IiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCA2IC8gOCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSks
ICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM5IiwgW3RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMg
KyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCA2IC8gOCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApXSksICg2MiArIDYzICsgNzAgKyA3MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDAiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQwIiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MCIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDAiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCAoNjIgKyA2MyArIDcwICsgNzEpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEy
ICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280MSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDEyICsgMTMgKyAyMCAr
IDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280MSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWlu
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MSIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAu
MjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93
KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMTIgKyAx
MyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkg
LyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2
MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280MSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1
cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MSIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJl
MkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLmhlaWdodCldKSwgKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MSIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUp
IC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoNTQgKyA1NSArIDYyICsg
NjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQ
dHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoKCg1NCArIDU1ICsgNjIgKyA2MykgLyA0KSArICgo
NzYgKyA3NyArIDgwICsgODEpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lk
dGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNSArIDM2ICsgMzkgKyA0
MCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRo
LnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAy
MSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAz
OSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRy
LmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
NTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNzcgKyA3OCArIDgxICsgODIpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4y
NSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3co
MiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIi
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2Fk
VmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksICgoKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpICsgKCg3NyArIDc4ICsgODEgKyA4MikgLyA0
KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNDMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0p
LCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MyIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEyICsgMTMgKyAyMCAr
IDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280MyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWlu
RmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkg
KyAoKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDMiLCBbdGV4
dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNzYgKyA3NyAr
IDgwICsgODEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzQzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAo
KCg1NCArIDU1ICsgNjIgKyA2MykgLyA0KSArICgoNzYgKyA3NyArIDgwICsgODEpIC8gNCkpIC8g
Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIx
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNCArIDM1ICsgMzgg
KyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21p
bkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEz
ICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCAr
IDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCAr
IDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4
dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNzYgKyA3NyArIDgwICsgODEpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0Iiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsgNjMp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAoKCg1NCArIDU1ICsgNjIgKyA2MykgLyA0KSArICgoNzYgKyA3NyArIDgwICsg
ODEpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsg
NTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg3
NyArIDc4ICsgODEgKyA4MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDU1ICsgNTYgKyA2MyArIDY0KSAv
IDQpICsgKCg3NyArIDc4ICsgODEgKyA4MikgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJl
KHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBh
cmVGdW5jdGlvbjogIm5ldmVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRo
VGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHtjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDApOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtl
MkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAw
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUi
LCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3MifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEx
KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3MifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDE3KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxv
YXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3MifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1d
LCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImVxdWFs
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBb
W1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246
ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJv
Z3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1
bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0
dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2Nv
bXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtl
MkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyld
KSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNzRXF1YWwifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAi
ZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDExKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtb
WzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjog
ImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHBy
b2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVG
dW5jdGlvbjogImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAxKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhU
ZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e2NvbXBhcmVGdW5jdGlvbjogIm5vdEVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21h
a2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcp
XSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibm90RXF1YWwifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDIzKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAi
ZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXJF
cXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3Jh
bSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0
aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRo
VGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAx
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUi
LCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIp
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiYWx3YXlzIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxNyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwg
ImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJhbHdheXMi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3Jh
bSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVu
Y3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSld
KSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9h
dCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDApOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRl
eHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5ldmVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwg
W1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rp
b246ICJsZXNzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAx
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDci
LCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0Iiks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNzIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJl
QXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHtjb21wYXJlRnVuY3Rpb246ICJsZXNzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3
XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJl
cXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21h
a2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJh
eShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2Nv
bXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1d
XSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNz
RXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDEpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFtt
YWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVy
ZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwg
W1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rp
b246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0p
LCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0
IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAwKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhU
ZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3Jh
bSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVu
Y3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAx
MSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJm
bG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibm90RXF1YWwi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDApOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkRE
ZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5vdEVxdWFsIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXko
cHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21w
YXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMTEpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tb
MTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjog
ImdyZWF0ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyld
KSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9h
dCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFs
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAxKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJE
RGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShw
cm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBh
cmVGdW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAxNyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0s
ICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiYWx3YXlz
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAxKTsKIH0KIAog
b2tUb1Rlc3QgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVGV4dHVyZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1cmUuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDA3Njk0ZmFjMjY3YTc3ODM2NWI5NGE2OGMwMjEzNzAyNTRjYTUwZgotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1cmUuanMK
QEAgLTAsMCArMSw1NDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworInVzZSBzdHJpY3QiOworCitjbGFzcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihk
aW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBp
bm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICB0aGlzLl9kaW1lbnNpb24gPSBkaW1lbnNp
b247CisgICAgICAgIHRoaXMuX3dpZHRoID0gd2lkdGg7CisgICAgICAgIHRoaXMuX2hlaWdodCA9
IGhlaWdodDsKKyAgICAgICAgdGhpcy5fZGVwdGggPSBkZXB0aDsKKyAgICAgICAgdGhpcy5fbGV2
ZWxDb3VudCA9IGxldmVsQ291bnQ7CisgICAgICAgIHRoaXMuX2xheWVyQ291bnQgPSBsYXllckNv
dW50OworICAgICAgICB0aGlzLl9pbm5lclR5cGUgPSBpbm5lclR5cGU7CisgICAgICAgIHRoaXMu
X2RhdGEgPSBkYXRhOworICAgIH0KKworICAgIGdldCBkaW1lbnNpb24oKSB7IHJldHVybiB0aGlz
Ll9kaW1lbnNpb247IH0KKyAgICBnZXQgd2lkdGgoKSB7IHJldHVybiB0aGlzLl93aWR0aDsgfQor
ICAgIGdldCBoZWlnaHQoKSB7IHJldHVybiB0aGlzLl9oZWlnaHQ7IH0KKyAgICBnZXQgZGVwdGgo
KSB7IHJldHVybiB0aGlzLl9kZXB0aDsgfQorICAgIGdldCBsZXZlbENvdW50KCkgeyByZXR1cm4g
dGhpcy5fbGV2ZWxDb3VudDsgfQorICAgIGdldCBsYXllckNvdW50KCkgeyByZXR1cm4gdGhpcy5f
bGF5ZXJDb3VudDsgfQorICAgIGdldCBpbm5lclR5cGUoKSB7IHJldHVybiB0aGlzLl9pbm5lclR5
cGU7IH0KKyAgICBnZXQgZGF0YSgpIHsgcmV0dXJuIHRoaXMuX2RhdGE7IH0KKworICAgIGVsZW1l
bnRDaGVja2VkKGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIGlmIChsYXll
ciA8IDAgfHwgbGF5ZXIgPj0gdGhpcy5sYXllckNvdW50CisgICAgICAgICAgICB8fCBsZXZlbCA8
IDAgfHwgbGV2ZWwgPj0gdGhpcy5sZXZlbENvdW50CisgICAgICAgICAgICB8fCBrIDwgMCB8fCBr
ID49IHRoaXMuZGVwdGgKKyAgICAgICAgICAgIHx8IGogPCAwIHx8IGogPj0gdGhpcy5oZWlnaHQK
KyAgICAgICAgICAgIHx8IGkgPCAwIHx8IGkgPj0gdGhpcy53aWR0aCkKKyAgICAgICAgICAgIHJl
dHVybiB1bmRlZmluZWQ7CisgICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQobGF5ZXIsIGxldmVs
LCBrLCBqLCBpKTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50Q2hlY2tlZChsYXllciwgbGV2ZWws
IGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKGxheWVyIDwgMCB8fCBsYXllciA+
PSB0aGlzLmxheWVyQ291bnQKKyAgICAgICAgICAgIHx8IGxldmVsIDwgMCB8fCBsZXZlbCA+PSB0
aGlzLmxldmVsQ291bnQKKyAgICAgICAgICAgIHx8IGsgPCAwIHx8IGsgPj0gdGhpcy5kZXB0aAor
ICAgICAgICAgICAgfHwgaiA8IDAgfHwgaiA+PSB0aGlzLmhlaWdodAorICAgICAgICAgICAgfHwg
aSA8IDAgfHwgaSA+PSB0aGlzLndpZHRoKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICB0aGlzLnNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSk7CisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTFEIGV4dGVuZHMgVGV4
dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAg
Ly8gImRhdGEiIGlzIGFuIGFycmF5IG9mIG1pcG1hcHMuCisgICAgICAgIC8vIFRoZSBmaXJzdCBt
aXBtYXAgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBt
YXkgYmUgYSBzY2FsYXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRo
ZSB3aWR0aCBtdXN0IGJlIGEgcG93ZXItb2YtdHdvLgorICAgICAgICAvLyBFYWNoIG1pcG1hcCBp
cyBoYWxmLXNpemUgb2YgdGhlIHByZXZpb3VzIHNpemUuCisKKyAgICAgICAgbGV0IGRpbWVuc2lv
biA9IDE7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQg
aGVpZ2h0ID0gMTsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291
bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSAxOworICAgICAgICBz
dXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNv
dW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdLmxlbmd0aDsKKyAgICB9CisK
KyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAg
fQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7Cisg
ICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxh
eWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbbGV2
ZWxdW2ldID0gdmFsdWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlMURBcnJheSBleHRlbmRz
IFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAg
ICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiAxRCB0ZXh0dXJlcy4KKyAgICAgICAgLy8gQWxs
IHRleHR1cmVzIG11c3QgaGF2ZSB0aGUgc2FtZSB3aWR0aCBhbmQgbnVtYmVyIG9mIG1pcG1hcHMu
CisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDE7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFb
MF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gMTsKKyAgICAgICAgbGV0IGRlcHRo
ID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAg
bGV0IGxheWVyQ291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3
aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBk
YXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICBy
ZXR1cm4gdGhpcy5kYXRhWzBdW2xldmVsXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRM
ZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGRlcHRo
QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVs
ZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
ZGF0YVtsYXllcl1bbGV2ZWxdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxl
dmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsYXllcl1bbGV2
ZWxdW2ldID0gdmFsdWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlMkQgZXh0ZW5kcyBUZXh0
dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAv
LyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgbWlwbWFwcy4KKyAgICAgICAgLy8gVGhlIGZpcnN0IG1p
cG1hcCBpcyBhIHJlY3Rhbmd1bGFyIGFycmF5IG9mIHJvd3MsIHdoZXJlIGVhY2ggcm93IGlzIGFu
IGFycmF5IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBFYWNoIGVsZW1lbnQgbWF5IGJlIGEgc2Nh
bGFyIG9yIGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgorICAgICAgICAvLyBUaGUgd2lkdGggYW5k
IGhlaWdodCBtdXN0IGJlIHBvd2Vycy1vZi10d28uCisgICAgICAgIC8vIEVhY2ggbWlwbWFwIGlz
IGhhbGYtd2lkdGggYW5kIGhhbGYtaGVpZ2h0IG9mIHRoZSBwcmV2aW91cyBzaXplLgorCisgICAg
ICAgIGxldCBkaW1lbnNpb24gPSAyOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdLmxl
bmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQg
ZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAg
ICBsZXQgbGF5ZXJDb3VudCA9IDE7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhl
aWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7Cisg
ICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRo
aXMuZGF0YVtsZXZlbF1bMF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2
ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXS5sZW5ndGg7CisgICAg
fQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7Cisg
ICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXVtqXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50
KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFb
bGV2ZWxdW2pdW2ldID0gdmFsdWU7CisgICAgfQorfQorCitsZXQgVGV4dHVyZURlcHRoMkQgPSBU
ZXh0dXJlMkQ7CisKK2NsYXNzIFRleHR1cmUyREFycmF5IGV4dGVuZHMgVGV4dHVyZSB7CisgICAg
Y29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlz
IGFuIGFycmF5IG9mIDJEIHRleHR1cmVzLgorICAgICAgICAvLyBBbGwgdGV4dHVyZXMgbXVzdCBo
YXZlIHRoZSBzYW1lIHdpZHRoLCBoZWlnaHQgYW5kIG51bWJlciBvZiBtaXBtYXBzLgorCisgICAg
ICAgIGxldCBkaW1lbnNpb24gPSAyOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdWzBd
Lmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAgICAg
ICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGFbMF0ubGVuZ3Ro
OworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBzdXBlcihk
aW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBp
bm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bbGV2ZWxdWzBdLmxlbmd0aDsKKyAgICB9CisK
KyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0
YVswXVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAg
ICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVs
LCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxd
W2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2
YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2pdW2ldID0gdmFs
dWU7CisgICAgfQorfQorCitsZXQgVGV4dHVyZURlcHRoMkRBcnJheSA9IFRleHR1cmUyREFycmF5
OworCitjbGFzcyBUZXh0dXJlM0QgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihp
bm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2Yg
bWlwbWFwcy4KKyAgICAgICAgLy8gVGhlIGZpcnN0IG1pcG1hcCBpcyBhbiBhcnJheSBvZiBkZXB0
aCBzbGljZXMsIGVhY2ggZGVwdGggc2xpY2UgaXMgYW4gYXJyYXkgb2Ygcm93cywgYW5kIGVhY2gg
cm93IGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBFYWNoIGVsZW1lbnQgbWF5
IGJlIGEgc2NhbGFyIG9yIGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgorICAgICAgICAvLyBUaGUg
d2lkdGgsIGhlaWdodCwgYW5kIGRlcHRoIG11c3QgYmUgcG93ZXJzLW9mLXR3by4KKyAgICAgICAg
Ly8gRWFjaCBtaXBtYXAgaXMgaGFsZi13aWR0aCwgaGFsZi1oZWlnaHQsIGFuZCBoYWxmLWRlcHRo
IG9mIHRoZSBwcmV2aW91cyBzaXplLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAzOworICAg
ICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdo
dCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSBkYXRhWzBdLmxlbmd0
aDsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgbGV0IGxh
eWVyQ291bnQgPSAxOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRl
cHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKwor
ICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFb
bGV2ZWxdWzBdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1bMF0ubGVuZ3RoOworICAgIH0K
KworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRh
dGFbbGV2ZWxdLmxlbmd0aDsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywg
aiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdW2tdW2pdW2ldOwor
ICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAg
ICB7CisgICAgICAgIHRoaXMuZGF0YVtsZXZlbF1ba11bal1baV0gPSB2YWx1ZTsKKyAgICB9Cit9
CisKK2NsYXNzIFRleHR1cmVDdWJlIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3Io
aW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9m
IDYgMkQgdGV4dHVyZXMuCisgICAgICAgIC8vIEFsbCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNh
bWUgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGFuZCBudW1iZXIgb2YgbWlwbWFwcy4KKworICAgICAg
ICBsZXQgZGltZW5zaW9uID0gMjsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXVswXS5s
ZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAg
bGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSBkYXRhWzBdLmxlbmd0aDsK
KyAgICAgICAgbGV0IGxheWVyQ291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgc3VwZXIoZGlt
ZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5u
ZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgewor
ICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdW2xldmVsXVswXS5sZW5ndGg7CisgICAgfQorCisg
ICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFb
MF1bbGV2ZWxdLmxlbmd0aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAg
eworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwg
aywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtq
XVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFs
dWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtqXVtpXSA9IHZhbHVl
OworICAgIH0KK30KKworbGV0IFRleHR1cmVEZXB0aEN1YmUgPSBUZXh0dXJlQ3ViZTsKKworY2xh
c3MgVGV4dHVyZTFEUlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5
cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgZWxlbWVu
dHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2FsYXIgb3IgYW4gYXJyYXkg
b2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCBtdXN0IGJlIGEgcG93ZXItb2Yt
dHdvLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAxOworICAgICAgICBsZXQgd2lkdGggPSBk
YXRhLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IDE7CisgICAgICAgIGxldCBkZXB0aCA9
IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gMTsKKyAgICAgICAgbGV0IGxheWVyQ291bnQg
PSAxOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZl
bENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRo
QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGEubGVuZ3RoOwor
ICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4g
MTsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1
cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbaV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChs
YXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2ld
ID0gdmFsdWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlMURBcnJheVJXIGV4dGVuZHMgVGV4
dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAg
Ly8gImRhdGEiIGlzIGFuIGFycmF5IG9mIDFEIFJXIHRleHR1cmVzLgorICAgICAgICAvLyBBbGwg
dGV4dHVyZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHNpemUuCisKKyAgICAgICAgbGV0IGRpbWVuc2lv
biA9IDE7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQg
aGVpZ2h0ID0gMTsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291
bnQgPSAxOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBz
dXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNv
dW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF0ubGVuZ3RoOworICAgIH0KKworICAg
IGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisK
KyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9
CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJl
dHVybiB0aGlzLmRhdGFbbGF5ZXJdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIs
IGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsYXllcl1b
aV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUyRFJXIGV4dGVuZHMgVGV4dHVy
ZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8g
ImRhdGEiIGlzIGEgcmVjdGFuZ3VsYXIgYXJyYXkgb2Ygcm93cywgd2hlcmUgZWFjaCByb3cgaXMg
YW4gYXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBz
Y2FsYXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCBh
bmQgaGVpZ2h0IG11c3QgYmUgcG93ZXJzLW9mLXR3by4KKworICAgICAgICBsZXQgZGltZW5zaW9u
ID0gMjsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBo
ZWlnaHQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0
IGxldmVsQ291bnQgPSAxOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IDE7CisgICAgICAgIHN1
cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291
bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXS5sZW5ndGg7CisgICAgfQorCisgICAg
aGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGEubGVu
Z3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJl
dHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtqXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVt
ZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRh
dGFbal1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2xldCBUZXh0dXJlRGVwdGgyRFJXID0gVGV4
dHVyZTJEUlc7CisKK2NsYXNzIFRleHR1cmUyREFycmF5UlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAg
ICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIg
aXMgYW4gYXJyYXkgb2YgMkQgUlcgdGV4dHVyZXMuCisgICAgICAgIC8vIEFsbCB0ZXh0dXJlcyBt
dXN0IGhhdmUgdGhlIHNhbWUgd2lkdGggYW5kIGhlaWdodC4KKworICAgICAgICBsZXQgZGltZW5z
aW9uID0gMjsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAg
IGxldCBoZWlnaHQgPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAg
ICAgICAgbGV0IGxldmVsQ291bnQgPSAxOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IGRhdGEu
bGVuZ3RoOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBs
ZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdp
ZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bMF0u
bGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5kYXRhWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwo
bGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxh
eWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGF5
ZXJdW2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBp
LCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsYXllcl1bal1baV0gPSB2YWx1ZTsK
KyAgICB9Cit9CisKK2xldCBUZXh0dXJlRGVwdGgyREFycmF5UlcgPSBUZXh0dXJlMkRBcnJheVJX
CisKK2NsYXNzIFRleHR1cmUzRFJXIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3Io
aW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9m
IGRlcHRoIHNsaWNlcywgZWFjaCBkZXB0aCBzbGljZSBpcyBhbiBhcnJheSBvZiByb3dzLCBhbmQg
ZWFjaCByb3cgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVu
dCBtYXkgYmUgYSBzY2FsYXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8v
IFRoZSB3aWR0aCwgaGVpZ2h0LCBhbmQgZGVwdGggbXVzdCBiZSBwb3dlcnMtb2YtdHdvLgorCisg
ICAgICAgIGxldCBkaW1lbnNpb24gPSAzOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBd
Lmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBs
ZXQgZGVwdGggPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSAxOworICAg
ICAgICBsZXQgbGF5ZXJDb3VudCA9IDE7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgs
IGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7
CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMuZGF0YVswXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZl
bCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF0ubGVuZ3RoOworICAgIH0KKwor
ICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGEu
bGVuZ3RoOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtrXVtqXVtpXTsKKyAgICB9CisKKyAgICBzZXRF
bGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlz
LmRhdGFba11bal1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlT3BlcmF0aW9ucy5qcyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1RleHR1cmVPcGVyYXRpb25zLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3NDc5OTky
NzgwNWRjMDc4Nzk0MmRkMzQxOWM3MDE3OTA2YTI2M2MKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlT3BlcmF0aW9ucy5qcwpAQCAtMCwwICsx
LDYxMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisidXNl
IHN0cmljdCI7CisKK2Z1bmN0aW9uIGRlcHRoQ29tcGFyZU9wZXJhdGlvbihkcmVmLCBkLCBjb21w
YXJlRnVuY3Rpb24pCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjMuNAorICAg
IHN3aXRjaCAoY29tcGFyZUZ1bmN0aW9uKSB7CisgICAgICAgIGNhc2UgIm5ldmVyIjoKKyAgICAg
ICAgICAgIHJldHVybiAwOworICAgICAgICBjYXNlICJsZXNzIjoKKyAgICAgICAgICAgIHJldHVy
biBkcmVmIDwgZCA/IDEgOiAwOworICAgICAgICBjYXNlICJlcXVhbCI6CisgICAgICAgICAgICBy
ZXR1cm4gZHJlZiA9PSBkID8gMSA6IDA7CisgICAgICAgIGNhc2UgImxlc3NFcXVhbCI6CisgICAg
ICAgICAgICByZXR1cm4gZHJlZiA8PSBkID8gMSA6IDA7CisgICAgICAgIGNhc2UgImdyZWF0ZXIi
OgorICAgICAgICAgICAgcmV0dXJuIGRyZWYgPiBkID8gMSA6IDA7CisgICAgICAgIGNhc2UgIm5v
dEVxdWFsIjoKKyAgICAgICAgICAgIHJldHVybiBkcmVmICE9IGQgPyAxIDogMDsKKyAgICAgICAg
Y2FzZSAiZ3JlYXRlckVxdWFsIjoKKyAgICAgICAgICAgIHJldHVybiBkcmVmID49IGQgPyAxIDog
MDsKKyAgICAgICAgY2FzZSAiYWx3YXlzIjoKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGRlcHRoIGNv
bXBhcmlzb24gZnVuY3Rpb24iKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGNvbnZlcnNpb25Ub1JH
QkEodmFsdWUpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjMuNQorICAgIGlm
ICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7CisgICAgICAgIGxldCByZXN1bHQgPSBbXTsKKyAg
ICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAg
IHJlc3VsdC5wdXNoKHZhbHVlW2ldKTsKKyAgICAgICAgd2hpbGUgKHJlc3VsdC5sZW5ndGggIT0g
NCkKKyAgICAgICAgICAgIHJlc3VsdC5wdXNoKHJlc3VsdC5sZW5ndGggPT0gMyA/IDEgOiAwKTsK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9IGVsc2UKKyAgICAgICAgcmV0dXJuIFt2YWx1
ZSwgMCwgMCwgMV07Cit9CisKK2Z1bmN0aW9uIHByb2plY3Rpb25PcGVyYXRpb24ocywgdCwgciwg
ZHJlZiwgcSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi4xCisgICAgcmV0
dXJuIFtzIC8gcSwgdCAvIHEsIHIgLyBxLCBkcmVmICE9IHVuZGVmaW5lZCA/IGRyZWYgLyBxIDog
dW5kZWZpbmVkXTsKK30KKworZnVuY3Rpb24gY3ViZU1hcEZhY2VTZWxlY3Rpb24ocywgdCwgciwg
cGFydGlhbFJ4V2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFs
UnlXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSeldpdGhS
ZXNwZWN0VG9YLCBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWSkKK3sKKyAgICAvLyBWdWxrYW4gMS4x
LjgzIHNlY3Rpb24gMTUuNi40CisgICAgbGV0IHJ4ID0gczsKKyAgICBsZXQgcnkgPSB0OworICAg
IGxldCByeiA9IHI7CisgICAgbGV0IHdpbm5lciA9IDA7CisgICAgaWYgKE1hdGguYWJzKHJ6KSA+
PSBNYXRoLmFicyhyeSkgJiYgTWF0aC5hYnMocnopID49IE1hdGguYWJzKHJ4KSkKKyAgICAgICAg
d2lubmVyID0gMjsKKyAgICBlbHNlIGlmIChNYXRoLmFicyhyeSkgPj0gTWF0aC5hYnMocngpICYm
IE1hdGguYWJzKHJ5KSA+PSBNYXRoLmFicyhyeikpCisgICAgICAgIHdpbm5lciA9IDE7CisKKyAg
ICBsZXQgbGF5ZXJOdW1iZXI7CisgICAgbGV0IHNjOworICAgIGxldCB0YzsKKyAgICBsZXQgcmM7
CisgICAgbGV0IHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YOworICAgIGxldCBwYXJ0aWFsU2NXaXRo
UmVzcGVjdFRvWTsKKyAgICBsZXQgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1g7CisgICAgbGV0IHBh
cnRpYWxUY1dpdGhSZXNwZWN0VG9ZOworICAgIGxldCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWDsK
KyAgICBsZXQgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1k7CisgICAgaWYgKHdpbm5lciA9PSAwICYm
IHJ4ID49IDApIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSAwOworICAgICAgICBzYyA9IC1yejsK
KyAgICAgICAgdGMgPSAtcnk7CisgICAgICAgIHJjID0gcng7CisgICAgICAgIHBhcnRpYWxTY1dp
dGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFs
U2NXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFy
dGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAg
IHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAg
ICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOwor
ICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9Z
OworICAgIH0gZWxzZSBpZiAod2lubmVyID09IDApIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSAx
OworICAgICAgICBzYyA9IHJ6OworICAgICAgICB0YyA9IC1yeTsKKyAgICAgICAgcmMgPSByeDsK
KyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRv
WDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnpXaXRoUmVzcGVj
dFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJl
c3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdp
dGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFs
UnhXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSAtcGFy
dGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgfSBlbHNlIGlmICh3aW5uZXIgPT0gMSAmJiByeSA+
PSAwKSB7CisgICAgICAgIGxheWVyTnVtYmVyID0gMjsKKyAgICAgICAgc2MgPSByeDsKKyAgICAg
ICAgdGMgPSAtcno7CisgICAgICAgIHJjID0gcnk7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNw
ZWN0VG9YID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhS
ZXNwZWN0VG9ZID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dp
dGhSZXNwZWN0VG9YID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxU
Y1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRp
YWxSY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBh
cnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgfSBl
bHNlIGlmICh3aW5uZXIgPT0gMSkgeworICAgICAgICBsYXllck51bWJlciA9IDM7CisgICAgICAg
IHNjID0gcng7CisgICAgICAgIHRjID0gLXJ6OworICAgICAgICByYyA9IHJ5OworICAgICAgICBw
YXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAg
ICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAg
ICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsK
KyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RU
b1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNw
ZWN0VG9YOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRo
UmVzcGVjdFRvWTsKKyAgICB9IGVsc2UgaWYgKHdpbm5lciA9PSAyICYmIHJ6ID49IDApIHsKKyAg
ICAgICAgbGF5ZXJOdW1iZXIgPSA0OworICAgICAgICBzYyA9IHJ4OworICAgICAgICB0YyA9IC1y
eTsKKyAgICAgICAgcmMgPSByejsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSBw
YXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kg
PSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RU
b1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNw
ZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRo
UmVzcGVjdFRvWCA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsUmNX
aXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIGxheWVyTnVtYmVyID0gNTsKKyAgICAgICAgc2MgPSAtcng7CisgICAgICAgIHRjID0g
LXJ5OworICAgICAgICByYyA9IHJ6OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9
IC1wYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RU
b1kgPSAtcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNw
ZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRo
UmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJj
V2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRp
YWxSY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgIH0KKyAg
ICByZXR1cm4gW2xheWVyTnVtYmVyLCBzYywgdGMsIHJjLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRv
WCwgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YLCBwYXJ0
aWFsVGNXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSY1dp
dGhSZXNwZWN0VG9ZXQorfQorCitmdW5jdGlvbiBjdWJlTWFwQ29vcmRpbmF0ZVRyYW5zZm9ybWF0
aW9uKHNjLCByYykKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi41CisgICAg
bGV0IHNGYWNlID0gKDEgLyAyKSAqIHNjIC8gTWF0aC5hYnMocmMpICsgKDEgLyAyKTsKKyAgICBs
ZXQgdEZhY2UgPSAoMSAvIDIpICogdGMgLyBNYXRoLmFicyhyYykgKyAoMSAvIDIpOworICAgIHJl
dHVybiBbc0ZhY2UsIHRGYWNlXTsKK30KKworZnVuY3Rpb24gY3ViZU1hcERlcml2YXRpdmVUcmFu
c2Zvcm1hdGlvbihzYywgdGMsIHJjLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNj
V2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVGNXaXRoUmVz
cGVjdFRvWSwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9Z
KQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjYKKyAgICBsZXQgcGFydGlh
bFNGYWNlV2l0aFJlc3BlY3RUb1ggPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFs
U2NXaXRoUmVzcGVjdFRvWCAtIHNjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gpIC8gTWF0aC5w
b3cocmMsIDIpKTsKKyAgICBsZXQgcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1kgPSAoMSAvIDIp
ICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSAtIHNjICogcGFydGlh
bFJjV2l0aFJlc3BlY3RUb1kpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICBsZXQgcGFydGlhbFRG
YWNlV2l0aFJlc3BlY3RUb1ggPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFsVGNX
aXRoUmVzcGVjdFRvWCAtIHRjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gpIC8gTWF0aC5wb3co
cmMsIDIpKTsKKyAgICBsZXQgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1kgPSAoMSAvIDIpICog
KChNYXRoLmFicyhyYykgKiBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSAtIHRjICogcGFydGlhbFJj
V2l0aFJlc3BlY3RUb1kpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICByZXR1cm4gW3BhcnRpYWxT
RmFjZVdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRG
YWNlV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0VG9ZXTsKK30KKworZnVu
Y3Rpb24gc2NhbGVGYWN0b3JPcGVyYXRpb24oZGV2aWNlTWF4QW5pc290cm9weSwgd2lkdGgsIGhl
aWdodCwgZGVwdGgsIHNhbXBsZXJNYXhBbmlzb3Ryb3B5LCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9Y
LCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9YLCBwYXJ0aWFs
U1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUldpdGhSZXNw
ZWN0VG9ZKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjcKKyAgICBsZXQg
bXV4ID0gTWF0aC5hYnMocGFydGlhbFNXaXRoUmVzcGVjdFRvWCkgKiB3aWR0aDsKKyAgICBsZXQg
bXZ4ID0gTWF0aC5hYnMocGFydGlhbFRXaXRoUmVzcGVjdFRvWCkgKiBoZWlnaHQ7CisgICAgbGV0
IG13eCA9IE1hdGguYWJzKHBhcnRpYWxSV2l0aFJlc3BlY3RUb1gpICogZGVwdGg7CisgICAgbGV0
IG11eSA9IE1hdGguYWJzKHBhcnRpYWxTV2l0aFJlc3BlY3RUb1kpICogd2lkdGg7CisgICAgbGV0
IG12eSA9IE1hdGguYWJzKHBhcnRpYWxUV2l0aFJlc3BlY3RUb1kpICogaGVpZ2h0OworICAgIGxl
dCBtd3kgPSBNYXRoLmFicyhwYXJ0aWFsUldpdGhSZXNwZWN0VG9ZKSAqIGRlcHRoOworCisgICAg
Ly8gSSBtYWRlIHRoaXMgdXAuIFRoZSBmb3JtdWxhIGlzbid0IGxpc3RlZCBpbiB0aGUgc3BlYy4K
KyAgICBsZXQgZnggPSBNYXRoLnNxcnQobXV4ICogbXV4ICsgbXZ4ICogbXZ4ICsgbXd4ICogbXd4
KTsKKyAgICBsZXQgZnkgPSBNYXRoLnNxcnQobXV5ICogbXV5ICsgbXZ5ICogbXZ5ICsgbXd5ICog
bXd5KTsKKworICAgIGxldCByaG9YID0gZng7CisgICAgbGV0IHJob1kgPSBmeTsKKyAgICBsZXQg
cmhvTWF4ID0gTWF0aC5tYXgocmhvWCwgcmhvWSk7CisgICAgbGV0IHJob01pbiA9IE1hdGgubWlu
KHJob1gsIHJob1kpOworCisgICAgbGV0IG1heEFuaXNvID0gTWF0aC5taW4oc2FtcGxlck1heEFu
aXNvdHJvcHksIGRldmljZU1heEFuaXNvdHJvcHkpOworCisgICAgbGV0IGV0YTsKKyAgICBpZiAo
cmhvTWF4ID09IDAgJiYgcmhvTWluID09IDApCisgICAgICAgIGV0YSA9IDE7CisgICAgZWxzZSBp
ZiAocmhvTWluID09IDApCisgICAgICAgIGV0YSA9IG1heEFuaXNvOworICAgIGVsc2UKKyAgICAg
ICAgZXRhID0gTWF0aC5taW4ocmhvTWF4IC8gcmhvTWluLCBtYXhBbmlzbyk7CisKKyAgICBsZXQg
TiA9IE1hdGguY2VpbChldGEpOworICAgIHJldHVybiBbcmhvTWF4LCByaG9NaW4sIGV0YSwgTl07
Cit9CisKK2Z1bmN0aW9uIGxldmVsT2ZEZXRhaWxPcGVyYXRpb24oZGV2aWNlTWF4U2FtcGxlckxv
ZEJpYXMsIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQs
IGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLCBzYW1wbGVyQmlhcywgc2FtcGxlckxvZE1pbiwgc2Ft
cGxlckxvZE1heCwgcmhvTWF4LCBldGEpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9u
IDE1LjYuNworICAgIGlmIChiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCA9PSB1bmRlZmluZWQpCisg
ICAgICAgIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kID0gMDsKKworICAgIGxldCBsYW1iZGFCYXNl
ID0gbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCAhPSB1bmRlZmluZWQgPyBsb2RGcm9tRnVuY3Rpb25P
cGVyYW5kIDogTWF0aC5sb2cyKHJob01heCAvIGV0YSk7CisgICAgbGV0IGxhbWJkYVByaW1lID0g
bGFtYmRhQmFzZSArIE1hdGgubWluKE1hdGgubWF4KHNhbXBsZXJCaWFzICsgYmlhc0Zyb21GdW5j
dGlvbk9wZXJhbmQsIC1kZXZpY2VNYXhTYW1wbGVyTG9kQmlhcyksIGRldmljZU1heFNhbXBsZXJM
b2RCaWFzKTsKKyAgICBsZXQgbG9kTWluID0gTWF0aC5tYXgoc2FtcGxlckxvZE1pbiwgbG9kTWlu
RnJvbUZ1bmN0aW9uT3BlcmFuZCk7CisgICAgbGV0IGxvZE1heCA9IHNhbXBsZXJMb2RNYXg7Cisg
ICAgbGV0IGxhbWJkYTsKKyAgICBpZiAobGFtYmRhUHJpbWUgPiBsb2RNYXgpCisgICAgICAgIGxh
bWJkYSA9IGxvZE1heDsKKyAgICBlbHNlIGlmIChsb2RNaW4gPD0gbGFtYmRhUHJpbWUgJiYgbGFt
YmRhUHJpbWUgPD0gbG9kTWF4KQorICAgICAgICBsYW1iZGEgPSBsYW1iZGFQcmltZTsKKyAgICBl
bHNlIGlmIChsYW1iZGFQcmltZSA8IGxvZE1pbikKKyAgICAgICAgbGFtYmRhID0gbG9kTWluOwor
ICAgIGVsc2UKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJsb2RNaW4gPj0gbG9kTWF4Iik7Cisg
ICAgcmV0dXJuIGxhbWJkYTsKK30KKworZnVuY3Rpb24gaW1hZ2VMZXZlbFNlbGVjdGlvbihiYXNl
TWlwTGV2ZWwsIGxldmVsQ291bnQsIG1pcG1hcE1vZGUsIGxhbWJkYSkKK3sKKyAgICAvLyBWdWxr
YW4gMS4xLjgzIHNlY3Rpb24gMTUuNi43CisgICAgZnVuY3Rpb24gbmVhcmVzdChkUHJpbWUpCisg
ICAgeworICAgICAgICByZXR1cm4gTWF0aC5jZWlsKGRQcmltZSArIDAuNSkgLSAxOworICAgIH0K
KworICAgIGxldCBxID0gbGV2ZWxDb3VudCAtIDE7CisgICAgbGV0IGRQcmltZSA9IGJhc2VNaXBM
ZXZlbCArIE1hdGgubWluKE1hdGgubWF4KGxhbWJkYSwgMCksIHEpOworICAgIGxldCBkbDsKKyAg
ICBpZiAobWlwbWFwTW9kZSA9PSAibmVhcmVzdCIpCisgICAgICAgIGRsID0gbmVhcmVzdChkUHJp
bWUpOworICAgIGVsc2UKKyAgICAgICAgZGwgPSBkUHJpbWU7CisgICAgaWYgKG1pcG1hcE1vZGUg
PT0gIm5lYXJlc3QiKQorICAgICAgICByZXR1cm4gZGw7CisgICAgZWxzZSB7CisgICAgICAgIGxl
dCBkSGkgPSBNYXRoLmZsb29yKGRsKTsKKyAgICAgICAgbGV0IGRMb3cgPSBNYXRoLm1pbihkSGkg
KyAxLCBxKTsKKyAgICAgICAgbGV0IGRlbHRhID0gZGwgLSBkSGk7CisgICAgICAgIHJldHVybiBb
ZEhpLCBkTG93LCBkZWx0YV07CisgICAgfQorfQorCitmdW5jdGlvbiBzdHJxYVRvVVZXQVRyYW5z
Zm9ybWF0aW9uKHMsIHQsIHIsIHdpZHRoLCBoZWlnaHQsIGRlcHRoKQoreworICAgIC8vIFZ1bGth
biAxLjEuODMgc2VjdGlvbiAxNS42LjgKKyAgICBsZXQgdSA9IHMgKiB3aWR0aDsKKyAgICBsZXQg
diA9IHQgKiBoZWlnaHQ7CisgICAgbGV0IHcgPSByICogZGVwdGg7CisgICAgcmV0dXJuIFt1LCB2
LCB3XTsKK30KKworZnVuY3Rpb24gdXZ3YVRvSUpLTE5UcmFuc2Zvcm1hdGlvbkFuZEFycmF5TGF5
ZXJTZWxlY3Rpb24obGF5ZXJDb3VudCwgYmFzZUFycmF5TGF5ZXIsIGZpbHRlciwgdSwgdiwgdywg
YSwgZGVsdGFJLCBkZWx0YUosIGRlbHRhSykKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rp
b24gMTUuNy4xCisKKyAgICBpZiAoZGVsdGFJID09IHVuZGVmaW5lZCkKKyAgICAgICAgZGVsdGFJ
ID0gMDsKKyAgICBpZiAoZGVsdGFKID09IHVuZGVmaW5lZCkKKyAgICAgICAgZGVsdGFKID0gMDsK
KyAgICBpZiAoZGVsdGFLID09IHVuZGVmaW5lZCkKKyAgICAgICAgZGVsdGFLID0gMDsKKworICAg
IGZ1bmN0aW9uIHJuZShhKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoYSArIDAu
NSk7CisgICAgfQorICAgIGxldCBsID0gTWF0aC5taW4oTWF0aC5tYXgocm5lKGEpLCAwKSwgbGF5
ZXJDb3VudCAtIDEpICsgYmFzZUFycmF5TGF5ZXI7CisgICAgbGV0IGk7CisgICAgbGV0IGo7Cisg
ICAgbGV0IGs7CisgICAgaWYgKGZpbHRlciA9PSAibmVhcmVzdCIpIHsKKyAgICAgICAgaSA9IE1h
dGguZmxvb3IodSk7CisgICAgICAgIGogPSBNYXRoLmZsb29yKHYpOworICAgICAgICBrID0gTWF0
aC5mbG9vcih3KTsKKyAgICAgICAgCisgICAgICAgIGkgKz0gZGVsdGFJOworICAgICAgICBqICs9
IGRlbHRhSjsKKyAgICAgICAgayArPSBkZWx0YUs7CisgICAgICAgIAorICAgICAgICByZXR1cm4g
W2ksIGosIGssIGxdOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChmaWx0ZXIgIT0gImxpbmVh
ciIpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZmlsdGVyIik7CisgICAg
ICAgIGxldCBpMCA9IE1hdGguZmxvb3IodSAtIDAuNSk7CisgICAgICAgIGxldCBpMSA9IGkwICsg
MTsKKyAgICAgICAgbGV0IGowID0gTWF0aC5mbG9vcih2IC0gMC41KTsKKyAgICAgICAgbGV0IGox
ID0gajAgKyAxOworICAgICAgICBsZXQgazAgPSBNYXRoLmZsb29yKHcgLSAwLjUpOworICAgICAg
ICBsZXQgazEgPSBrMCArIDE7CisgICAgICAgIGxldCBhbHBoYSA9ICh1IC0gMC41KSAtIGkwOwor
ICAgICAgICBsZXQgYmV0YSA9ICh2IC0gMC41KSAtIGowOworICAgICAgICBsZXQgZ2FtbWEgPSAo
dyAtIDAuNSkgLSBrMDsKKyAgICAgICAgCisgICAgICAgIGkwICs9IGRlbHRhSTsKKyAgICAgICAg
aTEgKz0gZGVsdGFJOworICAgICAgICBqMCArPSBkZWx0YUo7CisgICAgICAgIGoxICs9IGRlbHRh
SjsKKyAgICAgICAgazAgKz0gZGVsdGFLOworICAgICAgICBrMSArPSBkZWx0YUs7CisgICAgICAg
IAorICAgICAgICByZXR1cm4gW2kwLCBpMSwgajAsIGoxLCBrMCwgazEsIGwsIGFscGhhLCBiZXRh
LCBnYW1tYV07CisgICAgfQorfQorCitmdW5jdGlvbiBpbnRlZ2VyVGV4ZWxDb29yZGluYXRlT3Bl
cmF0aW9ucyhiYXNlTWlwTGV2ZWwsIGxldmVsQ291bnQsIGxldmVsQmFzZSwgbG9kRnJvbUZ1bmN0
aW9uT3BlcmFuZCkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOAorICAgIGxl
dCBkID0gbGV2ZWxCYXNlICsgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZDsKKyAgICBpZiAoZCA8IGJh
c2VNaXBMZXZlbCB8fCBkID49IGJhc2VNaXBMZXZlbCArIGxldmVsQ291bnQpCisgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiU2VsZWN0ZWQgbGV2ZWwgZG9lcyBub3QgbGllIGluc2lkZSB0aGUgaW1h
Z2UiKTsKKyAgICByZXR1cm4gZDsKK30KKworZnVuY3Rpb24gd3JhcHBpbmdPcGVyYXRpb24od2lk
dGgsIGhlaWdodCwgZGVwdGgsIGFkZHJlc3NNb2RlVSwgYWRkcmVzc01vZGVWLCBhZGRyZXNzTW9k
ZVcsIGksIGosIGspCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjkuMQorICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQgY3ViZSBtYXAgaGFuZGxpbmcKKyAgICBmdW5jdGlvbiB0cmFu
c2Zvcm0oYWRkcmVzc01vZGUsIHNpemUsIGkpCisgICAgeworICAgICAgICBmdW5jdGlvbiBtaXJy
b3IobikgeworICAgICAgICAgICAgaWYgKG4gPj0gMCkKKyAgICAgICAgICAgICAgICByZXR1cm4g
bjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gLSgxICsgbik7Cisg
ICAgICAgIH0KKyAgICAgICAgc3dpdGNoIChhZGRyZXNzTW9kZSkgeworICAgICAgICAgICAgY2Fz
ZSAiY2xhbXBUb0VkZ2UiOgorICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1h
eChpLCAwKSwgc2l6ZSAtIDEpOworICAgICAgICAgICAgY2FzZSAicmVwZWF0IjoKKyAgICAgICAg
ICAgICAgICByZXR1cm4gaSAlIHNpemU7CisgICAgICAgICAgICBjYXNlICJtaXJyb3JSZXBlYXQi
OgorICAgICAgICAgICAgICAgIHJldHVybiAoc2l6ZSAtIDEpIC0gbWlycm9yKChpICUgKDIgKiBz
aXplKSkgLSBzaXplKTsKKyAgICAgICAgICAgIGNhc2UgImNsYW1wVG9Cb3JkZXJDb2xvciI6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGksIC0xKSwgc2l6ZSk7Cisg
ICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5r
bm93biBhZGRyZXNzIG1vZGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gW3RyYW5z
Zm9ybShhZGRyZXNzTW9kZVUsIHdpZHRoLCBpKSwgdHJhbnNmb3JtKGFkZHJlc3NNb2RlViwgaGVp
Z2h0LCBqKSwgdHJhbnNmb3JtKGFkZHJlc3NNb2RlVywgZGVwdGgsIGspXTsKK30KKworZnVuY3Rp
b24gdGV4ZWxHYXRoZXJpbmcoKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS45
LjIKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMKKyAgICAvKmxldCB0YXVSID0gOworICAg
IGxldCB0YXVHID0gOworICAgIGxldCB0YXVCID0gOworICAgIGxldCB0YXVBID0gOyovCit9CisK
K2Z1bmN0aW9uIHRleGVsRmlsdGVyaW5nKAorICAgIGRldmljZU1heEFuaXNvdHJvcHksCisgICAg
ZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMsCisgICAgYmFzZU1pcExldmVsLAorICAgIGJhc2VBcnJh
eUxheWVyLAorICAgIHRleHR1cmUsCisgICAgc2FtcGxlciwKKyAgICBzYW1wbGVyQmlhcywKKyAg
ICBzLCB0LCByLCBhLAorICAgIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUssCisgICAgbG9kRnJvbUZ1
bmN0aW9uT3BlcmFuZCwKKyAgICBsb2RNaW5Gcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgIGJpYXNG
cm9tRnVuY3Rpb25PcGVyYW5kLAorICAgIGRkeCwgZGR5KQoreworICAgIC8vIFZ1bGthbiAxLjEu
ODMgc2VjdGlvbiAxNS45LjMKKworICAgIC8vIFRoZSBzcGVjIHVzZXMgZGlmZmVyZW50IG5hbWVz
IHRoYW4gV2ViR1BVIGRvZXMuCisgICAgbGV0IGFkZHJlc3NNb2RlVSA9IHNhbXBsZXIuckFkZHJl
c3NNb2RlOworICAgIGxldCBhZGRyZXNzTW9kZVYgPSBzYW1wbGVyLnNBZGRyZXNzTW9kZTsKKyAg
ICBsZXQgYWRkcmVzc01vZGVXID0gc2FtcGxlci50QWRkcmVzc01vZGU7CisKKyAgICAvLyBGSVhN
RTogTWFrZSB0aGlzIHdvcmsgd2l0aCBjdWJlbWFwcworICAgIGxldCBwYXJ0aWFsU1dpdGhSZXNw
ZWN0VG9YID0gMDsKKyAgICBsZXQgcGFydGlhbFRXaXRoUmVzcGVjdFRvWCA9IDA7CisgICAgbGV0
IHBhcnRpYWxSV2l0aFJlc3BlY3RUb1ggPSAwOworICAgIGlmIChkZHggIT0gdW5kZWZpbmVkKSB7
CisgICAgICAgIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1ggPSBkZHhbMF07CisgICAgICAgIHBhcnRp
YWxUV2l0aFJlc3BlY3RUb1ggPSBkZHhbMV07CisgICAgICAgIHBhcnRpYWxSV2l0aFJlc3BlY3RU
b1ggPSBkZHhbMl07CisgICAgfQorICAgIGxldCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9ZID0gMDsK
KyAgICBsZXQgcGFydGlhbFRXaXRoUmVzcGVjdFRvWSA9IDA7CisgICAgbGV0IHBhcnRpYWxSV2l0
aFJlc3BlY3RUb1kgPSAwOworICAgIGlmIChkZHkgIT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHBh
cnRpYWxTV2l0aFJlc3BlY3RUb1kgPSBkZHlbMF07CisgICAgICAgIHBhcnRpYWxUV2l0aFJlc3Bl
Y3RUb1kgPSBkZHlbMV07CisgICAgICAgIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kgPSBkZHlbMl07
CisgICAgfQorICAgIGxldCBbcmhvTWF4LCByaG9NaW4sIGV0YSwgTl0gPSBzY2FsZUZhY3Rvck9w
ZXJhdGlvbihkZXZpY2VNYXhBbmlzb3Ryb3B5LCB0ZXh0dXJlLndpZHRoLCB0ZXh0dXJlLmhlaWdo
dCwgdGV4dHVyZS5kZXB0aCwgc2FtcGxlci5tYXhBbmlzb3Ryb3B5LCBwYXJ0aWFsU1dpdGhSZXNw
ZWN0VG9YLCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9YLCBw
YXJ0aWFsU1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUldp
dGhSZXNwZWN0VG9ZKTsKKyAgICBsZXQgbGFtYmRhID0gbGV2ZWxPZkRldGFpbE9wZXJhdGlvbihk
ZXZpY2VNYXhTYW1wbGVyTG9kQmlhcywgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwgbG9kTWluRnJv
bUZ1bmN0aW9uT3BlcmFuZCwgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIHNhbXBsZXJCaWFzLCBz
YW1wbGVyLmxvZE1pbkNsYW1wLCBzYW1wbGVyLmxvZE1heENsYW1wLCByaG9NYXgsIGV0YSk7CisK
KyAgICBsZXQgZmlsdGVyOworICAgIGlmIChsYW1iZGEgPD0gMCkKKyAgICAgICAgZmlsdGVyID0g
c2FtcGxlci5tYWdGaWx0ZXI7CisgICAgZWxzZQorICAgICAgICBmaWx0ZXIgPSBzYW1wbGVyLm1p
bkZpbHRlcjsKKworICAgIGZ1bmN0aW9uIHJlZHVjZSguLi52YWx1ZXMpCisgICAgeworICAgICAg
ICBpZiAodmFsdWVzLmxlbmd0aCAlIDIgIT0gMCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiRG9uJ3QgaGF2ZSBhIHdlaWdodCBjb3JyZXNwb25kaW5nIHRvIGVhY2ggdmFsdWUiKTsKKyAg
ICAgICAgaWYgKHZhbHVlcy5sZW5ndGggPCAyKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJEb24ndCBoYXZlIGVub3VnaCB0aGluZ3MgdG8gY2FsY3VsYXRlIGFuIGF2ZXJhZ2UiKTsKKyAg
ICAgICAgbGV0IHN1bTsKKyAgICAgICAgaWYgKHZhbHVlc1sxXSBpbnN0YW5jZW9mIEFycmF5KSB7
CisgICAgICAgICAgICBzdW0gPSBbXTsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
dmFsdWVzWzFdLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgICAgIHN1bS5wdXNoKDApOworICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIHN1bSA9IDA7CisgICAgICAgIGZvciAobGV0IGkgPSAw
OyBpIDwgdmFsdWVzLmxlbmd0aCAvIDI7ICsraSkgeworICAgICAgICAgICAgbGV0IHdlaWdodCA9
IHZhbHVlc1syICogaV07CisgICAgICAgICAgICBsZXQgY29sb3IgPSB2YWx1ZXNbMiAqIGkgKyAx
XTsKKyAgICAgICAgICAgIGlmIChjb2xvciBpbnN0YW5jZW9mIEFycmF5KSB7CisgICAgICAgICAg
ICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2xvci5sZW5ndGg7ICsraSkKKyAgICAgICAgICAg
ICAgICAgICAgc3VtW2ldICs9IHdlaWdodCAqIGNvbG9yW2ldOworICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgc3VtICs9IHdlaWdodCAqIGNvbG9yOworICAgICAgICB9CisgICAg
ICAgIHJldHVybiBzdW07CisgICAgfQorCisgICAgZnVuY3Rpb24gY29tcHV0ZVRhdShsZXZlbCkK
KyAgICB7CisgICAgICAgIGZ1bmN0aW9uIGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRo
LCBsLCBpLCBqLCBrKQorICAgICAgICB7CisgICAgICAgICAgICBmdW5jdGlvbiBzaG91bGRCZUJv
cmRlcih2YWx1ZSwgbWF4KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICh2YWx1
ZSA8IC0xIHx8IHZhbHVlID4gbWF4KQorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIk91dC1vZi1ib3VuZHMgdGV4dHVyZSByZWFkIik7CisgICAgICAgICAgICAgICAgcmV0dXJu
IHZhbHVlID09IC0xIHx8IHZhbHVlID09IG1heDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgbGV0IFt3cmFwcGVkSSwgd3JhcHBlZEosIHdyYXBwZWRLXSA9IHdyYXBwaW5nT3BlcmF0aW9u
KHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBhZGRyZXNzTW9kZVUsIGFkZHJlc3NNb2RlViwgYWRkcmVz
c01vZGVXLCBpLCBqLCBrKQorICAgICAgICAgICAgaWYgKHNob3VsZEJlQm9yZGVyKHdyYXBwZWRJ
LCB3aWR0aCkgfHwgc2hvdWxkQmVCb3JkZXIod3JhcHBlZEosIGhlaWdodCkgfHwgc2hvdWxkQmVC
b3JkZXIod3JhcHBlZEssIGRlcHRoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc2FtcGxlci5j
YWxjdWxhdGVCb3JkZXJDb2xvcih0ZXh0dXJlLmlubmVyVHlwZSk7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgcmV0dXJuIHRleHR1cmUuZWxlbWVudChsLCBsZXZlbCwgd3JhcHBl
ZEssIHdyYXBwZWRKLCB3cmFwcGVkSSk7CisgICAgICAgIH0KKworICAgICAgICBsZXQgW3UsIHYs
IHddID0gc3RycWFUb1VWV0FUcmFuc2Zvcm1hdGlvbihzLCB0LCByLCB0ZXh0dXJlLndpZHRoQXRM
ZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhB
dExldmVsKGxldmVsKSk7CisgICAgICAgIGlmIChmaWx0ZXIgPT0gIm5lYXJlc3QiKSB7CisgICAg
ICAgICAgICBsZXQgW2ksIGosIGssIGxdID0gdXZ3YVRvSUpLTE5UcmFuc2Zvcm1hdGlvbkFuZEFy
cmF5TGF5ZXJTZWxlY3Rpb24odGV4dHVyZS5sYXllckNvdW50LCBiYXNlQXJyYXlMYXllciwgZmls
dGVyLCB1LCB2LCB3LCBhLCBkZWx0YUksIGRlbHRhSiwgZGVsdGFLKTsKKyAgICAgICAgICAgIHJl
dHVybiBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVp
Z2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaSwgaiwg
ayk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoZmlsdGVyICE9ICJsaW5lYXIi
KQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBmaWx0ZXIiKTsKKyAg
ICAgICAgICAgIGxldCBbaTAsIGkxLCBqMCwgajEsIGswLCBrMSwgbCwgYWxwaGEsIGJldGEsIGdh
bW1hXSA9IHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25BbmRBcnJheUxheWVyU2VsZWN0aW9uKHRl
eHR1cmUubGF5ZXJDb3VudCwgYmFzZUFycmF5TGF5ZXIsIGZpbHRlciwgdSwgdiwgdywgYSwgZGVs
dGFJLCBkZWx0YUosIGRlbHRhSyk7CisgICAgICAgICAgICBsZXQgY29sb3IwMDAgPSBhY2Nlc3ND
b2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChs
ZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTAsIGowLCBrMCk7CisgICAg
ICAgICAgICBsZXQgY29sb3IxMDAgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChs
ZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVs
KGxldmVsKSwgbCwgaTEsIGowLCBrMCk7CisgICAgICAgICAgICBsZXQgY29sb3IwMTAgPSBhY2Nl
c3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZl
bChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTAsIGoxLCBrMCk7Cisg
ICAgICAgICAgICBsZXQgY29sb3IxMTAgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZl
bChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExl
dmVsKGxldmVsKSwgbCwgaTEsIGoxLCBrMCk7CisgICAgICAgICAgICBsZXQgY29sb3IwMDEgPSBh
Y2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRM
ZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTAsIGowLCBrMSk7
CisgICAgICAgICAgICBsZXQgY29sb3IxMDEgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRM
ZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhB
dExldmVsKGxldmVsKSwgbCwgaTEsIGowLCBrMSk7CisgICAgICAgICAgICBsZXQgY29sb3IwMTEg
PSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0
QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTAsIGoxLCBr
MSk7CisgICAgICAgICAgICBsZXQgY29sb3IxMTEgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRo
QXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVw
dGhBdExldmVsKGxldmVsKSwgbCwgaTEsIGoxLCBrMSk7CisgICAgICAgICAgICBzd2l0Y2ggKHRl
eHR1cmUuZGltZW5zaW9uKSB7CisgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAg
ICAgICAgICBsZXQgY29sb3IwID0gY29sb3IwMTE7CisgICAgICAgICAgICAgICAgICAgIGxldCBj
b2xvcjEgPSBjb2xvcjExMTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZHVjZSgxIC0g
YWxwaGEsIGNvbG9yMCwgYWxwaGEsIGNvbG9yMSk7CisgICAgICAgICAgICAgICAgY2FzZSAyOgor
ICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IwMCA9IGNvbG9yMDAxOworICAgICAgICAgICAg
ICAgICAgICBsZXQgY29sb3IxMCA9IGNvbG9yMTAxOworICAgICAgICAgICAgICAgICAgICBsZXQg
Y29sb3IwMSA9IGNvbG9yMDExOworICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IxMSA9IGNv
bG9yMTExOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVkdWNlKCgxIC0gYWxwaGEpICog
KDEgLSBiZXRhKSwgY29sb3IwMCwgYWxwaGEgKiAoMSAtIGJldGEpLCBjb2xvcjEwLCAoMSAtIGFs
cGhhKSAqIGJldGEsIGNvbG9yMDEsIGFscGhhICogYmV0YSwgY29sb3IxMSk7CisgICAgICAgICAg
ICAgICAgY2FzZSAzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVkdWNlKAorICAgICAg
ICAgICAgICAgICAgICAgICAgKDEgLSBhbHBoYSkgKiAoMSAtIGJldGEpICogKDEgLSBnYW1tYSks
IGNvbG9yMDAwLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxwaGEgKiAoMSAtIGJldGEpICog
KDEgLSBnYW1tYSksIGNvbG9yMTAwLAorICAgICAgICAgICAgICAgICAgICAgICAgKDEgLSBhbHBo
YSkgKiBiZXRhICogKDEgLSBnYW1tYSksIGNvbG9yMDEwLAorICAgICAgICAgICAgICAgICAgICAg
ICAgYWxwaGEgKiBiZXRhICogKDEgLSBnYW1tYSksIGNvbG9yMTEwLAorICAgICAgICAgICAgICAg
ICAgICAgICAgKDEgLSBhbHBoYSkgKiAoMSAtIGJldGEpICogZ2FtbWEsIGNvbG9yMDAxLAorICAg
ICAgICAgICAgICAgICAgICAgICAgYWxwaGEgKiAoMSAtIGJldGEpICogZ2FtbWEsIGNvbG9yMTAx
LAorICAgICAgICAgICAgICAgICAgICAgICAgKDEgLSBhbHBoYSkgKiBiZXRhICogZ2FtbWEsIGNv
bG9yMDExLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxwaGEgKiBiZXRhICogZ2FtbWEsIGNv
bG9yMTExKTsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZGltZW5zaW9uIik7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBpZiAoc2FtcGxlci5taXBtYXBGaWx0ZXIgPT0gIm5lYXJlc3Qi
KSB7CisgICAgICAgIGxldCBpbWFnZUxldmVsID0gaW1hZ2VMZXZlbFNlbGVjdGlvbihiYXNlTWlw
TGV2ZWwsIHRleHR1cmUubGV2ZWxDb3VudCwgc2FtcGxlci5taXBtYXBGaWx0ZXIsIGxhbWJkYSk7
CisgICAgICAgIHJldHVybiBjb21wdXRlVGF1KGltYWdlTGV2ZWwpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIGlmIChzYW1wbGVyLm1pcG1hcEZpbHRlciAhPSAibGluZWFyIikKKyAgICAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiVW5rbm93biBmaWx0ZXIiKTsKKyAgICAgICAgbGV0IFtkSGksIGRM
b3csIGRlbHRhXSA9IGltYWdlTGV2ZWxTZWxlY3Rpb24oYmFzZU1pcExldmVsLCB0ZXh0dXJlLmxl
dmVsQ291bnQsIHNhbXBsZXIubWlwbWFwRmlsdGVyLCBsYW1iZGEpOworICAgICAgICByZXR1cm4g
cmVkdWNlKDEgLSBkZWx0YSwgY29tcHV0ZVRhdShkSGkpLCBkZWx0YSwgY29tcHV0ZVRhdShkTG93
KSk7CisgICAgfQorfQorCitmdW5jdGlvbiBjYXN0VG9Jbm5lclR5cGUodmFsdWUsIGlubmVyVHlw
ZSkKK3sKKyAgICBzd2l0Y2ggKGlubmVyVHlwZSkgeworICAgICAgICBjYXNlICJ1Y2hhciI6Cisg
ICAgICAgICAgICByZXR1cm4gY2FzdFRvVWNoYXIodmFsdWUpOworICAgICAgICBjYXNlICJ1c2hv
cnQiOgorICAgICAgICAgICAgcmV0dXJuIGNhc3RUb1VzaG9ydCh2YWx1ZSk7CisgICAgICAgIGNh
c2UgInVpbnQiOgorICAgICAgICAgICAgcmV0dXJuIGNhc3RUb1VpbnQodmFsdWUpOworICAgICAg
ICBjYXNlICJjaGFyIjoKKyAgICAgICAgICAgIHJldHVybiBjYXN0VG9DaGFyKHZhbHVlKTsKKyAg
ICAgICAgY2FzZSAic2hvcnQiOgorICAgICAgICAgICAgcmV0dXJuIGNhc3RUb1Nob3J0KHZhbHVl
KTsKKyAgICAgICAgY2FzZSAiaW50IjoKKyAgICAgICAgICAgIHJldHVybiBjYXN0VG9JbnQodmFs
dWUpOworICAgICAgICBjYXNlICJoYWxmIjoKKyAgICAgICAgICAgIHJldHVybiBjYXN0VG9IYWxm
KHZhbHVlKTsKKyAgICAgICAgY2FzZSAiZmxvYXQiOgorICAgICAgICAgICAgcmV0dXJuIGNhc3RU
b0Zsb2F0KHZhbHVlKTsKKyAgICAgICAgCisgICAgICAgIGNhc2UgInVjaGFyMiI6CisgICAgICAg
IGNhc2UgInVjaGFyMyI6CisgICAgICAgIGNhc2UgInVjaGFyNCI6CisgICAgICAgICAgICByZXR1
cm4gdmFsdWUubWFwKGNhc3RUb1VjaGFyKTsKKyAgICAgICAgY2FzZSAidXNob3J0MiI6CisgICAg
ICAgIGNhc2UgInVzaG9ydDMiOgorICAgICAgICBjYXNlICJ1c2hvcnQ0IjoKKyAgICAgICAgICAg
IHJldHVybiB2YWx1ZS5tYXAoY2FzdFRvVXNob3J0KTsKKyAgICAgICAgY2FzZSAidWludDIiOgor
ICAgICAgICBjYXNlICJ1aW50MyI6CisgICAgICAgIGNhc2UgInVpbnQ0IjoKKyAgICAgICAgICAg
IHJldHVybiB2YWx1ZS5tYXAoY2FzdFRvVWludCk7CisgICAgICAgIGNhc2UgImNoYXIyIjoKKyAg
ICAgICAgY2FzZSAiY2hhcjMiOgorICAgICAgICBjYXNlICJjaGFyNCI6CisgICAgICAgICAgICBy
ZXR1cm4gdmFsdWUubWFwKGNhc3RUb0NoYXIpOworICAgICAgICBjYXNlICJzaG9ydDIiOgorICAg
ICAgICBjYXNlICJzaG9ydDMiOgorICAgICAgICBjYXNlICJzaG9ydDQiOgorICAgICAgICAgICAg
cmV0dXJuIHZhbHVlLm1hcChjYXN0VG9TaG9ydCk7CisgICAgICAgIGNhc2UgImludDIiOgorICAg
ICAgICBjYXNlICJpbnQzIjoKKyAgICAgICAgY2FzZSAiaW50NCI6CisgICAgICAgICAgICByZXR1
cm4gdmFsdWUubWFwKGNhc3RUb0ludCk7CisgICAgICAgIGNhc2UgImhhbGYyIjoKKyAgICAgICAg
Y2FzZSAiaGFsZjMiOgorICAgICAgICBjYXNlICJoYWxmNCI6CisgICAgICAgICAgICByZXR1cm4g
dmFsdWUubWFwKGNhc3RUb0hhbGYpOworICAgICAgICBjYXNlICJmbG9hdDIiOgorICAgICAgICBj
YXNlICJmbG9hdDMiOgorICAgICAgICBjYXNlICJmbG9hdDQiOgorICAgICAgICAgICAgcmV0dXJu
IHZhbHVlLm1hcChjYXN0VG9GbG9hdCk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIlVua25vd24gdGV4dHVyZSBpbm5lciB0eXBlIik7CisgICAgfQorfQor
CitmdW5jdGlvbiBzYW1wbGVUZXh0dXJlKHRleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZWx0
YSwgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIGRkeCwgZGR5LCBsb2RGcm9tRnVuY3Rpb25PcGVy
YW5kLCBkcmVmKQoreworICAgIGxldCBzID0gbG9jYXRpb25bMF07CisgICAgbGV0IHQgPSBsb2Nh
dGlvblsxXTsKKyAgICBsZXQgciA9IGxvY2F0aW9uWzJdOworICAgIGxldCBxID0gbG9jYXRpb25b
M107CisgICAgbGV0IGEgPSBsb2NhdGlvbls0XTsKKworICAgIGxldCBkZWx0YUkgPSB1bmRlZmlu
ZWQ7CisgICAgbGV0IGRlbHRhSiA9IHVuZGVmaW5lZDsKKyAgICBsZXQgZGVsdGFLID0gdW5kZWZp
bmVkOworICAgIGlmIChkZWx0YSAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgZGVsdGFJID0gZGVs
dGFbMF07CisgICAgICAgIGRlbHRhSiA9IGRlbHRhWzFdOworICAgICAgICBkZWx0YUsgPSBkZWx0
YVsyXTsKKyAgICB9CisKKyAgICBbcywgdCwgciwgZHJlZl0gPSBwcm9qZWN0aW9uT3BlcmF0aW9u
KHMsIHQsIHIsIGRyZWYsIHEpOworICAgIGxldCByZXN1bHQgPSB0ZXhlbEZpbHRlcmluZygKKyAg
ICAgICAgTnVtYmVyLk1BWF9WQUxVRSwKKyAgICAgICAgTnVtYmVyLk1BWF9WQUxVRSwKKyAgICAg
ICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgdGV4dHVyZSwKKyAgICAgICAgc2FtcGxlciwKKyAg
ICAgICAgMCwKKyAgICAgICAgcywgdCwgciwgYSwKKyAgICAgICAgZGVsdGFJLCBkZWx0YUosIGRl
bHRhSywKKyAgICAgICAgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwKKyAgICAgICAgLU51bWJlci5N
QVhfVkFMVUUsCisgICAgICAgIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgICAgICBkZHgs
IGRkeSk7CisgICAgaWYgKGRyZWYgIT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGlmIChyZXN1bHQg
aW5zdGFuY2VvZiBBcnJheSkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRGVwdGggY29t
cGFyaXNvbiBub3Qgc3VwcG9ydGVkIG9uIG11bHRpY2hhbm5lbCB0ZXh0dXJlcyIpOworICAgICAg
ICByZXN1bHQgPSBkZXB0aENvbXBhcmVPcGVyYXRpb24oZHJlZiwgcmVzdWx0LCBzYW1wbGVyLmNv
bXBhcmVGdW5jdGlvbik7CisgICAgfQorICAgIHJldHVybiBjYXN0VG9Jbm5lclR5cGUocmVzdWx0
LCB0ZXh0dXJlLmlubmVyVHlwZSk7CisgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBk
byB3aXRoIGFuaXNvdHJvcHkKKyAgICAvLyBGSVhNRTogRmlndXJlIG91dCBob3cgdG8gZG8gbXVs
dGlzYW1wbGluZy4KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L2luZGV4Lmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCmlu
ZGV4IDY1YTg2NDExYjNlNzcwYjU1N2I0MWFjYzdlNDE0ZGVmNDI0MDMwMTMuLmU2ZTEzZGZlOGRm
YTVjNTMzMmFkOWVmMDQ5ZWNlYTM1OWI3ZTNhNDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvaW5kZXguaHRtbApAQCAtMjgsNiArMjgsNyBAQAogPHNjcmlwdCBzcmM9IkJ1aWx0aW5W
ZWN0b3JTZXR0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNhbGxFeHByZXNzaW9uLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDYWxsRnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9IkNhc3RzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDaGVjay5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2hlY2tMaXRlcmFsVHlwZXMuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9IkNoZWNrTG9vcHMuanMiPjwvc2NyaXB0PgpAQCAtMTE1LDYgKzExNiw3IEBACiA8
c2NyaXB0IHNyYz0iUmV0dXJuLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZXR1cm5DaGVj
a2VyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZXR1cm5FeGNlcHRpb24uanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IlNhbXBsZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN0
YW5kYXJkTGlicmFyeS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3RhdGVtZW50Q2xvbmVy
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIj48L3Nj
cmlwdD4KQEAgLTEyNyw2ICsxMjksOCBAQAogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVDb3B5Q29u
c3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZURl
ZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUZXJu
YXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVE
ZWYuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3Jp
cHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348752</attachid>
            <date>2018-09-02 17:03:34 -0700</date>
            <delta_ts>2018-09-02 22:58:08 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188940-20180902170333.patch</filename>
            <type>text/plain</type>
            <size>439264</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTg5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWE0MzNhZWVmNTA2YjZmNDY1NTYwMTNiZmJiNDM2MWJm
MjE5YWMxYS4uNTlhODliMDY1MjFmMzdlYjI1MDk3OGJjZDI5MDM4MDk1NzUyNTU5NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
OSBAQAorMjAxOC0wOS0wMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRleHR1cmUgdHlwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNp
Y3MuanM6CisgICAgICAgIChJbnRyaW5zaWNzLik6CisgICAgICAgIChJbnRyaW5zaWNzLmNoZWNr
RmFsc2UpOgorICAgICAgICAoSW50cmluc2ljcy5ib3hWZWN0b3IpOgorICAgICAgICAoSW50cmlu
c2ljcy51bmJveFZlY3Rvcik6CisgICAgICAgIChJbnRyaW5zaWNzKToKKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qczoKKyAgICAgICAgKGxldC5zdGFuZGFyZExpYnJh
cnkpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAobWFrZVNhbXBs
ZXIpOgorICAgICAgICAobWFrZTFEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMURUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMkRUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTNEVGV4dHVyZSk6CisgICAgICAgIChtYWtlVGV4dHVyZUN1YmUp
OgorICAgICAgICAobWFrZVJXMURUZXh0dXJlKToKKyAgICAgICAgKG1ha2VSVzFEVGV4dHVyZUFy
cmF5KToKKyAgICAgICAgKG1ha2VSVzJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlUlcyRFRleHR1
cmVBcnJheSk6CisgICAgICAgIChtYWtlUlczRFRleHR1cmUpOgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1RleHR1cmUuanM6IEFkZGVkLgorICAgICAgICAoVGV4dHVyZSk6Cisg
ICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQgZGltZW5zaW9uKToKKyAgICAgICAgKFRleHR1
cmUucHJvdG90eXBlLmdldCB3aWR0aCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aGVpZ2h0KToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkZXB0aCk6CisgICAgICAg
IChUZXh0dXJlLnByb3RvdHlwZS5nZXQgbGV2ZWxDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnBy
b3RvdHlwZS5nZXQgbGF5ZXJDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aW5uZXJUeXBlKToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkYXRhKToKKyAgICAg
ICAgKFRleHR1cmUucHJvdG90eXBlLmVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUu
cHJvdG90eXBlLnNldEVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUxRCk6CisgICAg
ICAgIChUZXh0dXJlMUQucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJl
MUQucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlw
ZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlwZS5lbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUxRC5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0
dXJlMURBcnJheSk6CisgICAgICAgIChUZXh0dXJlMURBcnJheS5wcm90b3R5cGUud2lkdGhBdExl
dmVsKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToK
KyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTFEQXJyYXkucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTFE
QXJyYXkucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEKToKKyAgICAg
ICAgKFRleHR1cmUyRC5wcm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUy
RC5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBl
LmRlcHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBlLmVsZW1lbnQpOgor
ICAgICAgICAoVGV4dHVyZTJELnByb3RvdHlwZS5zZXRFbGVtZW50KToKKyAgICAgICAgKFRleHR1
cmUyREFycmF5KToKKyAgICAgICAgKFRleHR1cmUyREFycmF5LnByb3RvdHlwZS53aWR0aEF0TGV2
ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgor
ICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMkRBcnJheS5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMkRB
cnJheS5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlM0QpOgorICAgICAg
ICAoVGV4dHVyZTNELnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTNE
LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUuZWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0QucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVy
ZUN1YmUpOgorICAgICAgICAoVGV4dHVyZUN1YmUucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6Cisg
ICAgICAgIChUZXh0dXJlQ3ViZS5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlQ3ViZS5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmVDdWJl
LnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmVDdWJlLnByb3RvdHlwZS5zZXRF
bGVtZW50KToKKyAgICAgICAgKFRleHR1cmUxRFJXKToKKyAgICAgICAgKFRleHR1cmUxRFJXLnBy
b3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmhl
aWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmRlcHRoQXRMZXZl
bCk6CisgICAgICAgIChUZXh0dXJlMURSVy5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChU
ZXh0dXJlMURSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMURBcnJh
eVJXKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6
CisgICAgICAgIChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAg
ICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUx
REFycmF5UlcucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEUlcpOgor
ICAgICAgICAoVGV4dHVyZTJEUlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlMkRSVy5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkRS
Vy5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlw
ZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlwZS5zZXRFbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUyREFycmF5UlcpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5w
cm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90
eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90eXBlLmVsZW1l
bnQpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0RSVyk6CisgICAgICAgIChUZXh0dXJlM0RSVy5wcm90b3R5cGUud2lk
dGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVs
KToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTNEUlcucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTNEUlcu
cHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1RleHR1cmVPcGVyYXRpb25zLmpzOiBBZGRlZC4KKyAgICAgICAgKGRlcHRoQ29tcGFyZU9wZXJh
dGlvbik6CisgICAgICAgIChjb252ZXJzaW9uVG9SR0JBKToKKyAgICAgICAgKHByb2plY3Rpb25P
cGVyYXRpb24pOgorICAgICAgICAoY3ViZU1hcEZhY2VTZWxlY3Rpb24pOgorICAgICAgICAoY3Vi
ZU1hcENvb3JkaW5hdGVUcmFuc2Zvcm1hdGlvbik6CisgICAgICAgIChjdWJlTWFwRGVyaXZhdGl2
ZVRyYW5zZm9ybWF0aW9uKToKKyAgICAgICAgKHNjYWxlRmFjdG9yT3BlcmF0aW9uKToKKyAgICAg
ICAgKGxldmVsT2ZEZXRhaWxPcGVyYXRpb24pOgorICAgICAgICAobmVhcmVzdCk6CisgICAgICAg
IChpbWFnZUxldmVsU2VsZWN0aW9uKToKKyAgICAgICAgKHN0cnFhVG9VVldBVHJhbnNmb3JtYXRp
b24pOgorICAgICAgICAocm5lKToKKyAgICAgICAgKHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25B
bmRBcnJheUxheWVyU2VsZWN0aW9uKToKKyAgICAgICAgKGludGVnZXJUZXhlbENvb3JkaW5hdGVP
cGVyYXRpb25zKToKKyAgICAgICAgKG1pcnJvcik6CisgICAgICAgICh0cmFuc2Zvcm0pOgorICAg
ICAgICAod3JhcHBpbmdPcGVyYXRpb24pOgorICAgICAgICAodGV4ZWxHYXRoZXJpbmcpOgorICAg
ICAgICAoY29tcHV0ZVRhdS5yZWR1Y2UpOgorICAgICAgICAoY29tcHV0ZVRhdS5zaG91bGRCZUJv
cmRlcik6CisgICAgICAgIChjb21wdXRlVGF1LmFjY2Vzc0NvbG9yKToKKyAgICAgICAgKGNvbXB1
dGVUYXUpOgorICAgICAgICAodGV4ZWxGaWx0ZXJpbmcpOgorICAgICAgICAoc2FtcGxlVGV4dHVy
ZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAx
OC0wOS0wMSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW1dQRV0gMi4yMS45MSBmYWlscyB0byBidWlsZCB3aXRoIEVOQUJMRV9NSU5JQlJPV1NF
UgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCmluZGV4IDljMmEzNzE1MGMxZTk3NmI5
MjZjZmJlZTIzNDM3NTIwYThkZTRhNDcuLjkwZmM4NDEzYTY1MTIyNDQ2YmYwMWZkOTY3ZGQ2NTEz
OWEwZjg3ZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5q
cworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKQEAgLTUxLDYgKzUx
LDcgQEAgbG9hZCgiQnVpbHRpblZlY3RvckdldHRlci5qcyIpOwogbG9hZCgiQnVpbHRpblZlY3Rv
clNldHRlci5qcyIpOwogbG9hZCgiQ2FsbEV4cHJlc3Npb24uanMiKTsKIGxvYWQoIkNhbGxGdW5j
dGlvbi5qcyIpOworbG9hZCgiQ2FzdHMuanMiKTsKIGxvYWQoIkNoZWNrLmpzIik7CiBsb2FkKCJD
aGVja0xpdGVyYWxUeXBlcy5qcyIpOwogbG9hZCgiQ2hlY2tMb29wcy5qcyIpOwpAQCAtMTM4LDYg
KzEzOSw3IEBAIGxvYWQoIlJlc29sdmVUeXBlRGVmcy5qcyIpOwogbG9hZCgiUmV0dXJuLmpzIik7
CiBsb2FkKCJSZXR1cm5DaGVja2VyLmpzIik7CiBsb2FkKCJSZXR1cm5FeGNlcHRpb24uanMiKTsK
K2xvYWQoIlNhbXBsZXIuanMiKTsKIGxvYWQoIlN0YW5kYXJkTGlicmFyeS5qcyIpOwogbG9hZCgi
U3RhdGVtZW50Q2xvbmVyLmpzIik7CiBsb2FkKCJTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIik7CkBA
IC0xNTAsNiArMTUyLDggQEAgbG9hZCgiU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyIpOwog
bG9hZCgiU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIik7CiBsb2FkKCJTeW50
aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiKTsKIGxvYWQoIlRlcm5hcnlFeHBy
ZXNzaW9uLmpzIik7Citsb2FkKCJUZXh0dXJlLmpzIik7Citsb2FkKCJUZXh0dXJlT3BlcmF0aW9u
cy5qcyIpOwogbG9hZCgiVHJhcFN0YXRlbWVudC5qcyIpOwogbG9hZCgiVHlwZURlZi5qcyIpOwog
bG9hZCgiVHlwZURlZlJlc29sdmVyLmpzIik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9DYXN0cy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Nh
c3RzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFjYmIyZWEwMjg1MzViNDY3MDQyMzA5N2Y3YTViNTdjYWY2Yjhi
MWMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYXN0
cy5qcwpAQCAtMCwwICsxLDExNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworInVzZSBzdHJpY3QiOworCitmdW5jdGlvbiBjYXN0KHR5cGVkQXJyYXlDb25z
dHJ1Y3RvciwgbnVtYmVyKQoreworICAgIHZhciBhcnJheSA9IG5ldyB0eXBlZEFycmF5Q29uc3Ry
dWN0b3IoMSk7CisgICAgYXJyYXlbMF0gPSBudW1iZXI7CisgICAgcmV0dXJuIGFycmF5WzBdOwor
fQorCitmdW5jdGlvbiBiaXR3aXNlQ2FzdCh0eXBlZEFycmF5Q29uc3RydWN0b3IxLCB0eXBlZEFy
cmF5Q29uc3RydWN0b3IyLCB2YWx1ZSkKK3sKKyAgICBsZXQgdHlwZWRBcnJheTEgPSBuZXcgdHlw
ZWRBcnJheUNvbnN0cnVjdG9yMSgxKTsKKyAgICBsZXQgdHlwZWRBcnJheTIgPSBuZXcgdHlwZWRB
cnJheUNvbnN0cnVjdG9yMih0eXBlZEFycmF5MS5idWZmZXIpOworICAgIHR5cGVkQXJyYXkxWzBd
ID0gdmFsdWU7CisgICAgcmV0dXJuIHR5cGVkQXJyYXkyWzBdOworfQorCitmdW5jdGlvbiBjYXN0
VG9VY2hhcihudW1iZXIpCit7CisgICAgcmV0dXJuIG51bWJlciAmIDB4RkY7Cit9CisKK2Z1bmN0
aW9uIGNhc3RUb1VzaG9ydChudW1iZXIpCit7CisgICAgcmV0dXJuIG51bWJlciAmIDB4RkZGRjsK
K30KKworZnVuY3Rpb24gY2FzdFRvVWludChudW1iZXIpCit7CisgICAgcmV0dXJuIG51bWJlciA+
Pj4gMDsKK30KKworZnVuY3Rpb24gY2FzdFRvQ2hhcihudW1iZXIpCit7CisgICAgcmV0dXJuIGNh
c3QoSW50OEFycmF5LCBudW1iZXIpOworfQorCitmdW5jdGlvbiBjYXN0VG9TaG9ydChudW1iZXIp
Cit7CisgICAgcmV0dXJuIGNhc3QoSW50MTZBcnJheSwgbnVtYmVyKTsKK30KKworZnVuY3Rpb24g
Y2FzdFRvSW50KG51bWJlcikKK3sKKyAgICByZXR1cm4gbnVtYmVyIHwgMDsKK30KKworZnVuY3Rp
b24gY2FzdFRvSGFsZihudW1iZXIpCit7CisgICAgLy8gRklYTUU6IE1ha2UgdGhpcyBtYXRoIG9i
ZXkgSUVFRSA3NTQuCisgICAgaWYgKE51bWJlci5pc05hTihudW1iZXIpKQorICAgICAgIHJldHVy
biBudW1iZXIKKyAgICBpZiAobnVtYmVyID4gNjU1MDQpCisgICAgICAgIHJldHVybiBOdW1iZXIu
UE9TSVRJVkVfSU5GSU5JVFk7CisgICAgaWYgKG51bWJlciA8IC02NTUwNCkKKyAgICAgICAgcmV0
dXJuIE51bWJlci5ORUdBVElWRV9JTkZJTklUWTsKKyAgICBpZiAobnVtYmVyID4gMCAmJiBudW1i
ZXIgPCBNYXRoLnBvdygyLCAtMjQpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAobnVtYmVy
IDwgMCAmJiBudW1iZXIgPiAtTWF0aC5wb3coMiwgLTI0KSkKKyAgICAgICAgcmV0dXJuIC0wOwor
ICAgIGxldCBkb3VibGVBcnJheSA9IG5ldyBGbG9hdDY0QXJyYXkoMSk7CisgICAgbGV0IHVpbnRB
cnJheSA9IG5ldyBVaW50OEFycmF5KGRvdWJsZUFycmF5LmJ1ZmZlcik7CisgICAgZG91YmxlQXJy
YXlbMF0gPSBudW1iZXI7CisgICAgbGV0IHNpZ24gPSB1aW50QXJyYXlbN10gJiAweDgwOworICAg
IGxldCBleHBvbmVudCA9ICgodWludEFycmF5WzddICYgMHg3ZikgPDwgNCkgfCAoKHVpbnRBcnJh
eVs2XSAmIDB4ZjApID4+PiA0KTsKKyAgICBsZXQgc2lnbmlmaWNhbmQgPSAoKHVpbnRBcnJheVs2
XSAmIDB4MGYpIDw8IDYpIHwgKCh1aW50QXJyYXlbNV0gJiAweGZjKSA+Pj4gMik7CisKKyAgICBp
ZiAoKGV4cG9uZW50IC0gMTAyMykgPCAtMTQpIHsKKyAgICAgICAgZXhwb25lbnQgPSAwOworICAg
ICAgICBzaWduaWZpY2FuZCA9IChNYXRoLmFicyhudW1iZXIpICogTWF0aC5wb3coMiwgMjQpKSA+
Pj4gMDsKKyAgICAgICAgbGV0IHZhbHVlID0gTWF0aC5wb3coMiwgLTE0KSAqIHNpZ25pZmljYW5k
IC8gMTAyNDsKKyAgICAgICAgaWYgKHNpZ24gIT0gMCkKKyAgICAgICAgICAgIHZhbHVlICo9IC0x
OworICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorCisgICAgZG91YmxlQXJyYXlbMF0gPSAw
OworCisgICAgdWludEFycmF5WzddIHw9IHNpZ247CisgICAgdWludEFycmF5WzddIHw9IChleHBv
bmVudCA+Pj4gNCk7CisgICAgdWludEFycmF5WzZdIHw9ICgoZXhwb25lbnQgPDwgNCkgJiAweGYw
KTsKKyAgICB1aW50QXJyYXlbNl0gfD0gKHNpZ25pZmljYW5kID4+PiA2KTsKKyAgICB1aW50QXJy
YXlbNV0gfD0gKChzaWduaWZpY2FuZCA8PCAyKSAmIDB4ZmMpOworCisgICAgcmV0dXJuIGRvdWJs
ZUFycmF5WzBdOworfQorCitmdW5jdGlvbiBjYXN0VG9GbG9hdChudW1iZXIpCit7CisgICAgcmV0
dXJuIE1hdGguZnJvdW5kKG51bWJlcik7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvSW50cmluc2ljcy5qcwppbmRleCBiMDA0MDY3ZjVlYmZiM2E4YjRiZDk4ZTQzN2E4YzA3Njhi
ZTI2ZjFlLi5lYjQwNGZkNjljMTI0YjIxMTU5OTUyZDA4NDJiMGQzN2Q0YzhjZTBjIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCisrKyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMKQEAgLTQ4LDYxICs0OCw2
IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KIAotICAgICAgICBmdW5jdGlvbiBjYXN0KHR5cGVkQXJyYXlDb25zdHJ1Y3RvciwgbnVtYmVy
KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgYXJyYXkgPSBuZXcgdHlwZWRBcnJheUNvbnN0
cnVjdG9yKDEpOwotICAgICAgICAgICAgYXJyYXlbMF0gPSBudW1iZXI7Ci0gICAgICAgICAgICBy
ZXR1cm4gYXJyYXlbMF07Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBiaXR3aXNlQ2Fz
dCh0eXBlZEFycmF5Q29uc3RydWN0b3IxLCB0eXBlZEFycmF5Q29uc3RydWN0b3IyLCB2YWx1ZSkK
LSAgICAgICAgewotICAgICAgICAgICAgbGV0IHR5cGVkQXJyYXkxID0gbmV3IHR5cGVkQXJyYXlD
b25zdHJ1Y3RvcjEoMSk7Ci0gICAgICAgICAgICBsZXQgdHlwZWRBcnJheTIgPSBuZXcgdHlwZWRB
cnJheUNvbnN0cnVjdG9yMih0eXBlZEFycmF5MS5idWZmZXIpOwotICAgICAgICAgICAgdHlwZWRB
cnJheTFbMF0gPSB2YWx1ZTsKLSAgICAgICAgICAgIHJldHVybiB0eXBlZEFycmF5MlswXTsKLSAg
ICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIGNhc3RUb0hhbGYobnVtYmVyKQotICAgICAgICB7
Ci0gICAgICAgICAgICAvLyBGSVhNRTogTWFrZSB0aGlzIG1hdGggb2JleSBJRUVFIDc1NC4KLSAg
ICAgICAgICAgIGlmIChOdW1iZXIuaXNOYU4obnVtYmVyKSkKLSAgICAgICAgICAgICAgIHJldHVy
biBudW1iZXIKLSAgICAgICAgICAgIGlmIChudW1iZXIgPiA2NTUwNCkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOwotICAgICAgICAgICAgaWYgKG51bWJl
ciA8IC02NTUwNCkKLSAgICAgICAgICAgICAgICByZXR1cm4gTnVtYmVyLk5FR0FUSVZFX0lORklO
SVRZOwotICAgICAgICAgICAgaWYgKG51bWJlciA+IDAgJiYgbnVtYmVyIDwgTWF0aC5wb3coMiwg
LTI0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIGlmIChudW1iZXIg
PCAwICYmIG51bWJlciA+IC1NYXRoLnBvdygyLCAtMjQpKQotICAgICAgICAgICAgICAgIHJldHVy
biAtMDsKLSAgICAgICAgICAgIGxldCBkb3VibGVBcnJheSA9IG5ldyBGbG9hdDY0QXJyYXkoMSk7
Ci0gICAgICAgICAgICBsZXQgdWludEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoZG91YmxlQXJyYXku
YnVmZmVyKTsKLSAgICAgICAgICAgIGRvdWJsZUFycmF5WzBdID0gbnVtYmVyOwotICAgICAgICAg
ICAgbGV0IHNpZ24gPSB1aW50QXJyYXlbN10gJiAweDgwOwotICAgICAgICAgICAgbGV0IGV4cG9u
ZW50ID0gKCh1aW50QXJyYXlbN10gJiAweDdmKSA8PCA0KSB8ICgodWludEFycmF5WzZdICYgMHhm
MCkgPj4+IDQpOwotICAgICAgICAgICAgbGV0IHNpZ25pZmljYW5kID0gKCh1aW50QXJyYXlbNl0g
JiAweDBmKSA8PCA2KSB8ICgodWludEFycmF5WzVdICYgMHhmYykgPj4+IDIpOwotCi0gICAgICAg
ICAgICBpZiAoKGV4cG9uZW50IC0gMTAyMykgPCAtMTQpIHsKLSAgICAgICAgICAgICAgICBleHBv
bmVudCA9IDA7Ci0gICAgICAgICAgICAgICAgc2lnbmlmaWNhbmQgPSAoTWF0aC5hYnMobnVtYmVy
KSAqIE1hdGgucG93KDIsIDI0KSkgPj4+IDA7Ci0gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0g
TWF0aC5wb3coMiwgLTE0KSAqIHNpZ25pZmljYW5kIC8gMTAyNDsKLSAgICAgICAgICAgICAgICBp
ZiAoc2lnbiAhPSAwKQotICAgICAgICAgICAgICAgICAgICB2YWx1ZSAqPSAtMTsKLSAgICAgICAg
ICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGRvdWJs
ZUFycmF5WzBdID0gMDsKLQotICAgICAgICAgICAgdWludEFycmF5WzddIHw9IHNpZ247Ci0gICAg
ICAgICAgICB1aW50QXJyYXlbN10gfD0gKGV4cG9uZW50ID4+PiA0KTsKLSAgICAgICAgICAgIHVp
bnRBcnJheVs2XSB8PSAoKGV4cG9uZW50IDw8IDQpICYgMHhmMCk7Ci0gICAgICAgICAgICB1aW50
QXJyYXlbNl0gfD0gKHNpZ25pZmljYW5kID4+PiA2KTsKLSAgICAgICAgICAgIHVpbnRBcnJheVs1
XSB8PSAoKHNpZ25pZmljYW5kIDw8IDIpICYgMHhmYyk7Ci0KLSAgICAgICAgICAgIHJldHVybiBk
b3VibGVBcnJheVswXTsKLSAgICAgICAgfQotCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAg
ICAgICAgICAibmF0aXZlIHR5cGVkZWYgdm9pZCIsCiAgICAgICAgICAgICB0eXBlID0+IHsKQEAg
LTEyOCwxNSArNzMsMTUgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgdHlw
ZS5pc0ludCA9IHRydWU7CiAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHR5
cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudCh2YWx1ZSAmIDB4
ZmYsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+
IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvVWNoYXIodmFsdWUpLCB2YWx1ZSk7CiAgICAgICAg
ICAgICAgICAgdHlwZS5zaXplID0gMTsKICAgICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1
ZSA9IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFs
dWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2YWx1ZSAmIDB4ZmYsIHR5cGUpOwot
ICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiAodmFsdWUgKyAx
KSAmIDB4ZmY7CisgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwg
dmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBjYXN0VG9VY2hhcih2YWx1ZSks
IHR5cGUpOworICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBj
YXN0VG9VY2hhcih2YWx1ZSArIDEpOwogICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwg
PSAoYSwgYikgPT4gYSA9PT0gYjsKICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVs
dFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7Ci0gICAg
ICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFs
dWUgJiAweGZmOwotICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVy
YWwgPSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmY7CisgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRW
YWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvVWNoYXIodmFsdWUpOworICAgICAg
ICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0
VG9VY2hhcih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlv
biooKSB7CiAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmY7ICsr
aSkKICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogaSwgbmFtZTogaX07CkBA
IC0xNTIsMTUgKzk3LDE1IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICB0
eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7
CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAg
ICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVl
ICYgMHhmZmZmLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0g
dmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0VG9Vc2hvcnQodmFsdWUpLCB2YWx1ZSk7
CiAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAgICAgIHR5cGUu
ZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0g
KG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2YWx1ZSAmIDB4
ZmZmZiwgdHlwZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1
ZSA9PiAodmFsdWUgKyAxKSAmIDB4ZmZmZjsKKyAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVM
aXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBj
YXN0VG9Vc2hvcnQodmFsdWUpLCB0eXBlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNz
b3JWYWx1ZSA9IHZhbHVlID0+IGNhc3RUb1VzaG9ydCh2YWx1ZSArIDEpOwogICAgICAgICAgICAg
ICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7CiAgICAgICAgICAgICAg
ICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZl
ci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21J
bnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAweGZmZmY7Ci0gICAgICAgICAgICAgICAgIHR5
cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmZmZjsK
KyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUg
PT4gY2FzdFRvVXNob3J0KHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1
ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb1VzaG9ydCh2YWx1ZSk7CiAgICAgICAg
ICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVuY3Rpb24qKCkgewogICAgICAgICAgICAgICAg
ICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhmZmZmOyArK2kpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgeWllbGQge3ZhbHVlOiBpLCBuYW1lOiBpfTsKQEAgLTE3NSwxNSArMTIwLDE1IEBA
IGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsK
ICAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAgICAgICAg
IHR5cGUuaXNTaWduZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNl
bnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVlID4+PiAwLCB2YWx1ZSk7Cisg
ICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1
aXZhbGVudChjYXN0VG9VaW50KHZhbHVlKSwgdmFsdWUpOwogICAgICAgICAgICAgICAgICB0eXBl
LnNpemUgPSAxOwogICAgICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAg
ICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRM
aXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgdmFsdWUgPj4+IDAsIHR5cGUpOwotICAgICAgICAgICAg
ICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gKHZhbHVlICsgMSkgPj4+IDA7Cisg
ICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJ
bnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2FzdFRvVWludCh2YWx1ZSksIHR5cGUpOworICAg
ICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdFRvVWludCh2
YWx1ZSArIDEpOwogICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+
IGEgPT09IGI7CiAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAo
YnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAg
ICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgPj4+IDA7
Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1
ZSA9PiB2YWx1ZSA+Pj4gMDsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21J
bnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvVWludCh2YWx1ZSk7CisgICAgICAgICAgICAgICAg
IHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9VaW50KHZh
bHVlKTsKICAgICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7CiAg
ICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSAweGZmZmZmZmZmOyArK2kp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVlOiBpLCBuYW1lOiBpfTsKQEAg
LTE5OCwxOCArMTQzLDE4IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICB0
eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7
CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSB0cnVlOwotICAgICAgICAgICAgICAg
ICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdChJ
bnQ4QXJyYXksIHZhbHVlKSwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJl
c2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvQ2hhcih2YWx1ZSksIHZh
bHVlKTsKICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKICAgICAgICAgICAgICAgICAg
dHlwZS5kZWZhdWx0VmFsdWUgPSAwOwotICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVy
YWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3Qo
SW50OEFycmF5LCB2YWx1ZSksIHR5cGUpOwotICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3Nv
clZhbHVlID0gdmFsdWUgPT4gY2FzdChJbnQ4QXJyYXksIHZhbHVlICsgMSk7CisgICAgICAgICAg
ICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFs
LndpdGhUeXBlKG9yaWdpbiwgY2FzdFRvQ2hhcih2YWx1ZSksIHR5cGUpOworICAgICAgICAgICAg
ICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdFRvQ2hhcih2YWx1ZSArIDEp
OwogICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7
CiAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBv
ZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5m
b3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdChJbnQ4QXJyYXksIHZhbHVl
KTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZh
bHVlID0+IGNhc3QoSW50OEFycmF5LCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9y
bWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb0NoYXIodmFsdWUpOworICAg
ICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4g
Y2FzdFRvQ2hhcih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVu
Y3Rpb24qKCkgewogICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhm
ZjsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gY2FzdChJbnQ4
QXJyYXksIGkpOworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGNhc3RUb0No
YXIoaSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVlOiB2YWx1ZSwgbmFt
ZTogdmFsdWV9OwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9OwpA
QCAtMjIzLDE4ICsxNjgsMTggQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAg
IHR5cGUuaXNJbnQgPSB0cnVlOwogICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1
ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IHRydWU7Ci0gICAgICAgICAgICAg
ICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0
KEludDE2QXJyYXksIHZhbHVlKSwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJl
cHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvU2hvcnQodmFsdWUp
LCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAg
ICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVM
aXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBj
YXN0KEludDE2QXJyYXksIHZhbHVlKSwgdHlwZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuc3Vj
Y2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0KEludDE2QXJyYXksIHZhbHVlICsgMSk7CisgICAg
ICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRM
aXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2FzdFRvU2hvcnQodmFsdWUpLCB0eXBlKTsKKyAgICAg
ICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+IGNhc3RUb1Nob3J0KHZh
bHVlICsgMSk7CiAgICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4g
YSA9PT0gYjsKICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChi
dWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOwotICAgICAgICAgICAgICAg
ICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0KEludDE2QXJy
YXksIHZhbHVlKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0
ZXJhbCA9IHZhbHVlID0+IGNhc3QoSW50MTZBcnJheSwgdmFsdWUpOworICAgICAgICAgICAgICAg
ICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9TaG9ydCh2
YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwg
PSB2YWx1ZSA9PiBjYXN0VG9TaG9ydCh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuYWxs
VmFsdWVzID0gZnVuY3Rpb24qKCkgewogICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9
IDA7IGkgPD0gMHhmZmZmOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFs
dWUgPSBjYXN0KEludDE2QXJyYXksIGkpOworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2
YWx1ZSA9IGNhc3RUb1Nob3J0KGkpOwogICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2
YWx1ZTogdmFsdWUsIG5hbWU6IHZhbHVlfTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgfTsKQEAgLTI0OCwxOCArMTkzLDE4IEBAIGNsYXNzIEludHJpbnNpY3Mgewog
ICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlw
ZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSB0cnVl
OwotICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lz
ZUVxdWl2YWxlbnQodmFsdWUgfCAwLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuY2Fu
UmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0VG9JbnQodmFsdWUp
LCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAg
ICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVM
aXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2
YWx1ZSB8IDAsIHR5cGUpOwotICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0g
dmFsdWUgPT4gKHZhbHVlICsgMSkgfCAwOworICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxp
dGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNh
c3RUb0ludCh2YWx1ZSksIHR5cGUpOworICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZh
bHVlID0gdmFsdWUgPT4gY2FzdFRvSW50KHZhbHVlICsgMSk7CiAgICAgICAgICAgICAgICAgIHR5
cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKICAgICAgICAgICAgICAgICAgdHlw
ZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChv
ZmZzZXQsIDApOwotICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVy
YWwgPSB2YWx1ZSA9PiB2YWx1ZSB8IDA7Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFs
dWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSB8IDA7CisgICAgICAgICAgICAgICAg
IHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb0ludCh2YWx1
ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2
YWx1ZSA9PiBjYXN0VG9JbnQodmFsdWUpOwogICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVl
cyA9IGZ1bmN0aW9uKigpIHsKICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBp
IDw9IDB4ZmZmZmZmZmY7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1
ZSA9IGkgfCAwOworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGNhc3RUb0lu
dChpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IHZhbHVlLCBuYW1l
OiB2YWx1ZX07CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH07CkBA
IC0yOTIsNyArMjM3LDcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgIHR5
cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQo
b2Zmc2V0LCAwKTsKICAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRl
cmFsID0gdmFsdWUgPT4gdmFsdWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVG
cm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5m
b3JtYXRWYWx1ZUZyb21GbG9hdExpdGVyYWwgPSB2YWx1ZSA9PiBNYXRoLmZyb3VuZCh2YWx1ZSk7
CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tRmxvYXRMaXRlcmFsID0gdmFs
dWUgPT4gY2FzdFRvRmxvYXQodmFsdWUpOwogICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCkBAIC0zMzAsNyArMjc1LDggQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAg
ICAgICAgICAibmF0aXZlIHR5cGVkZWYgc2FtcGxlciIsCiAgICAgICAgICAgICB0eXBlID0+IHsK
ICAgICAgICAgICAgICAgICB0aGlzLnNhbXBsZXIgPSB0eXBlOwotICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gcHV0IGhlcmUuCisgICAgICAgICAgICAgICAgdHlw
ZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0g
KGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAg
fSk7CiAKICAgICAgICAgZm9yIChsZXQgdGV4dHVyZVR5cGUgb2YgWyJUZXh0dXJlMUQiLCAiUldU
ZXh0dXJlMUQiLCAiVGV4dHVyZTFEQXJyYXkiLCAiUldUZXh0dXJlMURBcnJheSIsICJUZXh0dXJl
MkQiLCAiUldUZXh0dXJlMkQiLCAiVGV4dHVyZTJEQXJyYXkiLCAiUldUZXh0dXJlMkRBcnJheSIs
ICJUZXh0dXJlM0QiLCAiUldUZXh0dXJlM0QiLCAiVGV4dHVyZUN1YmUiXSkgewpAQCAtMzM5LDEy
ICsyODUsMTYgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgdHlwZWRlZiAke3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YCwKICAgICAgICAgICAg
ICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1
cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAg
ICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVE
ZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCB7fSk7
CiAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAy
OyBpIDw9IDQ7ICsraSkgewogICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAg
ICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlw
ZUFyZ3VtZW50fSR7aX0+YCwKICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3Vt
ZW50fSR7aX0+YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUuc2l6
ZSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRW
YWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIHt9KTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
QEAgLTM1Niw2ICszMDYsOCBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gLAogICAg
ICAgICAgICAgICAgICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNb
YCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gXSA9IHR5cGU7CisgICAgICAgICAgICAg
ICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5w
b3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZz
ZXQsIHt9KTsKICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KQEAgLTM2NCw3ICszMTYsNyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCiAgICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciB1Y2hhcigke3By
aW1pdGl2ZVR5cGV9KWAsCiAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUu
bG9hZFZhbHVlKCkgJiAweGZmKTsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9VY2hhcih2YWx1ZS5sb2FkVmFsdWUo
KSkpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKQEAgLTM3Miw3ICszMjQsNyBA
QCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciB1c2hvcnQoJHtwcmltaXRpdmVUeXBlfSlgLAogICAg
ICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpICYgMHhmZmZm
KTsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PiBFUHRyLmJveChjYXN0VG9Vc2hvcnQodmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfQogCkBAIC0zODAsNyArMzMyLDcgQEAgY2xhc3MgSW50cmluc2lj
cyB7CiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgICAgIGBuYXRpdmUg
b3BlcmF0b3IgdWludCgke3ByaW1pdGl2ZVR5cGV9KWAsCiAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkg
PT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgPj4+IDApOworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb1VpbnQo
dmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgfQogCkBA
IC0zODgsNyArMzQwLDcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAogICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgY2hhcigke3ByaW1pdGl2
ZVR5cGV9KWAsCiAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdChJbnQ4QXJy
YXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdFRvQ2hhcih2YWx1ZS5sb2FkVmFs
dWUoKSkpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKQEAgLTM5Niw3ICszNDgs
NyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciBzaG9ydCgke3ByaW1pdGl2ZVR5cGV9KWAsCiAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdChJbnQxNkFycmF5LCB2YWx1ZS5s
b2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb1Nob3J0KHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KIApAQCAtNDIwLDcgKzM3Miw3IEBAIGNsYXNz
IEludHJpbnNpY3MgewogICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICAg
ICBgbmF0aXZlIG9wZXJhdG9yIGZsb2F0KCR7cHJpbWl0aXZlVHlwZX0pYCwKICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PiBFUHRyLmJveChNYXRoLmZyb3VuZCh2YWx1ZS5sb2FkVmFsdWUoKSkpOwor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQ
dHIuYm94KGNhc3RUb0Zsb2F0KHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0KIApAQCAtNDg0LDI5MiArNDM2LDI5MiBAQCBjbGFzcyBJbnRyaW5zaWNz
IHsKICAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yLShpbnQpIiwKICAgICAgICAgICAg
IGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVl
XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKC12YWx1ZS5sb2FkVmFsdWUoKSkg
fCAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KC12YWx1ZS5sb2Fk
VmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAg
ICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3ItKGZsb2F0KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0p
ID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKC12YWx1ZS5sb2Fk
VmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdCgtdmFs
dWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcisoaW50LGludCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
bGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2Fk
VmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAg
Im5hdGl2ZSBpbnQgb3BlcmF0b3ItKGludCxpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewog
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5s
b2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50
KGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7
CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJh
dG9yKihpbnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgp
ICogcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMu
X21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvci8oaW50LGludCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVm
dC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAg
ICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1
ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAg
ICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yKyh1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1
bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJp
Z2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkg
KyByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChjYXN0VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFsdWUoKSkpOwogICAg
ICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRp
dmUgdWludCBvcGVyYXRvci0odWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0g
ICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9h
ZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWlu
dChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3Bl
cmF0b3IqKHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+
Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2Fk
VmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yLyh1aW50
LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgLyBy
aWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFw
LnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3IrKGZsb2F0LGZsb2F0KSIs
CiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1h
dGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFsdWUoKSkpOworICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChsZWZ0LmxvYWRWYWx1ZSgpICsgcmln
aHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yLShmbG9hdCxmbG9hdCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRo
LmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQobGVmdC5sb2FkVmFsdWUoKSAtIHJpZ2h0
LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0
KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvciooZmxvYXQsZmxvYXQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5s
b2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgK
ICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3IvKGZsb2F0LGZsb2F0KSIsCiAgICAg
ICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJv
dW5kKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChsZWZ0LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9h
ZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAg
ICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvciYoaW50LGludCkiLAogICAgICAgICAgICAg
ZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwg
cmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUo
KSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAg
ICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2
ZSBpbnQgb3BlcmF0b3J8KGludCxpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgfCByaWdodC5sb2FkVmFs
dWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQu
bG9hZFZhbHVlKCkgfCByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yXihp
bnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmln
aHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcn4oaW50KSIsCiAgICAgICAgICAg
ICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1
ZV0pID0+IEVQdHIuYm94KCh+dmFsdWUubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9JbnQo
fnZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9t
YXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3I8PChpbnQsdWludCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVm
dC5sb2FkVmFsdWUoKSA8PCByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZh
bHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAg
ICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcj4+KGludCx1aW50KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCBy
aWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgp
ID4+IHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSA+PiByaWdodC5sb2FkVmFsdWUoKSkpOwogICAg
ICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRp
dmUgdWludCBvcGVyYXRvciYodWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0g
ICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICYgcmlnaHQubG9h
ZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWlu
dChsZWZ0LmxvYWRWYWx1ZSgpICYgcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3Bl
cmF0b3J8KHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSB8IHJpZ2h0LmxvYWRWYWx1ZSgpKSA+
Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2Fk
VmFsdWUoKSB8IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yXih1aW50
LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgXiByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgXiBy
aWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFw
LnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcn4odWludCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
dmFsdWVdKSA9PiBFUHRyLmJveCgofnZhbHVlLmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0
VG9VaW50KH52YWx1ZS5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAg
dGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcjw8KHVpbnQs
dWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRy
LmJveCgobGVmdC5sb2FkVmFsdWUoKSA8PCByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgPDwg
cmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21h
cC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3I+Pih1aW50LHVpbnQpIiwK
ICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxl
ZnQubG9hZFZhbHVlKCkgPj4+IHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSA+Pj4gcmlnaHQu
bG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQo
CiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNvcyhmbG9hdCkiLAogICAgICAgICAgICAgZnVu
YyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmNvcyh2YWx1
ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxv
YXQoTWF0aC5jb3ModmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAg
ICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBzaW4oZmxvYXQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQoTWF0aC5zaW4odmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguc2luKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAg
ICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRp
dmUgZmxvYXQgdGFuKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgudGFuKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLnRhbih2YWx1ZS5s
b2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQo
CiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGFjb3MoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1
bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5hY29zKHZh
bHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9G
bG9hdChNYXRoLmFjb3ModmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAog
ICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBhc2luKGZs
b2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1h
dGguZnJvdW5kKE1hdGguYXNpbih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5hc2luKHZhbHVlLmxvYWRWYWx1ZSgpKSkp
OwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAg
ICJuYXRpdmUgZmxvYXQgYXRhbihmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmF0YW4odmFsdWUubG9hZFZhbHVl
KCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguYXRh
bih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMu
X21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNvc2goZmxvYXQpIiwKICAgICAg
ICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0
aC5jb3NoKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChjYXN0VG9GbG9hdChNYXRoLmNvc2godmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAg
ICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9h
dCBzaW5oKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KE1hdGguZnJvdW5kKE1hdGguc2luaCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5zaW5oKHZhbHVlLmxvYWRW
YWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAg
ICAgICAgICAgICJuYXRpdmUgZmxvYXQgdGFuaChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9
PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9Pgot
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnRhbmgodmFsdWUu
bG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0
KE1hdGgudGFuaCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNlaWwoZmxvYXQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQoTWF0aC5jZWlsKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLmNlaWwodmFsdWUubG9hZFZhbHVlKCkpKSk7CiAg
ICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5h
dGl2ZSBmbG9hdCBleHAoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5leHAodmFsdWUubG9hZFZhbHVlKCkpKSk7
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguZXhwKHZhbHVl
LmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgZmxvb3IoZmxvYXQpIiwKICAgICAgICAgICAg
IGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVl
XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5mbG9v
cih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2Fz
dFRvRmxvYXQoTWF0aC5mbG9vcih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGxv
ZyhmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChNYXRoLmZyb3VuZChNYXRoLmxvZyh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5sb2codmFsdWUubG9hZFZhbHVlKCkp
KSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAg
ICAgIm5hdGl2ZSBmbG9hdCByb3VuZChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnJvdW5kKHZhbHVlLmxvYWRW
YWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRo
LnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAg
dGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgc3FydChmbG9hdCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3Vu
ZChNYXRoLnNxcnQodmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguc3FydCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAg
ICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZl
IGZsb2F0IHRydW5jKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgudHJ1bmModmFsdWUubG9hZFZhbHVlKCkpKSk7
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgudHJ1bmModmFs
dWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAu
c2V0KApAQCAtNzg4LDcgKzc0MCw3IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAg
Im5hdGl2ZSBmbG9hdCBwb3coZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewog
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5wb3cobGVmdC5s
b2FkVmFsdWUoKSwgcmlnaHQubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgucG93KGxlZnQubG9hZFZhbHVlKCksIHJpZ2h0LmxvYWRW
YWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKQEAg
LTgzMiw3ICs3ODQsNyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICJuYXRpdmUg
ZmxvYXQgYXRhbjIoZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5hdGFuMihsZWZ0LmxvYWRW
YWx1ZSgpLCByaWdodC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goY2FzdFRvRmxvYXQoTWF0aC5hdGFuMihsZWZ0LmxvYWRWYWx1ZSgpLCByaWdodC5sb2FkVmFs
dWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCkBAIC05
MTQsNiArODY2LDE1MTcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAKICAgICAgICAgZm9yIChsZXQg
c2V0dGVyIG9mIEJ1aWx0aW5NYXRyaXhTZXR0ZXIuZnVuY3Rpb25zKCkpCiAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KHNldHRlci50b1N0cmluZygpLCBmdW5jID0+IHNldHRlci5pbnN0YW50aWF0
ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsKKworICAgICAgICBmdW5jdGlvbiBjaGVja1VuZGVmaW5l
ZChvcmlnaW4sIGV4cGxhbmF0aW9uLCB2YWx1ZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYg
KHZhbHVlID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJv
cigiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIik7CisgICAgICAgICAgICBy
ZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja0ZhbHNlKG9y
aWdpbiwgZXhwbGFuYXRpb24sIHZhbHVlKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAodmFs
dWUgPT0gZmFsc2UpCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltTdG9y
ZV0iLCAiVGV4dHVyZSBzdG9yZSBvdXQgb2YgYm91bmRzIik7CisgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiBib3hWZWN0b3IoYSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGEgaW5z
dGFuY2VvZiBBcnJheSkgeworICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgRVB0cihu
ZXcgRUJ1ZmZlcihhLmxlbmd0aCksIDApOworICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAw
OyBpIDwgYS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNldChpLCBh
W2ldKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KGEpOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gdW5ib3hWZWN0b3IoYSwgbGVuZ3RoKQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAobGVuZ3RoICE9ICIiKSB7CisgICAgICAgICAgICAgICAgbGVuZ3RoID0gTnVtYmVyLnBh
cnNlSW50KGxlbmd0aCk7CisgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IFtdOworICAgICAg
ICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdC5wdXNoKGEuZ2V0KGkpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIGEubG9hZFZh
bHVlKCk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFsidWNoYXIiLCAi
dXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9ydCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJd
KSB7CisgICAgICAgICAgICBmb3IgKHZhciBsZW5ndGhWYXJpYWJsZSBvZiBbYGAsIGAyYCwgYDNg
LCBgNGBdKSB7CisgICAgICAgICAgICAgICAgbGV0IGxlbmd0aCA9IGxlbmd0aFZhcmlhYmxlOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmxvYWRWYWx1ZSgpLCAwLCAwLCAxLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxRDwke3R5cGV9JHts
ZW5ndGh9PixzYW1wbGVyLGZsb2F0IGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24ubG9hZFZhbHVlKCksIDAsIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5sb2FkVmFsdWUoKSwgMCwgMF07CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUu
bG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJy
YXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixpbnQy
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihj
aGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4
dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAs
IGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTFEPCR7dHlw
ZX0ke2xlbmd0aH0+LGludDIgbG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRd
IiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVt
ZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSArIG9m
ZnNldC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPCR7dHlwZX0k
e2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBO
dW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
bWlwbGV2ZWwsIHdpZHRoLCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9u
c10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
bGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxREFycmF5
PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQo
MCksIDAsIDAsIDEsIGxvY2F0aW9uLmdldCgxKV07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IFNhbXBsZShUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0
MiBsb2NhdGlvbixpbnQgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgMCwgMCwgMSwg
bG9jYXRpb24uZ2V0KDEpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFB
cnJheSA9IFtvZmZzZXQubG9hZFZhbHVlKCksIDAsIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gTG9hZChUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1Vu
ZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5s
b2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMCwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJl
MURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRl
ZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9h
ZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSks
IDAsIDAsIGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERp
bWVuc2lvbnMoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1
aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEVsZW1lbnRzLHVpbnQqIHRocmVhZCBOdW1i
ZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlw
bGV2ZWwsIHdpZHRoLCBlbGVtZW50cywgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERp
bWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVy
ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxl
dmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2Ft
cGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTJEPCR7
dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
b2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5
ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZz
ZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVj
dG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUo
KSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJpYXMo
VGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0
IEJpYXMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJE
PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMsaW50
MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSks
IDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0g
W29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxv
YWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSlgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCks
IGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hW
ZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1
ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFy
cmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlR3JhZChU
ZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQy
IEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5n
ZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0
KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtv
ZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwg
c2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVk
LCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVu
Z3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDIgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0
KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVj
dG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUo
KSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxl
TGV2ZWwoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9u
LGZsb2F0IExPRCxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0XSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9j
YXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
ZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVy
ZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFB
cnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1
bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRl
eHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9m
ZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhN
RTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUy
RDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhl
cmluZworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZs
b2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklY
TUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1
cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNl
dClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog
SW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkQ8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJp
bmcKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhN
RTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVy
ZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTJE
PCR7dHlwZX0ke2xlbmd0aH0+LGludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSBy
ZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAs
IGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxv
Y2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91
dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0
aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24u
Z2V0KDApICsgb2Zmc2V0LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTJEPCR7
dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRo
cmVhZCBIZWlnaHQsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgbnVtYmVy
T2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1
cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0g
bWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1p
cElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25l
eGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZl
bChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1w
bGUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5
ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQo
MildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxl
VGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlv
bkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTJEQXJyYXk8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwK
KyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJy
YXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdl
dCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zm
c2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVu
Z3RofSBTYW1wbGVCaWFzKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRp
b24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIGJpYXMubG9h
ZFZhbHVlKCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0ke2xlbmd0aH0gU2FtcGxlQmlhcyhUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzLGludDIgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlh
cywgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFy
cmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5n
ZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29m
ZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBz
YW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxvYWRW
YWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZKWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBk
ZHldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCks
IGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJh
eSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwg
c2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IGRkeEFycmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IFNhbXBsZUdyYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4
LCBkZHksIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRp
b25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRp
b24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBb
ZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5n
ZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Io
c2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBs
b2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIGRkeEFycmF5LCBkZHlBcnJheSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUxldmVsKFRleHR1
cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0
IExPRClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIGxvZF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRp
b25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRp
b24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9y
KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwg
bG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlTGV2
ZWwoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24sZmxvYXQgTE9ELGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kLCBvZmZzZXRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBs
b2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgx
KSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1w
bGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0
aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxv
ZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyREFycmF5
PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVy
aW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBs
ZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4
dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50
MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRl
eHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRl
eHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBl
fSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZz
ZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0
ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBl
fSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRl
eHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGlu
dDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQo
VGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4saW50NCBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2Fk
XSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxl
bWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDMpLCBsb2NhdGlvbi5nZXQoMiksIDAsIGxvY2F0aW9u
LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJl
MkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQ0IGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5k
ZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxv
YWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIp
LCAwLCBsb2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQuZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkgKyBv
ZmZzZXQuZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMkRBcnJheTwke3R5cGV9
JHtsZW5ndGh9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQg
SGVpZ2h0LHVpbnQqIHRocmVhZCBFbGVtZW50cyx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMp
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0
aCwgaGVpZ2h0LCBlbGVtZW50cywgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVu
c2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJv
bShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lk
dGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1l
bnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNh
bXBsZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBd
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4
dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFy
cmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTNEPCR7dHlwZX0k
e2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQo
MCksIG9mZnNldC5nZXQoMSksIG9mZnNldC5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gTG9hZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4saW50NCBsb2NhdGlvbilg
LAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmlu
ZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZh
bHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDMpLCBsb2NhdGlvbi5nZXQoMiks
IGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9h
ZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4saW50NCBsb2NhdGlvbixpbnQzIG9mZnNldClg
LAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZz
ZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVj
a1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVy
ZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMyksIGxvY2F0aW9u
LmdldCgyKSArIG9mZnNldC5nZXQoMiksIGxvY2F0aW9uLmdldCgxKSArIG9mZnNldC5nZXQoMSks
IGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRl
eHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0
aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBEZXB0aCx1aW50KiB0aHJlYWQgTnVt
YmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1p
cGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigi
W0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2Yg
dGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoLmxvYWRWYWx1ZSgp
LmNvcHlGcm9tKEVQdHIuYm94KHRleC5kZXB0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KHRleC5oZWlnaHRBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwo
bWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0
aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJp
YXMoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24s
ZmxvYXQgQmlhcylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0
aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgYmlhcy5sb2FkVmFsdWUoKSwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBT
YW1wbGVHcmFkKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uLGZsb2F0MyBERFgsZmxvYXQzIEREWSlgLAorICAgICAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwg
bG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5LmdldCgwKSwg
ZGR5LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVl
KCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJy
YXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChU
ZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9h
dCBMT0QpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uLCBsb2RdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0
aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdl
dCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rv
cihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCks
IGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZUN1
YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRo
ZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVl
bihUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilg
LAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0
ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZUN1YmU8JHt0eXBlfSR7
bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJBbHBoYShUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6
IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlQ3Vi
ZTwke3R5cGV9JHtsZW5ndGh9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50
KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIG51
bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0
ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJ
RCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICh0ZXgubGF5ZXJDb3VudCAhPSA2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIkN1YmUgdGV4dHVyZSBkb2Vzbid0IGhhdmUgNiBmYWNlcyIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3VudCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXRE
aW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1
cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
dW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3Vu
dCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9
KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9
Pix1aW50KiB0aHJlYWQgV2lkdGgpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHdpZHRoXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleHR1cmUubG9hZFZhbHVlKCkud2lkdGgpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2
b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sZmxvYXQqIHRo
cmVhZCBXaWR0aClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lk
dGhdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4dHVyZS5sb2FkVmFsdWUoKS53aWR0aCksIDEpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xl
bmd0aH0gTG9hZChSV1RleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixpbnQgbG9jYXRpb24pYCwK
KyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVk
KCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1
ZSgpLmVsZW1lbnRDaGVja2VkKDAsIDAsIDAsIDAsIGxvY2F0aW9uLmxvYWRWYWx1ZSgpKSkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZv
aWQgU3RvcmUoUldUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sJHt0eXBlfSR7bGVuZ3RofSx1
aW50IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwg
dmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRmFs
c2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2Fk
VmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tlZCgwLCAwLCAwLCAwLCBsb2NhdGlvbi5sb2FkVmFsdWUo
KSwgdW5ib3hWZWN0b3IodmFsdWUsIGxlbmd0aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldU
ZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCog
dGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCB3aWR0aCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRl
eCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxl
bWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMURBcnJh
eTwke3R5cGV9JHtsZW5ndGh9PixmbG9hdCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBFbGVt
ZW50cylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGVs
ZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJl
LmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBl
fSR7bGVuZ3RofT4saW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0
IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24u
Z2V0KDEpLCAwLCAwLCAwLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUx
REFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0aH0sdWludDIgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRp
b25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIs
ICJUZXh0dXJlIHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVs
ZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgMCwgbG9jYXRpb24uZ2V0KDApLCB1
bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1
cmUyRDwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhl
aWdodClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhl
aWdodF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5s
b2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCks
IDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixmbG9h
dCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0KWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0XSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
aGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2Fk
KFJXVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LGludDIgbG9jYXRpb24pYCwKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0i
LCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1l
bnRDaGVja2VkKDAsIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZv
aWQgU3RvcmUoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sJHt0eXBlfSR7bGVuZ3RofSx1
aW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0Zh
bHNlKCJbU3RvcmVdIiwgIlRleHR1cmUgd3JpdGUgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9h
ZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQoMCwgMCwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2Nh
dGlvbi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVlLCBsZW5ndGgpKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1l
bnNpb25zKFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sdWludCogdGhyZWFkIFdp
ZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50c10p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFs
dWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5j
b3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVy
ZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhy
ZWFkIEhlaWdodCxmbG9hdCogdGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50c10pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhl
aWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVyZTJEQXJyYXk8
JHt0eXBlfSR7bGVuZ3RofT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJl
YWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9j
YXRpb24uZ2V0KDIpLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2
b2lkIFN0b3JlKFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sJHt0eXBlfSR7bGVu
Z3RofSx1aW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
aGVja0ZhbHNlKCJbU3RvcmVdIiwgIlRleHR1cmUgd3JpdGUgb3V0IG9mIGJvdW5kcyIsIHRleHR1
cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDIpLCAwLCAwLCBs
b2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0b3IodmFsdWUsIGxlbmd0
aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAg
YG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4s
dWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIERlcHRo
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0
LCBkZXB0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVy
ZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguZGVwdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdo
dCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1
cmUzRDwke3R5cGV9JHtsZW5ndGh9PixmbG9hdCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJlYWQg
SGVpZ2h0LGZsb2F0KiB0aHJlYWQgRGVwdGgpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGRlcHRoXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRlcHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5kZXB0
aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5j
b3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LGludDMg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNo
ZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0
dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIDAsIGxvY2F0aW9uLmdldCgyKSwgbG9j
YXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUzRDwk
e3R5cGV9JHtsZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQzIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVy
ZSB3cml0ZSBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hl
Y2tlZCgwLCAwLCBsb2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0
KDApLCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
CisgICAgICAgIGZvciAobGV0IHR5cGUgb2YgWyJoYWxmIiwgImZsb2F0Il0pIHsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwg
bG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxv
YWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2Nh
dGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRh
QXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFs
dWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRl
eHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLCR7dHlwZX0gQ29t
cGFyZVZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9j
YXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUo
dGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNv
bXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24sJHt0eXBlfSBDb21wYXJlVmFsdWUsaW50MiBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVW
YWx1ZSwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJy
YXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0
LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNh
bXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9j
YXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVE
ZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZh
bHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1w
bGVtZW50IHRoaXMKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUs
IG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQg
dGhpcworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1w
bGVCaWFzKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZs
b2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJh
eSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5s
b2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVk
LCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0g
U2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlv
bixmbG9hdCBCaWFzLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdl
dCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9
IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBz
YW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxvYWRW
YWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChU
ZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdDIgRERY
LGZsb2F0MiBERFkpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0
aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOwor
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCksIGRkeC5n
ZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeUFycmF5ID0gW2RkeS5n
ZXQoMCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5
QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBk
ZHgsIGRkeSwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9u
QXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCksIGRkeC5nZXQo
MSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQo
MCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJy
YXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUo
KSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZp
bmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IExPRClgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24u
Z2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4
dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgTE9ELGlu
dDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uLCBsb2QsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCks
IG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVl
KCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIGxvZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBG
SVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0
dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0
dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0
dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRl
eHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlRGVwdGgyRDwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24g
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZURlcHRoMkQ8
JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJp
bmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckFscGhhKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhl
cmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyQWxwaGEoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24s
aW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVy
aW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxv
YXQgY29tcGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5n
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJD
bXBSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxv
YXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aDJE
PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFsdWUsaW50
MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIGNvbXBhcmVWYWx1ZSwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wR3JlZW4oVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29t
cGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyQ21wR3JlZW4oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZh
bHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBs
ZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFsdWUpYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZV0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJp
bmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckNtcEJsdWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24s
ZmxvYXQgY29tcGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24g
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVy
aW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJDbXBBbHBoYShUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlv
bixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBBbHBoYShUZXh0dXJl
RGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3Zh
bHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlRGVwdGgyRDwk
e3R5cGV9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihj
aGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4
dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMiksIDAsIGxv
Y2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LGlu
dDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVy
ZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
b3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJv
dW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0
KDIpLCAwLCBsb2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQuZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkg
KyBvZmZzZXQuZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHVpbnQgTWlwTGV2
ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIE51
bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIG1pcGxldmVs
LCB3aWR0aCwgaGVpZ2h0LCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZy
b20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRM
ZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Pixz
YW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2Nh
dGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihz
YW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxv
Y2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0
KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5s
b2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJh
eSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQp
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxl
Q21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24s
JHt0eXBlfSBDb21wYXJlVmFsdWUpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZV0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEp
LCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9h
ZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sJHt0eXBlfSBD
b21wYXJlVmFsdWUsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZSwgb2Zmc2V0XSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2Nh
dGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0
ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBk
ZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNv
bXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkRBcnJheTwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSlgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFy
ZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0
aGlzCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9m
ZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhp
cworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVC
aWFzKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24s
ZmxvYXQgQmlhcylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFy
cmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5n
ZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVU
ZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9u
QXJyYXksIHVuZGVmaW5lZCwgYmlhcy5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Pixz
YW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzLGludDIgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNl
dC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihz
YW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxv
Y2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIGJpYXMubG9hZFZhbHVlKCksIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0
eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZKWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRk
eV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0
aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCksIGRkeC5nZXQo
MSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQo
MCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVl
KCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJy
YXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBERFksaW50MiBvZmZz
ZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24s
IGRkeCwgZGR5LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRp
b25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRp
b24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHgu
Z2V0KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlB
cnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOwor
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRl
eHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRl
bHRhQXJyYXksIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVm
aW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBT
YW1wbGVMZXZlbChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uLGZsb2F0IExPRClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgbG9kXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0
aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0
aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNh
bXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9j
YXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBs
b2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlw
ZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IExPRCxpbnQyIG9mZnNldClgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kLCBvZmZz
ZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9m
ZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rv
cihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCks
IGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIGxvZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5
cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlRGVwdGgyREFycmF5PCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5n
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJS
ZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRo
ZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdh
dGhlclJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0
aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhN
RTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlRGVwdGgyREFycmF5PCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdh
dGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyQmx1ZShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0
dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxv
YXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlRGVwdGgy
REFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVy
ZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNl
dClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
b2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0
ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21w
KFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxv
YXQgY29tcGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5n
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJD
bXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURl
cHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJl
X3ZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEdyZWVuKFRl
eHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQg
Y29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wR3JlZW4oVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVl
LGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEJsdWUoVGV4dHVyZURl
cHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJl
X3ZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog
SW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0
eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSxpbnQyIG9m
ZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBG
SVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBBbHBoYShUZXh0dXJlRGVwdGgyREFy
cmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFsdWUp
YCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNv
bXBhcmVWYWx1ZV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSxpbnQyIG9mZnNldClg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29t
cGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog
SW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixpbnQ0
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5l
ZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFs
dWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMyksIGxvY2F0aW9uLmdldCgyKSwgMCwg
bG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5
cGV9PixpbnQ0IGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91
dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9u
LmdldCgzKSwgbG9jYXRpb24uZ2V0KDIpLCAwLCBsb2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQuZ2V0
KDEpLCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZzZXQuZ2V0KDApKSkpOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmVEZXB0aDJE
QXJyYXk8JHt0eXBlfT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhy
ZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRWxlbWVudHMsdWludCogdGhyZWFkIE51bWJlck9mTGV2
ZWxzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwg
aGVpZ2h0LCBlbGVtZW50cywgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBm
cm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0
TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAg
ICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9m
TGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShU
ZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBs
b2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUo
KSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVy
ZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbiwke3R5cGV9IENvbXBh
cmVWYWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0
aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdl
dCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNh
bXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9j
YXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURl
cHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVW
YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IElt
cGxlbWVudCB0aGlzCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZUJpYXMoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBs
b2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxv
Y2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9u
LmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9y
KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwg
bG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlRGVwdGhDdWJlPCR7dHlw
ZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0MyBERFgsZmxvYXQzIEREWSlgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHld
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEp
LCBkZHguZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtk
ZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCBkZHguZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBz
YW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
ZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlRGVw
dGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IExPRClgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0
KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2Fk
VmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5l
ZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVy
aW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJSZWQoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRo
ZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdh
dGhlckdyZWVuKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUg
Z2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJCbHVlKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9j
YXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1
cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0
ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24g
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wUmVk
KFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQg
Y29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wR3JlZW4oVGV4dHVyZURlcHRoQ3Vi
ZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21w
YXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50
IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmlu
ZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
Q21wQWxwaGEoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZURlcHRo
Q3ViZTwke3R5cGV9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJl
YWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgbnVtYmVyT2ZMZXZlbHNd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1
ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sYXllckNvdW50ICE9IDYpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDdWJlIHRleHR1cmUg
ZG9lc24ndCBoYXZlIDYgZmFjZXMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJ
RCA+PSB0ZXgubGV2ZWxDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBu
ZXcgV1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFu
dCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHRBdExldmVsKG1pcElEKSks
IDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5s
ZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2
b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlRGVwdGgyRDwke3R5cGV9Pix1aW50KiB0aHJlYWQg
V2lkdGgsdWludCogdGhyZWFkIEhlaWdodClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCB3aWR0aCwgaGVpZ2h0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9
IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRo
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERp
bWVuc2lvbnMoUldUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixmbG9hdCogdGhyZWFkIFdpZHRoLGZs
b2F0KiB0aHJlYWQgSGVpZ2h0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHdp
ZHRoLCBoZWlnaHRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVy
ZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUo
KS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChSV1Rl
eHR1cmVEZXB0aDJEPCR7dHlwZX0+LGludDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBv
ZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIDAsIDAsIGxv
Y2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCR7
dHlwZX0sdWludDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwg
dmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tGYWxzZSgi
W1N0b3JlXSIsICJUZXh0dXJlIHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1
ZSgpLnNldEVsZW1lbnRDaGVja2VkKDAsIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24u
Z2V0KDApLCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50
KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgd2lk
dGgsIGhlaWdodCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4
ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRz
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlRGVwdGgyREFy
cmF5PCR7dHlwZX0+LGZsb2F0KiB0aHJlYWQgV2lkdGgsZmxvYXQqIHRocmVhZCBIZWlnaHQsZmxv
YXQqIHRocmVhZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB3
aWR0aCwgaGVpZ2h0LCBlbGVtZW50c10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0
ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVu
dHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChSV1RleHR1cmVEZXB0aDJEQXJyYXk8
JHt0eXBlfT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Io
Y2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRl
eHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDIpLCAwLCAwLCBs
b2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlw
ZX0+LCR7dHlwZX0sdWludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tG
YWxzZSgiW1N0b3JlXSIsICJUZXh0dXJlIHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxv
YWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgyKSwgMCwgMCwgbG9jYXRp
b24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVlLCBsZW5ndGgpKSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfQog
ICAgIH0KIAogICAgIGFkZCh0aGluZykKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1NQSVJWLmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElS
Vi5odG1sCmluZGV4IDc4ZDAwOGY4MzVmOWU5YzIzNGVmMmRmNmQ2ZGVlYTNmNzQyNmNlNjUuLjFi
MjZjZjJiMmU2NTE1MjdhMTUyZWU4ZDkyZmYyNWJlZGE2MWQzMzkgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbApAQCAtMzQsNiArMzQsNyBAQCB0ZCB7CiAgICAgPHNj
cmlwdCBzcmM9IkJ1aWx0aW5WZWN0b3JTZXR0ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJDYWxsRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNhbGxG
dW5jdGlvbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IkNhc3RzLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iQ2hlY2suanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJDaGVja0xpdGVyYWxUeXBlcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNoZWNr
TG9vcHMuanMiPjwvc2NyaXB0PgpAQCAtMTIxLDYgKzEyMiw3IEBAIHRkIHsKICAgICA8c2NyaXB0
IHNyYz0iUmV0dXJuLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUmV0dXJuQ2hlY2tl
ci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlJldHVybkV4Y2VwdGlvbi5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlNhbXBsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJTdGFuZGFyZExpYnJhcnkuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJT
dGF0ZW1lbnRDbG9uZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJTdHJ1Y3RMYXlv
dXRCdWlsZGVyLmpzIj48L3NjcmlwdD4KQEAgLTEzMyw2ICsxMzUsOCBAQCB0ZCB7CiAgICAgPHNj
cmlwdCBzcmM9IlN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlRlcm5hcnlFeHByZXNzaW9uLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVGV4dHVyZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9IlRleHR1cmVPcGVyYXRpb25zLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
VHJhcFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlR5cGVEZWYuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU2FtcGxlci5qcyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NhbXBsZXIuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWU3
NzEzZGZjODFmODNjNTg0NzM2MjEyMTc1NjRmMzk1NzJiMTRiOAotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NhbXBsZXIuanMKQEAgLTAsMCArMSwxNjMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworInVzZSBzdHJp
Y3QiOworCitjbGFzcyBTYW1wbGVyIHsKKyAgICBjb25zdHJ1Y3RvcihvcHRpb25zKQorICAgIHsK
KyAgICAgICAgaWYgKG9wdGlvbnMuckFkZHJlc3NNb2RlID09IHVuZGVmaW5lZCkKKyAgICAgICAg
ICAgIHRoaXMuX3JBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIHRoaXMuX3JBZGRyZXNzTW9kZSA9IG9wdGlvbnMuckFkZHJlc3NNb2RlOworICAg
ICAgICBpZiAob3B0aW9ucy5zQWRkcmVzc01vZGUgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAg
dGhpcy5fc0FkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgdGhpcy5fc0FkZHJlc3NNb2RlID0gb3B0aW9ucy5zQWRkcmVzc01vZGU7CisgICAgICAg
IGlmIChvcHRpb25zLnRBZGRyZXNzTW9kZSA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlz
Ll90QWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICB0aGlzLl90QWRkcmVzc01vZGUgPSBvcHRpb25zLnRBZGRyZXNzTW9kZTsKKyAgICAgICAgaWYg
KG9wdGlvbnMubWluRmlsdGVyID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX21pbkZp
bHRlciA9ICJuZWFyZXN0IjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fbWluRmls
dGVyID0gb3B0aW9ucy5taW5GaWx0ZXI7CisgICAgICAgIGlmIChvcHRpb25zLm1hZ0ZpbHRlciA9
PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9tYWdGaWx0ZXIgPSAibmVhcmVzdCI7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX21hZ0ZpbHRlciA9IG9wdGlvbnMubWFnRmls
dGVyOworICAgICAgICBpZiAob3B0aW9ucy5taXBtYXBGaWx0ZXIgPT0gdW5kZWZpbmVkKQorICAg
ICAgICAgICAgdGhpcy5fbWlwbWFwRmlsdGVyID0gIm5lYXJlc3QiOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICB0aGlzLl9taXBtYXBGaWx0ZXIgPSBvcHRpb25zLm1pcG1hcEZpbHRlcjsKKyAg
ICAgICAgaWYgKG9wdGlvbnMubG9kTWluQ2xhbXAgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAg
dGhpcy5fbG9kTWluQ2xhbXAgPSAtTnVtYmVyLk1BWF9WQUxVRTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgdGhpcy5fbG9kTWluQ2xhbXAgPSBvcHRpb25zLmxvZE1pbkNsYW1wOworICAgICAg
ICBpZiAob3B0aW9ucy5sb2RNYXhDbGFtcCA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlz
Ll9sb2RNYXhDbGFtcCA9IE51bWJlci5NQVhfVkFMVUU7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHRoaXMuX2xvZE1heENsYW1wID0gb3B0aW9ucy5sb2RNYXhDbGFtcDsKKyAgICAgICAgaWYg
KG9wdGlvbnMubWF4QW5pc290cm9weSA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9t
YXhBbmlzb3Ryb3B5ID0gMTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fbWF4QW5p
c290cm9weSA9IG9wdGlvbnMubWF4QW5pc290cm9weTsKKyAgICAgICAgaWYgKG9wdGlvbnMuY29t
cGFyZUZ1bmN0aW9uID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX2NvbXBhcmVGdW5j
dGlvbiA9ICJuZXZlciI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX2NvbXBhcmVG
dW5jdGlvbiA9IG9wdGlvbnMuY29tcGFyZUZ1bmN0aW9uOworICAgICAgICBpZiAob3B0aW9ucy5i
b3JkZXJDb2xvciA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9ib3JkZXJDb2xvciA9
ICJ0cmFuc3BhcmVudEJsYWNrIjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fYm9y
ZGVyQ29sb3IgPSBvcHRpb25zLmJvcmRlckNvbG9yOworICAgIH0KKyAgICAKKyAgICBnZXQgckFk
ZHJlc3NNb2RlKCkgeyByZXR1cm4gdGhpcy5fckFkZHJlc3NNb2RlOyB9CisgICAgZ2V0IHNBZGRy
ZXNzTW9kZSgpIHsgcmV0dXJuIHRoaXMuX3NBZGRyZXNzTW9kZTsgfQorICAgIGdldCB0QWRkcmVz
c01vZGUoKSB7IHJldHVybiB0aGlzLl90QWRkcmVzc01vZGU7IH0KKyAgICBnZXQgbWluRmlsdGVy
KCkgeyByZXR1cm4gdGhpcy5fbWluRmlsdGVyOyB9CisgICAgZ2V0IG1hZ0ZpbHRlcigpIHsgcmV0
dXJuIHRoaXMuX21hZ0ZpbHRlcjsgfQorICAgIGdldCBtaXBtYXBGaWx0ZXIoKSB7IHJldHVybiB0
aGlzLl9taXBtYXBGaWx0ZXI7IH0KKyAgICBnZXQgbG9kTWluQ2xhbXAoKSB7IHJldHVybiB0aGlz
Ll9sb2RNaW5DbGFtcDsgfQorICAgIGdldCBsb2RNYXhDbGFtcCgpIHsgcmV0dXJuIHRoaXMuX2xv
ZE1heENsYW1wOyB9CisgICAgZ2V0IG1heEFuaXNvdHJvcHkoKSB7IHJldHVybiB0aGlzLl9tYXhB
bmlzb3Ryb3B5OyB9CisgICAgZ2V0IGNvbXBhcmVGdW5jdGlvbigpIHsgcmV0dXJuIHRoaXMuX2Nv
bXBhcmVGdW5jdGlvbjsgfQorICAgIGdldCBib3JkZXJDb2xvcigpIHsgcmV0dXJuIHRoaXMuX2Jv
cmRlckNvbG9yOyB9CisKKyAgICBjYWxjdWxhdGVCb3JkZXJDb2xvcihpbm5lclR5cGUpCisgICAg
eworICAgICAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuMy4zCisgICAgICAgIGZ1bmN0
aW9uIGNvbXB1dGVWYWx1ZXMoKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGlubmVyVHlwZSkgewor
ICAgICAgICAgICAgICAgIGNhc2UgInVjaGFyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHt0cmFuc3BhcmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDB4RkZ9
OworICAgICAgICAgICAgICAgIGNhc2UgInVzaG9ydCI6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdoaXRlOiAw
eEZGRkZ9OworICAgICAgICAgICAgICAgIGNhc2UgInVpbnQiOgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0
ZTogMHhGRkZGRkZGRn07CisgICAgICAgICAgICAgICAgY2FzZSAiY2hhciI6CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6IDAsIG9w
YXF1ZVdoaXRlOiAweDdGfTsKKyAgICAgICAgICAgICAgICBjYXNlICJzaG9ydCI6CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6IDAs
IG9wYXF1ZVdoaXRlOiAweDdGRkZ9OworICAgICAgICAgICAgICAgIGNhc2UgImludCI6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6
IDAsIG9wYXF1ZVdoaXRlOiAweDdGRkZGRkZGfTsKKyAgICAgICAgICAgICAgICBjYXNlICJoYWxm
IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAwLCBvcGFx
dWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDF9OworICAgICAgICAgICAgICAgIGNhc2UgImZsb2F0
IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAwLCBvcGFx
dWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDF9OworICAgICAgICAgICAgICAgIGNhc2UgInVjaGFy
MiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDBd
LCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4RkYsIDB4RkZdfTsKKyAgICAg
ICAgICAgICAgICBjYXNlICJ1c2hvcnQyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0
cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRl
OiBbMHhGRkZGLCAweEZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1aW50MiI6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVC
bGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4RkZGRkZGRkYsIDB4RkZGRkZGRkZdfTsKKyAg
ICAgICAgICAgICAgICBjYXNlICJjaGFyMiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7
dHJhbnNwYXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVXaGl0
ZTogWzB4N0YsIDB4N0ZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJzaG9ydDIiOgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxh
Y2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsweDdGRkYsIDB4N0ZGRl19OworICAgICAgICAgICAg
ICAgIGNhc2UgImludDIiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50
QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsweDdGRkZG
RkZGLCAweDdGRkZGRkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAiaGFsZjIiOgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxh
Y2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsxLCAxXX07CisgICAgICAgICAgICAgICAgY2FzZSAi
ZmxvYXQyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBb
MCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMSwgMV19OworICAgICAg
ICAgICAgICAgIGNhc2UgInVjaGFyMyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJh
bnNwYXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVX
aGl0ZTogWzB4RkYsIDB4RkYsIDB4RkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1c2hvcnQz
IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwg
MF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHhGRkZGLCAweEZGRkYs
IDB4RkZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgInVpbnQzIjoKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBb
MCwgMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHhGRkZGRkZGRiwgMHhGRkZGRkZGRiwgMHhGRkZGRkZG
Rl19OworICAgICAgICAgICAgICAgIGNhc2UgImNoYXIzIjoKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwg
MF0sIG9wYXF1ZVdoaXRlOiBbMHg3RiwgMHg3RiwgMHg3Rl19OworICAgICAgICAgICAgICAgIGNh
c2UgInNob3J0MyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFj
azogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4N0ZG
RiwgMHg3RkZGLCAweDdGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJpbnQzIjoKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1
ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHg3RkZGRkZGRiwgMHg3RkZGRkZGRiwg
MHg3RkZGRkZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgImhhbGYzIjoKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNr
OiBbMCwgMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMSwgMSwgMV19OworICAgICAgICAgICAgICAgIGNh
c2UgImZsb2F0MyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFj
azogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzEsIDEs
IDFdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1Y2hhcjQiOgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFsw
LCAwLCAwLCAweEZGXSwgb3BhcXVlV2hpdGU6IFsweEZGLCAweEZGLCAweEZGLCAweEZGXX07Cisg
ICAgICAgICAgICAgICAgY2FzZSAidXNob3J0NCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVy
biB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDAs
IDB4RkZGRl0sIG9wYXF1ZVdoaXRlOiBbMHhGRkZGLCAweEZGRkYsIDB4RkZGRiwgMHhGRkZGXX07
CisgICAgICAgICAgICAgICAgY2FzZSAidWludDQiOgorICAgICAgICAgICAgICAgICAgICByZXR1
cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAw
LCAweEZGRkZGRkZGXSwgb3BhcXVlV2hpdGU6IFsweEZGRkZGRkZGLCAweEZGRkZGRkZGLCAweEZG
RkZGRkZGLCAweEZGRkZGRkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAiY2hhcjQiOgorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwLCAwXSwg
b3BhcXVlQmxhY2s6IFswLCAwLCAwLCAweDdGXSwgb3BhcXVlV2hpdGU6IFsweDdGLCAweDdGLCAw
eDdGLCAweDdGXX07CisgICAgICAgICAgICAgICAgY2FzZSAic2hvcnQ0IjoKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJs
YWNrOiBbMCwgMCwgMCwgMHg3RkZGXSwgb3BhcXVlV2hpdGU6IFsweDdGRkYsIDB4N0ZGRiwgMHg3
RkZGLCAweDdGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJpbnQ0IjoKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJs
YWNrOiBbMCwgMCwgMCwgMHg3RkZGRkZGRl0sIG9wYXF1ZVdoaXRlOiBbMHg3RkZGRkZGRiwgMHg3
RkZGRkZGRiwgMHg3RkZGRkZGRiwgMHg3RkZGRkZGRl19OworICAgICAgICAgICAgICAgIGNhc2Ug
ImhhbGY0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBb
MCwgMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMV0sIG9wYXF1ZVdoaXRlOiBbMSwg
MSwgMSwgMV19OworICAgICAgICAgICAgICAgIGNhc2UgImZsb2F0NCI6CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBvcGFxdWVCbGFj
azogWzAsIDAsIDAsIDFdLCBvcGFxdWVXaGl0ZTogWzEsIDEsIDEsIDFdfTsKKyAgICAgICAgICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25v
d24gdGV4dHVyZSBpbm5lciB0eXBlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuIGNvbXB1dGVWYWx1ZXMoKVt0aGlzLmJvcmRlckNvbG9yXTsKKyAgICB9Cit9CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnku
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKaW5k
ZXggM2RkNGZlZTE4NjAwZDVjZDJhODk1YWQ1YTQ3OTcyMWRhNzc4OGNjMS4uZGZjZWYzNGVmNDY4
NDlhYTVhY2NjYzAyNjM4YmMzNDkxNDg2ODIyNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcwpAQCAtNTcsNyArNTcsNyBAQCBsZXQgc3Rh
bmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICB9CiAgICAgICAgIHByaW50KGBu
YXRpdmUgdHlwZWRlZiBzYW1wbGVyO2ApOwogICAgICAgICBmb3IgKHZhciB0eXBlIG9mIFtgVGV4
dHVyZTFEYCwgYFJXVGV4dHVyZTFEYCwgYFRleHR1cmUxREFycmF5YCwgYFJXVGV4dHVyZTFEQXJy
YXlgLCBgVGV4dHVyZTJEYCwgYFJXVGV4dHVyZTJEYCwgYFRleHR1cmUyREFycmF5YCwgYFJXVGV4
dHVyZTJEQXJyYXlgLCBgVGV4dHVyZTNEYCwgYFJXVGV4dHVyZTNEYCwgYFRleHR1cmVDdWJlYF0p
IHsKLSAgICAgICAgICAgIGZvciAodmFyIHR5cGVBcmd1bWVudEJhc2Ugb2YgW2Bib29sYCwgYHVj
aGFyYCwgYHVzaG9ydGAsIGB1aW50YCwgYGNoYXJgLCBgc2hvcnRgLCBgaW50YCwgYGhhbGZgLCBg
ZmxvYXRgXSkgeworICAgICAgICAgICAgZm9yICh2YXIgdHlwZUFyZ3VtZW50QmFzZSBvZiBbYHVj
aGFyYCwgYHVzaG9ydGAsIGB1aW50YCwgYGNoYXJgLCBgc2hvcnRgLCBgaW50YCwgYGhhbGZgLCBg
ZmxvYXRgXSkgewogICAgICAgICAgICAgICAgIGZvciAodmFyIHNpemUgb2YgW2BgLCBgMmAsIGAz
YCwgYDRgXSkgewogICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlIHR5cGVkZWYgJHt0
eXBlfTwke3R5cGVBcmd1bWVudEJhc2V9JHtzaXplfT47YCk7CiAgICAgICAgICAgICAgICAgfQpA
QCAtMTg5Nyw3ICsxODk3LDggQEAgbGV0IHN0YW5kYXJkTGlicmFyeSA9IChmdW5jdGlvbigpIHsK
ICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5n
ZSh0aHJlYWQgYXRvbWljXyR7dHlwZX0qLCAke3R5cGV9LCAke3R5cGV9LCB0aHJlYWQgJHt0eXBl
fSopO2ApOwogICAgICAgICB9CiAgICAgICAgIHByaW50KCk7Ci0gICAgICAgIAorICAgICAgICAq
LworCiAgICAgICAgIGZvciAodmFyIHR5cGUgb2YgW2B1Y2hhcmAsIGB1c2hvcnRgLCBgdWludGAs
IGBjaGFyYCwgYHNob3J0YCwgYGludGAsIGBoYWxmYCwgYGZsb2F0YF0pIHsKICAgICAgICAgICAg
IGZvciAodmFyIGxlbmd0aCBvZiBbYGAsIGAyYCwgYDNgLCBgNGBdKSB7CiAgICAgICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMUQ8JHt0eXBl
fSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTtgKTsKQEAgLTE5NTgsMTYgKzE5
NTksNiBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg
ICAgIHByaW50KCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IFNhbXBsZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBs
b2NhdGlvbik7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IFNhbXBsZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBs
b2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxv
YXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00
IEdhdGhlcihUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2Nh
dGlvbiwgaW50MyBvZmZzZXQpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxv
YXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00
IEdhdGhlclJlZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBs
b2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVy
LCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBm
bG9hdDMgbG9jYXRpb24sIGludDMgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBz
YW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBs
ZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwotICAgICAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0
aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+
LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDMgb2Zmc2V0KTtgKTsKICAgICAgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlM0Q8JHt0eXBl
fSR7bGVuZ3RofT4sIGludDQgbG9jYXRpb24pO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwg
aW50NCBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PiwgdWlu
dCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogSGVpZ2h0LCB0aHJl
YWQgdWludCogRGVwdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7YCk7CkBAIC0yMDEw
LDk3ICsyMDAxLDk2IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICAK
KwogICAgICAgICBmb3IgKHZhciB0eXBlIG9mIFtgaGFsZmAsIGBmbG9hdGBdKSB7CiAgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+
LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQy
IGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNv
blN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IENvbXBhcmVWYWx1ZSk7YCk7Ci0gICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEPCR7dHlw
ZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IENvbXBh
cmVWYWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNv
bXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUpO2ApOwot
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0
dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0
aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNh
bXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgJHt0eXBlfSBDb21wYXJlVmFsdWUpO2ApOworICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyRDwke3R5
cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1ZSwgaW50
MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNt
cExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0
aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDIgbG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlLCBpbnQyIG9mZnNldCk7
YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJl
RGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBCaWFzKTtg
KTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVE
ZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IEJpYXMsIGlu
dDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVH
cmFkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZs
b2F0MiBERFgsIGZsb2F0MiBERFkpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBs
b2NhdGlvbiwgZmxvYXQyIEREWCwgZmxvYXQyIEREWSwgaW50MiBvZmZzZXQpO2ApOwogICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0aDJEPCR7
dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IExPRCk7YCk7CiAgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoMkQ8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgTE9ELCBpbnQyIG9mZnNldCk7
YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyKFRleHR1cmVEZXB0
aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlcihUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2Ft
cGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0gR2F0aGVyUmVkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxv
Y2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX0gR2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBs
b2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyR3Jl
ZW4oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50
MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckJs
dWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7
Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQmx1ZShUZXh0dXJlRGVw
dGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7
Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQWxwaGEoVGV4dHVyZURl
cHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9
PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJl
X3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXAo
VGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MiBs
b2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgyRDwke3R5
cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21w
YXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJD
bXBSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZs
b2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0
aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZs
b2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNv
blN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0
KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBCbHVlKFRl
eHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9j
YXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJD
b21wYXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50
MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNt
cEFscGhhKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBm
bG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+
LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVf
dmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRp
b24pO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVy
ZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQp
O2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVy
ZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7CisgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyRDwke3R5
cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmVEZXB0aDJEPCR7
dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2Ft
cGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNh
bXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0
MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxv
YXQyIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyQWxwaGEoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlv
biwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlv
biwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQy
IGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgyRDwk
e3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtg
KTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wUmVkKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBh
cmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyQ21wR3JlZW4oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZs
b2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7CisgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+
LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zm
c2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wQmx1
ZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9h
dCBjb21wYXJlX3ZhbHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyQ21wQmx1ZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxv
Y2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJEPCR7
dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2Ap
OworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBBbHBoYShUZXh0
dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21w
YXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gTG9hZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgaW50MyBsb2NhdGlvbik7YCk7CiAg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlRGVwdGgyRDwke3R5
cGV9PiwgaW50MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHVpbnQg
TWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIEhlaWdodCwgdGhyZWFk
IHVpbnQqIE51bWJlck9mTGV2ZWxzKTtgKTsKICAgICAgICAgICAgIHByaW50KCk7CiAgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBs
ZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBT
YW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IENvbXBhcmVWYWx1
ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBs
b2NhdGlvbiwgZmxvYXQgQ29tcGFyZVZhbHVlLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJE
QXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwg
ZmxvYXQgQ29tcGFyZVZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxl
ckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUsIGlu
dDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVD
bXAoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9u
LCAke3R5cGV9IENvbXBhcmVWYWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZs
b2F0MyBsb2NhdGlvbiwgJHt0eXBlfSBDb21wYXJlVmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVy
ZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCAke3R5cGV9
IENvbXBhcmVWYWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZs
b2F0MyBsb2NhdGlvbiwgJHt0eXBlfSBDb21wYXJlVmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0aDJE
QXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgQmlhcyk7YCk7
CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVw
dGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IEJpYXMs
IGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1w
bGVHcmFkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2Nh
dGlvbiwgZmxvYXQyIEREWCwgZmxvYXQyIEREWSk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0MiBERFgsIGZsb2F0MiBERFksIGludDIgb2Zmc2V0
KTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0
dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0
IExPRCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwo
VGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBm
bG9hdCBMT0QsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfSBHYXRoZXIoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXIo
VGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBp
bnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVy
UmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlv
bik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyUmVkKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBv
ZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckdyZWVu
KFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7
YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyR3JlZW4oVGV4dHVy
ZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9m
ZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQmx1ZShU
ZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2Ap
OwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckJsdWUoVGV4dHVyZURl
cHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNl
dCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQWxwaGEoVGV4
dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsK
LSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJBbHBoYShUZXh0dXJlRGVw
dGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0
KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXAoVGV4dHVy
ZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxv
Y2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxl
ckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBp
bnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVy
Q21wUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3Rh
dGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8
JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQg
Y29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNh
bXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1
ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wR3JlZW4o
VGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxv
YXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAg
ICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wQmx1ZShUZXh0dXJlRGVwdGgy
REFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24s
IGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNv
bXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQy
IG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21w
QWxwaGEoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0
ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBBbHBoYShUZXh0dXJlRGVwdGgyREFycmF5
PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0
IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIs
IGZsb2F0MyBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00
IEdhdGhlcihUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9j
YXRpb24sIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0
MyBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhl
clJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRp
b24sIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
R3JlZW4oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0
aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00
IEdhdGhlckJsdWUoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
Qmx1ZShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRp
b24sIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
QWxwaGEoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0
aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00
IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMg
bG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2Ft
cGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7
YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcFJlZChUZXh0
dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0
IGNvbXBhcmVfdmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJE
QXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92
YWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEdy
ZWVuKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlv
biwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7
CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEJsdWUoVGV4dHVy
ZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBj
b21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX00IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7CisgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJE
QXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92
YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
IExvYWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgaW50NCBsb2NhdGlvbik7YCk7CiAg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlRGVwdGgyREFycmF5
PCR7dHlwZX0+LCBpbnQ0IGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAgICAgICBw
cmludChgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlw
ZX0+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBIZWln
aHQsIHRocmVhZCB1aW50KiBFbGVtZW50cywgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTtg
KTsKICAgICAgICAgICAgIHByaW50KCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX0gU2FtcGxlKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2Nh
dGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRl
eHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBs
b2NhdGlvbiwgZmxvYXQgQ29tcGFyZVZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwg
U2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFs
dWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0
dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sICR7dHlwZX0g
Q29tcGFyZVZhbHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1w
bGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1ZSk7YCk7CiAgICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IEJpYXMpO2ApOwotICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2Ft
cGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdDIgRERYLCBmbG9hdDIgRERZKTtgKTsKKyAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aEN1YmU8
JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQzIEREWCwgZmxvYXQzIERE
WSk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4
dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBM
T0QpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlcihUZXh0dXJl
RGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlclJlZChUZXh0dXJlRGVwdGhDdWJlPCR7
dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9IEdhdGhlckdyZWVuKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gR2F0aGVyQmx1ZShUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9h
dDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhl
ckFscGhhKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlv
bik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wKFRleHR1
cmVEZXB0aEN1YmU8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2Nh
dGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0gR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIFNhbXBsZXJD
b21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7
Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wR3JlZW4oVGV4dHVy
ZURlcHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0
aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfSBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIFNhbXBsZXJD
b21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7
Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wQWxwaGEoVGV4dHVy
ZURlcHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0
aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfSBMb2FkKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIGludDQgbG9jYXRpb24pO2Ap
OworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRo
Q3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBl
fT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBs
ZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX00IEdhdGhlckJsdWUoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
QWxwaGEoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9u
KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1
cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29t
cGFyZV92YWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckNtcFJlZChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRp
b24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJDbXBHcmVlbihUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVy
LCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOworICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aEN1YmU8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7
CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEFscGhhKFRleHR1
cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29t
cGFyZV92YWx1ZSk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlIHZvaWQgR2V0RGltZW5z
aW9ucyhUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWlu
dCogV2lkdGgsIHRocmVhZCB1aW50KiBIZWlnaHQsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVs
cyk7YCk7CiAgICAgICAgICAgICBwcmludCgpOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2
b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgdGhyZWFkIHVpbnQq
IFdpZHRoLCB0aHJlYWQgdWludCogSGVpZ2h0KTtgKTsKQEAgLTIxMTQsNyArMjEwNCw2IEBAIGxl
dCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBwcmludChgbmF0
aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCAke3R5cGV9LCB1
aW50MyBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICBwcmludCgpOwogICAgICAgICB9Ci0gICAg
ICAgICovCiAgICAgfSkoKTsKICAgICByZXR1cm4gcmVzdWx0OwogfSkoKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbCBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbAppbmRleCA2MDdhNjk1MzI1M2RhNzI3YjFkZTM3Njc4
ZWMzODhiNGZhMjQwNDA1Li5lNzhjY2FjMWEwMjU0Y2JjOTIzYjlkZDZjMTg1YWVlNzhjNzJhODE1
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKKysr
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sCkBAIC0yOCw2ICsyOCw3
IEBACiA8c2NyaXB0IHNyYz0iQnVpbHRpblZlY3RvclNldHRlci5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iQ2FsbEV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNhbGxG
dW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ2FzdHMuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IkNoZWNrLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDaGVja0xpdGVy
YWxUeXBlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2hlY2tMb29wcy5qcyI+PC9zY3Jp
cHQ+CkBAIC0xMTUsNiArMTE2LDcgQEAKIDxzY3JpcHQgc3JjPSJSZXR1cm4uanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IlJldHVybkNoZWNrZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
IlJldHVybkV4Y2VwdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iU2FtcGxlci5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3RhbmRhcmRMaWJyYXJ5LmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJTdGF0ZW1lbnRDbG9uZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN0
cnVjdExheW91dEJ1aWxkZXIuanMiPjwvc2NyaXB0PgpAQCAtMTI3LDYgKzEyOSw4IEBACiA8c2Ny
aXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IlRlcm5hcnlFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJUZXh0dXJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUZXh0dXJlT3Bl
cmF0aW9ucy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHJhcFN0YXRlbWVudC5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
VHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4KQEAgLTE1Miw3ICsxNTYsNyBAQAogPHNjcmlw
dD4KIGZ1bmN0aW9uIGRvVGVzdEluQnJvd3NlcigpCiB7Ci0gICAgdmFyIHRlc3RlciA9IGRvVGVz
dCgvLiovKTsKKyAgICB2YXIgdGVzdGVyID0gZG9UZXN0KC90ZXh0dXJlLyk7CiAgICAgdmFyIGxh
c3RUaW1lOwogICAgIGZ1bmN0aW9uIG5leHQoKQogICAgIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9UZXN0LmpzCmluZGV4IDRhMTFjMTg1ODU5OTc3OGZmMzkxYjA0ZjI2MzVjNWI3MTAwNWRm
N2YuLjQ3YTM3YmY2YTg1MDI1YTA5MzM3ZWI3NDQyMjQ3ODM3NzM3NTkzYmYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKKysrIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwpAQCAtOTQsNiArOTQsMTMzIEBAIGZ1bmN0aW9uIG1h
a2VFbnVtKHByb2dyYW0sIGVudW1OYW1lLCB2YWx1ZSkKICAgICByZXR1cm4gVHlwZWRWYWx1ZS5i
b3goZW51bVR5cGUsIGVudW1NZW1iZXIudmFsdWUudW5pZnlOb2RlLnZhbHVlRm9yU2VsZWN0ZWRU
eXBlKTsKIH0KIAorZnVuY3Rpb24gbWFrZVNhbXBsZXIocHJvZ3JhbSwgb3B0aW9ucykKK3sKKyAg
ICAvLyBlbnVtIFdlYkdQVUFkZHJlc3NNb2RlIHsKKyAgICAvLyAgICAgImNsYW1wVG9FZGdlIiwK
KyAgICAvLyAgICAgInJlcGVhdCIsCisgICAgLy8gICAgICJtaXJyb3JSZXBlYXQiLAorICAgIC8v
ICAgICAiY2xhbXBUb0JvcmRlckNvbG9yIgorICAgIC8vIH0KKyAgICAvLworICAgIC8vIGVudW0g
V2ViR1BVRmlsdGVyTW9kZSB7CisgICAgLy8gICAgICJuZWFyZXN0IiwKKyAgICAvLyAgICAgImxp
bmVhciIKKyAgICAvLyB9CisgICAgLy8KKyAgICAvLyBlbnVtIFdlYkdQVUNvbXBhcmVGdW5jdGlv
biB7CisgICAgLy8gICAgICJuZXZlciIsCisgICAgLy8gICAgICJsZXNzIiwKKyAgICAvLyAgICAg
ImVxdWFsIiwKKyAgICAvLyAgICAgImxlc3NFcXVhbCIsCisgICAgLy8gICAgICJncmVhdGVyIiwK
KyAgICAvLyAgICAgIm5vdEVxdWFsIiwKKyAgICAvLyAgICAgImdyZWF0ZXJFcXVhbCIsCisgICAg
Ly8gICAgICJhbHdheXMiCisgICAgLy8gfQorICAgIC8vCisgICAgLy8gZW51bSBXZWJHUFVCb3Jk
ZXJDb2xvciB7CisgICAgLy8gICAgICJ0cmFuc3BhcmVudEJsYWNrIiwKKyAgICAvLyAgICAgIm9w
YXF1ZUJsYWNrIiwKKyAgICAvLyAgICAgIm9wYXF1ZVdoaXRlIgorICAgIC8vIH0KKyAgICAvLwor
ICAgIC8vIGRpY3Rpb25hcnkgV2ViR1BVU2FtcGxlckRlc2NyaXB0b3IgeworICAgIC8vICAgICBX
ZWJHUFVkZHJlc3NNb2RlIHJBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAgLy8gICAg
IFdlYkdQVWRkcmVzc01vZGUgc0FkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICAvLyAg
ICAgV2ViR1BVZGRyZXNzTW9kZSB0QWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgIC8v
ICAgICBXZWJHUFVGaWx0ZXJNb2RlRW51bSBtYWdGaWx0ZXIgPSAibmVhcmVzdCI7CisgICAgLy8g
ICAgIFdlYkdQVUZpbHRlck1vZGVFbnVtIG1pbkZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICAvLyAg
ICAgV2ViR1BVRmlsdGVyTW9kZUVudW0gbWlwbWFwRmlsdGVyID0gIm5lYXJlc3QiOworICAgIC8v
ICAgICBmbG9hdCBsb2RNaW5DbGFtcCA9IDA7CisgICAgLy8gICAgIGZsb2F0IGxvZE1heENsYW1w
ID0gTnVtYmVyLk1BWF9WQUxVRTsKKyAgICAvLyAgICAgdW5zaWduZWQgbG9uZyBtYXhBbmlzb3Ry
b3B5ID0gMTsKKyAgICAvLyAgICAgV2ViR1BVQ29tcGFyZUZ1bmN0aW9uIGNvbXBhcmVGdW5jdGlv
biA9ICJuZXZlciI7CisgICAgLy8gICAgIFdlYkdQVUJvcmRlckNvbG9yIGJvcmRlckNvbG9yID0g
InRyYW5zcGFyZW50QmxhY2siOworICAgIC8vIH07CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94
KHByb2dyYW0uaW50cmluc2ljcy5zYW1wbGVyLCBuZXcgU2FtcGxlcihvcHRpb25zKSk7Cit9CisK
K2Z1bmN0aW9uIG1ha2UxRFRleHR1cmUocHJvZ3JhbSwgbWlwbWFwcywgZWxlbWVudFR5cGUpCit7
CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZTFE
PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTFEKGVsZW1lbnRUeXBlLCBtaXBtYXBzKSk7
Cit9CisKK2Z1bmN0aW9uIG1ha2UxRFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVu
dFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tg
VGV4dHVyZTFEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlMURBcnJheShlbGVt
ZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24gbWFrZTJEVGV4dHVyZShwcm9ncmFtLCBt
aXBtYXBzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3Jh
bS5pbnRyaW5zaWNzW2BUZXh0dXJlMkQ8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlMkQo
ZWxlbWVudFR5cGUsIG1pcG1hcHMpKTsKK30KKworZnVuY3Rpb24gbWFrZTJEVGV4dHVyZUFycmF5
KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5i
b3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlMkRBcnJheTwke2VsZW1lbnRUeXBlfT5gXSwg
bmV3IFRleHR1cmUyREFycmF5KGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQorCitmdW5jdGlvbiBt
YWtlM0RUZXh0dXJlKHByb2dyYW0sIG1pcG1hcHMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVy
biBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmUzRDwke2VsZW1lbnRU
eXBlfT5gXSwgbmV3IFRleHR1cmUzRChlbGVtZW50VHlwZSwgbWlwbWFwcykpOworfQorCitmdW5j
dGlvbiBtYWtlVGV4dHVyZUN1YmUocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAg
IHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmVDdWJlPCR7
ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZUN1YmUoZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9
CisKK2Z1bmN0aW9uIG1ha2VSVzFEVGV4dHVyZShwcm9ncmFtLCBlbGVtZW50cywgZWxlbWVudFR5
cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldU
ZXh0dXJlMUQ8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlMURSVyhlbGVtZW50VHlwZSwg
ZWxlbWVudHMpKTsKK30KKworZnVuY3Rpb24gbWFrZVJXMURUZXh0dXJlQXJyYXkocHJvZ3JhbSwg
YXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFt
LmludHJpbnNpY3NbYFJXVGV4dHVyZTFEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0
dXJlMURBcnJheVJXKGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQorCitmdW5jdGlvbiBtYWtlUlcy
RFRleHR1cmUocHJvZ3JhbSwgcm93cywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVk
VmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldUZXh0dXJlMkQ8JHtlbGVtZW50VHlwZX0+
YF0sIG5ldyBUZXh0dXJlMkRSVyhlbGVtZW50VHlwZSwgcm93cykpOworfQorCitmdW5jdGlvbiBt
YWtlUlcyRFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAg
cmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldUZXh0dXJlMkRBcnJh
eTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUyREFycmF5UlcoZWxlbWVudFR5cGUsIGFy
cmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzNEVGV4dHVyZShwcm9ncmFtLCBkZXB0aFNsaWNl
cywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50
cmluc2ljc1tgUldUZXh0dXJlM0Q8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlM0RSVyhl
bGVtZW50VHlwZSwgZGVwdGhTbGljZXMpKTsKK30KKworZnVuY3Rpb24gbWFrZTJERGVwdGhUZXh0
dXJlKHByb2dyYW0sIG1pcG1hcHMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZh
bHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmVEZXB0aDJEPCR7ZWxlbWVudFR5cGV9
PmBdLCBuZXcgVGV4dHVyZURlcHRoMkQoZWxlbWVudFR5cGUsIG1pcG1hcHMpKTsKK30KKworZnVu
Y3Rpb24gbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBl
KQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1
cmVEZXB0aDJEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlRGVwdGgyREFycmF5
KGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQorCitmdW5jdGlvbiBtYWtlRGVwdGhUZXh0dXJlQ3Vi
ZShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUu
Ym94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZURlcHRoQ3ViZTwke2VsZW1lbnRUeXBlfT5g
XSwgbmV3IFRleHR1cmVEZXB0aEN1YmUoZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0
aW9uIG1ha2VSVzJERGVwdGhUZXh0dXJlKHByb2dyYW0sIHJvd3MsIGVsZW1lbnRUeXBlKQorewor
ICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZURl
cHRoMkQ8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlRGVwdGgyRFJXKGVsZW1lbnRUeXBl
LCByb3dzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3Jh
bSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9n
cmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZURlcHRoMkRBcnJheTwke2VsZW1lbnRUeXBlfT5gXSwg
bmV3IFRleHR1cmVEZXB0aDJEQXJyYXlSVyhlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKwogZnVu
Y3Rpb24gY2hlY2tOdW1iZXIocHJvZ3JhbSwgcmVzdWx0LCBleHBlY3RlZCkKIHsKICAgICBpZiAo
IXJlc3VsdC50eXBlLnVuaWZ5Tm9kZS5pc051bWJlcikKQEAgLTU1ODIsNyArNTcwOSwxNjgyIEBA
IHRlc3RzLmFycmF5SW5kZXggPSBmdW5jdGlvbigpIHsKICAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlVWludChwcm9ncmFtLCAyKSBdKSwgMyk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCkgXSksIDQpOwogICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpIF0pLCA1KTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBbIG1ha2VVaW50KHByb2dy
YW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAyKSBdKSwgNik7ICAgIAorICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDIpIF0pLCA2KTsKK30KKworZnVuY3Rpb24g
Y3JlYXRlVGV4dHVyZXNGb3JUZXN0aW5nKHByb2dyYW0pCit7CisgICAgbGV0IHRleHR1cmUxRCA9
IG1ha2UxRFRleHR1cmUocHJvZ3JhbSwgW1sxLCA3LCAxNCwgNzldLCBbMTMsIDE2XSwgWzE1XV0s
ICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlMURBcnJheSA9IG1ha2UxRFRleHR1cmVBcnJheShw
cm9ncmFtLCBbW1sxLCA3LCAxNCwgNzldLCBbMTMsIDE2XSwgWzE1XV0sIFtbMTYsIDE3LCAxOCwg
MTldLCBbMjAsIDIxXSwgWzIyXV1dLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZTJEID0gbWFr
ZTJEVGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0s
CisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywg
MTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5
LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzZdLAorICAgICAgICBbMzcs
IDM4LCAzOSwgNDBdXSwKKyAgICAgICAgW1s0MSwgNDJdXQorICAgIF0sICJmbG9hdCIpOworICAg
IGxldCB0ZXh0dXJlMkRBcnJheSA9IG1ha2UyRFRleHR1cmVBcnJheShwcm9ncmFtLCBbWworICAg
ICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwg
MTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0
XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBb
WzMzLCAzNCwgMzUsIDM2XSwKKyAgICAgICAgWzM3LCAzOCwgMzksIDQwXV0sCisgICAgICAgIFtb
NDEsIDQyXV0KKyAgICBdLCBbCisgICAgICAgIFtbNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwgNDks
IDUwXSwKKyAgICAgICAgWzUxLCA1MiwgNTMsIDU0LCA1NSwgNTYsIDU3LCA1OF0sCisgICAgICAg
IFs1OSwgNjAsIDYxLCA2MiwgNjMsIDY0LCA2NSwgNjZdLAorICAgICAgICBbNjcsIDY4LCA2OSwg
NzAsIDcxLCA3MiwgNzMsIDc0XV0sCisgICAgICAgIFtbNzUsIDc2LCA3NywgNzhdLAorICAgICAg
ICBbNzksIDgwLCA4MSwgODJdXSwKKyAgICAgICAgW1s4MywgODRdXQorICAgIF1dLCAiZmxvYXQi
KTsKKyAgICBsZXQgdGV4dHVyZTNEID0gbWFrZTNEVGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAg
IFtbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMs
IDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwK
KyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMz
LCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MF0sCisgICAgICAgIFs0MSwgNDIsIDQzLCA0NCwg
NDUsIDQ2LCA0NywgNDhdLAorICAgICAgICBbNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2
XSwKKyAgICAgICAgWzU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLCA2NF1dXSwKKyAgICAgICAg
W1tbNjUsIDY2LCA2NywgNjhdLAorICAgICAgICBbNjksIDcwLCA3MSwgNzJdXV0KKyAgICBdLCAi
ZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZUN1YmUgPSBtYWtlVGV4dHVyZUN1YmUocHJvZ3JhbSwg
W1sKKyAgICAgICAgW1sxLCAyXSwKKyAgICAgICAgWzMsIDRdLAorICAgICAgICBbNSwgNl0sCisg
ICAgICAgIFs3LCA4XV0sCisgICAgICAgIFtbOV0sCisgICAgICAgIFsxMF1dLAorICAgIF0sIFsK
KyAgICAgICAgW1sxMSwgMTJdLAorICAgICAgICBbMTMsIDE0XSwKKyAgICAgICAgWzE1LCAxNl0s
CisgICAgICAgIFsxNywgMThdXSwKKyAgICAgICAgW1sxOV0sCisgICAgICAgIFsyMF1dLAorICAg
IF0sIFsKKyAgICAgICAgW1syMSwgMjJdLAorICAgICAgICBbMjMsIDI0XSwKKyAgICAgICAgWzI1
LCAyNl0sCisgICAgICAgIFsyNywgMjhdXSwKKyAgICAgICAgW1syOV0sCisgICAgICAgIFszMF1d
LAorICAgIF0sIFsKKyAgICAgICAgW1szMSwgMzJdLAorICAgICAgICBbMzMsIDM0XSwKKyAgICAg
ICAgWzM1LCAzNl0sCisgICAgICAgIFszNywgMzhdXSwKKyAgICAgICAgW1szOV0sCisgICAgICAg
IFs0MF1dLAorICAgIF0sIFsKKyAgICAgICAgW1s0MSwgNDJdLAorICAgICAgICBbNDMsIDQ0XSwK
KyAgICAgICAgWzQ1LCA0Nl0sCisgICAgICAgIFs0NywgNDhdXSwKKyAgICAgICAgW1s0OV0sCisg
ICAgICAgIFs1MF1dLAorICAgIF0sIFsKKyAgICAgICAgW1s1MSwgNTJdLAorICAgICAgICBbNTMs
IDU0XSwKKyAgICAgICAgWzU1LCA1Nl0sCisgICAgICAgIFs1NywgNThdXSwKKyAgICAgICAgW1s1
OV0sCisgICAgICAgIFs2MF1dLAorICAgIF1dLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJl
MUQgPSBtYWtlUlcxRFRleHR1cmUocHJvZ3JhbSwgWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLCAi
ZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlMURBcnJheSA9IG1ha2VSVzFEVGV4dHVyZUFycmF5
KHByb2dyYW0sIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sIFs5LCAxMCwgMTEsIDEyLCAxMywg
MTQsIDE1LCAxNl0sIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdXSwgImZsb2F0Iik7
CisgICAgbGV0IHJ3VGV4dHVyZTJEID0gbWFrZVJXMkRUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAg
ICAgWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMs
IDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwK
KyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLCAiZmxvYXQiKTsKKyAg
ICBsZXQgcndUZXh0dXJlMkRBcnJheSA9IG1ha2VSVzJEVGV4dHVyZUFycmF5KHByb2dyYW0sIFsK
KyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwg
MTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIz
LCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAg
ICAgW1szMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDBdLAorICAgICAgICBbNDEsIDQyLCA0
MywgNDQsIDQ1LCA0NiwgNDcsIDQ4XSwKKyAgICAgICAgWzQ5LCA1MCwgNTEsIDUyLCA1MywgNTQs
IDU1LCA1Nl0sCisgICAgICAgIFs1NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2MywgNjRdXV0sICJm
bG9hdCIpOworICAgIGxldCByd1RleHR1cmUzRCA9IG1ha2VSVzNEVGV4dHVyZShwcm9ncmFtLCBb
CisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEs
IDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAy
MywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAg
ICAgIFtbMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwXSwKKyAgICAgICAgWzQxLCA0Miwg
NDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OF0sCisgICAgICAgIFs0OSwgNTAsIDUxLCA1MiwgNTMsIDU0
LCA1NSwgNTZdLAorICAgICAgICBbNTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjMsIDY0XV1dLCAi
ZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZURlcHRoMkQgPSBtYWtlMkREZXB0aFRleHR1cmUocHJv
Z3JhbSwgWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwg
MTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIx
LCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1d
LAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2XSwKKyAgICAgICAgWzM3LCAzOCwgMzksIDQwXV0s
CisgICAgICAgIFtbNDEsIDQyXV0KKyAgICBdLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZURl
cHRoMkRBcnJheSA9IG1ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbCisgICAgICAg
IFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywg
MTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAor
ICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMs
IDM0LCAzNSwgMzZdLAorICAgICAgICBbMzcsIDM4LCAzOSwgNDBdXSwKKyAgICAgICAgW1s0MSwg
NDJdXQorICAgIF0sIFsKKyAgICAgICAgW1s0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4LCA0OSwgNTBd
LAorICAgICAgICBbNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTcsIDU4XSwKKyAgICAgICAgWzU5
LCA2MCwgNjEsIDYyLCA2MywgNjQsIDY1LCA2Nl0sCisgICAgICAgIFs2NywgNjgsIDY5LCA3MCwg
NzEsIDcyLCA3MywgNzRdXSwKKyAgICAgICAgW1s3NSwgNzYsIDc3LCA3OF0sCisgICAgICAgIFs3
OSwgODAsIDgxLCA4Ml1dLAorICAgICAgICBbWzgzLCA4NF1dCisgICAgXV0sICJmbG9hdCIpOwor
ICAgIGxldCB0ZXh0dXJlRGVwdGhDdWJlID0gbWFrZURlcHRoVGV4dHVyZUN1YmUocHJvZ3JhbSwg
W1sKKyAgICAgICAgW1sxLCAyXSwKKyAgICAgICAgWzMsIDRdLAorICAgICAgICBbNSwgNl0sCisg
ICAgICAgIFs3LCA4XV0sCisgICAgICAgIFtbOV0sCisgICAgICAgIFsxMF1dLAorICAgIF0sIFsK
KyAgICAgICAgW1sxMSwgMTJdLAorICAgICAgICBbMTMsIDE0XSwKKyAgICAgICAgWzE1LCAxNl0s
CisgICAgICAgIFsxNywgMThdXSwKKyAgICAgICAgW1sxOV0sCisgICAgICAgIFsyMF1dLAorICAg
IF0sIFsKKyAgICAgICAgW1syMSwgMjJdLAorICAgICAgICBbMjMsIDI0XSwKKyAgICAgICAgWzI1
LCAyNl0sCisgICAgICAgIFsyNywgMjhdXSwKKyAgICAgICAgW1syOV0sCisgICAgICAgIFszMF1d
LAorICAgIF0sIFsKKyAgICAgICAgW1szMSwgMzJdLAorICAgICAgICBbMzMsIDM0XSwKKyAgICAg
ICAgWzM1LCAzNl0sCisgICAgICAgIFszNywgMzhdXSwKKyAgICAgICAgW1szOV0sCisgICAgICAg
IFs0MF1dLAorICAgIF0sIFsKKyAgICAgICAgW1s0MSwgNDJdLAorICAgICAgICBbNDMsIDQ0XSwK
KyAgICAgICAgWzQ1LCA0Nl0sCisgICAgICAgIFs0NywgNDhdXSwKKyAgICAgICAgW1s0OV0sCisg
ICAgICAgIFs1MF1dLAorICAgIF0sIFsKKyAgICAgICAgW1s1MSwgNTJdLAorICAgICAgICBbNTMs
IDU0XSwKKyAgICAgICAgWzU1LCA1Nl0sCisgICAgICAgIFs1NywgNThdXSwKKyAgICAgICAgW1s1
OV0sCisgICAgICAgIFs2MF1dLAorICAgIF1dLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJl
RGVwdGgyRCA9IG1ha2VSVzJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAgICAgWzEsIDIs
IDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwg
MTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAg
WzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLCAiZmxvYXQiKTsKKyAgICBsZXQgcndU
ZXh0dXJlRGVwdGgyREFycmF5ID0gbWFrZVJXMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBb
CisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEs
IDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAy
MywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAg
ICAgIFtbMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwXSwKKyAgICAgICAgWzQxLCA0Miwg
NDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OF0sCisgICAgICAgIFs0OSwgNTAsIDUxLCA1MiwgNTMsIDU0
LCA1NSwgNTZdLAorICAgICAgICBbNTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjMsIDY0XV1dLCAi
ZmxvYXQiKTsKKyAgICByZXR1cm4gW3RleHR1cmUxRCwgdGV4dHVyZTFEQXJyYXksIHRleHR1cmUy
RCwgdGV4dHVyZTJEQXJyYXksIHRleHR1cmUzRCwgdGV4dHVyZUN1YmUsIHJ3VGV4dHVyZTFELCBy
d1RleHR1cmUxREFycmF5LCByd1RleHR1cmUyRCwgcndUZXh0dXJlMkRBcnJheSwgcndUZXh0dXJl
M0QsIHRleHR1cmVEZXB0aDJELCB0ZXh0dXJlRGVwdGgyREFycmF5LCB0ZXh0dXJlRGVwdGhDdWJl
LCByd1RleHR1cmVEZXB0aDJELCByd1RleHR1cmVEZXB0aDJEQXJyYXldOworfQorCit0ZXN0cy50
ZXh0dXJlRGltZW5zaW9ucyA9IGZ1bmN0aW9uKCkgeworICAgIGxldCBwcm9ncmFtID0gZG9QcmVw
KGAKKyAgICAgICAgdWludCBmb28xKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAg
ICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAg
ICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJm51bWJlck9mTGV2ZWxz
KTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZv
bzIoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOwor
ICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgMCwgJndpZHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0
dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMyhUZXh0dXJl
MURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAg
ICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZlbGVtZW50cywg
Jm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQor
ICAgICAgICB1aW50IGZvbzQoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAg
ICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAg
ICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgMCwgJndpZHRoLCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICBy
ZXR1cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb281KFRleHR1cmUxREFy
cmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAg
ICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAg
ICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmVsZW1lbnRzLCAmbnVt
YmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAg
ICB9CisgICAgICAgIHVpbnQgZm9vNihUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAg
ICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAg
IHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUs
IDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVy
biB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzcoVGV4dHVyZTJEPGZsb2F0PiB0
ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWln
aHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGlt
ZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7Cisg
ICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vOChU
ZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAg
ICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7Cisg
ICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51
bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAg
ICAgfQorICAgICAgICB1aW50IGZvbzkoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsK
KyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAg
ICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZl
bGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAg
ICAgICAgfQorICAgICAgICB1aW50IGZvbzEwKFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJl
KSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7Cisg
ICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVs
czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0
LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0
OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTEoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRl
eHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdo
dDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9m
TGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZo
ZWlnaHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBl
bGVtZW50czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzEyKFRleHR1cmUyREFycmF5PGZs
b2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWlu
dCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBu
dW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndp
ZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICBy
ZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xMyhUZXh0
dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAg
ICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICB1
aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAw
LCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAg
IHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE0KFRleHR1cmUzRDxm
bG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVp
bnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVt
YmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0
aCwgJmhlaWdodCwgJmRlcHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJu
IGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE1KFRleHR1cmUzRDxmbG9hdD4g
dGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVp
Z2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZM
ZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhl
aWdodCwgJmRlcHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGRlcHRo
OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTYoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJl
KSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7Cisg
ICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsK
KyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAm
ZGVwdGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZl
bHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xNyhUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4
dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0
OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVu
c2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAg
ICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTgoVGV4
dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAg
ICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7Cisg
ICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51
bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAg
ICAgICAgdWludCBmb28xOShUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAg
ICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWlu
dCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwg
JndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51
bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjAoUldUZXh0dXJlMUQ8
ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICBH
ZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7
CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yMShSV1RleHR1cmUxREFycmF5PGZsb2F0PiB0
ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBlbGVt
ZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmZWxlbWVu
dHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQg
Zm9vMjIoUldUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWlu
dCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1l
bnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBl
bGVtZW50czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIzKFJXVGV4dHVyZTJEPGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdo
dCk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBm
b28yNChSV1RleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0
aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0
ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAg
ICAgICAgfQorICAgICAgICB1aW50IGZvbzI1KFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1
cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsK
KyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRl
eHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiB3
aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI2KFJXVGV4dHVyZTJEQXJyYXk8Zmxv
YXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50
IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1l
bnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAg
IHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yNyhSV1RleHR1cmUy
REFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAg
ICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAg
ICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cyk7Cisg
ICAgICAgICAgICByZXR1cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28y
OChSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsK
KyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAg
ICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgpOwor
ICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjko
UldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7Cisg
ICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAg
ICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoKTsKKyAg
ICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28zMChS
V1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAg
ICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAg
ICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgpOworICAg
ICAgICAgICAgcmV0dXJuIGRlcHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMzEoVGV4
dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7Cisg
ICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7
CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwg
Jm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQor
ICAgICAgICB1aW50IGZvbzMyKFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAg
ICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAg
ICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJl
LCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1
cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMzMoVGV4dHVyZURlcHRoMkQ8
ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1
aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAg
ICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2
ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAg
ICAgICB1aW50IGZvbzM0KFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAg
ICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAg
ICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAg
ICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVt
ZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAg
ICAgfQorICAgICAgICB1aW50IGZvbzM1KFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1
cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsK
KyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2
ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWln
aHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWln
aHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28zNihUZXh0dXJlRGVwdGgyREFycmF5PGZs
b2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWlu
dCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBu
dW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndp
ZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICBy
ZXR1cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28zNyhUZXh0dXJlRGVw
dGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAg
ICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAg
ICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4
dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7Cisg
ICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWlu
dCBmb28zOChUZXh0dXJlRGVwdGhDdWJlPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1
aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51
bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lk
dGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7
CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28zOShUZXh0dXJlRGVwdGhDdWJlPGZsb2F0PiB0
ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWln
aHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGlt
ZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7Cisg
ICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNDAo
VGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0
aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxl
dmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVp
Z2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxz
OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNDEoUldUZXh0dXJlRGVwdGgyRDxmbG9hdD4g
dGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVp
Z2h0OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQp
OworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9v
NDIoUldUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3
aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgR2V0RGltZW5zaW9u
cyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzQzKFJXVGV4dHVyZURlcHRoMkRBcnJheTxmbG9h
dD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQg
aGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVu
c2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMpOworICAgICAgICAgICAg
cmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNDQoUldUZXh0dXJlRGVw
dGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAg
ICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAg
ICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cyk7
CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9v
NDUoUldUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1
aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVs
ZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWln
aHQsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1cm4gZWxlbWVudHM7CisgICAgICAgIH0K
KyAgICBgKTsKKyAgICBsZXQgW3RleHR1cmUxRCwgdGV4dHVyZTFEQXJyYXksIHRleHR1cmUyRCwg
dGV4dHVyZTJEQXJyYXksIHRleHR1cmUzRCwgdGV4dHVyZUN1YmUsIHJ3VGV4dHVyZTFELCByd1Rl
eHR1cmUxREFycmF5LCByd1RleHR1cmUyRCwgcndUZXh0dXJlMkRBcnJheSwgcndUZXh0dXJlM0Qs
IHRleHR1cmVEZXB0aDJELCB0ZXh0dXJlRGVwdGgyREFycmF5LCB0ZXh0dXJlRGVwdGhDdWJlLCBy
d1RleHR1cmVEZXB0aDJELCByd1RleHR1cmVEZXB0aDJEQXJyYXldID0gY3JlYXRlVGV4dHVyZXNG
b3JUZXN0aW5nKHByb2dyYW0pOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTFEXSksIDMpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFE
QXJyYXldKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUxREFycmF5XSksIDMpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVy
ZTJEXSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzciLCBbdGV4dHVyZTJEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEXSksIDMpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTJEQXJyYXldKSwg
OCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAi
LCBbdGV4dHVyZTJEQXJyYXldKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZTJEQXJyYXldKSwgMik7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbdGV4dHVyZTJEQXJy
YXldKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTMiLCBbdGV4dHVyZTNEXSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmUzRF0pLCA0KTsKKyAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFt0ZXh0dXJlM0RdKSwgMik7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBb
dGV4dHVyZTNEXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE3IiwgW3RleHR1cmVDdWJlXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVDdWJlXSksIDQpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1
cmVDdWJlXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIwIiwgW3J3VGV4dHVyZTFEXSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZTFEQXJyYXldKSwgOCk7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbcndU
ZXh0dXJlMURBcnJheV0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yMyIsIFtyd1RleHR1cmUyRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNCIsIFtyd1RleHR1cmUyRF0pLCA0KTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNSIsIFty
d1RleHR1cmUyREFycmF5XSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzI2IiwgW3J3VGV4dHVyZTJEQXJyYXldKSwgNCk7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjciLCBbcndUZXh0dXJlMkRB
cnJheV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yOCIsIFtyd1RleHR1cmUzRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOSIsIFtyd1RleHR1cmUzRF0pLCA0KTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMCIsIFtyd1RleHR1cmUz
RF0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zMSIsIFt0ZXh0dXJlRGVwdGgyRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMiIsIFt0ZXh0dXJlRGVwdGgyRF0pLCA0KTsKKyAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMyIsIFt0ZXh0dXJl
RGVwdGgyRF0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zNCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5XSksIDgpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM1IiwgW3RleHR1cmVEZXB0aDJEQXJy
YXldKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMzYiLCBbdGV4dHVyZURlcHRoMkRBcnJheV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5XSks
IDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4
IiwgW3RleHR1cmVEZXB0aEN1YmVdKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMzkiLCBbdGV4dHVyZURlcHRoQ3ViZV0pLCA0KTsKKyAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MCIsIFt0ZXh0dXJl
RGVwdGhDdWJlXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzQxIiwgW3J3VGV4dHVyZURlcHRoMkRdKSwgOCk7CisgICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbcndUZXh0dXJlRGVwdGgyRF0p
LCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
MyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXldKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5XSks
IDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1
IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheV0pLCAyKTsKK30KKwordGVzdHMudGV4dHVyZUxvYWQg
PSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCisgICAgICAgIGZsb2F0
IGZvbzEoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgbG9jYXRpb24sIGludCBtaXBtYXAp
IHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIobG9jYXRpb24sIG1pcG1h
cCkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzIoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0
dXJlLCBpbnQgbG9jYXRpb24sIGludCBtaXBtYXAsIGludCBvZmZzZXQpIHsKKyAgICAgICAgICAg
IHJldHVybiBMb2FkKHRleHR1cmUsIGludDIobG9jYXRpb24sIG1pcG1hcCksIG9mZnNldCk7Cisg
ICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMyhUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVy
ZSwgaW50IGxvY2F0aW9uLCBpbnQgbWlwbWFwLCBpbnQgbGF5ZXIpIHsKKyAgICAgICAgICAgIHJl
dHVybiBMb2FkKHRleHR1cmUsIGludDMobG9jYXRpb24sIG1pcG1hcCwgbGF5ZXIpKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb280KFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBp
bnQgbG9jYXRpb24sIGludCBtaXBtYXAsIGludCBsYXllciwgaW50IG9mZnNldCkgeworICAgICAg
ICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myhsb2NhdGlvbiwgbWlwbWFwLCBsYXllciks
IG9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNShUZXh0dXJlMkQ8ZmxvYXQ+
IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCkgeworICAgICAgICAgICAgcmV0dXJu
IExvYWQodGV4dHVyZSwgaW50Myh4LCB5LCBtaXBtYXApKTsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdCBmb282KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbWlw
bWFwLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2Fk
KHRleHR1cmUsIGludDMoeCwgeSwgbWlwbWFwKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7Cisg
ICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNyhUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVy
ZSwgaW50IHgsIGludCB5LCBpbnQgbWlwbWFwLCBpbnQgbGF5ZXIpIHsKKyAgICAgICAgICAgIHJl
dHVybiBMb2FkKHRleHR1cmUsIGludDQoeCwgeSwgbWlwbWFwLCBsYXllcikpOworICAgICAgICB9
CisgICAgICAgIGZsb2F0IGZvbzgoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCB4
LCBpbnQgeSwgaW50IG1pcG1hcCwgaW50IGxheWVyLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkp
IHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDQoeCwgeSwgbWlwbWFwLCBs
YXllciksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0
IGZvbzkoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCB6LCBpbnQg
bWlwbWFwKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgsIHksIHos
IG1pcG1hcCkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzEwKFRleHR1cmUzRDxmbG9h
dD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgeiwgaW50IG1pcG1hcCwgaW50IG9mZnNldFgs
IGludCBvZmZzZXRZLCBpbnQgb2Zmc2V0WikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4
dHVyZSwgaW50NCh4LCB5LCB6LCBtaXBtYXApLCBpbnQzKG9mZnNldFgsIG9mZnNldFksIG9mZnNl
dFopKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xMShSV1RleHR1cmUxRDxmbG9hdD4g
dGV4dHVyZSwgaW50IGxvY2F0aW9uKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJl
LCBsb2NhdGlvbik7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTIoUldUZXh0dXJlMURB
cnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQgbGF5ZXIpIHsKKyAgICAgICAg
ICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIobG9jYXRpb24sIGxheWVyKSk7CisgICAgICAg
IH0KKyAgICAgICAgZmxvYXQgZm9vMTMoUldUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIGludCB4
LCBpbnQgeSkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Mih4LCB5KSk7
CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTQoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4g
dGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbGF5ZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBM
b2FkKHRleHR1cmUsIGludDMoeCwgeSwgbGF5ZXIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb28xNShSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgeikg
eworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myh4LCB5LCB6KSk7CisgICAg
ICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTYoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUs
IGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4
dHVyZSwgaW50Myh4LCB5LCBtaXBtYXApKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28x
NyhUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbWlwbWFw
LCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRl
eHR1cmUsIGludDMoeCwgeSwgbWlwbWFwKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAg
ICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTgoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4
dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbWlwbWFwLCBpbnQgbGF5ZXIpIHsKKyAgICAgICAgICAg
IHJldHVybiBMb2FkKHRleHR1cmUsIGludDQoeCwgeSwgbWlwbWFwLCBsYXllcikpOworICAgICAg
ICB9CisgICAgICAgIGZsb2F0IGZvbzE5KFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1
cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCwgaW50IGxheWVyLCBpbnQgb2Zmc2V0WCwgaW50
IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDQoeCwgeSwg
bWlwbWFwLCBsYXllciksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAg
ICAgIGZsb2F0IGZvbzIwKFJXVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBp
bnQgeSkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Mih4LCB5KSk7Cisg
ICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMjEoUldUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0
PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJu
IExvYWQodGV4dHVyZSwgaW50Myh4LCB5LCBsYXllcikpOworICAgICAgICB9CisgICAgYCk7Cisg
ICAgbGV0IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRleHR1cmUyREFy
cmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0dXJlMURBcnJh
eSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNELCB0ZXh0dXJlRGVw
dGgyRCwgdGV4dHVyZURlcHRoMkRBcnJheSwgdGV4dHVyZURlcHRoQ3ViZSwgcndUZXh0dXJlRGVw
dGgyRCwgcndUZXh0dXJlRGVwdGgyREFycmF5XSA9IGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhw
cm9ncmFtKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMiIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTFELCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAx
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIs
IFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMTMpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUx
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxNik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE3KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCAyMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMjEpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIC0xKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
LTEpXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAx
Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQi
LCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDE2KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0
dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAyMSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDIwKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUi
LCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIs
IFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgMzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzOCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJE
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3Rl
eHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTcpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3Rl
eHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
LTEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzgpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMzQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzcp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282Iiwg
W3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwg
LTEpXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAx
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAzNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzgp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQzKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0NCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDUyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCA3NSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgNzYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDc5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA4MCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
MTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgMTgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEx
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxOSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM4KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAzNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAtMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAtMSldKSwgMzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQ0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1Mik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgNDUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDUzKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCA1Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNjAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCA2MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNzYpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDgwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3Nyk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgODEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDgwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgNzYpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDgxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgNzcp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285Iiwg
W3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAx
MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzki
LCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMzKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0Qs
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCA0MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDQyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNjUpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1
cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA2Nik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDY5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgNzApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBb
dGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVy
ZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgMTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTgp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIs
IFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDIpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0
dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0Qs
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDEpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgLTEpXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
NDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0
ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDMpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJl
M0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNTApOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDY2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDY5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDY3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDcwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDcwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2
NSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEw
IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3MSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3Rl
eHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNjYpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1
cmUxRCwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDMpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFty
d1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAzKV0pLCA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJ
bnQocHJvZ3JhbSwgNCldKSwgNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDUpXSks
IDYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCA2KV0pLCA3KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQs
IG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3
VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgOSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4
dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
MTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCAxMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURB
cnJheSwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3
VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDIpXSksIDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAyKV0pLCAxOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIwKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJl
MURBcnJheSwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwg
W3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwg
MildKSwgMjIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50
KHByb2dyYW0sIDIpXSksIDIzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA3
KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMyk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBt
YWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA1KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0
dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3
VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIs
IFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCA4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgMTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCAxMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDQp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtl
SW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTcpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1
cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxOCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3
VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMi
LCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMild
KSwgMjApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFt
LCAyKV0pLCAyMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHBy
b2dyYW0sIDIpXSksIDIyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJ
bnQocHJvZ3JhbSwgMildKSwgMjMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA3KSwg
bWFrZUludChwcm9ncmFtLCAyKV0pLCAyNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjYpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUlu
dChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyNyk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBt
YWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI4KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJl
MkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1Rl
eHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAzMCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwg
W3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDMpXSks
IDMxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwg
MyldKSwgMzIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQxKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndU
ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCA0Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1Rl
eHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNE
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
NDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
NiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2
IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAx
MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2
IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
MzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
NiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVw
dGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3
IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0
aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAx
Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3
IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzMpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVw
dGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
MzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
NyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNyk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVE
ZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAtMSld
KSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
OCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4
dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzMyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM3KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURl
cHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzOCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDMpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQ0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1MSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTIpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDc1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNzkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDgwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBb
dGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxOCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDE5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDM1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzOSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIC0xKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAzNSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgNDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDUyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0NSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDUyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA2MCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNTMpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDYxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3
Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgODApOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDc3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCA4MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgODApOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCA3Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgODEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCA3Nyk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwg
W3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMiks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJv
Z3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1h
a2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURl
cHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3
VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtl
SW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDExKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVw
dGgyRCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3
VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgMTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA2KSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCAxNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJv
Z3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE3KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJl
RGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxOCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwg
W3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwg
MildKSwgMTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50
KHByb2dyYW0sIDIpXSksIDIwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA0
KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjIpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJE
LCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIzKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0
dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAy
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIw
IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMyldKSwgMjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDMpXSksIDI2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFt
LCAyKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjgpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0
aDJELCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndU
ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAzKV0p
LCAzMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJv
Z3JhbSwgMyldKSwgMzEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDcpLCBt
YWtlSW50KHByb2dyYW0sIDMpXSksIDMyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MSIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjEiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbcndU
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjEiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQxKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbcndUZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDQyKTsKK30KKwordGVzdHMudGV4dHVyZVN0b3JlID0gZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICBmbG9hdCBmb28x
KFJXVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCB1aW50IGxvY2F0aW9uLCBmbG9hdCB2YWx1ZSkg
eworICAgICAgICAgICAgU3RvcmUodGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uKTsKKyAgICAgICAg
ICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludChsb2NhdGlvbikpOworICAgICAgICB9CisgICAg
ICAgIGZsb2F0IGZvbzIoUldUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSwgdWludCBsb2Nh
dGlvbiwgdWludCBsYXllciwgZmxvYXQgdmFsdWUpIHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1
cmUsIHZhbHVlLCB1aW50Mihsb2NhdGlvbiwgbGF5ZXIpKTsKKyAgICAgICAgICAgIHJldHVybiBM
b2FkKHRleHR1cmUsIGludDIoaW50KGxvY2F0aW9uKSwgaW50KGxheWVyKSkpOworICAgICAgICB9
CisgICAgICAgIGZsb2F0IGZvbzMoUldUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHVpbnQgeCwg
dWludCB5LCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4dHVyZSwgdmFsdWUs
IHVpbnQyKHgsIHkpKTsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIoaW50
KHgpLCBpbnQoeSkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb280KFJXVGV4dHVyZTJE
QXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHVpbnQgeCwgdWludCB5LCB1aW50IGxheWVyLCBmbG9hdCB2
YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4dHVyZSwgdmFsdWUsIHVpbnQzKHgsIHksIGxh
eWVyKSk7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKGludCh4KSwgaW50
KHkpLCBpbnQobGF5ZXIpKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNShSV1RleHR1
cmUzRDxmbG9hdD4gdGV4dHVyZSwgdWludCB4LCB1aW50IHksIHVpbnQgeiwgZmxvYXQgdmFsdWUp
IHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1cmUsIHZhbHVlLCB1aW50Myh4LCB5LCB6KSk7Cisg
ICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKGludCh4KSwgaW50KHkpLCBpbnQo
eikpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb282KFJXVGV4dHVyZURlcHRoMkQ8Zmxv
YXQ+IHRleHR1cmUsIHVpbnQgeCwgdWludCB5LCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAg
U3RvcmUodGV4dHVyZSwgdmFsdWUsIHVpbnQyKHgsIHkpKTsKKyAgICAgICAgICAgIHJldHVybiBM
b2FkKHRleHR1cmUsIGludDIoaW50KHgpLCBpbnQoeSkpKTsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdCBmb283KFJXVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgdWludCB4LCB1
aW50IHksIHVpbnQgbGF5ZXIsIGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICBTdG9yZSh0ZXh0
dXJlLCB2YWx1ZSwgdWludDMoeCwgeSwgbGF5ZXIpKTsKKyAgICAgICAgICAgIHJldHVybiBMb2Fk
KHRleHR1cmUsIGludDMoaW50KHgpLCBpbnQoeSksIGludChsYXllcikpKTsKKyAgICAgICAgfQor
ICAgIGApOworICAgIGxldCBbdGV4dHVyZTFELCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0
ZXh0dXJlMkRBcnJheSwgdGV4dHVyZTNELCB0ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4
dHVyZTFEQXJyYXksIHJ3VGV4dHVyZTJELCByd1RleHR1cmUyREFycmF5LCByd1RleHR1cmUzRCwg
dGV4dHVyZURlcHRoMkQsIHRleHR1cmVEZXB0aDJEQXJyYXksIHRleHR1cmVEZXB0aEN1YmUsIHJ3
VGV4dHVyZURlcHRoMkQsIHJ3VGV4dHVyZURlcHRoMkRBcnJheV0gPSBjcmVhdGVUZXh0dXJlc0Zv
clRlc3RpbmcocHJvZ3JhbSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVp
bnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJl
MUQsIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9n
cmFtLCA3KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwg
W3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBt
YWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNCks
IG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3
VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtl
VWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1h
a2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4
dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VV
aW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVy
ZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChw
cm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50
KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFE
QXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9n
cmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHBy
b2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJy
YXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFt
LCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIi
LCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dy
YW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXks
IG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA1
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBb
cndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0s
IDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1h
a2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVy
ZTJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDIp
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFty
d1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9n
cmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVp
bnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQs
IG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4
dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0s
IDMpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIs
IFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChw
cm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFr
ZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJl
MkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiks
IG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3
VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dy
YW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0s
IDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWlu
dChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChw
cm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwg
bWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0
dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwg
MyksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwg
W3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHBy
b2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dy
YW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtl
VWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFt
LCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dy
YW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFtLCAxKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0
aDJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282
IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJE
LCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwg
NSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282Iiwg
W3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBt
YWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3
VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtl
VWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4
dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWlu
dChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VV
aW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVy
ZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50
KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURl
cHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9n
cmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHBy
b2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRo
MkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFt
LCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYi
LCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dy
YW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQs
IG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBb
cndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0s
IDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1h
a2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA0KSwg
bWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndU
ZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDMp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VV
aW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbcndUZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283Iiwg
W3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHBy
b2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzciLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb283IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VV
aW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbcndUZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3J3VGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKK30KKwor
dGVzdHMudGV4dHVyZVNhbXBsZSA9IGZ1bmN0aW9uKCkgeworICAgIGxldCBwcm9ncmFtID0gZG9Q
cmVwKGAKKyAgICAgICAgZmxvYXQgZm9vMShUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBs
ZXIgcywgZmxvYXQgbG9jYXRpb24pIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVy
ZSwgcywgbG9jYXRpb24pOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzIoVGV4dHVyZTFE
PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IGxvY2F0aW9uLCBpbnQgb2Zmc2V0KSB7
CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGxvY2F0aW9uLCBvZmZzZXQp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzMoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRl
eHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgbGF5ZXIpIHsKKyAgICAgICAgICAgIHJl
dHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQyKHgsIGxheWVyKSk7CisgICAgICAgIH0KKyAg
ICAgICAgZmxvYXQgZm9vNChUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBz
LCBmbG9hdCB4LCBmbG9hdCBsYXllciwgaW50IG9mZnNldCkgeworICAgICAgICAgICAgcmV0dXJu
IFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgbGF5ZXIpLCBvZmZzZXQpOworICAgICAgICB9
CisgICAgICAgIGZsb2F0IGZvbzUoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMs
IGZsb2F0IHgsIGZsb2F0IHkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwg
cywgZmxvYXQyKHgsIHkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb282KFRleHR1cmUy
RDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBpbnQgb2Zmc2V0
WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywg
ZmxvYXQyKHgsIHkpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAg
ICBmbG9hdCBmb283KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZs
b2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxl
KHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllcikpOworICAgICAgICB9CisgICAgICAgIGZs
b2F0IGZvbzgoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQg
eCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAg
ICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBp
bnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb285KFRl
eHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9h
dCB6KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5
LCB6KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTAoVGV4dHVyZTNEPGZsb2F0PiB0
ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGludCBvZmZzZXRY
LCBpbnQgb2Zmc2V0WSwgaW50IG9mZnNldFopIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUo
dGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopLCBpbnQzKG9mZnNldFgsIG9mZnNldFksIG9mZnNl
dFopKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xMShUZXh0dXJlQ3ViZTxmbG9hdD4g
dGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KSB7CisgICAgICAg
ICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSk7CisgICAgICAg
IH0KKyAgICAgICAgZmxvYXQgZm9vMTIoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVy
IHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IEJpYXMpIHsKKyAgICAgICAgICAgIHJldHVybiBT
YW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgQmlhcyk7CisgICAgICAgIH0KKyAg
ICAgICAgZmxvYXQgZm9vMTMoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZs
b2F0IHgsIGZsb2F0IHksIGZsb2F0IEJpYXMsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgewor
ICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBC
aWFzLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBm
b28xNChUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQg
eSwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSkgeworICAg
ICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBmbG9h
dDIoZGR4MCwgZGR4MSksIGZsb2F0MihkZHkwLCBkZHkxKSk7CisgICAgICAgIH0KKyAgICAgICAg
ZmxvYXQgZm9vMTUoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgs
IGZsb2F0IHksIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEs
IGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUdy
YWQodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBmbG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0Mihk
ZHkwLCBkZHkxKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAg
ZmxvYXQgZm9vMTYoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgs
IGZsb2F0IHksIGZsb2F0IExPRCkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUxldmVsKHRl
eHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgTE9EKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBm
b28xNyhUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQg
eSwgZmxvYXQgTE9ELCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJl
dHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIExPRCwgaW50MihvZmZz
ZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTgoVGV4dHVyZTJE
QXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg
bGF5ZXIsIGZsb2F0IEJpYXMpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1
cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIEJpYXMpOworICAgICAgICB9CisgICAgICAgIGZs
b2F0IGZvbzE5KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0
IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBCaWFzLCBpbnQgb2Zmc2V0WCwgaW50IG9m
ZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0
Myh4LCB5LCBsYXllciksIEJpYXMsIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9
CisgICAgICAgIGZsb2F0IGZvbzIwKFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1w
bGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBkZHgwLCBmbG9hdCBk
ZHgxLCBmbG9hdCBkZHkwLCBmbG9hdCBkZHkxKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxl
R3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBmbG9hdDIoZGR4MCwgZGR4MSks
IGZsb2F0MihkZHkwLCBkZHkxKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMjEoVGV4
dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgbGF5ZXIsIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0IGRkeTAsIGZsb2F0IGRk
eTEsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBs
ZUdyYWQodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgZmxvYXQyKGRkeDAsIGRkeDEp
LCBmbG9hdDIoZGR5MCwgZGR5MSksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9
CisgICAgICAgIGZsb2F0IGZvbzIyKFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1w
bGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBMT0QpIHsKKyAgICAg
ICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIp
LCBMT0QpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzIzKFRleHR1cmUyREFycmF5PGZs
b2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBm
bG9hdCBMT0QsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJu
IFNhbXBsZUxldmVsKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIExPRCwgaW50Mihv
ZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgaW50IGZvbzI0KFRleHR1cmUx
RDxpbnQ0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IGxvY2F0aW9uKSB7CisgICAgICAgICAg
ICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGxvY2F0aW9uKS54OworICAgICAgICB9CisgICAg
ICAgIGludCBmb28yNShUZXh0dXJlMUQ8aW50ND4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCBs
b2NhdGlvbikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBsb2NhdGlv
bikueTsKKyAgICAgICAgfQorICAgICAgICBpbnQgZm9vMjYoVGV4dHVyZTFEPGludDQ+IHRleHR1
cmUsIHNhbXBsZXIgcywgZmxvYXQgbG9jYXRpb24pIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1w
bGUodGV4dHVyZSwgcywgbG9jYXRpb24pLno7CisgICAgICAgIH0KKyAgICAgICAgaW50IGZvbzI3
KFRleHR1cmUxRDxpbnQ0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IGxvY2F0aW9uKSB7Cisg
ICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGxvY2F0aW9uKS53OworICAgICAg
ICB9CisgICAgICAgIGZsb2F0IGZvbzI4KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBz
YW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUo
dGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28y
OShUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9h
dCB5LCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1w
bGUodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb28zMChUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0
ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyKSB7CisgICAg
ICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllcikpOwor
ICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzMxKFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+
IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGludCBv
ZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJl
LCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb28zMihUZXh0dXJlRGVwdGhDdWJlPGZsb2F0PiB0ZXh0dXJl
LCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopIHsKKyAgICAgICAgICAgIHJl
dHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmb28zMyhUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBz
LCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBCaWFzKSB7CisgICAgICAgICAgICByZXR1cm4gU2Ft
cGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIEJpYXMpOworICAgICAgICB9CisgICAg
ICAgIGZsb2F0IGZvbzM0KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMs
IGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IEJpYXMsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkg
eworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVyZSwgcywgZmxvYXQyKHgsIHkp
LCBCaWFzLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb28zNShUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4
LCBmbG9hdCB5LCBmbG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHkwLCBmbG9hdCBkZHkx
KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwg
eSksIGZsb2F0MihkZHgwLCBkZHgxKSwgZmxvYXQyKGRkeTAsIGRkeTEpKTsKKyAgICAgICAgfQor
ICAgICAgICBmbG9hdCBmb28zNihUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxl
ciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHkw
LCBmbG9hdCBkZHkxLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJl
dHVybiBTYW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgZmxvYXQyKGRkeDAsIGRk
eDEpLCBmbG9hdDIoZGR5MCwgZGR5MSksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAg
ICB9CisgICAgICAgIGZsb2F0IGZvbzM3KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBz
YW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IExPRCkgeworICAgICAgICAgICAgcmV0
dXJuIFNhbXBsZUxldmVsKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgTE9EKTsKKyAgICAgICAg
fQorICAgICAgICBmbG9hdCBmb28zOChUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgc2Ft
cGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBMT0QsIGludCBvZmZzZXRYLCBpbnQgb2Zm
c2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUxldmVsKHRleHR1cmUsIHMsIGZsb2F0
Mih4LCB5KSwgTE9ELCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAg
ICBmbG9hdCBmb28zOShUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVy
IHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBCaWFzKSB7CisgICAgICAg
ICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBC
aWFzKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb280MChUZXh0dXJlRGVwdGgyREFycmF5
PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVy
LCBmbG9hdCBCaWFzLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJl
dHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIEJpYXMsIGlu
dDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQxKFRl
eHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxv
YXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0IGRkeTAsIGZs
b2F0IGRkeTEpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUsIHMsIGZs
b2F0Myh4LCB5LCBsYXllciksIGZsb2F0MihkZHgwLCBkZHgxKSwgZmxvYXQyKGRkeTAsIGRkeTEp
KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb280MihUZXh0dXJlRGVwdGgyREFycmF5PGZs
b2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBm
bG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHkwLCBmbG9hdCBkZHkxLCBpbnQgb2Zmc2V0
WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUs
IHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGZsb2F0MihkZHgwLCBkZHgxKSwgZmxvYXQyKGRkeTAs
IGRkeTEpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb280MyhUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZs
b2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBMT0QpIHsKKyAgICAgICAgICAgIHJl
dHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBMT0QpOwor
ICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQ0KFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+
IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0
IExPRCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2Ft
cGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgTE9ELCBpbnQyKG9mZnNl
dFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb280NShUZXh0dXJlRGVw
dGgyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBj
b21wYXJlVmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVDbXAodGV4dHVyZSwgcywg
ZmxvYXQyKHgsIHkpLCBjb21wYXJlVmFsdWUpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZv
bzQ2KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZs
b2F0IHksIGZsb2F0IGNvbXBhcmVWYWx1ZSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7Cisg
ICAgICAgICAgICByZXR1cm4gU2FtcGxlQ21wKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgY29t
cGFyZVZhbHVlLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdCBmb280NyhUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMs
IGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBjb21wYXJlVmFsdWUpIHsKKyAg
ICAgICAgICAgIHJldHVybiBTYW1wbGVDbXAodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVy
KSwgY29tcGFyZVZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb280OChUZXh0dXJl
RGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHks
IGZsb2F0IGxheWVyLCBmbG9hdCBjb21wYXJlVmFsdWUsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0
WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUNtcCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwg
eSwgbGF5ZXIpLCBjb21wYXJlVmFsdWUsIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAg
ICB9CisgICAgICAgIGZsb2F0IGZvbzQ5KFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJlLCBzYW1w
bGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IGJpYXMpIHsKKyAgICAgICAg
ICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSwgYmlhcyk7
CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNTAoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1
cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgZmxvYXQgZGR4MCwgZmxv
YXQgZGR4MSwgZmxvYXQgZGR4MiwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSwgZmxvYXQgZGR5Mikg
eworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxvYXQzKHgsIHks
IHopLCBmbG9hdDMoZGR4MCwgZGR4MSwgZGR4MiksIGZsb2F0MyhkZHkwLCBkZHkxLCBkZHkyKSk7
CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNTEoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1
cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgZmxvYXQgbG9kKSB7Cisg
ICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHop
LCBsb2QpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzUyKFRleHR1cmVEZXB0aEN1YmU8
ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgZmxv
YXQgYmlhcykgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVyZSwgcywgZmxv
YXQzKHgsIHksIHopLCBiaWFzKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb281MyhUZXh0
dXJlRGVwdGhDdWJlPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHks
IGZsb2F0IHosIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0IGRkeDIsIGZsb2F0IGRkeTAs
IGZsb2F0IGRkeTEsIGZsb2F0IGRkeTIpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVHcmFk
KHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSwgZmxvYXQzKGRkeDAsIGRkeDEsIGRkeDIpLCBm
bG9hdDMoZGR5MCwgZGR5MSwgZGR5MikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzU0
KFRleHR1cmVEZXB0aEN1YmU8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxv
YXQgeSwgZmxvYXQgeiwgZmxvYXQgbG9kKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2
ZWwodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopLCBsb2QpOworICAgICAgICB9CisgICAgYCk7
CisgICAgbGV0IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRleHR1cmUy
REFycmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0dXJlMURB
cnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNELCB0ZXh0dXJl
RGVwdGgyRCwgdGV4dHVyZURlcHRoMkRBcnJheSwgdGV4dHVyZURlcHRoQ3ViZSwgcndUZXh0dXJl
RGVwdGgyRCwgcndUZXh0dXJlRGVwdGgyREFycmF5XSA9IGNyZWF0ZVRleHR1cmVzRm9yVGVzdGlu
Zyhwcm9ncmFtKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHt9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuMzc1KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHt9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNDM3NSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjU2MjUpXSksIDE0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJl
MUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHt9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNjI1KV0p
LCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC4zNzUpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NDM3NSldKSwgKDMgKiA3ICsgMSAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwg
KDcgKyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjU2MjUpXSksICgxICogNyArIDMgKiAx
NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjYyNSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1w
VG9Cb3JkZXJDb2xvciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuMzc1KV0pLCA3KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJl
MUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01v
ZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjQzNzUpXSks
ICgzICogNyArIDEgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICg3ICsgMTQpIC8gMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xh
bXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41NjI1KV0pLCAoMSAqIDcg
KyAzICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC42MjUpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxICsgMC4zNzUpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEgKyAwLjQzNzUpXSksICgzICogNyArIDEgKiAxNCkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJl
MUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01v
ZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC41KV0pLCAoNyArIDE0KSAv
IDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
IiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIs
IHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjU2MjUp
XSksICgxICogNyArIDMgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxICsgMC42MjUpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAyICsgMC4zNzUpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDIgKyAwLjQzNzUpXSksICgzICogNyArIDEgKiAxNCkgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0
dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVz
c01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC41KV0pLCAoNyArIDE0
KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjU2
MjUpXSksICgxICogNyArIDMgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAyICsgMC42MjUpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC42MjUpXSksIDcpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJv
clJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjU2MjUpXSksICgzICogNyArIDEg
KiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxICsgMC41KV0pLCAoNyArIDE0KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjQzNzUpXSksICgxICogNyArIDMgKiAxNCkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0
ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRk
cmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC4zNzUp
XSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAy
ICsgMC4zNzUpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDIgKyAwLjQzNzUpXSksICgzICogNyArIDEgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJt
aXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC41KV0pLCAoNyArIDE0KSAv
IDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
IiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIs
IHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAw
LjU2MjUpXSksICgxICogNyArIDMgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC42MjUpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAtMC4zNzUpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEuMzc1KV0pLCA3OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2Rl
OiAiY2xhbXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTAuMzc1KV0pLCAw
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIs
IFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBy
QWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
LjM3NSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIiwgYm9yZGVyQ29sb3I6
ICJvcGFxdWVCbGFjayJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0wLjM3NSldKSwgMCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVy
ZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NN
b2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIiwgYm9yZGVyQ29sb3I6ICJvcGFxdWVCbGFjayJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEuMzc1KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVy
Q29sb3IiLCBib3JkZXJDb2xvcjogIm9wYXF1ZVdoaXRlIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
LTAuMzc1KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IiLCBib3JkZXJDb2xv
cjogIm9wYXF1ZVdoaXRlIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMS4zNzUpXSksIDEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1
cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNz
TW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciIsIGJvcmRlckNvbG9yOiAib3BhcXVlV2hpdGUifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNzkgKyAxKSAvIDIpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIGxvZE1pbkNsYW1wOiAxfSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMyArIDE2KSAvIDIpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDE0ICsgNzkpIC8gMik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDcgKyAxNCkgLyAyKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0
ZXh0dXJlMURBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoMTcg
KyAxOCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMTQgKyA3OSkgLyAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAoMTggKyAxOSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMyArIDE0ICsgMjEgKyAyMikg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpXSks
ICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAo
MTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg1NCArIDU1ICsg
NjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAg
KyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgKDYyICsgNjMgKyA3MCArIDcxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAxMyAr
IDIwICsgMjEgKyA0NCArIDQ1ICsgNTIgKyA1MykgLyA4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAv
IDE2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSks
ICgxMyArIDE0ICsgMjEgKyAyMiArIDQ1ICsgNDYgKyA1MyArIDU0KSAvIDgpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpXSksICgyMCArIDIxICsgMjggKyAyOSArIDUyICsgNTMgKyA2MCArIDYxKSAvIDgpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3Rl
eHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgNSAvIDgpXSksICgxMiArIDEzICsgMjAgKyAyMSArICg0NCArIDQ1ICsgNTIgKyA1
MykgKiAzKSAvIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAy
MiArIDQ1ICsgNDYgKyA1MyArIDU0KSAvIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDIw
ICsgMjEgKyAyOCArIDI5ICsgNTIgKyA1MyArIDYwICsgNjEpIC8gOCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC4y
NSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgKDQ0ICsgNDUgKyA1MiArIDUzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMyAr
IDQgKyA1ICsgNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMTUgKyAxNikgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEi
LCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCldKSwgKDIzICsgMjQgKyAyNSArIDI2KSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlQ3ViZSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgKDMzICsgMzQgKyAzNSArIDM2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNDMgKyA0NCArIDQ1
ICsgNDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzExIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKV0pLCAoNTMgKyA1NCArIDU1ICsgNTYpIC8gNCk7Cisg
ICAgLy8gVW5mb3J0dW5hdGVseSwgd2UgY2FuJ3QgYWN0dWFsbHkgdGVzdCB0aGUgIkJpYXMiIGFy
Z3VtZW50LCBiZWNhdXNlIGl0IGlzIHN1cHBvc2VkIHRvIGJlIGFwcGxpZWQKKyAgICAvLyB0byB0
aGUgdW5jbGFtcGVkIExPRCwgd2hpY2ggZm9yIHVzIGlzIC1JbmZpbml0eSAoYmVjYXVzZSBvdXIg
ZGVyaXZhdGl2ZXMgYXJlIGFsbCAwKQorICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAy
MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTIiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFt0
ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFt0ZXh0dXJlMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsg
MjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTMiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmUyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlMkQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0
ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5l
UHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0
dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAv
IHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM0ICsgMzUgKyAzOCArIDM5
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNCIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9h
ZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQ
dHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1
cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkg
LyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3RleHR1cmUyRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEy
ICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUi
LCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBb
dGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgp
LndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRW
YWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0
aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgp
LmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgo
MTMgKyAxNCArIDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIs
IFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZTJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAx
MyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZp
bHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8g
NCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE3IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNCArIDM1ICsgMzggKyAz
OSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAz
OSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmUyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYgKyAz
OSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAz
OSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIwICsgMjEgKyAyOCAr
IDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAo
NTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDYyICsgNjMgKyA3MCArIDcxKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoNjIgKyA2MyArIDcwICsgNzEpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgx
MiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMTIgKyAxMyArIDIwICsgMjEp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJl
MkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLmhlaWdodCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRl
eHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxp
bmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
d2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFs
dWUoKS5oZWlnaHQpXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsg
MzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQp
XSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoNzYgKyA3NyArIDgw
ICsgODEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgu
cG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0p
LCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0
dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAv
IHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKCgoNTQgKyA1NSArIDYyICsg
NjMpIC8gNCkgKyAoKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAy
MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1
cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIu
bG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1
KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygy
LCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lk
dGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUo
KS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgo
KDEzICsgMTQgKyAyMSArIDIyKSAvIDQpICsgKCgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KSkgLyAy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEi
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2
MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
NTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAv
IHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZh
bHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWln
aHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg3NyArIDc4
ICsgODEgKyA4MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
TWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWln
aHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2
ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRy
LmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJE
LmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoKCg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KSArICgoNzcgKyA3OCArIDgx
ICsgODIpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIyIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMiIsIFt0ZXh0dXJlMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMiArIDEzICsgMjAgKyAyMSkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjIiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAz
NSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMiIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICg1NCArIDU1ICsgNjIg
KyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoKCg1NCArIDU1ICsgNjIgKyA2MykgLyA0KSArICgo
NzYgKyA3NyArIDgwICsgODEpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSAr
ICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMyArIDE0ICsgMjEgKyAyMikgLyA0
KSArICgoMzUgKyAzNiArIDM5ICsgNDApIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCg1NCArIDU1ICsgNjIgKyA2Mykg
LyA0KSArICgoNzYgKyA3NyArIDgwICsgODEpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKDc3ICsgNzggKyA4MSArIDgyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCg1NSArIDU2ICsgNjMgKyA2
NCkgLyA0KSArICgoNzcgKyA3OCArIDgxICsgODIpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIGxvZE1pbkNsYW1wOiAxLCBs
b2RNYXhDbGFtcDogMX0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2
IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIs
IGxvZE1pbkNsYW1wOiAxLCBsb2RNYXhDbGFtcDogMX0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMzQg
KyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21p
bkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0Iiwg
W3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1p
cG1hcEZpbHRlcjogImxpbmVhciIsIG1heEFuaXNvdHJvcHk6IDJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNCAv
IHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAoNC8zKSAvIHRleHR1
cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQp
OworICAgIGxldCB0ZXh0dXJlMURJbnQ0ID0gbWFrZTFEVGV4dHVyZShwcm9ncmFtLCBbW1sxLCAy
LCAzLCA0XSwgWzEwMCwgMjAwLCAzMDAsIDQwMF0sIFsxMDEsIDIwMiwgMzAxLCA0MDFdLCBbMTMs
IDE0LCAxNSwgMTZdXSwgW1sxNywgMTgsIDE5LCAyMF0sIFsyMSwgMjIsIDIzLCAyNF1dLCBbWzI1
LCAyNiwgMjcsIDI4XV1dLCAiaW50NCIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjQiLCBbdGV4dHVyZTFESW50NCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgMTAw
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI1Iiwg
W3RleHR1cmUxREludDQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksIDIwMSk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNiIsIFt0ZXh0dXJlMURJbnQ0LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KV0pLCAzMDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjciLCBbdGV4dHVyZTFESW50NCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgNDAwKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjgiLCBbdGV4dHVyZURl
cHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAxMyAr
IDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzI4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjgiLCBbdGV4dHVyZURlcHRo
MkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpXSksICgyMCArIDIxICsg
MjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjkiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
MTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzI5IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMwIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSks
ICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIy
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zMSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDYyICsgNjMgKyA3MCArIDcx
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zMiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzICsgNCArIDUgKyA2KSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMiIsIFt0ZXh0dXJl
RGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDE1ICsgMTYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMyIiwgW3RleHR1cmVEZXB0aEN1YmUs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgKDIzICsgMjQgKyAyNSArIDI2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMzMgKyAz
NCArIDM1ICsgMzYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzMyIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDQzICsgNDQgKyA0NSArIDQ2
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zMiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKV0pLCAoNTMgKyA1NCArIDU1ICsgNTYpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4IiwgW3Rl
eHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEy
ICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4IiwgW3RleHR1
cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KV0pLCAoMjAg
KyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzI5IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzAiLCBbdGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsg
MjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMSIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICg2MiArIDYzICsg
NzAgKyA3MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzMiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MzMiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMzIiwg
W3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzQiLCBbdGV4dHVy
ZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMzQiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzUi
LCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MzUiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0
aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDEy
ICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zNSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRy
LmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkuaGVpZ2h0KV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM1IiwgW3RleHR1cmVEZXB0aDJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCBN
YXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdo
dCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1
ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9h
ZFZhbHVlKCkuaGVpZ2h0KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAz
NSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIw
ICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM2Iiwg
W3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzYi
LCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28z
NiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQu
ZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzYiLCBbdGV4dHVyZURlcHRoMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5l
UHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAzOSAr
IDQwKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIx
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNyIsIFt0
ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM3IiwgW3RleHR1cmVE
ZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFw
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgoKDEyICsgMTMgKyAyMCAr
IDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzgiLCBbdGV4dHVyZURlcHRo
MkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiAr
IDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMzgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzgiLCBbdGV4
dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkp
IC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzM4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1cmVEZXB0
aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMzUg
KyAzNiArIDM5ICsgNDApIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzgiLCBb
dGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
LCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsgMjIpIC8g
NCkgKyAoKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzkiLCBb
dGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEz
ICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOSIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2Mykg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDYyICsgNjMgKyA3MCArIDcxKSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MCIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDAiLCBbdGV4
dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQwIiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
MCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICg2MiArIDYzICsgNzAgKyA3
MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNDEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgp
LndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0p
LCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMzQgKyAzNSAr
IDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5o
ZWlnaHQpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygy
LCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgu
cG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgoKDEy
ICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBb
dGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoNTQgKyA1
NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoNzYgKyA3NyArIDgwICsgODEp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5w
b3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
TWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSks
ICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAu
NSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgoKDU0ICsgNTUgKyA2
MiArIDYzKSAvIDQpICsgKCg3NiArIDc3ICsgODAgKyA4MSkgLyA0KSkgLyAyKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURl
cHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzQyIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEz
ICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1
ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
KDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9h
ZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41
KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygy
LCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMyArIDE0ICsgMjEgKyAyMikgLyA0
KSArICgoMzUgKyAzNiArIDM5ICsgNDApIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMg
KyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
IC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJl
MkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg3NyArIDc4ICsg
ODEgKyA4MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhl
aWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsg
NTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJl
MkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRl
eHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoNTUgKyA1NiArIDYzICsgNjQpIC8gNCkgKyAoKDc3ICsg
NzggKyA4MSArIDgyKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280MyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDMiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzQzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0p
LCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoKCgxMiArIDEz
ICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2
MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280MyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpXSksICg3NiArIDc3ICsgODAgKyA4MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDMiLCBbdGV4
dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpXSksICgoKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpICsgKCg3NiArIDc3ICsg
ODAgKyA4MSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
MTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTIgKyAxMyArIDIwICsg
MjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURl
cHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMzUgKyAzNiArIDM5ICsgNDApIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0Iiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoKCgxMyArIDE0ICsgMjEgKyAyMikgLyA0KSArICgoMzUgKyAzNiArIDM5ICsgNDApIC8g
NCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2
MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg3NiArIDc3
ICsgODAgKyA4MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1
NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpICsg
KCg3NiArIDc3ICsgODAgKyA4MSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDc3ICsgNzggKyA4MSArIDgyKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlw
bWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoNTUg
KyA1NiArIDYzICsgNjQpIC8gNCkgKyAoKDc3ICsgNzggKyA4MSArIDgyKSAvIDQpKSAvIDIpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFtt
YWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0p
LCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5ldmVyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxNyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0
IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0s
ICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tb
MTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAi
bGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3Jh
bSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0
aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUo
cHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFy
ZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAwKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhU
ZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e2NvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2Uy
RERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIs
IFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0
IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNzRXF1YWwifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3
XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxl
c3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJv
Z3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1
bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDApOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRl
eHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDApOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtl
MkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSks
IDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibm90RXF1YWwifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDExKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxv
YXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5vdEVxdWFsIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxNyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sx
N11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJu
b3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJv
Z3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1
bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERl
cHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0p
LCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXJFcXVhbCJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMjMpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0s
ICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiYWx3YXlz
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBb
W1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246
ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHBy
b2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVG
dW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRl
eHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5ldmVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDExKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwg
W1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rp
b246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwg
MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3
IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIp
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1
cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3MifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tb
MTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjog
Imxlc3MifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDApOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFtt
YWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3MifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJh
eShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2Nv
bXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDExKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1d
XSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJlcXVh
bCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2Uy
RERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShw
cm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBh
cmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAxMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11d
XV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVz
c0VxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBb
bWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNzRXF1YWwifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1
cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMTEpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBb
W1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlv
bjogImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSks
IDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQi
KSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRl
eHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5vdEVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDExKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3Jh
bSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVu
Y3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAx
NyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJm
bG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibm90RXF1YWwi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkRE
ZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFy
cmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwg
W1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rp
b246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MjMpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAi
ZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERl
cHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiYWx3YXlzIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJv
Z3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJl
RnVuY3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MjMpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280OSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzICsgNCAr
IDUgKyA2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280OSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTMg
KyAxNCArIDE1ICsgMTYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQ5IiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgKDIzICsgMjQgKyAyNSArIDI2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280OSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKV0pLCAoMzMgKyAzNCArIDM1ICsgMzYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ5IiwgW3RleHR1cmVDdWJlLCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCldKSwgKDQzICsgNDQgKyA0NSArIDQ2KSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280OSIsIFt0ZXh0dXJlQ3ViZSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTMgKyA1NCArIDU1ICsgNTYpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1
cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzICsgNCArIDUgKyA2KSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MCIsIFt0
ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAxNSArIDE2
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMjMgKyAyNCAr
IDI1ICsgMjYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAo
MzMgKyAzNCArIDM1ICsgMzYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApXSksICg0MyArIDQ0ICsgNDUgKyA0NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTAiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApXSksICg1MyArIDU0ICsgNTUgKyA1NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTAiLCBbdGV4dHVyZUN1YmUsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLndp
ZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlRGVwdGhDdWJl
LmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg5ICsg
MTApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlRGVw
dGhDdWJlLmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMiAvIHRleHR1cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCldKSwgKDE5ICsgMjApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMiAvIHRleHR1cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRy
LmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMjkgKyAzMCkg
LyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NTAiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmVEZXB0aEN1
YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAyIC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoMzkgKyA0MCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTAiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAyIC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlRGVwdGhDdWJlLmVQdHIubG9h
ZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg0OSArIDUwKSAvIDIp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MCIs
IFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZURlcHRoQ3ViZS5l
UHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIg
LyB0ZXh0dXJlRGVwdGhDdWJlLmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApXSksICg1OSArIDYwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKV0pLCAoMyArIDQgKyA1ICsgNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMTUgKyAxNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIzICsgMjQgKyAyNSArIDI2KSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MSIsIFt0ZXh0dXJl
Q3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMzICsgMzQgKyAzNSArIDM2KSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MSIs
IFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNDMgKyA0NCArIDQ1ICsg
NDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzUxIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTMgKyA1
NCArIDU1ICsgNTYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzUxIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWlu
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSks
ICg5ICsgMTApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzUxIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAo
MTkgKyAyMCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDI5
ICsgMzApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUxIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAt
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoMzkg
KyA0MCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDQ5ICsg
NTApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzUxIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNTkgKyA2
MCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNTIiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzICsg
NCArIDUgKyA2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb281MiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
XSksICgxMyArIDE0ICsgMTUgKyAxNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTIiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApXSksICgyMyArIDI0ICsgMjUgKyAyNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTIiLCBbdGV4dHVyZURlcHRoQ3Vi
ZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMzMgKyAzNCArIDM1ICsgMzYpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUyIiwgW3Rl
eHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNDMgKyA0NCArIDQ1ICsg
NDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzUyIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDUz
ICsgNTQgKyA1NSArIDU2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb281MyIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApXSksICgzICsgNCArIDUgKyA2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MyIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
LTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDE1ICsgMTYpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUzIiwgW3RleHR1cmVEZXB0
aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIzICsgMjQgKyAyNSArIDI2KSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MyIs
IFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMzMgKyAzNCAr
IDM1ICsgMzYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgKDQzICsgNDQgKyA0NSArIDQ2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281MyIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoNTMgKyA1NCArIDU1ICsgNTYpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1
YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRyLmxvYWRWYWx1
ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlRGVw
dGhDdWJlLmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSks
ICg5ICsgMTApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAv
IHRleHR1cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLmhl
aWdodCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTkgKyAyMCkgLyAyKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURl
cHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlRGVwdGhDdWJlLmVQdHIubG9h
ZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1
cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCldKSwgKDI5ICsgMzApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMiAvIHRleHR1cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRyLmxvYWRWYWx1
ZSgpLmhlaWdodCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMzkgKyA0MCkgLyAyKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4
dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlRGVwdGhDdWJlLmVQ
dHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAv
IHRleHR1cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCldKSwgKDQ5ICsgNTApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMiAvIHRleHR1cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRyLmxv
YWRWYWx1ZSgpLmhlaWdodCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTkgKyA2MCkgLyAy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQi
LCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMyArIDQgKyA1
ICsgNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDEzICsgMTQgKyAxNSArIDE2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApXSksICgyMyArIDI0ICsgMjUgKyAyNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMzICsgMzQgKyAzNSArIDM2KSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0
dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg0MyArIDQ0ICsgNDUgKyA0
NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDUz
ICsgNTQgKyA1NSArIDU2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpXSksICg5ICsgMTApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpXSksICgxOSArIDIwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpXSksICgyOSArIDMwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKV0pLCAoMzkgKyA0MCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNDkgKyA1MCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDU5ICsgNjApIC8gMik7CiB9CiAKIG9rVG9UZXN0
ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1
cmUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQwNzY5NGZhYzI2N2E3NzgzNjViOTRhNjhjMDIxMzcwMjU0Y2E1MGYKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlLmpzCkBAIC0wLDAg
KzEsNTQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyJ1
c2Ugc3RyaWN0IjsKKworY2xhc3MgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoZGltZW5zaW9u
LCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBl
LCBkYXRhKQorICAgIHsKKyAgICAgICAgdGhpcy5fZGltZW5zaW9uID0gZGltZW5zaW9uOworICAg
ICAgICB0aGlzLl93aWR0aCA9IHdpZHRoOworICAgICAgICB0aGlzLl9oZWlnaHQgPSBoZWlnaHQ7
CisgICAgICAgIHRoaXMuX2RlcHRoID0gZGVwdGg7CisgICAgICAgIHRoaXMuX2xldmVsQ291bnQg
PSBsZXZlbENvdW50OworICAgICAgICB0aGlzLl9sYXllckNvdW50ID0gbGF5ZXJDb3VudDsKKyAg
ICAgICAgdGhpcy5faW5uZXJUeXBlID0gaW5uZXJUeXBlOworICAgICAgICB0aGlzLl9kYXRhID0g
ZGF0YTsKKyAgICB9CisKKyAgICBnZXQgZGltZW5zaW9uKCkgeyByZXR1cm4gdGhpcy5fZGltZW5z
aW9uOyB9CisgICAgZ2V0IHdpZHRoKCkgeyByZXR1cm4gdGhpcy5fd2lkdGg7IH0KKyAgICBnZXQg
aGVpZ2h0KCkgeyByZXR1cm4gdGhpcy5faGVpZ2h0OyB9CisgICAgZ2V0IGRlcHRoKCkgeyByZXR1
cm4gdGhpcy5fZGVwdGg7IH0KKyAgICBnZXQgbGV2ZWxDb3VudCgpIHsgcmV0dXJuIHRoaXMuX2xl
dmVsQ291bnQ7IH0KKyAgICBnZXQgbGF5ZXJDb3VudCgpIHsgcmV0dXJuIHRoaXMuX2xheWVyQ291
bnQ7IH0KKyAgICBnZXQgaW5uZXJUeXBlKCkgeyByZXR1cm4gdGhpcy5faW5uZXJUeXBlOyB9Cisg
ICAgZ2V0IGRhdGEoKSB7IHJldHVybiB0aGlzLl9kYXRhOyB9CisKKyAgICBlbGVtZW50Q2hlY2tl
ZChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICBpZiAobGF5ZXIgPCAwIHx8
IGxheWVyID49IHRoaXMubGF5ZXJDb3VudAorICAgICAgICAgICAgfHwgbGV2ZWwgPCAwIHx8IGxl
dmVsID49IHRoaXMubGV2ZWxDb3VudAorICAgICAgICAgICAgfHwgayA8IDAgfHwgayA+PSB0aGlz
LmRlcHRoCisgICAgICAgICAgICB8fCBqIDwgMCB8fCBqID49IHRoaXMuaGVpZ2h0CisgICAgICAg
ICAgICB8fCBpIDwgMCB8fCBpID49IHRoaXMud2lkdGgpCisgICAgICAgICAgICByZXR1cm4gdW5k
ZWZpbmVkOworICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwg
aSk7CisgICAgfQorCisgICAgc2V0RWxlbWVudENoZWNrZWQobGF5ZXIsIGxldmVsLCBrLCBqLCBp
LCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmIChsYXllciA8IDAgfHwgbGF5ZXIgPj0gdGhpcy5s
YXllckNvdW50CisgICAgICAgICAgICB8fCBsZXZlbCA8IDAgfHwgbGV2ZWwgPj0gdGhpcy5sZXZl
bENvdW50CisgICAgICAgICAgICB8fCBrIDwgMCB8fCBrID49IHRoaXMuZGVwdGgKKyAgICAgICAg
ICAgIHx8IGogPCAwIHx8IGogPj0gdGhpcy5oZWlnaHQKKyAgICAgICAgICAgIHx8IGkgPCAwIHx8
IGkgPj0gdGhpcy53aWR0aCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgdGhp
cy5zZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpOworICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUxRCBleHRlbmRzIFRleHR1cmUgewor
ICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRh
IiBpcyBhbiBhcnJheSBvZiBtaXBtYXBzLgorICAgICAgICAvLyBUaGUgZmlyc3QgbWlwbWFwIGlz
IGFuIGFycmF5IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBFYWNoIGVsZW1lbnQgbWF5IGJlIGEg
c2NhbGFyIG9yIGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgorICAgICAgICAvLyBUaGUgd2lkdGgg
bXVzdCBiZSBhIHBvd2VyLW9mLXR3by4KKyAgICAgICAgLy8gRWFjaCBtaXBtYXAgaXMgaGFsZi1z
aXplIG9mIHRoZSBwcmV2aW91cyBzaXplLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAxOwor
ICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9
IDE7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0
YS5sZW5ndGg7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGlt
ZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5u
ZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgewor
ICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVp
Z2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAg
IGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKwor
ICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMuZGF0YVtsZXZlbF1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2
ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xldmVsXVtpXSA9
IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTFEQXJyYXkgZXh0ZW5kcyBUZXh0dXJl
IHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAi
ZGF0YSIgaXMgYW4gYXJyYXkgb2YgMUQgdGV4dHVyZXMuCisgICAgICAgIC8vIEFsbCB0ZXh0dXJl
cyBtdXN0IGhhdmUgdGhlIHNhbWUgd2lkdGggYW5kIG51bWJlciBvZiBtaXBtYXBzLgorCisgICAg
ICAgIGxldCBkaW1lbnNpb24gPSAxOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdLmxl
bmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IDE7CisgICAgICAgIGxldCBkZXB0aCA9IDE7Cisg
ICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBsYXll
ckNvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhl
aWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7Cisg
ICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRo
aXMuZGF0YVswXVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2
ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwo
bGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxh
eWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGF5
ZXJdW2xldmVsXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywg
aiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtpXSA9
IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTJEIGV4dGVuZHMgVGV4dHVyZSB7Cisg
ICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEi
IGlzIGFuIGFycmF5IG9mIG1pcG1hcHMuCisgICAgICAgIC8vIFRoZSBmaXJzdCBtaXBtYXAgaXMg
YSByZWN0YW5ndWxhciBhcnJheSBvZiByb3dzLCB3aGVyZSBlYWNoIHJvdyBpcyBhbiBhcnJheSBv
ZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBhIHNjYWxhciBvciBh
biBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRoIGFuZCBoZWlnaHQg
bXVzdCBiZSBwb3dlcnMtb2YtdHdvLgorICAgICAgICAvLyBFYWNoIG1pcG1hcCBpcyBoYWxmLXdp
ZHRoIGFuZCBoYWxmLWhlaWdodCBvZiB0aGUgcHJldmlvdXMgc2l6ZS4KKworICAgICAgICBsZXQg
ZGltZW5zaW9uID0gMjsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXS5sZW5ndGg7Cisg
ICAgICAgIGxldCBoZWlnaHQgPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGRlcHRoID0g
MTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgbGV0IGxh
eWVyQ291bnQgPSAxOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRl
cHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKwor
ICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFb
bGV2ZWxdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKworICAg
IGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKwor
ICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMuZGF0YVtsZXZlbF1bal1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwg
bGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xldmVsXVtq
XVtpXSA9IHZhbHVlOworICAgIH0KK30KKworbGV0IFRleHR1cmVEZXB0aDJEID0gVGV4dHVyZTJE
OworCitjbGFzcyBUZXh0dXJlMkRBcnJheSBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVj
dG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJh
eSBvZiAyRCB0ZXh0dXJlcy4KKyAgICAgICAgLy8gQWxsIHRleHR1cmVzIG11c3QgaGF2ZSB0aGUg
c2FtZSB3aWR0aCwgaGVpZ2h0IGFuZCBudW1iZXIgb2YgbWlwbWFwcy4KKworICAgICAgICBsZXQg
ZGltZW5zaW9uID0gMjsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXVswXS5sZW5ndGg7
CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGRl
cHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAg
ICAgbGV0IGxheWVyQ291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9u
LCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBl
LCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5kYXRhWzBdW2xldmVsXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVp
Z2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bbGV2
ZWxdLmxlbmd0aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAg
ICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwg
aSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtqXVtpXTsK
KyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisg
ICAgeworICAgICAgICB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtqXVtpXSA9IHZhbHVlOworICAg
IH0KK30KKworbGV0IFRleHR1cmVEZXB0aDJEQXJyYXkgPSBUZXh0dXJlMkRBcnJheTsKKworY2xh
c3MgVGV4dHVyZTNEIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBl
LCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIG1pcG1hcHMu
CisgICAgICAgIC8vIFRoZSBmaXJzdCBtaXBtYXAgaXMgYW4gYXJyYXkgb2YgZGVwdGggc2xpY2Vz
LCBlYWNoIGRlcHRoIHNsaWNlIGlzIGFuIGFycmF5IG9mIHJvd3MsIGFuZCBlYWNoIHJvdyBpcyBh
biBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBhIHNj
YWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRoLCBo
ZWlnaHQsIGFuZCBkZXB0aCBtdXN0IGJlIHBvd2Vycy1vZi10d28uCisgICAgICAgIC8vIEVhY2gg
bWlwbWFwIGlzIGhhbGYtd2lkdGgsIGhhbGYtaGVpZ2h0LCBhbmQgaGFsZi1kZXB0aCBvZiB0aGUg
cHJldmlvdXMgc2l6ZS4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMzsKKyAgICAgICAgbGV0
IHdpZHRoID0gZGF0YVswXVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRh
WzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGRlcHRoID0gZGF0YVswXS5sZW5ndGg7CisgICAg
ICAgIGxldCBsZXZlbENvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBsYXllckNvdW50
ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2
ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0
aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXVsw
XVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBk
ZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVs
XS5sZW5ndGg7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisg
ICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXVtrXVtqXVtpXTsKKyAgICB9CisK
KyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAg
ICAgICB0aGlzLmRhdGFbbGV2ZWxdW2tdW2pdW2ldID0gdmFsdWU7CisgICAgfQorfQorCitjbGFz
cyBUZXh0dXJlQ3ViZSBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlw
ZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiA2IDJEIHRl
eHR1cmVzLgorICAgICAgICAvLyBBbGwgdGV4dHVyZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHdpZHRo
LCBoZWlnaHQsIGRlcHRoLCBhbmQgbnVtYmVyIG9mIG1pcG1hcHMuCisKKyAgICAgICAgbGV0IGRp
bWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF1bMF0ubGVuZ3RoOwor
ICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0
aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAg
IGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwg
d2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwg
ZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF1bMF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdo
dEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdW2xldmVs
XS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkp
CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1bal1baV07Cisg
ICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAg
IHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1bal1baV0gPSB2YWx1ZTsKKyAgICB9
Cit9CisKK2xldCBUZXh0dXJlRGVwdGhDdWJlID0gVGV4dHVyZUN1YmU7CisKK2NsYXNzIFRleHR1
cmUxRFJXIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRh
KQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLgorICAg
ICAgICAvLyBFYWNoIGVsZW1lbnQgbWF5IGJlIGEgc2NhbGFyIG9yIGFuIGFycmF5IG9mIDItNCBz
Y2FsYXJzLgorICAgICAgICAvLyBUaGUgd2lkdGggbXVzdCBiZSBhIHBvd2VyLW9mLXR3by4KKwor
ICAgICAgICBsZXQgZGltZW5zaW9uID0gMTsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YS5sZW5n
dGg7CisgICAgICAgIGxldCBoZWlnaHQgPSAxOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAg
ICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gMTsKKyAg
ICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwg
bGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwo
bGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmxlbmd0aDsKKyAgICB9CisK
KyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAg
fQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7Cisg
ICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5kYXRhW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxl
dmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtpXSA9IHZhbHVl
OworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTFEQXJyYXlSVyBleHRlbmRzIFRleHR1cmUgewor
ICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRh
IiBpcyBhbiBhcnJheSBvZiAxRCBSVyB0ZXh0dXJlcy4KKyAgICAgICAgLy8gQWxsIHRleHR1cmVz
IG11c3QgaGF2ZSB0aGUgc2FtZSBzaXplLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAxOwor
ICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9
IDE7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gMTsK
KyAgICAgICAgbGV0IGxheWVyQ291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgc3VwZXIoZGlt
ZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5u
ZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgewor
ICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRB
dExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZGVw
dGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAg
ZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhp
cy5kYXRhW2xheWVyXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwg
aywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbbGF5ZXJdW2ldID0gdmFs
dWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlMkRSVyBleHRlbmRzIFRleHR1cmUgeworICAg
IGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBp
cyBhIHJlY3Rhbmd1bGFyIGFycmF5IG9mIHJvd3MsIHdoZXJlIGVhY2ggcm93IGlzIGFuIGFycmF5
IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBFYWNoIGVsZW1lbnQgbWF5IGJlIGEgc2NhbGFyIG9y
IGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgorICAgICAgICAvLyBUaGUgd2lkdGggYW5kIGhlaWdo
dCBtdXN0IGJlIHBvd2Vycy1vZi10d28uCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDI7Cisg
ICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0g
ZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENv
dW50ID0gMTsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSAxOworICAgICAgICBzdXBlcihkaW1l
bnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5l
clR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0
TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmxlbmd0aDsKKyAg
ICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsK
KyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0aGlzLmRhdGFbal1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXll
ciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2pdW2ld
ID0gdmFsdWU7CisgICAgfQorfQorCitsZXQgVGV4dHVyZURlcHRoMkRSVyA9IFRleHR1cmUyRFJX
OworCitjbGFzcyBUZXh0dXJlMkRBcnJheVJXIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3Ry
dWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFy
cmF5IG9mIDJEIFJXIHRleHR1cmVzLgorICAgICAgICAvLyBBbGwgdGV4dHVyZXMgbXVzdCBoYXZl
IHRoZSBzYW1lIHdpZHRoIGFuZCBoZWlnaHQuCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDI7
CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVp
Z2h0ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxl
dCBsZXZlbENvdW50ID0gMTsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSBkYXRhLmxlbmd0aDsK
KyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3Vu
dCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2
ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdWzBdLmxlbmd0aDsK
KyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMuZGF0YVswXS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2
ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xheWVyXVtqXVtp
XTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUp
CisgICAgeworICAgICAgICB0aGlzLmRhdGFbbGF5ZXJdW2pdW2ldID0gdmFsdWU7CisgICAgfQor
fQorCitsZXQgVGV4dHVyZURlcHRoMkRBcnJheVJXID0gVGV4dHVyZTJEQXJyYXlSVworCitjbGFz
cyBUZXh0dXJlM0RSVyBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlw
ZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiBkZXB0aCBz
bGljZXMsIGVhY2ggZGVwdGggc2xpY2UgaXMgYW4gYXJyYXkgb2Ygcm93cywgYW5kIGVhY2ggcm93
IGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBFYWNoIGVsZW1lbnQgbWF5IGJl
IGEgc2NhbGFyIG9yIGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgorICAgICAgICAvLyBUaGUgd2lk
dGgsIGhlaWdodCwgYW5kIGRlcHRoIG11c3QgYmUgcG93ZXJzLW9mLXR3by4KKworICAgICAgICBs
ZXQgZGltZW5zaW9uID0gMzsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXS5sZW5ndGg7
CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGRlcHRo
ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gMTsKKyAgICAgICAgbGV0
IGxheWVyQ291bnQgPSAxOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQs
IGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0K
KworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRh
dGFbMF1bMF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAg
eworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBkZXB0
aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmxlbmd0aDsK
KyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0aGlzLmRhdGFba11bal1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChs
YXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2td
W2pdW2ldID0gdmFsdWU7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9UZXh0dXJlT3BlcmF0aW9ucy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDEwNzUxZmE1MzU0ODVl
MGQ2ODgzZTk3ZDJiY2JkMzVmZDgwNDBlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanMKQEAgLTAsMCArMSw2MzAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworInVzZSBzdHJpY3Qi
OworCitmdW5jdGlvbiBkZXB0aENvbXBhcmVPcGVyYXRpb24oZHJlZiwgZCwgY29tcGFyZUZ1bmN0
aW9uKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS4zLjQKKyAgICBzd2l0Y2gg
KGNvbXBhcmVGdW5jdGlvbikgeworICAgICAgICBjYXNlICJuZXZlciI6CisgICAgICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgY2FzZSAibGVzcyI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiA8
IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAiZXF1YWwiOgorICAgICAgICAgICAgcmV0dXJuIGRy
ZWYgPT0gZCA/IDEgOiAwOworICAgICAgICBjYXNlICJsZXNzRXF1YWwiOgorICAgICAgICAgICAg
cmV0dXJuIGRyZWYgPD0gZCA/IDEgOiAwOworICAgICAgICBjYXNlICJncmVhdGVyIjoKKyAgICAg
ICAgICAgIHJldHVybiBkcmVmID4gZCA/IDEgOiAwOworICAgICAgICBjYXNlICJub3RFcXVhbCI6
CisgICAgICAgICAgICByZXR1cm4gZHJlZiAhPSBkID8gMSA6IDA7CisgICAgICAgIGNhc2UgImdy
ZWF0ZXJFcXVhbCI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiA+PSBkID8gMSA6IDA7CisgICAg
ICAgIGNhc2UgImFsd2F5cyI6CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBkZXB0aCBjb21wYXJpc29u
IGZ1bmN0aW9uIik7CisgICAgfQorfQorCitmdW5jdGlvbiBjb252ZXJzaW9uVG9SR0JBKHZhbHVl
KQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS4zLjUKKyAgICBpZiAodmFsdWUg
aW5zdGFuY2VvZiBBcnJheSkgeworICAgICAgICBsZXQgcmVzdWx0ID0gW107CisgICAgICAgIGZv
ciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyArK2kpCisgICAgICAgICAgICByZXN1bHQu
cHVzaCh2YWx1ZVtpXSk7CisgICAgICAgIHdoaWxlIChyZXN1bHQubGVuZ3RoICE9IDQpCisgICAg
ICAgICAgICByZXN1bHQucHVzaChyZXN1bHQubGVuZ3RoID09IDMgPyAxIDogMCk7CisgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgfSBlbHNlCisgICAgICAgIHJldHVybiBbdmFsdWUsIDAsIDAs
IDFdOworfQorCitmdW5jdGlvbiBwcm9qZWN0aW9uT3BlcmF0aW9uKHMsIHQsIHIsIGRyZWYsIHEp
Cit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuMQorICAgIHJldHVybiBbcyAv
IHEsIHQgLyBxLCByIC8gcSwgZHJlZiAhPSB1bmRlZmluZWQgPyBkcmVmIC8gcSA6IHVuZGVmaW5l
ZF07Cit9CisKK2Z1bmN0aW9uIGN1YmVNYXBGYWNlU2VsZWN0aW9uKHMsIHQsIHIsIHBhcnRpYWxS
eFdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJ5V2l0aFJl
c3BlY3RUb1gsIHBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRv
WCwgcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1kpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0
aW9uIDE1LjYuNAorICAgIGxldCByeCA9IHM7CisgICAgbGV0IHJ5ID0gdDsKKyAgICBsZXQgcnog
PSByOworICAgIGxldCB3aW5uZXIgPSAwOworICAgIGlmIChNYXRoLmFicyhyeikgPj0gTWF0aC5h
YnMocnkpICYmIE1hdGguYWJzKHJ6KSA+PSBNYXRoLmFicyhyeCkpCisgICAgICAgIHdpbm5lciA9
IDI7CisgICAgZWxzZSBpZiAoTWF0aC5hYnMocnkpID49IE1hdGguYWJzKHJ4KSAmJiBNYXRoLmFi
cyhyeSkgPj0gTWF0aC5hYnMocnopKQorICAgICAgICB3aW5uZXIgPSAxOworCisgICAgbGV0IGxh
eWVyTnVtYmVyOworICAgIGxldCBzYzsKKyAgICBsZXQgdGM7CisgICAgbGV0IHJjOworICAgIGxl
dCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWDsKKyAgICBsZXQgcGFydGlhbFNjV2l0aFJlc3BlY3RU
b1k7CisgICAgbGV0IHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YOworICAgIGxldCBwYXJ0aWFsVGNX
aXRoUmVzcGVjdFRvWTsKKyAgICBsZXQgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1g7CisgICAgbGV0
IHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZOworICAgIGlmICh3aW5uZXIgPT0gMCAmJiByeCA+PSAw
KSB7CisgICAgICAgIGxheWVyTnVtYmVyID0gMDsKKyAgICAgICAgc2MgPSAtcno7CisgICAgICAg
IHRjID0gLXJ5OworICAgICAgICByYyA9IHJ4OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVj
dFRvWCA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJl
c3BlY3RUb1kgPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dp
dGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFs
VGNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFy
dGlhbFJjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAg
cGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAgICB9
IGVsc2UgaWYgKHdpbm5lciA9PSAwKSB7CisgICAgICAgIGxheWVyTnVtYmVyID0gMTsKKyAgICAg
ICAgc2MgPSByejsKKyAgICAgICAgdGMgPSAtcnk7CisgICAgICAgIHJjID0gcng7CisgICAgICAg
IHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAg
ICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7Cisg
ICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9Y
OworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVj
dFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ4V2l0aFJl
c3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeFdp
dGhSZXNwZWN0VG9ZOworICAgIH0gZWxzZSBpZiAod2lubmVyID09IDEgJiYgcnkgPj0gMCkgewor
ICAgICAgICBsYXllck51bWJlciA9IDI7CisgICAgICAgIHNjID0gcng7CisgICAgICAgIHRjID0g
LXJ6OworICAgICAgICByYyA9IHJ5OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9
IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRv
WSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVj
dFRvWCA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVz
cGVjdFRvWSA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRo
UmVzcGVjdFRvWCA9IHBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsUmNX
aXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxzZSBpZiAo
d2lubmVyID09IDEpIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSAzOworICAgICAgICBzYyA9IHJ4
OworICAgICAgICB0YyA9IC1yejsKKyAgICAgICAgcmMgPSByeTsKKyAgICAgICAgcGFydGlhbFNj
V2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlh
bFNjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFy
dGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAg
IHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAg
ICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsK
KyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RU
b1k7CisgICAgfSBlbHNlIGlmICh3aW5uZXIgPT0gMiAmJiByeiA+PSAwKSB7CisgICAgICAgIGxh
eWVyTnVtYmVyID0gNDsKKyAgICAgICAgc2MgPSByeDsKKyAgICAgICAgdGMgPSAtcnk7CisgICAg
ICAgIHJjID0gcno7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ4
V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlh
bFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gLXBh
cnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9
IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RU
b1ggPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3Bl
Y3RUb1kgPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICB9IGVsc2UgeworICAgICAgICBs
YXllck51bWJlciA9IDU7CisgICAgICAgIHNjID0gLXJ4OworICAgICAgICB0YyA9IC1yeTsKKyAg
ICAgICAgcmMgPSByejsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlh
bFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0gLXBh
cnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCA9
IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RU
b1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNw
ZWN0VG9YID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsUmNXaXRo
UmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICB9CisgICAgcmV0dXJu
IFtsYXllck51bWJlciwgc2MsIHRjLCByYywgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1gsIHBhcnRp
YWxTY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRjV2l0
aFJlc3BlY3RUb1ksIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUmNXaXRoUmVzcGVj
dFRvWV0KK30KKworZnVuY3Rpb24gY3ViZU1hcENvb3JkaW5hdGVUcmFuc2Zvcm1hdGlvbihzYywg
dGMsIHJjKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjUKKyAgICBsZXQg
c0ZhY2UgPSAoMSAvIDIpICogc2MgLyBNYXRoLmFicyhyYykgKyAoMSAvIDIpOworICAgIGxldCB0
RmFjZSA9ICgxIC8gMikgKiB0YyAvIE1hdGguYWJzKHJjKSArICgxIC8gMik7CisgICAgcmV0dXJu
IFtzRmFjZSwgdEZhY2VdOworfQorCitmdW5jdGlvbiBjdWJlTWFwRGVyaXZhdGl2ZVRyYW5zZm9y
bWF0aW9uKHNjLCB0YywgcmMsIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU2NXaXRo
UmVzcGVjdFRvWSwgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxUY1dpdGhSZXNwZWN0
VG9ZLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kpCit7
CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuNgorICAgIGxldCBwYXJ0aWFsU0Zh
Y2VXaXRoUmVzcGVjdFRvWCA9ICgxIC8gMikgKiAoKE1hdGguYWJzKHJjKSAqIHBhcnRpYWxTY1dp
dGhSZXNwZWN0VG9YIC0gc2MgKiBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCkgLyBNYXRoLnBvdyhy
YywgMikpOworICAgIGxldCBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWSA9ICgxIC8gMikgKiAo
KE1hdGguYWJzKHJjKSAqIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZIC0gc2MgKiBwYXJ0aWFsUmNX
aXRoUmVzcGVjdFRvWSkgLyBNYXRoLnBvdyhyYywgMikpOworICAgIGxldCBwYXJ0aWFsVEZhY2VX
aXRoUmVzcGVjdFRvWCA9ICgxIC8gMikgKiAoKE1hdGguYWJzKHJjKSAqIHBhcnRpYWxUY1dpdGhS
ZXNwZWN0VG9YIC0gdGMgKiBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCkgLyBNYXRoLnBvdyhyYywg
MikpOworICAgIGxldCBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRvWSA9ICgxIC8gMikgKiAoKE1h
dGguYWJzKHJjKSAqIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZIC0gdGMgKiBwYXJ0aWFsUmNXaXRo
UmVzcGVjdFRvWSkgLyBNYXRoLnBvdyhyYywgMikpOworICAgIHJldHVybiBbcGFydGlhbFNGYWNl
V2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTRmFjZVdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVEZhY2VX
aXRoUmVzcGVjdFRvWCwgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1ldOworfQorCitmdW5jdGlv
biBzY2FsZUZhY3Rvck9wZXJhdGlvbihkZXZpY2VNYXhBbmlzb3Ryb3B5LCB3aWR0aCwgaGVpZ2h0
LCBkZXB0aCwgc2FtcGxlck1heEFuaXNvdHJvcHksIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1gsIHBh
cnRpYWxUV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTV2l0
aFJlc3BlY3RUb1ksIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSV2l0aFJlc3BlY3RU
b1kpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuNworICAgIGxldCBtdXgg
PSBNYXRoLmFicyhwYXJ0aWFsU1dpdGhSZXNwZWN0VG9YKSAqIHdpZHRoOworICAgIGxldCBtdngg
PSBNYXRoLmFicyhwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YKSAqIGhlaWdodDsKKyAgICBsZXQgbXd4
ID0gTWF0aC5hYnMocGFydGlhbFJXaXRoUmVzcGVjdFRvWCkgKiBkZXB0aDsKKyAgICBsZXQgbXV5
ID0gTWF0aC5hYnMocGFydGlhbFNXaXRoUmVzcGVjdFRvWSkgKiB3aWR0aDsKKyAgICBsZXQgbXZ5
ID0gTWF0aC5hYnMocGFydGlhbFRXaXRoUmVzcGVjdFRvWSkgKiBoZWlnaHQ7CisgICAgbGV0IG13
eSA9IE1hdGguYWJzKHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kpICogZGVwdGg7CisKKyAgICAvLyBJ
IG1hZGUgdGhpcyB1cC4gVGhlIGZvcm11bGEgaXNuJ3QgbGlzdGVkIGluIHRoZSBzcGVjLgorICAg
IGxldCBmeCA9IE1hdGguc3FydChtdXggKiBtdXggKyBtdnggKiBtdnggKyBtd3ggKiBtd3gpOwor
ICAgIGxldCBmeSA9IE1hdGguc3FydChtdXkgKiBtdXkgKyBtdnkgKiBtdnkgKyBtd3kgKiBtd3kp
OworCisgICAgbGV0IHJob1ggPSBmeDsKKyAgICBsZXQgcmhvWSA9IGZ5OworICAgIGxldCByaG9N
YXggPSBNYXRoLm1heChyaG9YLCByaG9ZKTsKKyAgICBsZXQgcmhvTWluID0gTWF0aC5taW4ocmhv
WCwgcmhvWSk7CisKKyAgICBsZXQgbWF4QW5pc28gPSBNYXRoLm1pbihzYW1wbGVyTWF4QW5pc290
cm9weSwgZGV2aWNlTWF4QW5pc290cm9weSk7CisKKyAgICBsZXQgZXRhOworICAgIGlmIChyaG9N
YXggPT0gMCAmJiByaG9NaW4gPT0gMCkKKyAgICAgICAgZXRhID0gMTsKKyAgICBlbHNlIGlmIChy
aG9NaW4gPT0gMCkKKyAgICAgICAgZXRhID0gbWF4QW5pc287CisgICAgZWxzZQorICAgICAgICBl
dGEgPSBNYXRoLm1pbihyaG9NYXggLyByaG9NaW4sIG1heEFuaXNvKTsKKworICAgIGxldCBOID0g
TWF0aC5jZWlsKGV0YSk7CisgICAgcmV0dXJuIFtyaG9NYXgsIHJob01pbiwgZXRhLCBOXTsKK30K
KworZnVuY3Rpb24gbGV2ZWxPZkRldGFpbE9wZXJhdGlvbihkZXZpY2VNYXhTYW1wbGVyTG9kQmlh
cywgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwgbG9kTWluRnJvbUZ1bmN0aW9uT3BlcmFuZCwgYmlh
c0Zyb21GdW5jdGlvbk9wZXJhbmQsIHNhbXBsZXJCaWFzLCBzYW1wbGVyTG9kTWluLCBzYW1wbGVy
TG9kTWF4LCByaG9NYXgsIGV0YSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUu
Ni43CisgICAgaWYgKGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kID09IHVuZGVmaW5lZCkKKyAgICAg
ICAgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQgPSAwOworCisgICAgbGV0IGxhbWJkYUJhc2UgPSBs
b2RGcm9tRnVuY3Rpb25PcGVyYW5kICE9IHVuZGVmaW5lZCA/IGxvZEZyb21GdW5jdGlvbk9wZXJh
bmQgOiBNYXRoLmxvZzIocmhvTWF4IC8gZXRhKTsKKyAgICBsZXQgbGFtYmRhUHJpbWUgPSBsYW1i
ZGFCYXNlICsgTWF0aC5taW4oTWF0aC5tYXgoc2FtcGxlckJpYXMgKyBiaWFzRnJvbUZ1bmN0aW9u
T3BlcmFuZCwgLWRldmljZU1heFNhbXBsZXJMb2RCaWFzKSwgZGV2aWNlTWF4U2FtcGxlckxvZEJp
YXMpOworICAgIGxldCBsb2RNaW4gPSBNYXRoLm1heChzYW1wbGVyTG9kTWluLCBsb2RNaW5Gcm9t
RnVuY3Rpb25PcGVyYW5kKTsKKyAgICBsZXQgbG9kTWF4ID0gc2FtcGxlckxvZE1heDsKKyAgICBs
ZXQgbGFtYmRhOworICAgIGlmIChsYW1iZGFQcmltZSA+IGxvZE1heCkKKyAgICAgICAgbGFtYmRh
ID0gbG9kTWF4OworICAgIGVsc2UgaWYgKGxvZE1pbiA8PSBsYW1iZGFQcmltZSAmJiBsYW1iZGFQ
cmltZSA8PSBsb2RNYXgpCisgICAgICAgIGxhbWJkYSA9IGxhbWJkYVByaW1lOworICAgIGVsc2Ug
aWYgKGxhbWJkYVByaW1lIDwgbG9kTWluKQorICAgICAgICBsYW1iZGEgPSBsb2RNaW47CisgICAg
ZWxzZQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImxvZE1pbiA+PSBsb2RNYXgiKTsKKyAgICBy
ZXR1cm4gbGFtYmRhOworfQorCitmdW5jdGlvbiBpbWFnZUxldmVsU2VsZWN0aW9uKGJhc2VNaXBM
ZXZlbCwgbGV2ZWxDb3VudCwgbWlwbWFwTW9kZSwgbGFtYmRhKQoreworICAgIC8vIFZ1bGthbiAx
LjEuODMgc2VjdGlvbiAxNS42LjcKKyAgICBmdW5jdGlvbiBuZWFyZXN0KGRQcmltZSkKKyAgICB7
CisgICAgICAgIHJldHVybiBNYXRoLmNlaWwoZFByaW1lICsgMC41KSAtIDE7CisgICAgfQorCisg
ICAgbGV0IHEgPSBsZXZlbENvdW50IC0gMTsKKyAgICBsZXQgZFByaW1lID0gYmFzZU1pcExldmVs
ICsgTWF0aC5taW4oTWF0aC5tYXgobGFtYmRhLCAwKSwgcSk7CisgICAgbGV0IGRsOworICAgIGlm
IChtaXBtYXBNb2RlID09ICJuZWFyZXN0IikKKyAgICAgICAgZGwgPSBuZWFyZXN0KGRQcmltZSk7
CisgICAgZWxzZQorICAgICAgICBkbCA9IGRQcmltZTsKKyAgICBpZiAobWlwbWFwTW9kZSA9PSAi
bmVhcmVzdCIpCisgICAgICAgIHJldHVybiBkbDsKKyAgICBlbHNlIHsKKyAgICAgICAgbGV0IGRI
aSA9IE1hdGguZmxvb3IoZGwpOworICAgICAgICBsZXQgZExvdyA9IE1hdGgubWluKGRIaSArIDEs
IHEpOworICAgICAgICBsZXQgZGVsdGEgPSBkbCAtIGRIaTsKKyAgICAgICAgcmV0dXJuIFtkSGks
IGRMb3csIGRlbHRhXTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHN0cnFhVG9VVldBVHJhbnNmb3Jt
YXRpb24ocywgdCwgciwgd2lkdGgsIGhlaWdodCwgZGVwdGgpCit7CisgICAgLy8gVnVsa2FuIDEu
MS44MyBzZWN0aW9uIDE1LjYuOAorICAgIGxldCB1ID0gcyAqIHdpZHRoOworICAgIGxldCB2ID0g
dCAqIGhlaWdodDsKKyAgICBsZXQgdyA9IHIgKiBkZXB0aDsKKyAgICByZXR1cm4gW3UsIHYsIHdd
OworfQorCitmdW5jdGlvbiB1dndhVG9JSktMTlRyYW5zZm9ybWF0aW9uQW5kQXJyYXlMYXllclNl
bGVjdGlvbihsYXllckNvdW50LCBiYXNlQXJyYXlMYXllciwgZmlsdGVyLCB1LCB2LCB3LCBhLCBk
ZWx0YUksIGRlbHRhSiwgZGVsdGFLKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAx
NS43LjEKKworICAgIGlmIChkZWx0YUkgPT0gdW5kZWZpbmVkKQorICAgICAgICBkZWx0YUkgPSAw
OworICAgIGlmIChkZWx0YUogPT0gdW5kZWZpbmVkKQorICAgICAgICBkZWx0YUogPSAwOworICAg
IGlmIChkZWx0YUsgPT0gdW5kZWZpbmVkKQorICAgICAgICBkZWx0YUsgPSAwOworCisgICAgZnVu
Y3Rpb24gcm5lKGEpCisgICAgeworICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihhICsgMC41KTsK
KyAgICB9CisgICAgbGV0IGwgPSBNYXRoLm1pbihNYXRoLm1heChybmUoYSksIDApLCBsYXllckNv
dW50IC0gMSkgKyBiYXNlQXJyYXlMYXllcjsKKyAgICBsZXQgaTsKKyAgICBsZXQgajsKKyAgICBs
ZXQgazsKKyAgICBpZiAoZmlsdGVyID09ICJuZWFyZXN0IikgeworICAgICAgICBpID0gTWF0aC5m
bG9vcih1KTsKKyAgICAgICAgaiA9IE1hdGguZmxvb3Iodik7CisgICAgICAgIGsgPSBNYXRoLmZs
b29yKHcpOworICAgICAgICAKKyAgICAgICAgaSArPSBkZWx0YUk7CisgICAgICAgIGogKz0gZGVs
dGFKOworICAgICAgICBrICs9IGRlbHRhSzsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBbaSwg
aiwgaywgbF07CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGZpbHRlciAhPSAibGluZWFyIikK
KyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBmaWx0ZXIiKTsKKyAgICAgICAg
bGV0IGkwID0gTWF0aC5mbG9vcih1IC0gMC41KTsKKyAgICAgICAgbGV0IGkxID0gaTAgKyAxOwor
ICAgICAgICBsZXQgajAgPSBNYXRoLmZsb29yKHYgLSAwLjUpOworICAgICAgICBsZXQgajEgPSBq
MCArIDE7CisgICAgICAgIGxldCBrMCA9IE1hdGguZmxvb3IodyAtIDAuNSk7CisgICAgICAgIGxl
dCBrMSA9IGswICsgMTsKKyAgICAgICAgbGV0IGFscGhhID0gKHUgLSAwLjUpIC0gaTA7CisgICAg
ICAgIGxldCBiZXRhID0gKHYgLSAwLjUpIC0gajA7CisgICAgICAgIGxldCBnYW1tYSA9ICh3IC0g
MC41KSAtIGswOworICAgICAgICAKKyAgICAgICAgaTAgKz0gZGVsdGFJOworICAgICAgICBpMSAr
PSBkZWx0YUk7CisgICAgICAgIGowICs9IGRlbHRhSjsKKyAgICAgICAgajEgKz0gZGVsdGFKOwor
ICAgICAgICBrMCArPSBkZWx0YUs7CisgICAgICAgIGsxICs9IGRlbHRhSzsKKyAgICAgICAgCisg
ICAgICAgIHJldHVybiBbaTAsIGkxLCBqMCwgajEsIGswLCBrMSwgbCwgYWxwaGEsIGJldGEsIGdh
bW1hXTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGludGVnZXJUZXhlbENvb3JkaW5hdGVPcGVyYXRp
b25zKGJhc2VNaXBMZXZlbCwgbGV2ZWxDb3VudCwgbGV2ZWxCYXNlLCBsb2RGcm9tRnVuY3Rpb25P
cGVyYW5kKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS44CisgICAgbGV0IGQg
PSBsZXZlbEJhc2UgKyBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kOworICAgIGlmIChkIDwgYmFzZU1p
cExldmVsIHx8IGQgPj0gYmFzZU1pcExldmVsICsgbGV2ZWxDb3VudCkKKyAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJTZWxlY3RlZCBsZXZlbCBkb2VzIG5vdCBsaWUgaW5zaWRlIHRoZSBpbWFnZSIp
OworICAgIHJldHVybiBkOworfQorCitmdW5jdGlvbiB3cmFwcGluZ09wZXJhdGlvbih3aWR0aCwg
aGVpZ2h0LCBkZXB0aCwgYWRkcmVzc01vZGVVLCBhZGRyZXNzTW9kZVYsIGFkZHJlc3NNb2RlVywg
aSwgaiwgaykKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOS4xCisgICAgLy8g
RklYTUU6IEltcGxlbWVudCBjdWJlIG1hcCBoYW5kbGluZworICAgIGZ1bmN0aW9uIHRyYW5zZm9y
bShhZGRyZXNzTW9kZSwgc2l6ZSwgaSkKKyAgICB7CisgICAgICAgIGZ1bmN0aW9uIG1pcnJvcihu
KSB7CisgICAgICAgICAgICBpZiAobiA+PSAwKQorICAgICAgICAgICAgICAgIHJldHVybiBuOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiAtKDEgKyBuKTsKKyAgICAg
ICAgfQorICAgICAgICBzd2l0Y2ggKGFkZHJlc3NNb2RlKSB7CisgICAgICAgICAgICBjYXNlICJj
bGFtcFRvRWRnZSI6CisgICAgICAgICAgICAgICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGks
IDApLCBzaXplIC0gMSk7CisgICAgICAgICAgICBjYXNlICJyZXBlYXQiOgorICAgICAgICAgICAg
ICAgIHJldHVybiBpICUgc2l6ZTsKKyAgICAgICAgICAgIGNhc2UgIm1pcnJvclJlcGVhdCI6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIChzaXplIC0gMSkgLSBtaXJyb3IoKGkgJSAoMiAqIHNpemUp
KSAtIHNpemUpOworICAgICAgICAgICAgY2FzZSAiY2xhbXBUb0JvcmRlckNvbG9yIjoKKyAgICAg
ICAgICAgICAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoaSwgLTEpLCBzaXplKTsKKyAgICAg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3du
IGFkZHJlc3MgbW9kZSIpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBbdHJhbnNmb3Jt
KGFkZHJlc3NNb2RlVSwgd2lkdGgsIGkpLCB0cmFuc2Zvcm0oYWRkcmVzc01vZGVWLCBoZWlnaHQs
IGopLCB0cmFuc2Zvcm0oYWRkcmVzc01vZGVXLCBkZXB0aCwgayldOworfQorCitmdW5jdGlvbiB0
ZXhlbEdhdGhlcmluZygpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjkuMgor
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcworICAgIC8qbGV0IHRhdVIgPSA7CisgICAgbGV0
IHRhdUcgPSA7CisgICAgbGV0IHRhdUIgPSA7CisgICAgbGV0IHRhdUEgPSA7Ki8KK30KKworZnVu
Y3Rpb24gdGV4ZWxGaWx0ZXJpbmcoCisgICAgZGV2aWNlTWF4QW5pc290cm9weSwKKyAgICBkZXZp
Y2VNYXhTYW1wbGVyTG9kQmlhcywKKyAgICBiYXNlTWlwTGV2ZWwsCisgICAgYmFzZUFycmF5TGF5
ZXIsCisgICAgdGV4dHVyZSwKKyAgICBzYW1wbGVyLAorICAgIHNhbXBsZXJCaWFzLAorICAgIHMs
IHQsIHIsIGEsCisgICAgZGVsdGFJLCBkZWx0YUosIGRlbHRhSywKKyAgICBsb2RGcm9tRnVuY3Rp
b25PcGVyYW5kLAorICAgIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgYmlhc0Zyb21G
dW5jdGlvbk9wZXJhbmQsCisgICAgZGR4LCBkZHkpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBz
ZWN0aW9uIDE1LjkuMworCisgICAgLy8gVGhlIHNwZWMgdXNlcyBkaWZmZXJlbnQgbmFtZXMgdGhh
biBXZWJHUFUgZG9lcy4KKyAgICBsZXQgYWRkcmVzc01vZGVVID0gc2FtcGxlci5yQWRkcmVzc01v
ZGU7CisgICAgbGV0IGFkZHJlc3NNb2RlViA9IHNhbXBsZXIuc0FkZHJlc3NNb2RlOworICAgIGxl
dCBhZGRyZXNzTW9kZVcgPSBzYW1wbGVyLnRBZGRyZXNzTW9kZTsKKworICAgIC8vIEZJWE1FOiBN
YWtlIHRoaXMgd29yayB3aXRoIGN1YmVtYXBzCisgICAgbGV0IHBhcnRpYWxTV2l0aFJlc3BlY3RU
b1ggPSAwOworICAgIGxldCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YID0gMDsKKyAgICBsZXQgcGFy
dGlhbFJXaXRoUmVzcGVjdFRvWCA9IDA7CisgICAgaWYgKGRkeCAhPSB1bmRlZmluZWQpIHsKKyAg
ICAgICAgcGFydGlhbFNXaXRoUmVzcGVjdFRvWCA9IGRkeFswXTsKKyAgICAgICAgcGFydGlhbFRX
aXRoUmVzcGVjdFRvWCA9IGRkeFsxXTsKKyAgICAgICAgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCA9
IGRkeFsyXTsKKyAgICB9CisgICAgbGV0IHBhcnRpYWxTV2l0aFJlc3BlY3RUb1kgPSAwOworICAg
IGxldCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZID0gMDsKKyAgICBsZXQgcGFydGlhbFJXaXRoUmVz
cGVjdFRvWSA9IDA7CisgICAgaWYgKGRkeSAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgcGFydGlh
bFNXaXRoUmVzcGVjdFRvWSA9IGRkeVswXTsKKyAgICAgICAgcGFydGlhbFRXaXRoUmVzcGVjdFRv
WSA9IGRkeVsxXTsKKyAgICAgICAgcGFydGlhbFJXaXRoUmVzcGVjdFRvWSA9IGRkeVsyXTsKKyAg
ICB9CisKKyAgICBpZiAodGV4dHVyZSBpbnN0YW5jZW9mIFRleHR1cmVDdWJlKSB7CisgICAgICAg
IGxldCBbbGF5ZXJOdW1iZXIsIHNjLCB0YywgcmMsIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YLCBw
YXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxU
Y1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJjV2l0aFJl
c3BlY3RUb1ldID0gY3ViZU1hcEZhY2VTZWxlY3Rpb24ocywgdCwgciwgcGFydGlhbFNXaXRoUmVz
cGVjdFRvWCwgcGFydGlhbFNXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRXaXRoUmVzcGVjdFRvWCwg
cGFydGlhbFRXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJX
aXRoUmVzcGVjdFRvWSkKKyAgICAgICAgbGV0IFtzRmFjZSwgdEZhY2VdID0gY3ViZU1hcENvb3Jk
aW5hdGVUcmFuc2Zvcm1hdGlvbihzYywgdGMsIHJjKQorICAgICAgICBsZXQgW3BhcnRpYWxTRmFj
ZVdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRGYWNl
V2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0VG9ZXSA9IGN1YmVNYXBEZXJp
dmF0aXZlVHJhbnNmb3JtYXRpb24oc2MsIHRjLCByYywgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1gs
IHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCwgcGFydGlh
bFRjV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUmNXaXRo
UmVzcGVjdFRvWSkKKyAgICAgICAgcyA9IHNGYWNlOworICAgICAgICB0ID0gdEZhY2U7CisgICAg
ICAgIHIgPSAwOworICAgICAgICBhID0gbGF5ZXJOdW1iZXI7CisgICAgICAgIHBhcnRpYWxTV2l0
aFJlc3BlY3RUb1ggPSBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlh
bFNXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxTRmFjZVdpdGhSZXNwZWN0VG9ZOworICAgICAgICBw
YXJ0aWFsVFdpdGhSZXNwZWN0VG9YID0gcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1g7CisgICAg
ICAgIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRvWTsK
KyAgICAgICAgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCA9IDA7CisgICAgICAgIHBhcnRpYWxSV2l0
aFJlc3BlY3RUb1kgPSAwOworICAgIH0KKworICAgIGxldCBbcmhvTWF4LCByaG9NaW4sIGV0YSwg
Tl0gPSBzY2FsZUZhY3Rvck9wZXJhdGlvbihkZXZpY2VNYXhBbmlzb3Ryb3B5LCB0ZXh0dXJlLndp
ZHRoLCB0ZXh0dXJlLmhlaWdodCwgdGV4dHVyZS5kZXB0aCwgc2FtcGxlci5tYXhBbmlzb3Ryb3B5
LCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFs
UldpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVFdpdGhSZXNw
ZWN0VG9ZLCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9ZKTsKKyAgICBsZXQgbGFtYmRhID0gbGV2ZWxP
ZkRldGFpbE9wZXJhdGlvbihkZXZpY2VNYXhTYW1wbGVyTG9kQmlhcywgbG9kRnJvbUZ1bmN0aW9u
T3BlcmFuZCwgbG9kTWluRnJvbUZ1bmN0aW9uT3BlcmFuZCwgYmlhc0Zyb21GdW5jdGlvbk9wZXJh
bmQsIHNhbXBsZXJCaWFzLCBzYW1wbGVyLmxvZE1pbkNsYW1wLCBzYW1wbGVyLmxvZE1heENsYW1w
LCByaG9NYXgsIGV0YSk7CisKKyAgICBsZXQgZmlsdGVyOworICAgIGlmIChsYW1iZGEgPD0gMCkK
KyAgICAgICAgZmlsdGVyID0gc2FtcGxlci5tYWdGaWx0ZXI7CisgICAgZWxzZQorICAgICAgICBm
aWx0ZXIgPSBzYW1wbGVyLm1pbkZpbHRlcjsKKworICAgIGZ1bmN0aW9uIHJlZHVjZSguLi52YWx1
ZXMpCisgICAgeworICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCAlIDIgIT0gMCkKKyAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiRG9uJ3QgaGF2ZSBhIHdlaWdodCBjb3JyZXNwb25kaW5nIHRv
IGVhY2ggdmFsdWUiKTsKKyAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggPCAyKQorICAgICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJEb24ndCBoYXZlIGVub3VnaCB0aGluZ3MgdG8gY2FsY3VsYXRl
IGFuIGF2ZXJhZ2UiKTsKKyAgICAgICAgbGV0IHN1bTsKKyAgICAgICAgaWYgKHZhbHVlc1sxXSBp
bnN0YW5jZW9mIEFycmF5KSB7CisgICAgICAgICAgICBzdW0gPSBbXTsKKyAgICAgICAgICAgIGZv
ciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzWzFdLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgICAg
IHN1bS5wdXNoKDApOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHN1bSA9IDA7CisgICAg
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aCAvIDI7ICsraSkgeworICAgICAg
ICAgICAgbGV0IHdlaWdodCA9IHZhbHVlc1syICogaV07CisgICAgICAgICAgICBsZXQgY29sb3Ig
PSB2YWx1ZXNbMiAqIGkgKyAxXTsKKyAgICAgICAgICAgIGlmIChjb2xvciBpbnN0YW5jZW9mIEFy
cmF5KSB7CisgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2xvci5sZW5ndGg7
ICsraSkKKyAgICAgICAgICAgICAgICAgICAgc3VtW2ldICs9IHdlaWdodCAqIGNvbG9yW2ldOwor
ICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgc3VtICs9IHdlaWdodCAqIGNvbG9y
OworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdW07CisgICAgfQorCisgICAgZnVuY3Rpb24g
Y29tcHV0ZVRhdShsZXZlbCkKKyAgICB7CisgICAgICAgIGZ1bmN0aW9uIGFjY2Vzc0NvbG9yKHdp
ZHRoLCBoZWlnaHQsIGRlcHRoLCBsLCBpLCBqLCBrKQorICAgICAgICB7CisgICAgICAgICAgICBm
dW5jdGlvbiBzaG91bGRCZUJvcmRlcih2YWx1ZSwgbWF4KQorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIGlmICh2YWx1ZSA8IC0xIHx8IHZhbHVlID4gbWF4KQorICAgICAgICAgICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIk91dC1vZi1ib3VuZHMgdGV4dHVyZSByZWFkIik7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09IC0xIHx8IHZhbHVlID09IG1heDsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgbGV0IFt3cmFwcGVkSSwgd3JhcHBlZEosIHdyYXBwZWRLXSA9
IHdyYXBwaW5nT3BlcmF0aW9uKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBhZGRyZXNzTW9kZVUsIGFk
ZHJlc3NNb2RlViwgYWRkcmVzc01vZGVXLCBpLCBqLCBrKQorICAgICAgICAgICAgaWYgKHNob3Vs
ZEJlQm9yZGVyKHdyYXBwZWRJLCB3aWR0aCkgfHwgc2hvdWxkQmVCb3JkZXIod3JhcHBlZEosIGhl
aWdodCkgfHwgc2hvdWxkQmVCb3JkZXIod3JhcHBlZEssIGRlcHRoKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gc2FtcGxlci5jYWxjdWxhdGVCb3JkZXJDb2xvcih0ZXh0dXJlLmlubmVyVHlwZSk7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIHRleHR1cmUuZWxlbWVu
dChsLCBsZXZlbCwgd3JhcHBlZEssIHdyYXBwZWRKLCB3cmFwcGVkSSk7CisgICAgICAgIH0KKwor
ICAgICAgICBsZXQgW3UsIHYsIHddID0gc3RycWFUb1VWV0FUcmFuc2Zvcm1hdGlvbihzLCB0LCBy
LCB0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZl
bCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSk7CisgICAgICAgIGlmIChmaWx0ZXIgPT0g
Im5lYXJlc3QiKSB7CisgICAgICAgICAgICBsZXQgW2ksIGosIGssIGxdID0gdXZ3YVRvSUpLTE5U
cmFuc2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJTZWxlY3Rpb24odGV4dHVyZS5sYXllckNvdW50LCBi
YXNlQXJyYXlMYXllciwgZmlsdGVyLCB1LCB2LCB3LCBhLCBkZWx0YUksIGRlbHRhSiwgZGVsdGFL
KTsKKyAgICAgICAgICAgIHJldHVybiBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChs
ZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVs
KGxldmVsKSwgbCwgaSwgaiwgayk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAo
ZmlsdGVyICE9ICJsaW5lYXIiKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5r
bm93biBmaWx0ZXIiKTsKKyAgICAgICAgICAgIGxldCBbaTAsIGkxLCBqMCwgajEsIGswLCBrMSwg
bCwgYWxwaGEsIGJldGEsIGdhbW1hXSA9IHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25BbmRBcnJh
eUxheWVyU2VsZWN0aW9uKHRleHR1cmUubGF5ZXJDb3VudCwgYmFzZUFycmF5TGF5ZXIsIGZpbHRl
ciwgdSwgdiwgdywgYSwgZGVsdGFJLCBkZWx0YUosIGRlbHRhSyk7CisgICAgICAgICAgICBsZXQg
Y29sb3IwMDAgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1
cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwg
aTAsIGowLCBrMCk7CisgICAgICAgICAgICBsZXQgY29sb3IxMDAgPSBhY2Nlc3NDb2xvcih0ZXh0
dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRl
eHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTEsIGowLCBrMCk7CisgICAgICAgICAgICBs
ZXQgY29sb3IwMTAgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRl
eHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwg
bCwgaTAsIGoxLCBrMCk7CisgICAgICAgICAgICBsZXQgY29sb3IxMTAgPSBhY2Nlc3NDb2xvcih0
ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCks
IHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTEsIGoxLCBrMCk7CisgICAgICAgICAg
ICBsZXQgY29sb3IwMDEgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCks
IHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVs
KSwgbCwgaTAsIGowLCBrMSk7CisgICAgICAgICAgICBsZXQgY29sb3IxMDEgPSBhY2Nlc3NDb2xv
cih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZl
bCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTEsIGowLCBrMSk7CisgICAgICAg
ICAgICBsZXQgY29sb3IwMTEgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZl
bCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxl
dmVsKSwgbCwgaTAsIGoxLCBrMSk7CisgICAgICAgICAgICBsZXQgY29sb3IxMTEgPSBhY2Nlc3ND
b2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChs
ZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTEsIGoxLCBrMSk7CisgICAg
ICAgICAgICBzd2l0Y2ggKHRleHR1cmUuZGltZW5zaW9uKSB7CisgICAgICAgICAgICAgICAgY2Fz
ZSAxOgorICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IwID0gY29sb3IwMTE7CisgICAgICAg
ICAgICAgICAgICAgIGxldCBjb2xvcjEgPSBjb2xvcjExMTsKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHJlZHVjZSgxIC0gYWxwaGEsIGNvbG9yMCwgYWxwaGEsIGNvbG9yMSk7CisgICAgICAg
ICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IwMCA9IGNvbG9y
MDAxOworICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IxMCA9IGNvbG9yMTAxOworICAgICAg
ICAgICAgICAgICAgICBsZXQgY29sb3IwMSA9IGNvbG9yMDExOworICAgICAgICAgICAgICAgICAg
ICBsZXQgY29sb3IxMSA9IGNvbG9yMTExOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVk
dWNlKCgxIC0gYWxwaGEpICogKDEgLSBiZXRhKSwgY29sb3IwMCwgYWxwaGEgKiAoMSAtIGJldGEp
LCBjb2xvcjEwLCAoMSAtIGFscGhhKSAqIGJldGEsIGNvbG9yMDEsIGFscGhhICogYmV0YSwgY29s
b3IxMSk7CisgICAgICAgICAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gcmVkdWNlKAorICAgICAgICAgICAgICAgICAgICAgICAgKDEgLSBhbHBoYSkgKiAoMSAtIGJl
dGEpICogKDEgLSBnYW1tYSksIGNvbG9yMDAwLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxw
aGEgKiAoMSAtIGJldGEpICogKDEgLSBnYW1tYSksIGNvbG9yMTAwLAorICAgICAgICAgICAgICAg
ICAgICAgICAgKDEgLSBhbHBoYSkgKiBiZXRhICogKDEgLSBnYW1tYSksIGNvbG9yMDEwLAorICAg
ICAgICAgICAgICAgICAgICAgICAgYWxwaGEgKiBiZXRhICogKDEgLSBnYW1tYSksIGNvbG9yMTEw
LAorICAgICAgICAgICAgICAgICAgICAgICAgKDEgLSBhbHBoYSkgKiAoMSAtIGJldGEpICogZ2Ft
bWEsIGNvbG9yMDAxLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxwaGEgKiAoMSAtIGJldGEp
ICogZ2FtbWEsIGNvbG9yMTAxLAorICAgICAgICAgICAgICAgICAgICAgICAgKDEgLSBhbHBoYSkg
KiBiZXRhICogZ2FtbWEsIGNvbG9yMDExLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxwaGEg
KiBiZXRhICogZ2FtbWEsIGNvbG9yMTExKTsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZGltZW5zaW9uIik7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoc2FtcGxlci5taXBtYXBG
aWx0ZXIgPT0gIm5lYXJlc3QiKSB7CisgICAgICAgIGxldCBpbWFnZUxldmVsID0gaW1hZ2VMZXZl
bFNlbGVjdGlvbihiYXNlTWlwTGV2ZWwsIHRleHR1cmUubGV2ZWxDb3VudCwgc2FtcGxlci5taXBt
YXBGaWx0ZXIsIGxhbWJkYSk7CisgICAgICAgIHJldHVybiBjb21wdXRlVGF1KGltYWdlTGV2ZWwp
OworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChzYW1wbGVyLm1pcG1hcEZpbHRlciAhPSAibGlu
ZWFyIikKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBmaWx0ZXIiKTsKKyAg
ICAgICAgbGV0IFtkSGksIGRMb3csIGRlbHRhXSA9IGltYWdlTGV2ZWxTZWxlY3Rpb24oYmFzZU1p
cExldmVsLCB0ZXh0dXJlLmxldmVsQ291bnQsIHNhbXBsZXIubWlwbWFwRmlsdGVyLCBsYW1iZGEp
OworICAgICAgICByZXR1cm4gcmVkdWNlKDEgLSBkZWx0YSwgY29tcHV0ZVRhdShkSGkpLCBkZWx0
YSwgY29tcHV0ZVRhdShkTG93KSk7CisgICAgfQorfQorCitmdW5jdGlvbiBjYXN0VG9Jbm5lclR5
cGUodmFsdWUsIGlubmVyVHlwZSkKK3sKKyAgICBzd2l0Y2ggKGlubmVyVHlwZSkgeworICAgICAg
ICBjYXNlICJ1Y2hhciI6CisgICAgICAgICAgICByZXR1cm4gY2FzdFRvVWNoYXIodmFsdWUpOwor
ICAgICAgICBjYXNlICJ1c2hvcnQiOgorICAgICAgICAgICAgcmV0dXJuIGNhc3RUb1VzaG9ydCh2
YWx1ZSk7CisgICAgICAgIGNhc2UgInVpbnQiOgorICAgICAgICAgICAgcmV0dXJuIGNhc3RUb1Vp
bnQodmFsdWUpOworICAgICAgICBjYXNlICJjaGFyIjoKKyAgICAgICAgICAgIHJldHVybiBjYXN0
VG9DaGFyKHZhbHVlKTsKKyAgICAgICAgY2FzZSAic2hvcnQiOgorICAgICAgICAgICAgcmV0dXJu
IGNhc3RUb1Nob3J0KHZhbHVlKTsKKyAgICAgICAgY2FzZSAiaW50IjoKKyAgICAgICAgICAgIHJl
dHVybiBjYXN0VG9JbnQodmFsdWUpOworICAgICAgICBjYXNlICJoYWxmIjoKKyAgICAgICAgICAg
IHJldHVybiBjYXN0VG9IYWxmKHZhbHVlKTsKKyAgICAgICAgY2FzZSAiZmxvYXQiOgorICAgICAg
ICAgICAgcmV0dXJuIGNhc3RUb0Zsb2F0KHZhbHVlKTsKKyAgICAgICAgCisgICAgICAgIGNhc2Ug
InVjaGFyMiI6CisgICAgICAgIGNhc2UgInVjaGFyMyI6CisgICAgICAgIGNhc2UgInVjaGFyNCI6
CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb1VjaGFyKTsKKyAgICAgICAgY2Fz
ZSAidXNob3J0MiI6CisgICAgICAgIGNhc2UgInVzaG9ydDMiOgorICAgICAgICBjYXNlICJ1c2hv
cnQ0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoY2FzdFRvVXNob3J0KTsKKyAgICAg
ICAgY2FzZSAidWludDIiOgorICAgICAgICBjYXNlICJ1aW50MyI6CisgICAgICAgIGNhc2UgInVp
bnQ0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoY2FzdFRvVWludCk7CisgICAgICAg
IGNhc2UgImNoYXIyIjoKKyAgICAgICAgY2FzZSAiY2hhcjMiOgorICAgICAgICBjYXNlICJjaGFy
NCI6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb0NoYXIpOworICAgICAgICBj
YXNlICJzaG9ydDIiOgorICAgICAgICBjYXNlICJzaG9ydDMiOgorICAgICAgICBjYXNlICJzaG9y
dDQiOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcChjYXN0VG9TaG9ydCk7CisgICAgICAg
IGNhc2UgImludDIiOgorICAgICAgICBjYXNlICJpbnQzIjoKKyAgICAgICAgY2FzZSAiaW50NCI6
CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb0ludCk7CisgICAgICAgIGNhc2Ug
ImhhbGYyIjoKKyAgICAgICAgY2FzZSAiaGFsZjMiOgorICAgICAgICBjYXNlICJoYWxmNCI6Cisg
ICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb0hhbGYpOworICAgICAgICBjYXNlICJm
bG9hdDIiOgorICAgICAgICBjYXNlICJmbG9hdDMiOgorICAgICAgICBjYXNlICJmbG9hdDQiOgor
ICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcChjYXN0VG9GbG9hdCk7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gdGV4dHVyZSBpbm5lciB0
eXBlIik7CisgICAgfQorfQorCitmdW5jdGlvbiBzYW1wbGVUZXh0dXJlKHRleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBkZWx0YSwgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIGRkeCwgZGR5LCBs
b2RGcm9tRnVuY3Rpb25PcGVyYW5kLCBkcmVmKQoreworICAgIGxldCBzID0gbG9jYXRpb25bMF07
CisgICAgbGV0IHQgPSBsb2NhdGlvblsxXTsKKyAgICBsZXQgciA9IGxvY2F0aW9uWzJdOworICAg
IGxldCBxID0gbG9jYXRpb25bM107CisgICAgbGV0IGEgPSBsb2NhdGlvbls0XTsKKworICAgIGxl
dCBkZWx0YUkgPSB1bmRlZmluZWQ7CisgICAgbGV0IGRlbHRhSiA9IHVuZGVmaW5lZDsKKyAgICBs
ZXQgZGVsdGFLID0gdW5kZWZpbmVkOworICAgIGlmIChkZWx0YSAhPSB1bmRlZmluZWQpIHsKKyAg
ICAgICAgZGVsdGFJID0gZGVsdGFbMF07CisgICAgICAgIGRlbHRhSiA9IGRlbHRhWzFdOworICAg
ICAgICBkZWx0YUsgPSBkZWx0YVsyXTsKKyAgICB9CisKKyAgICBbcywgdCwgciwgZHJlZl0gPSBw
cm9qZWN0aW9uT3BlcmF0aW9uKHMsIHQsIHIsIGRyZWYsIHEpOworICAgIGxldCByZXN1bHQgPSB0
ZXhlbEZpbHRlcmluZygKKyAgICAgICAgTnVtYmVyLk1BWF9WQUxVRSwKKyAgICAgICAgTnVtYmVy
Lk1BWF9WQUxVRSwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgdGV4dHVyZSwKKyAg
ICAgICAgc2FtcGxlciwKKyAgICAgICAgMCwKKyAgICAgICAgcywgdCwgciwgYSwKKyAgICAgICAg
ZGVsdGFJLCBkZWx0YUosIGRlbHRhSywKKyAgICAgICAgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwK
KyAgICAgICAgLU51bWJlci5NQVhfVkFMVUUsCisgICAgICAgIGJpYXNGcm9tRnVuY3Rpb25PcGVy
YW5kLAorICAgICAgICBkZHgsIGRkeSk7CisgICAgaWYgKGRyZWYgIT0gdW5kZWZpbmVkKSB7Cisg
ICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBBcnJheSkKKyAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigiRGVwdGggY29tcGFyaXNvbiBub3Qgc3VwcG9ydGVkIG9uIG11bHRpY2hhbm5lbCB0
ZXh0dXJlcyIpOworICAgICAgICByZXN1bHQgPSBkZXB0aENvbXBhcmVPcGVyYXRpb24oZHJlZiwg
cmVzdWx0LCBzYW1wbGVyLmNvbXBhcmVGdW5jdGlvbik7CisgICAgfQorICAgIHJldHVybiBjYXN0
VG9Jbm5lclR5cGUocmVzdWx0LCB0ZXh0dXJlLmlubmVyVHlwZSk7CisgICAgLy8gRklYTUU6IEZp
Z3VyZSBvdXQgd2hhdCB0byBkbyB3aXRoIGFuaXNvdHJvcHkKKyAgICAvLyBGSVhNRTogRmlndXJl
IG91dCBob3cgdG8gZG8gbXVsdGlzYW1wbGluZy4KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9pbmRleC5odG1sCmluZGV4IDY1YTg2NDExYjNlNzcwYjU1N2I0MWFjYzdlNDE0ZGVmNDI0
MDMwMTMuLmU2ZTEzZGZlOGRmYTVjNTMzMmFkOWVmMDQ5ZWNlYTM1OWI3ZTNhNDIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKKysrIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbApAQCAtMjgsNiArMjgsNyBAQAogPHNj
cmlwdCBzcmM9IkJ1aWx0aW5WZWN0b3JTZXR0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
IkNhbGxFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDYWxsRnVuY3Rpb24u
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNhc3RzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJDaGVjay5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2hlY2tMaXRlcmFsVHlwZXMu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNoZWNrTG9vcHMuanMiPjwvc2NyaXB0PgpAQCAt
MTE1LDYgKzExNiw3IEBACiA8c2NyaXB0IHNyYz0iUmV0dXJuLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJSZXR1cm5DaGVja2VyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZXR1cm5F
eGNlcHRpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlNhbXBsZXIuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IlN0YW5kYXJkTGlicmFyeS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iU3RhdGVtZW50Q2xvbmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTdHJ1Y3RMYXlv
dXRCdWlsZGVyLmpzIj48L3NjcmlwdD4KQEAgLTEyNyw2ICsxMjksOCBAQAogPHNjcmlwdCBzcmM9
IlN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iVGV4dHVyZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZS
ZXNvbHZlci5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348758</attachid>
            <date>2018-09-02 22:58:10 -0700</date>
            <delta_ts>2018-09-03 09:20:20 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188940-20180902225809.patch</filename>
            <type>text/plain</type>
            <size>424747</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTg5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWE0MzNhZWVmNTA2YjZmNDY1NTYwMTNiZmJiNDM2MWJm
MjE5YWMxYS4uNTlhODliMDY1MjFmMzdlYjI1MDk3OGJjZDI5MDM4MDk1NzUyNTU5NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
OSBAQAorMjAxOC0wOS0wMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRleHR1cmUgdHlwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNp
Y3MuanM6CisgICAgICAgIChJbnRyaW5zaWNzLik6CisgICAgICAgIChJbnRyaW5zaWNzLmNoZWNr
RmFsc2UpOgorICAgICAgICAoSW50cmluc2ljcy5ib3hWZWN0b3IpOgorICAgICAgICAoSW50cmlu
c2ljcy51bmJveFZlY3Rvcik6CisgICAgICAgIChJbnRyaW5zaWNzKToKKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qczoKKyAgICAgICAgKGxldC5zdGFuZGFyZExpYnJh
cnkpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAobWFrZVNhbXBs
ZXIpOgorICAgICAgICAobWFrZTFEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMURUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMkRUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTNEVGV4dHVyZSk6CisgICAgICAgIChtYWtlVGV4dHVyZUN1YmUp
OgorICAgICAgICAobWFrZVJXMURUZXh0dXJlKToKKyAgICAgICAgKG1ha2VSVzFEVGV4dHVyZUFy
cmF5KToKKyAgICAgICAgKG1ha2VSVzJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlUlcyRFRleHR1
cmVBcnJheSk6CisgICAgICAgIChtYWtlUlczRFRleHR1cmUpOgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1RleHR1cmUuanM6IEFkZGVkLgorICAgICAgICAoVGV4dHVyZSk6Cisg
ICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQgZGltZW5zaW9uKToKKyAgICAgICAgKFRleHR1
cmUucHJvdG90eXBlLmdldCB3aWR0aCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aGVpZ2h0KToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkZXB0aCk6CisgICAgICAg
IChUZXh0dXJlLnByb3RvdHlwZS5nZXQgbGV2ZWxDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnBy
b3RvdHlwZS5nZXQgbGF5ZXJDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aW5uZXJUeXBlKToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkYXRhKToKKyAgICAg
ICAgKFRleHR1cmUucHJvdG90eXBlLmVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUu
cHJvdG90eXBlLnNldEVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUxRCk6CisgICAg
ICAgIChUZXh0dXJlMUQucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJl
MUQucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlw
ZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlwZS5lbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUxRC5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0
dXJlMURBcnJheSk6CisgICAgICAgIChUZXh0dXJlMURBcnJheS5wcm90b3R5cGUud2lkdGhBdExl
dmVsKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToK
KyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTFEQXJyYXkucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTFE
QXJyYXkucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEKToKKyAgICAg
ICAgKFRleHR1cmUyRC5wcm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUy
RC5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBl
LmRlcHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBlLmVsZW1lbnQpOgor
ICAgICAgICAoVGV4dHVyZTJELnByb3RvdHlwZS5zZXRFbGVtZW50KToKKyAgICAgICAgKFRleHR1
cmUyREFycmF5KToKKyAgICAgICAgKFRleHR1cmUyREFycmF5LnByb3RvdHlwZS53aWR0aEF0TGV2
ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgor
ICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMkRBcnJheS5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMkRB
cnJheS5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlM0QpOgorICAgICAg
ICAoVGV4dHVyZTNELnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTNE
LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUuZWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0QucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVy
ZUN1YmUpOgorICAgICAgICAoVGV4dHVyZUN1YmUucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6Cisg
ICAgICAgIChUZXh0dXJlQ3ViZS5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlQ3ViZS5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmVDdWJl
LnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmVDdWJlLnByb3RvdHlwZS5zZXRF
bGVtZW50KToKKyAgICAgICAgKFRleHR1cmUxRFJXKToKKyAgICAgICAgKFRleHR1cmUxRFJXLnBy
b3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmhl
aWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmRlcHRoQXRMZXZl
bCk6CisgICAgICAgIChUZXh0dXJlMURSVy5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChU
ZXh0dXJlMURSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMURBcnJh
eVJXKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6
CisgICAgICAgIChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAg
ICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUx
REFycmF5UlcucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEUlcpOgor
ICAgICAgICAoVGV4dHVyZTJEUlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlMkRSVy5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkRS
Vy5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlw
ZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlwZS5zZXRFbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUyREFycmF5UlcpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5w
cm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90
eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90eXBlLmVsZW1l
bnQpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0RSVyk6CisgICAgICAgIChUZXh0dXJlM0RSVy5wcm90b3R5cGUud2lk
dGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVs
KToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTNEUlcucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTNEUlcu
cHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1RleHR1cmVPcGVyYXRpb25zLmpzOiBBZGRlZC4KKyAgICAgICAgKGRlcHRoQ29tcGFyZU9wZXJh
dGlvbik6CisgICAgICAgIChjb252ZXJzaW9uVG9SR0JBKToKKyAgICAgICAgKHByb2plY3Rpb25P
cGVyYXRpb24pOgorICAgICAgICAoY3ViZU1hcEZhY2VTZWxlY3Rpb24pOgorICAgICAgICAoY3Vi
ZU1hcENvb3JkaW5hdGVUcmFuc2Zvcm1hdGlvbik6CisgICAgICAgIChjdWJlTWFwRGVyaXZhdGl2
ZVRyYW5zZm9ybWF0aW9uKToKKyAgICAgICAgKHNjYWxlRmFjdG9yT3BlcmF0aW9uKToKKyAgICAg
ICAgKGxldmVsT2ZEZXRhaWxPcGVyYXRpb24pOgorICAgICAgICAobmVhcmVzdCk6CisgICAgICAg
IChpbWFnZUxldmVsU2VsZWN0aW9uKToKKyAgICAgICAgKHN0cnFhVG9VVldBVHJhbnNmb3JtYXRp
b24pOgorICAgICAgICAocm5lKToKKyAgICAgICAgKHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25B
bmRBcnJheUxheWVyU2VsZWN0aW9uKToKKyAgICAgICAgKGludGVnZXJUZXhlbENvb3JkaW5hdGVP
cGVyYXRpb25zKToKKyAgICAgICAgKG1pcnJvcik6CisgICAgICAgICh0cmFuc2Zvcm0pOgorICAg
ICAgICAod3JhcHBpbmdPcGVyYXRpb24pOgorICAgICAgICAodGV4ZWxHYXRoZXJpbmcpOgorICAg
ICAgICAoY29tcHV0ZVRhdS5yZWR1Y2UpOgorICAgICAgICAoY29tcHV0ZVRhdS5zaG91bGRCZUJv
cmRlcik6CisgICAgICAgIChjb21wdXRlVGF1LmFjY2Vzc0NvbG9yKToKKyAgICAgICAgKGNvbXB1
dGVUYXUpOgorICAgICAgICAodGV4ZWxGaWx0ZXJpbmcpOgorICAgICAgICAoc2FtcGxlVGV4dHVy
ZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAx
OC0wOS0wMSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW1dQRV0gMi4yMS45MSBmYWlscyB0byBidWlsZCB3aXRoIEVOQUJMRV9NSU5JQlJPV1NF
UgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCmluZGV4IDljMmEzNzE1MGMxZTk3NmI5
MjZjZmJlZTIzNDM3NTIwYThkZTRhNDcuLjkwZmM4NDEzYTY1MTIyNDQ2YmYwMWZkOTY3ZGQ2NTEz
OWEwZjg3ZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5q
cworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKQEAgLTUxLDYgKzUx
LDcgQEAgbG9hZCgiQnVpbHRpblZlY3RvckdldHRlci5qcyIpOwogbG9hZCgiQnVpbHRpblZlY3Rv
clNldHRlci5qcyIpOwogbG9hZCgiQ2FsbEV4cHJlc3Npb24uanMiKTsKIGxvYWQoIkNhbGxGdW5j
dGlvbi5qcyIpOworbG9hZCgiQ2FzdHMuanMiKTsKIGxvYWQoIkNoZWNrLmpzIik7CiBsb2FkKCJD
aGVja0xpdGVyYWxUeXBlcy5qcyIpOwogbG9hZCgiQ2hlY2tMb29wcy5qcyIpOwpAQCAtMTM4LDYg
KzEzOSw3IEBAIGxvYWQoIlJlc29sdmVUeXBlRGVmcy5qcyIpOwogbG9hZCgiUmV0dXJuLmpzIik7
CiBsb2FkKCJSZXR1cm5DaGVja2VyLmpzIik7CiBsb2FkKCJSZXR1cm5FeGNlcHRpb24uanMiKTsK
K2xvYWQoIlNhbXBsZXIuanMiKTsKIGxvYWQoIlN0YW5kYXJkTGlicmFyeS5qcyIpOwogbG9hZCgi
U3RhdGVtZW50Q2xvbmVyLmpzIik7CiBsb2FkKCJTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIik7CkBA
IC0xNTAsNiArMTUyLDggQEAgbG9hZCgiU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyIpOwog
bG9hZCgiU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIik7CiBsb2FkKCJTeW50
aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiKTsKIGxvYWQoIlRlcm5hcnlFeHBy
ZXNzaW9uLmpzIik7Citsb2FkKCJUZXh0dXJlLmpzIik7Citsb2FkKCJUZXh0dXJlT3BlcmF0aW9u
cy5qcyIpOwogbG9hZCgiVHJhcFN0YXRlbWVudC5qcyIpOwogbG9hZCgiVHlwZURlZi5qcyIpOwog
bG9hZCgiVHlwZURlZlJlc29sdmVyLmpzIik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9DYXN0cy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Nh
c3RzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFjYmIyZWEwMjg1MzViNDY3MDQyMzA5N2Y3YTViNTdjYWY2Yjhi
MWMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYXN0
cy5qcwpAQCAtMCwwICsxLDExNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworInVzZSBzdHJpY3QiOworCitmdW5jdGlvbiBjYXN0KHR5cGVkQXJyYXlDb25z
dHJ1Y3RvciwgbnVtYmVyKQoreworICAgIHZhciBhcnJheSA9IG5ldyB0eXBlZEFycmF5Q29uc3Ry
dWN0b3IoMSk7CisgICAgYXJyYXlbMF0gPSBudW1iZXI7CisgICAgcmV0dXJuIGFycmF5WzBdOwor
fQorCitmdW5jdGlvbiBiaXR3aXNlQ2FzdCh0eXBlZEFycmF5Q29uc3RydWN0b3IxLCB0eXBlZEFy
cmF5Q29uc3RydWN0b3IyLCB2YWx1ZSkKK3sKKyAgICBsZXQgdHlwZWRBcnJheTEgPSBuZXcgdHlw
ZWRBcnJheUNvbnN0cnVjdG9yMSgxKTsKKyAgICBsZXQgdHlwZWRBcnJheTIgPSBuZXcgdHlwZWRB
cnJheUNvbnN0cnVjdG9yMih0eXBlZEFycmF5MS5idWZmZXIpOworICAgIHR5cGVkQXJyYXkxWzBd
ID0gdmFsdWU7CisgICAgcmV0dXJuIHR5cGVkQXJyYXkyWzBdOworfQorCitmdW5jdGlvbiBjYXN0
VG9VY2hhcihudW1iZXIpCit7CisgICAgcmV0dXJuIG51bWJlciAmIDB4RkY7Cit9CisKK2Z1bmN0
aW9uIGNhc3RUb1VzaG9ydChudW1iZXIpCit7CisgICAgcmV0dXJuIG51bWJlciAmIDB4RkZGRjsK
K30KKworZnVuY3Rpb24gY2FzdFRvVWludChudW1iZXIpCit7CisgICAgcmV0dXJuIG51bWJlciA+
Pj4gMDsKK30KKworZnVuY3Rpb24gY2FzdFRvQ2hhcihudW1iZXIpCit7CisgICAgcmV0dXJuIGNh
c3QoSW50OEFycmF5LCBudW1iZXIpOworfQorCitmdW5jdGlvbiBjYXN0VG9TaG9ydChudW1iZXIp
Cit7CisgICAgcmV0dXJuIGNhc3QoSW50MTZBcnJheSwgbnVtYmVyKTsKK30KKworZnVuY3Rpb24g
Y2FzdFRvSW50KG51bWJlcikKK3sKKyAgICByZXR1cm4gbnVtYmVyIHwgMDsKK30KKworZnVuY3Rp
b24gY2FzdFRvSGFsZihudW1iZXIpCit7CisgICAgLy8gRklYTUU6IE1ha2UgdGhpcyBtYXRoIG9i
ZXkgSUVFRSA3NTQuCisgICAgaWYgKE51bWJlci5pc05hTihudW1iZXIpKQorICAgICAgIHJldHVy
biBudW1iZXIKKyAgICBpZiAobnVtYmVyID4gNjU1MDQpCisgICAgICAgIHJldHVybiBOdW1iZXIu
UE9TSVRJVkVfSU5GSU5JVFk7CisgICAgaWYgKG51bWJlciA8IC02NTUwNCkKKyAgICAgICAgcmV0
dXJuIE51bWJlci5ORUdBVElWRV9JTkZJTklUWTsKKyAgICBpZiAobnVtYmVyID4gMCAmJiBudW1i
ZXIgPCBNYXRoLnBvdygyLCAtMjQpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAobnVtYmVy
IDwgMCAmJiBudW1iZXIgPiAtTWF0aC5wb3coMiwgLTI0KSkKKyAgICAgICAgcmV0dXJuIC0wOwor
ICAgIGxldCBkb3VibGVBcnJheSA9IG5ldyBGbG9hdDY0QXJyYXkoMSk7CisgICAgbGV0IHVpbnRB
cnJheSA9IG5ldyBVaW50OEFycmF5KGRvdWJsZUFycmF5LmJ1ZmZlcik7CisgICAgZG91YmxlQXJy
YXlbMF0gPSBudW1iZXI7CisgICAgbGV0IHNpZ24gPSB1aW50QXJyYXlbN10gJiAweDgwOworICAg
IGxldCBleHBvbmVudCA9ICgodWludEFycmF5WzddICYgMHg3ZikgPDwgNCkgfCAoKHVpbnRBcnJh
eVs2XSAmIDB4ZjApID4+PiA0KTsKKyAgICBsZXQgc2lnbmlmaWNhbmQgPSAoKHVpbnRBcnJheVs2
XSAmIDB4MGYpIDw8IDYpIHwgKCh1aW50QXJyYXlbNV0gJiAweGZjKSA+Pj4gMik7CisKKyAgICBp
ZiAoKGV4cG9uZW50IC0gMTAyMykgPCAtMTQpIHsKKyAgICAgICAgZXhwb25lbnQgPSAwOworICAg
ICAgICBzaWduaWZpY2FuZCA9IChNYXRoLmFicyhudW1iZXIpICogTWF0aC5wb3coMiwgMjQpKSA+
Pj4gMDsKKyAgICAgICAgbGV0IHZhbHVlID0gTWF0aC5wb3coMiwgLTE0KSAqIHNpZ25pZmljYW5k
IC8gMTAyNDsKKyAgICAgICAgaWYgKHNpZ24gIT0gMCkKKyAgICAgICAgICAgIHZhbHVlICo9IC0x
OworICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorCisgICAgZG91YmxlQXJyYXlbMF0gPSAw
OworCisgICAgdWludEFycmF5WzddIHw9IHNpZ247CisgICAgdWludEFycmF5WzddIHw9IChleHBv
bmVudCA+Pj4gNCk7CisgICAgdWludEFycmF5WzZdIHw9ICgoZXhwb25lbnQgPDwgNCkgJiAweGYw
KTsKKyAgICB1aW50QXJyYXlbNl0gfD0gKHNpZ25pZmljYW5kID4+PiA2KTsKKyAgICB1aW50QXJy
YXlbNV0gfD0gKChzaWduaWZpY2FuZCA8PCAyKSAmIDB4ZmMpOworCisgICAgcmV0dXJuIGRvdWJs
ZUFycmF5WzBdOworfQorCitmdW5jdGlvbiBjYXN0VG9GbG9hdChudW1iZXIpCit7CisgICAgcmV0
dXJuIE1hdGguZnJvdW5kKG51bWJlcik7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvSW50cmluc2ljcy5qcwppbmRleCBiMDA0MDY3ZjVlYmZiM2E4YjRiZDk4ZTQzN2E4YzA3Njhi
ZTI2ZjFlLi4xOGExODM0ZGMxNjFkZjE4MGI3YjA3MjFjYWQzMTEzOWMxYmZlZjdjIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCisrKyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMKQEAgLTQ4LDYxICs0OCw2
IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KIAotICAgICAgICBmdW5jdGlvbiBjYXN0KHR5cGVkQXJyYXlDb25zdHJ1Y3RvciwgbnVtYmVy
KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgYXJyYXkgPSBuZXcgdHlwZWRBcnJheUNvbnN0
cnVjdG9yKDEpOwotICAgICAgICAgICAgYXJyYXlbMF0gPSBudW1iZXI7Ci0gICAgICAgICAgICBy
ZXR1cm4gYXJyYXlbMF07Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBiaXR3aXNlQ2Fz
dCh0eXBlZEFycmF5Q29uc3RydWN0b3IxLCB0eXBlZEFycmF5Q29uc3RydWN0b3IyLCB2YWx1ZSkK
LSAgICAgICAgewotICAgICAgICAgICAgbGV0IHR5cGVkQXJyYXkxID0gbmV3IHR5cGVkQXJyYXlD
b25zdHJ1Y3RvcjEoMSk7Ci0gICAgICAgICAgICBsZXQgdHlwZWRBcnJheTIgPSBuZXcgdHlwZWRB
cnJheUNvbnN0cnVjdG9yMih0eXBlZEFycmF5MS5idWZmZXIpOwotICAgICAgICAgICAgdHlwZWRB
cnJheTFbMF0gPSB2YWx1ZTsKLSAgICAgICAgICAgIHJldHVybiB0eXBlZEFycmF5MlswXTsKLSAg
ICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIGNhc3RUb0hhbGYobnVtYmVyKQotICAgICAgICB7
Ci0gICAgICAgICAgICAvLyBGSVhNRTogTWFrZSB0aGlzIG1hdGggb2JleSBJRUVFIDc1NC4KLSAg
ICAgICAgICAgIGlmIChOdW1iZXIuaXNOYU4obnVtYmVyKSkKLSAgICAgICAgICAgICAgIHJldHVy
biBudW1iZXIKLSAgICAgICAgICAgIGlmIChudW1iZXIgPiA2NTUwNCkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOwotICAgICAgICAgICAgaWYgKG51bWJl
ciA8IC02NTUwNCkKLSAgICAgICAgICAgICAgICByZXR1cm4gTnVtYmVyLk5FR0FUSVZFX0lORklO
SVRZOwotICAgICAgICAgICAgaWYgKG51bWJlciA+IDAgJiYgbnVtYmVyIDwgTWF0aC5wb3coMiwg
LTI0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIGlmIChudW1iZXIg
PCAwICYmIG51bWJlciA+IC1NYXRoLnBvdygyLCAtMjQpKQotICAgICAgICAgICAgICAgIHJldHVy
biAtMDsKLSAgICAgICAgICAgIGxldCBkb3VibGVBcnJheSA9IG5ldyBGbG9hdDY0QXJyYXkoMSk7
Ci0gICAgICAgICAgICBsZXQgdWludEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoZG91YmxlQXJyYXku
YnVmZmVyKTsKLSAgICAgICAgICAgIGRvdWJsZUFycmF5WzBdID0gbnVtYmVyOwotICAgICAgICAg
ICAgbGV0IHNpZ24gPSB1aW50QXJyYXlbN10gJiAweDgwOwotICAgICAgICAgICAgbGV0IGV4cG9u
ZW50ID0gKCh1aW50QXJyYXlbN10gJiAweDdmKSA8PCA0KSB8ICgodWludEFycmF5WzZdICYgMHhm
MCkgPj4+IDQpOwotICAgICAgICAgICAgbGV0IHNpZ25pZmljYW5kID0gKCh1aW50QXJyYXlbNl0g
JiAweDBmKSA8PCA2KSB8ICgodWludEFycmF5WzVdICYgMHhmYykgPj4+IDIpOwotCi0gICAgICAg
ICAgICBpZiAoKGV4cG9uZW50IC0gMTAyMykgPCAtMTQpIHsKLSAgICAgICAgICAgICAgICBleHBv
bmVudCA9IDA7Ci0gICAgICAgICAgICAgICAgc2lnbmlmaWNhbmQgPSAoTWF0aC5hYnMobnVtYmVy
KSAqIE1hdGgucG93KDIsIDI0KSkgPj4+IDA7Ci0gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0g
TWF0aC5wb3coMiwgLTE0KSAqIHNpZ25pZmljYW5kIC8gMTAyNDsKLSAgICAgICAgICAgICAgICBp
ZiAoc2lnbiAhPSAwKQotICAgICAgICAgICAgICAgICAgICB2YWx1ZSAqPSAtMTsKLSAgICAgICAg
ICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGRvdWJs
ZUFycmF5WzBdID0gMDsKLQotICAgICAgICAgICAgdWludEFycmF5WzddIHw9IHNpZ247Ci0gICAg
ICAgICAgICB1aW50QXJyYXlbN10gfD0gKGV4cG9uZW50ID4+PiA0KTsKLSAgICAgICAgICAgIHVp
bnRBcnJheVs2XSB8PSAoKGV4cG9uZW50IDw8IDQpICYgMHhmMCk7Ci0gICAgICAgICAgICB1aW50
QXJyYXlbNl0gfD0gKHNpZ25pZmljYW5kID4+PiA2KTsKLSAgICAgICAgICAgIHVpbnRBcnJheVs1
XSB8PSAoKHNpZ25pZmljYW5kIDw8IDIpICYgMHhmYyk7Ci0KLSAgICAgICAgICAgIHJldHVybiBk
b3VibGVBcnJheVswXTsKLSAgICAgICAgfQotCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAg
ICAgICAgICAibmF0aXZlIHR5cGVkZWYgdm9pZCIsCiAgICAgICAgICAgICB0eXBlID0+IHsKQEAg
LTEyOCwxNSArNzMsMTUgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgdHlw
ZS5pc0ludCA9IHRydWU7CiAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHR5
cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudCh2YWx1ZSAmIDB4
ZmYsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+
IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvVWNoYXIodmFsdWUpLCB2YWx1ZSk7CiAgICAgICAg
ICAgICAgICAgdHlwZS5zaXplID0gMTsKICAgICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1
ZSA9IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFs
dWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2YWx1ZSAmIDB4ZmYsIHR5cGUpOwot
ICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiAodmFsdWUgKyAx
KSAmIDB4ZmY7CisgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwg
dmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBjYXN0VG9VY2hhcih2YWx1ZSks
IHR5cGUpOworICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBj
YXN0VG9VY2hhcih2YWx1ZSArIDEpOwogICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwg
PSAoYSwgYikgPT4gYSA9PT0gYjsKICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVs
dFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7Ci0gICAg
ICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFs
dWUgJiAweGZmOwotICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVy
YWwgPSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmY7CisgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRW
YWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvVWNoYXIodmFsdWUpOworICAgICAg
ICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0
VG9VY2hhcih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlv
biooKSB7CiAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmY7ICsr
aSkKICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogaSwgbmFtZTogaX07CkBA
IC0xNTIsMTUgKzk3LDE1IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICB0
eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7
CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAg
ICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVl
ICYgMHhmZmZmLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0g
dmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0VG9Vc2hvcnQodmFsdWUpLCB2YWx1ZSk7
CiAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAgICAgIHR5cGUu
ZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0g
KG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2YWx1ZSAmIDB4
ZmZmZiwgdHlwZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1
ZSA9PiAodmFsdWUgKyAxKSAmIDB4ZmZmZjsKKyAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVM
aXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBj
YXN0VG9Vc2hvcnQodmFsdWUpLCB0eXBlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNz
b3JWYWx1ZSA9IHZhbHVlID0+IGNhc3RUb1VzaG9ydCh2YWx1ZSArIDEpOwogICAgICAgICAgICAg
ICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7CiAgICAgICAgICAgICAg
ICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZl
ci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21J
bnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAweGZmZmY7Ci0gICAgICAgICAgICAgICAgIHR5
cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmZmZjsK
KyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUg
PT4gY2FzdFRvVXNob3J0KHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1
ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb1VzaG9ydCh2YWx1ZSk7CiAgICAgICAg
ICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVuY3Rpb24qKCkgewogICAgICAgICAgICAgICAg
ICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhmZmZmOyArK2kpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgeWllbGQge3ZhbHVlOiBpLCBuYW1lOiBpfTsKQEAgLTE3NSwxNSArMTIwLDE1IEBA
IGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsK
ICAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAgICAgICAg
IHR5cGUuaXNTaWduZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNl
bnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVlID4+PiAwLCB2YWx1ZSk7Cisg
ICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1
aXZhbGVudChjYXN0VG9VaW50KHZhbHVlKSwgdmFsdWUpOwogICAgICAgICAgICAgICAgICB0eXBl
LnNpemUgPSAxOwogICAgICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAg
ICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRM
aXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgdmFsdWUgPj4+IDAsIHR5cGUpOwotICAgICAgICAgICAg
ICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gKHZhbHVlICsgMSkgPj4+IDA7Cisg
ICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJ
bnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2FzdFRvVWludCh2YWx1ZSksIHR5cGUpOworICAg
ICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdFRvVWludCh2
YWx1ZSArIDEpOwogICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+
IGEgPT09IGI7CiAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAo
YnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAg
ICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgPj4+IDA7
Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1
ZSA9PiB2YWx1ZSA+Pj4gMDsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21J
bnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvVWludCh2YWx1ZSk7CisgICAgICAgICAgICAgICAg
IHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9VaW50KHZh
bHVlKTsKICAgICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7CiAg
ICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSAweGZmZmZmZmZmOyArK2kp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVlOiBpLCBuYW1lOiBpfTsKQEAg
LTE5OCwxOCArMTQzLDE4IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICB0
eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7
CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSB0cnVlOwotICAgICAgICAgICAgICAg
ICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdChJ
bnQ4QXJyYXksIHZhbHVlKSwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJl
c2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvQ2hhcih2YWx1ZSksIHZh
bHVlKTsKICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKICAgICAgICAgICAgICAgICAg
dHlwZS5kZWZhdWx0VmFsdWUgPSAwOwotICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVy
YWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3Qo
SW50OEFycmF5LCB2YWx1ZSksIHR5cGUpOwotICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3Nv
clZhbHVlID0gdmFsdWUgPT4gY2FzdChJbnQ4QXJyYXksIHZhbHVlICsgMSk7CisgICAgICAgICAg
ICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFs
LndpdGhUeXBlKG9yaWdpbiwgY2FzdFRvQ2hhcih2YWx1ZSksIHR5cGUpOworICAgICAgICAgICAg
ICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdFRvQ2hhcih2YWx1ZSArIDEp
OwogICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7
CiAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBv
ZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5m
b3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdChJbnQ4QXJyYXksIHZhbHVl
KTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZh
bHVlID0+IGNhc3QoSW50OEFycmF5LCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9y
bWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb0NoYXIodmFsdWUpOworICAg
ICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4g
Y2FzdFRvQ2hhcih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVu
Y3Rpb24qKCkgewogICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhm
ZjsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gY2FzdChJbnQ4
QXJyYXksIGkpOworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGNhc3RUb0No
YXIoaSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVlOiB2YWx1ZSwgbmFt
ZTogdmFsdWV9OwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9OwpA
QCAtMjIzLDE4ICsxNjgsMTggQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAg
IHR5cGUuaXNJbnQgPSB0cnVlOwogICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1
ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IHRydWU7Ci0gICAgICAgICAgICAg
ICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0
KEludDE2QXJyYXksIHZhbHVlKSwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJl
cHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvU2hvcnQodmFsdWUp
LCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAg
ICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVM
aXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBj
YXN0KEludDE2QXJyYXksIHZhbHVlKSwgdHlwZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuc3Vj
Y2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0KEludDE2QXJyYXksIHZhbHVlICsgMSk7CisgICAg
ICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRM
aXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2FzdFRvU2hvcnQodmFsdWUpLCB0eXBlKTsKKyAgICAg
ICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+IGNhc3RUb1Nob3J0KHZh
bHVlICsgMSk7CiAgICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4g
YSA9PT0gYjsKICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChi
dWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOwotICAgICAgICAgICAgICAg
ICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0KEludDE2QXJy
YXksIHZhbHVlKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0
ZXJhbCA9IHZhbHVlID0+IGNhc3QoSW50MTZBcnJheSwgdmFsdWUpOworICAgICAgICAgICAgICAg
ICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9TaG9ydCh2
YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwg
PSB2YWx1ZSA9PiBjYXN0VG9TaG9ydCh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuYWxs
VmFsdWVzID0gZnVuY3Rpb24qKCkgewogICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9
IDA7IGkgPD0gMHhmZmZmOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFs
dWUgPSBjYXN0KEludDE2QXJyYXksIGkpOworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2
YWx1ZSA9IGNhc3RUb1Nob3J0KGkpOwogICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2
YWx1ZTogdmFsdWUsIG5hbWU6IHZhbHVlfTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgfTsKQEAgLTI0OCwxOCArMTkzLDE4IEBAIGNsYXNzIEludHJpbnNpY3Mgewog
ICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlw
ZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSB0cnVl
OwotICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lz
ZUVxdWl2YWxlbnQodmFsdWUgfCAwLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuY2Fu
UmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0VG9JbnQodmFsdWUp
LCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAg
ICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVM
aXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2
YWx1ZSB8IDAsIHR5cGUpOwotICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0g
dmFsdWUgPT4gKHZhbHVlICsgMSkgfCAwOworICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxp
dGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNh
c3RUb0ludCh2YWx1ZSksIHR5cGUpOworICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZh
bHVlID0gdmFsdWUgPT4gY2FzdFRvSW50KHZhbHVlICsgMSk7CiAgICAgICAgICAgICAgICAgIHR5
cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKICAgICAgICAgICAgICAgICAgdHlw
ZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChv
ZmZzZXQsIDApOwotICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVy
YWwgPSB2YWx1ZSA9PiB2YWx1ZSB8IDA7Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFs
dWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSB8IDA7CisgICAgICAgICAgICAgICAg
IHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb0ludCh2YWx1
ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2
YWx1ZSA9PiBjYXN0VG9JbnQodmFsdWUpOwogICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVl
cyA9IGZ1bmN0aW9uKigpIHsKICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBp
IDw9IDB4ZmZmZmZmZmY7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1
ZSA9IGkgfCAwOworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGNhc3RUb0lu
dChpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IHZhbHVlLCBuYW1l
OiB2YWx1ZX07CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH07CkBA
IC0yOTIsNyArMjM3LDcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgIHR5
cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQo
b2Zmc2V0LCAwKTsKICAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRl
cmFsID0gdmFsdWUgPT4gdmFsdWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVG
cm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5m
b3JtYXRWYWx1ZUZyb21GbG9hdExpdGVyYWwgPSB2YWx1ZSA9PiBNYXRoLmZyb3VuZCh2YWx1ZSk7
CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tRmxvYXRMaXRlcmFsID0gdmFs
dWUgPT4gY2FzdFRvRmxvYXQodmFsdWUpOwogICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCkBAIC0zMzAsNyArMjc1LDggQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAg
ICAgICAgICAibmF0aXZlIHR5cGVkZWYgc2FtcGxlciIsCiAgICAgICAgICAgICB0eXBlID0+IHsK
ICAgICAgICAgICAgICAgICB0aGlzLnNhbXBsZXIgPSB0eXBlOwotICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gcHV0IGhlcmUuCisgICAgICAgICAgICAgICAgdHlw
ZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0g
KGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAg
fSk7CiAKICAgICAgICAgZm9yIChsZXQgdGV4dHVyZVR5cGUgb2YgWyJUZXh0dXJlMUQiLCAiUldU
ZXh0dXJlMUQiLCAiVGV4dHVyZTFEQXJyYXkiLCAiUldUZXh0dXJlMURBcnJheSIsICJUZXh0dXJl
MkQiLCAiUldUZXh0dXJlMkQiLCAiVGV4dHVyZTJEQXJyYXkiLCAiUldUZXh0dXJlMkRBcnJheSIs
ICJUZXh0dXJlM0QiLCAiUldUZXh0dXJlM0QiLCAiVGV4dHVyZUN1YmUiXSkgewpAQCAtMzM5LDEy
ICsyODUsMTYgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgdHlwZWRlZiAke3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YCwKICAgICAgICAgICAg
ICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1
cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAg
ICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVE
ZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCB7fSk7
CiAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAy
OyBpIDw9IDQ7ICsraSkgewogICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAg
ICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlw
ZUFyZ3VtZW50fSR7aX0+YCwKICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3Vt
ZW50fSR7aX0+YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUuc2l6
ZSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRW
YWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIHt9KTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
QEAgLTM1Niw2ICszMDYsOCBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gLAogICAg
ICAgICAgICAgICAgICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNb
YCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gXSA9IHR5cGU7CisgICAgICAgICAgICAg
ICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5w
b3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZz
ZXQsIHt9KTsKICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KQEAgLTM2NCw3ICszMTYsNyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCiAgICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciB1Y2hhcigke3By
aW1pdGl2ZVR5cGV9KWAsCiAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUu
bG9hZFZhbHVlKCkgJiAweGZmKTsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9VY2hhcih2YWx1ZS5sb2FkVmFsdWUo
KSkpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKQEAgLTM3Miw3ICszMjQsNyBA
QCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciB1c2hvcnQoJHtwcmltaXRpdmVUeXBlfSlgLAogICAg
ICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpICYgMHhmZmZm
KTsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PiBFUHRyLmJveChjYXN0VG9Vc2hvcnQodmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfQogCkBAIC0zODAsNyArMzMyLDcgQEAgY2xhc3MgSW50cmluc2lj
cyB7CiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgICAgIGBuYXRpdmUg
b3BlcmF0b3IgdWludCgke3ByaW1pdGl2ZVR5cGV9KWAsCiAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkg
PT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgPj4+IDApOworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb1VpbnQo
dmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgfQogCkBA
IC0zODgsNyArMzQwLDcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAogICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgY2hhcigke3ByaW1pdGl2
ZVR5cGV9KWAsCiAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdChJbnQ4QXJy
YXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdFRvQ2hhcih2YWx1ZS5sb2FkVmFs
dWUoKSkpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKQEAgLTM5Niw3ICszNDgs
NyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciBzaG9ydCgke3ByaW1pdGl2ZVR5cGV9KWAsCiAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdChJbnQxNkFycmF5LCB2YWx1ZS5s
b2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb1Nob3J0KHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KIApAQCAtNDIwLDcgKzM3Miw3IEBAIGNsYXNz
IEludHJpbnNpY3MgewogICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICAg
ICBgbmF0aXZlIG9wZXJhdG9yIGZsb2F0KCR7cHJpbWl0aXZlVHlwZX0pYCwKICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PiBFUHRyLmJveChNYXRoLmZyb3VuZCh2YWx1ZS5sb2FkVmFsdWUoKSkpOwor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQ
dHIuYm94KGNhc3RUb0Zsb2F0KHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0KIApAQCAtNDg0LDI5MiArNDM2LDI5MiBAQCBjbGFzcyBJbnRyaW5zaWNz
IHsKICAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yLShpbnQpIiwKICAgICAgICAgICAg
IGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVl
XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKC12YWx1ZS5sb2FkVmFsdWUoKSkg
fCAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KC12YWx1ZS5sb2Fk
VmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAg
ICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3ItKGZsb2F0KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0p
ID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKC12YWx1ZS5sb2Fk
VmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdCgtdmFs
dWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcisoaW50LGludCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
bGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2Fk
VmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAg
Im5hdGl2ZSBpbnQgb3BlcmF0b3ItKGludCxpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewog
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5s
b2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50
KGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7
CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJh
dG9yKihpbnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgp
ICogcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMu
X21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvci8oaW50LGludCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVm
dC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAg
ICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1
ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAg
ICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yKyh1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1
bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJp
Z2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkg
KyByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChjYXN0VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFsdWUoKSkpOwogICAg
ICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRp
dmUgdWludCBvcGVyYXRvci0odWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0g
ICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9h
ZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWlu
dChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3Bl
cmF0b3IqKHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+
Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2Fk
VmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yLyh1aW50
LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgLyBy
aWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFw
LnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3IrKGZsb2F0LGZsb2F0KSIs
CiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1h
dGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFsdWUoKSkpOworICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChsZWZ0LmxvYWRWYWx1ZSgpICsgcmln
aHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yLShmbG9hdCxmbG9hdCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRo
LmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQobGVmdC5sb2FkVmFsdWUoKSAtIHJpZ2h0
LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0
KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvciooZmxvYXQsZmxvYXQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5s
b2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgK
ICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3IvKGZsb2F0LGZsb2F0KSIsCiAgICAg
ICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJv
dW5kKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChsZWZ0LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9h
ZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAg
ICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvciYoaW50LGludCkiLAogICAgICAgICAgICAg
ZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwg
cmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUo
KSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAg
ICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2
ZSBpbnQgb3BlcmF0b3J8KGludCxpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgfCByaWdodC5sb2FkVmFs
dWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQu
bG9hZFZhbHVlKCkgfCByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yXihp
bnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmln
aHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcn4oaW50KSIsCiAgICAgICAgICAg
ICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1
ZV0pID0+IEVQdHIuYm94KCh+dmFsdWUubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9JbnQo
fnZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9t
YXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3I8PChpbnQsdWludCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVm
dC5sb2FkVmFsdWUoKSA8PCByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZh
bHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAg
ICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcj4+KGludCx1aW50KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCBy
aWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgp
ID4+IHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSA+PiByaWdodC5sb2FkVmFsdWUoKSkpOwogICAg
ICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRp
dmUgdWludCBvcGVyYXRvciYodWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0g
ICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICYgcmlnaHQubG9h
ZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWlu
dChsZWZ0LmxvYWRWYWx1ZSgpICYgcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3Bl
cmF0b3J8KHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSB8IHJpZ2h0LmxvYWRWYWx1ZSgpKSA+
Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2Fk
VmFsdWUoKSB8IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yXih1aW50
LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgXiByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgXiBy
aWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFw
LnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcn4odWludCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
dmFsdWVdKSA9PiBFUHRyLmJveCgofnZhbHVlLmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0
VG9VaW50KH52YWx1ZS5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAg
dGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcjw8KHVpbnQs
dWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRy
LmJveCgobGVmdC5sb2FkVmFsdWUoKSA8PCByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgPDwg
cmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21h
cC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3I+Pih1aW50LHVpbnQpIiwK
ICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxl
ZnQubG9hZFZhbHVlKCkgPj4+IHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSA+Pj4gcmlnaHQu
bG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQo
CiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNvcyhmbG9hdCkiLAogICAgICAgICAgICAgZnVu
YyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmNvcyh2YWx1
ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxv
YXQoTWF0aC5jb3ModmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAg
ICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBzaW4oZmxvYXQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQoTWF0aC5zaW4odmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguc2luKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAg
ICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRp
dmUgZmxvYXQgdGFuKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgudGFuKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLnRhbih2YWx1ZS5s
b2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQo
CiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGFjb3MoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1
bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5hY29zKHZh
bHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9G
bG9hdChNYXRoLmFjb3ModmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAog
ICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBhc2luKGZs
b2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1h
dGguZnJvdW5kKE1hdGguYXNpbih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5hc2luKHZhbHVlLmxvYWRWYWx1ZSgpKSkp
OwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAg
ICJuYXRpdmUgZmxvYXQgYXRhbihmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmF0YW4odmFsdWUubG9hZFZhbHVl
KCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguYXRh
bih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMu
X21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNvc2goZmxvYXQpIiwKICAgICAg
ICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0
aC5jb3NoKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChjYXN0VG9GbG9hdChNYXRoLmNvc2godmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAg
ICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9h
dCBzaW5oKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KE1hdGguZnJvdW5kKE1hdGguc2luaCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5zaW5oKHZhbHVlLmxvYWRW
YWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAg
ICAgICAgICAgICJuYXRpdmUgZmxvYXQgdGFuaChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9
PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9Pgot
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnRhbmgodmFsdWUu
bG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0
KE1hdGgudGFuaCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNlaWwoZmxvYXQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQoTWF0aC5jZWlsKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLmNlaWwodmFsdWUubG9hZFZhbHVlKCkpKSk7CiAg
ICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5h
dGl2ZSBmbG9hdCBleHAoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5leHAodmFsdWUubG9hZFZhbHVlKCkpKSk7
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguZXhwKHZhbHVl
LmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgZmxvb3IoZmxvYXQpIiwKICAgICAgICAgICAg
IGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVl
XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5mbG9v
cih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2Fz
dFRvRmxvYXQoTWF0aC5mbG9vcih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGxv
ZyhmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChNYXRoLmZyb3VuZChNYXRoLmxvZyh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5sb2codmFsdWUubG9hZFZhbHVlKCkp
KSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAg
ICAgIm5hdGl2ZSBmbG9hdCByb3VuZChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnJvdW5kKHZhbHVlLmxvYWRW
YWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRo
LnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAg
dGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgc3FydChmbG9hdCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3Vu
ZChNYXRoLnNxcnQodmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguc3FydCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAg
ICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZl
IGZsb2F0IHRydW5jKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgudHJ1bmModmFsdWUubG9hZFZhbHVlKCkpKSk7
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgudHJ1bmModmFs
dWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAu
c2V0KApAQCAtNzg4LDcgKzc0MCw3IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAg
Im5hdGl2ZSBmbG9hdCBwb3coZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewog
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5wb3cobGVmdC5s
b2FkVmFsdWUoKSwgcmlnaHQubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgucG93KGxlZnQubG9hZFZhbHVlKCksIHJpZ2h0LmxvYWRW
YWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKQEAg
LTgzMiw3ICs3ODQsNyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICJuYXRpdmUg
ZmxvYXQgYXRhbjIoZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5hdGFuMihsZWZ0LmxvYWRW
YWx1ZSgpLCByaWdodC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goY2FzdFRvRmxvYXQoTWF0aC5hdGFuMihsZWZ0LmxvYWRWYWx1ZSgpLCByaWdodC5sb2FkVmFs
dWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCkBAIC05
MTQsNiArODY2LDE1MTcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAKICAgICAgICAgZm9yIChsZXQg
c2V0dGVyIG9mIEJ1aWx0aW5NYXRyaXhTZXR0ZXIuZnVuY3Rpb25zKCkpCiAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KHNldHRlci50b1N0cmluZygpLCBmdW5jID0+IHNldHRlci5pbnN0YW50aWF0
ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsKKworICAgICAgICBmdW5jdGlvbiBjaGVja1VuZGVmaW5l
ZChvcmlnaW4sIGV4cGxhbmF0aW9uLCB2YWx1ZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYg
KHZhbHVlID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJv
cigiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIik7CisgICAgICAgICAgICBy
ZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja0ZhbHNlKG9y
aWdpbiwgZXhwbGFuYXRpb24sIHZhbHVlKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAodmFs
dWUgPT0gZmFsc2UpCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltTdG9y
ZV0iLCAiVGV4dHVyZSBzdG9yZSBvdXQgb2YgYm91bmRzIik7CisgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiBib3hWZWN0b3IoYSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGEgaW5z
dGFuY2VvZiBBcnJheSkgeworICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgRVB0cihu
ZXcgRUJ1ZmZlcihhLmxlbmd0aCksIDApOworICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAw
OyBpIDwgYS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNldChpLCBh
W2ldKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KGEpOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gdW5ib3hWZWN0b3IoYSwgbGVuZ3RoKQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAobGVuZ3RoICE9ICIiKSB7CisgICAgICAgICAgICAgICAgbGVuZ3RoID0gTnVtYmVyLnBh
cnNlSW50KGxlbmd0aCk7CisgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IFtdOworICAgICAg
ICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdC5wdXNoKGEuZ2V0KGkpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIGEubG9hZFZh
bHVlKCk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFsidWNoYXIiLCAi
dXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9ydCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJd
KSB7CisgICAgICAgICAgICBmb3IgKHZhciBsZW5ndGhWYXJpYWJsZSBvZiBbYGAsIGAyYCwgYDNg
LCBgNGBdKSB7CisgICAgICAgICAgICAgICAgbGV0IGxlbmd0aCA9IGxlbmd0aFZhcmlhYmxlOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmxvYWRWYWx1ZSgpLCAwLCAwLCAxLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxRDwke3R5cGV9JHts
ZW5ndGh9PixzYW1wbGVyLGZsb2F0IGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24ubG9hZFZhbHVlKCksIDAsIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5sb2FkVmFsdWUoKSwgMCwgMF07CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUu
bG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJy
YXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixpbnQy
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihj
aGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4
dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAs
IGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTFEPCR7dHlw
ZX0ke2xlbmd0aH0+LGludDIgbG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRd
IiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVt
ZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSArIG9m
ZnNldC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPCR7dHlwZX0k
e2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBO
dW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
bWlwbGV2ZWwsIHdpZHRoLCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9u
c10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
bGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxREFycmF5
PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQo
MCksIDAsIDAsIDEsIGxvY2F0aW9uLmdldCgxKV07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IFNhbXBsZShUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0
MiBsb2NhdGlvbixpbnQgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgMCwgMCwgMSwg
bG9jYXRpb24uZ2V0KDEpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFB
cnJheSA9IFtvZmZzZXQubG9hZFZhbHVlKCksIDAsIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gTG9hZChUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1Vu
ZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5s
b2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMCwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJl
MURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRl
ZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9h
ZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSks
IDAsIDAsIGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERp
bWVuc2lvbnMoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1
aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEVsZW1lbnRzLHVpbnQqIHRocmVhZCBOdW1i
ZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlw
bGV2ZWwsIHdpZHRoLCBlbGVtZW50cywgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERp
bWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVy
ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxl
dmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2Ft
cGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTJEPCR7
dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
b2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5
ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZz
ZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVj
dG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUo
KSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJpYXMo
VGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0
IEJpYXMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJE
PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMsaW50
MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSks
IDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0g
W29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxv
YWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSlgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCks
IGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hW
ZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1
ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFy
cmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlR3JhZChU
ZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQy
IEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5n
ZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0
KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtv
ZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwg
c2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVk
LCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVu
Z3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDIgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0
KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVj
dG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUo
KSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxl
TGV2ZWwoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9u
LGZsb2F0IExPRCxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0XSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9j
YXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
ZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVy
ZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFB
cnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1
bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRl
eHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9m
ZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhN
RTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUy
RDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhl
cmluZworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZs
b2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklY
TUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1
cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNl
dClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog
SW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkQ8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJp
bmcKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhN
RTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVy
ZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTJE
PCR7dHlwZX0ke2xlbmd0aH0+LGludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSBy
ZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAs
IGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxv
Y2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91
dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0
aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24u
Z2V0KDApICsgb2Zmc2V0LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTJEPCR7
dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRo
cmVhZCBIZWlnaHQsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgbnVtYmVy
T2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1
cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0g
bWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1p
cElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25l
eGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZl
bChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1w
bGUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5
ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQo
MildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxl
VGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlv
bkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTJEQXJyYXk8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwK
KyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJy
YXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdl
dCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zm
c2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVu
Z3RofSBTYW1wbGVCaWFzKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRp
b24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIGJpYXMubG9h
ZFZhbHVlKCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0ke2xlbmd0aH0gU2FtcGxlQmlhcyhUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzLGludDIgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlh
cywgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFy
cmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5n
ZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29m
ZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBz
YW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxvYWRW
YWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZKWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBk
ZHldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCks
IGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJh
eSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwg
c2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IGRkeEFycmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IFNhbXBsZUdyYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4
LCBkZHksIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRp
b25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRp
b24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBb
ZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5n
ZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Io
c2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBs
b2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIGRkeEFycmF5LCBkZHlBcnJheSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUxldmVsKFRleHR1
cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0
IExPRClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIGxvZF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRp
b25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRp
b24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9y
KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwg
bG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlTGV2
ZWwoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24sZmxvYXQgTE9ELGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kLCBvZmZzZXRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBs
b2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgx
KSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1w
bGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0
aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxv
ZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyREFycmF5
PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVy
aW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBs
ZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4
dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50
MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRl
eHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRl
eHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBl
fSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZz
ZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0
ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBl
fSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRl
eHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGlu
dDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQo
VGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4saW50NCBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2Fk
XSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxl
bWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDMpLCBsb2NhdGlvbi5nZXQoMiksIDAsIGxvY2F0aW9u
LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJl
MkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQ0IGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5k
ZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxv
YWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIp
LCAwLCBsb2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQuZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkgKyBv
ZmZzZXQuZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMkRBcnJheTwke3R5cGV9
JHtsZW5ndGh9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQg
SGVpZ2h0LHVpbnQqIHRocmVhZCBFbGVtZW50cyx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMp
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0
aCwgaGVpZ2h0LCBlbGVtZW50cywgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVu
c2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJv
bShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lk
dGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1l
bnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNh
bXBsZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBd
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4
dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFy
cmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTNEPCR7dHlwZX0k
e2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQo
MCksIG9mZnNldC5nZXQoMSksIG9mZnNldC5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gTG9hZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4saW50NCBsb2NhdGlvbilg
LAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmlu
ZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZh
bHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDMpLCBsb2NhdGlvbi5nZXQoMiks
IGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9h
ZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4saW50NCBsb2NhdGlvbixpbnQzIG9mZnNldClg
LAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZz
ZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVj
a1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVy
ZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMyksIGxvY2F0aW9u
LmdldCgyKSArIG9mZnNldC5nZXQoMiksIGxvY2F0aW9uLmdldCgxKSArIG9mZnNldC5nZXQoMSks
IGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRl
eHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0
aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBEZXB0aCx1aW50KiB0aHJlYWQgTnVt
YmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1p
cGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigi
W0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2Yg
dGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoLmxvYWRWYWx1ZSgp
LmNvcHlGcm9tKEVQdHIuYm94KHRleC5kZXB0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KHRleC5oZWlnaHRBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwo
bWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0
aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJp
YXMoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24s
ZmxvYXQgQmlhcylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0
aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgYmlhcy5sb2FkVmFsdWUoKSwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBT
YW1wbGVHcmFkKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uLGZsb2F0MyBERFgsZmxvYXQzIEREWSlgLAorICAgICAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwg
bG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCBkZHgu
Z2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5
LmdldCgwKSwgZGR5LmdldCgxKSwgZGR5LmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCks
IHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVu
Z3RofSBTYW1wbGVMZXZlbChUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2RdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXIoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9j
YXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZUN1YmU8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4
dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVy
ZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5n
dGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGlt
ZW5zaW9ucyhUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9Pix1aW50IE1pcExldmVsLHVpbnQq
IHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxl
dmVscylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWws
IHdpZHRoLCBoZWlnaHQsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICh0ZXgubGF5ZXJDb3VudCAhPSA2KQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkN1YmUgdGV4dHVyZSBkb2Vzbid0IGhh
dmUgNiBmYWNlcyIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0
ZXgubGV2ZWxDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3
IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQg
bWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWln
aHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQp
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUx
RDwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiB0aHJlYWQgV2lkdGgpYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleHR1cmUubG9hZFZh
bHVlKCkud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMUQ8JHt0eXBlfSR7
bGVuZ3RofT4sZmxvYXQqIHRocmVhZCBXaWR0aClgLAorICAgICAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgd2lkdGhdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lk
dGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4dHVyZS5sb2FkVmFsdWUoKS53aWR0
aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChSV1RleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9
PixpbnQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVj
dG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMi
LCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIDAsIDAsIDAsIGxvY2F0aW9u
LmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4s
JHt0eXBlfSR7bGVuZ3RofSx1aW50IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBvdXQgb2YgYm91
bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tlZCgwLCAwLCAwLCAwLCBs
b2NhdGlvbi5sb2FkVmFsdWUoKSwgdW5ib3hWZWN0b3IodmFsdWUsIGxlbmd0aCkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lk
IEdldERpbWVuc2lvbnMoUldUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiB0
aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lv
bnMoUldUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixmbG9hdCogdGhyZWFkIFdpZHRo
LHVpbnQqIHRocmVhZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgd2lkdGgsIGVsZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4
dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4saW50MiBsb2NhdGlvbilgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIs
ICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVu
dENoZWNrZWQobG9jYXRpb24uZ2V0KDEpLCAwLCAwLCAwLCBsb2NhdGlvbi5nZXQoMCkpKSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9p
ZCBTdG9yZShSV1RleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0
aH0sdWludDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hl
Y2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0dXJlIHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJl
LmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgMCwg
bG9jYXRpb24uZ2V0KDApLCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0
RGltZW5zaW9ucyhSV1RleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiB0aHJlYWQgV2lk
dGgsdWludCogdGhyZWFkIEhlaWdodClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgd2lkdGgsIGhlaWdodF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUyRDwke3R5
cGV9JHtsZW5ndGh9PixmbG9hdCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0KWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0XSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1
ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5
RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LGludDIgbG9j
YXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNr
VW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJl
LmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9j
YXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4s
JHt0eXBlfSR7bGVuZ3RofSx1aW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjaGVja0ZhbHNlKCJbU3RvcmVdIiwgIlRleHR1cmUgd3JpdGUgb3V0IG9mIGJv
dW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQoMCwgMCwgMCwgbG9j
YXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVlLCBsZW5ndGgp
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
CisgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBu
YXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3Ro
fT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIEVs
ZW1lbnRzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwg
aGVpZ2h0LCBlbGVtZW50c10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4
ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVt
ZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lk
dGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXRE
aW1lbnNpb25zKFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sZmxvYXQqIHRocmVh
ZCBXaWR0aCxmbG9hdCogdGhyZWFkIEhlaWdodCxmbG9hdCogdGhyZWFkIEVsZW1lbnRzKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBlbGVt
ZW50c10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5s
b2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
aGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2Fk
KFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4saW50MyBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltM
b2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCku
ZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDIpLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxv
Y2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVu
Z3RofT4sJHt0eXBlfSR7bGVuZ3RofSx1aW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjaGVja0ZhbHNlKCJbU3RvcmVdIiwgIlRleHR1cmUgd3JpdGUgb3V0
IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQobG9jYXRp
b24uZ2V0KDIpLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hW
ZWN0b3IodmFsdWUsIGxlbmd0aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlM0Q8
JHt0eXBlfSR7bGVuZ3RofT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQs
dWludCogdGhyZWFkIERlcHRoKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkZXB0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguZGVwdGgpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
ZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0
RGltZW5zaW9ucyhSV1RleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PixmbG9hdCogdGhyZWFkIFdp
ZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0LGZsb2F0KiB0aHJlYWQgRGVwdGgpYCwKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGRlcHRoXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9t
KEVQdHIuYm94KHRleC5kZXB0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhl
aWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVyZTNEPCR7dHlw
ZX0ke2xlbmd0aH0+LGludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91
dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIDAsIGxv
Y2F0aW9uLmdldCgyKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBT
dG9yZShSV1RleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQz
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFs
dWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2Uo
IltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFs
dWUoKS5zZXRFbGVtZW50Q2hlY2tlZCgwLCAwLCBsb2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdl
dCgxKSwgbG9jYXRpb24uZ2V0KDApLCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHR5cGUgb2YgWyJoYWxmIiwgImZs
b2F0Il0pIHsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0
dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9j
YXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwg
MF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxv
Y2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9u
LmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVj
dG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUo
KSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sJHt0eXBlfSBDb21wYXJlVmFsdWUs
aW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIGNvbXBhcmVWYWx1ZSwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSks
IDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zm
c2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCkpKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21w
TGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9u
LCR7dHlwZX0gQ29tcGFyZVZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEPCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlLGludDIg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgdGhpcworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
MCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBs
ZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRp
b25BcnJheSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBCaWFzLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5n
ZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0
dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0
YUFycmF5LCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBs
b2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBERFkpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0g
W2RkeC5nZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGRkeUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVy
ZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9h
dDIgRERZLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeSwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQo
MSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2Rk
eC5nZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRk
eUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUo
dGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwg
ZGVsdGFBcnJheSwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0
aW9uLGZsb2F0IExPRClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgbG9kXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9u
QXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1
cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1
bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9j
YXRpb24sZmxvYXQgTE9ELGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2QsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24u
Z2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5
ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCks
IHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxvZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4
dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVy
ZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNl
dF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVy
ZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVy
ZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklY
TUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBG
SVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlRGVwdGgyRDwke3R5
cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1
ZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJs
dWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBv
ZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxl
bWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVw
dGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVl
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBj
b21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDIgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVl
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50
IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDIgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21w
UmVkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0
IGNvbXBhcmVfdmFsdWUsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZSwgb2Zmc2V0XSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21w
R3JlZW4oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxv
YXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wR3JlZW4oVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSxp
bnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0
aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFsdWUp
YCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNv
bXBhcmVWYWx1ZV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZh
bHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBBbHBoYShUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVy
aW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJDbXBBbHBoYShUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlv
bixmbG9hdCBjb21wYXJlX3ZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRo
ZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9h
ZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBv
dXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2Nh
dGlvbi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmVE
ZXB0aDJEPCR7dHlwZX0+LGludDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0
dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNr
ZWQoMCwgbG9jYXRpb24uZ2V0KDIpLCAwLCBsb2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQuZ2V0KDEp
LCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZzZXQuZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmVEZXB0aDJEPCR7
dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWln
aHQsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBudW1iZXJPZkxldmVsc10pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXREaW1lbnNp
b25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXguaGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwo
bWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRo
MkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24u
Z2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBs
ZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEQXJy
YXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdl
dCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0Lmdl
dCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBs
ZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRp
b25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24sJHt0eXBlfSBDb21wYXJlVmFsdWUpYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZV0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZh
bHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9h
ZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24sJHt0eXBlfSBDb21wYXJlVmFsdWUsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZSwgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9j
YXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07Cisg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBv
ZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4
dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbiwke3R5cGV9
IENvbXBhcmVWYWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0aGlzCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlw
ZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlLGludDIgb2Zm
c2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgdGhpcworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlhcylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEp
LCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9h
ZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgYmlhcy5sb2FkVmFsdWUoKSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZURlcHRo
MkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzLGludDIg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uLCBiaWFzLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRp
b25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRp
b24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29m
ZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBs
ZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIGJpYXMubG9hZFZhbHVl
KCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQyIERE
WCxmbG9hdDIgRERZKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uLCBkZHgsIGRkeV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2Nh
dGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2Rk
eC5nZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRk
eUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCks
IHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURl
cHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdDIgRERYLGZs
b2F0MiBERFksaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdl
dCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9m
ZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rv
cihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCks
IGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IExPRClgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJl
RGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IExPRCxp
bnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgbG9kLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9j
YXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9j
YXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0g
W29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIGxvZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVy
ZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0
dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zm
c2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50
IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNh
bXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0
dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3Jl
ZW4oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixp
bnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IElt
cGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklY
TUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlRGVwdGgyREFycmF5PCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5n
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJB
bHBoYShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdh
dGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBs
b2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8
JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFy
ZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0
ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVl
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50
IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVy
aW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJDbXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBn
YXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00
IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24g
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wR3Jl
ZW4oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixm
bG9hdCBjb21wYXJlX3ZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJp
bmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckNtcEJsdWUoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBCbHVlKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29t
cGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBBbHBo
YShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZs
b2F0IGNvbXBhcmVfdmFsdWUpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0
aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92
YWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9PixpbnQ0IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRz
IiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMyksIGxv
Y2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVy
ZURlcHRoMkRBcnJheTwke3R5cGV9PixpbnQ0IGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0i
LCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1l
bnRDaGVja2VkKGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIpLCAwLCBsb2NhdGlvbi5n
ZXQoMSkgKyBvZmZzZXQuZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZzZXQuZ2V0KDApKSkp
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNp
b25zKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJl
YWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRWxlbWVudHMsdWludCog
dGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50cywgbnVtYmVyT2ZMZXZlbHNdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5z
aW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7
CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVs
KG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRl
eC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUo
dGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSkpOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBM
ZXZlbFplcm8oVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
biwke3R5cGV9IENvbXBhcmVWYWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzCisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1
ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0
dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0MyBERFgs
ZmxvYXQzIEREWSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRp
b25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0
KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHgu
Z2V0KDApLCBkZHguZ2V0KDEpLCBkZHguZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCBkZHkuZ2V0KDIpXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0
dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1w
bGVMZXZlbChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
LGZsb2F0IExPRClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgbG9kXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJy
YXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwg
MSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9h
ZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog
SW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhN
RTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlRGVwdGhDdWJlPCR7dHlw
ZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aEN1YmU8JHt0
eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZh
bHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0
dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24g
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wR3Jl
ZW4oVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9h
dCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAv
LyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aEN1
YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29t
cGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyQ21wQWxwaGEoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVy
aW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVu
c2lvbnMoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVh
ZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdo
dCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0g
dGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9
IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5s
YXllckNvdW50ICE9IDYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJDdWJlIHRleHR1cmUgZG9lc24ndCBoYXZlIDYgZmFjZXMiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3VudCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRp
bmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWln
aHRBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlRGVwdGgyRDwke3R5
cGV9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodClgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0XSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCks
IDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixmbG9h
dCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0KWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbiAoW3RleHR1cmUsIHdpZHRoLCBoZWlnaHRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0gTG9hZChSV1RleHR1cmVEZXB0aDJEPCR7dHlwZX0+LGludDIgbG9jYXRpb24pYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAi
VGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRD
aGVja2VkKDAsIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmVE
ZXB0aDJEPCR7dHlwZX0+LCR7dHlwZX0sdWludDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0dXJlIHdyaXRlIG91dCBvZiBib3VuZHMi
LCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKDAsIDAsIDAsIGxvY2F0aW9u
LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApLCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25z
KFJXVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCog
dGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uIChbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXll
ckNvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAg
ICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMo
UldUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LGZsb2F0KiB0aHJlYWQgV2lkdGgsZmxvYXQq
IHRocmVhZCBIZWlnaHQsZmxvYXQqIHRocmVhZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50c10pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxh
eWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUo
KS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChSV1Rl
eHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQg
b3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRp
b24uZ2V0KDIpLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJl
RGVwdGgyREFycmF5PCR7dHlwZX0+LCR7dHlwZX0sdWludDMgbG9jYXRpb24pYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0dXJlIHdyaXRlIG91dCBvZiBi
b3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdl
dCgyKSwgMCwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCksIHVuYm94VmVjdG9y
KHZhbHVlLCBsZW5ndGgpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGFkZCh0aGluZykKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCmluZGV4IDc4ZDAwOGY4MzVmOWU5YzIzNGVmMmRmNmQ2
ZGVlYTNmNzQyNmNlNjUuLjFiMjZjZjJiMmU2NTE1MjdhMTUyZWU4ZDkyZmYyNWJlZGE2MWQzMzkg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKKysr
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbApAQCAtMzQsNiArMzQs
NyBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IkJ1aWx0aW5WZWN0b3JTZXR0ZXIuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJDYWxsRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9IkNhbGxGdW5jdGlvbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
IkNhc3RzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ2hlY2suanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJDaGVja0xpdGVyYWxUeXBlcy5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9IkNoZWNrTG9vcHMuanMiPjwvc2NyaXB0PgpAQCAtMTIxLDYgKzEyMiw3IEBA
IHRkIHsKICAgICA8c2NyaXB0IHNyYz0iUmV0dXJuLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iUmV0dXJuQ2hlY2tlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlJldHVy
bkV4Y2VwdGlvbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlNhbXBsZXIuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJTdGFuZGFyZExpYnJhcnkuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJTdGF0ZW1lbnRDbG9uZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIj48L3NjcmlwdD4KQEAgLTEzMyw2ICsxMzUs
OCBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVy
YXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVEZWZhdWx0Q29u
c3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlRlcm5hcnlF
eHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVGV4dHVyZS5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlRleHR1cmVPcGVyYXRpb25zLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iVHJhcFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVz
b2x2ZXIuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU2FtcGxlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NhbXBsZXIu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZWU3NzEzZGZjODFmODNjNTg0NzM2MjEyMTc1NjRmMzk1NzJiMTRiOAot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NhbXBsZXIu
anMKQEAgLTAsMCArMSwxNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworInVzZSBzdHJpY3QiOworCitjbGFzcyBTYW1wbGVyIHsKKyAgICBjb25zdHJ1Y3Rv
cihvcHRpb25zKQorICAgIHsKKyAgICAgICAgaWYgKG9wdGlvbnMuckFkZHJlc3NNb2RlID09IHVu
ZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX3JBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX3JBZGRyZXNzTW9kZSA9IG9wdGlvbnMu
ckFkZHJlc3NNb2RlOworICAgICAgICBpZiAob3B0aW9ucy5zQWRkcmVzc01vZGUgPT0gdW5kZWZp
bmVkKQorICAgICAgICAgICAgdGhpcy5fc0FkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fc0FkZHJlc3NNb2RlID0gb3B0aW9ucy5zQWRk
cmVzc01vZGU7CisgICAgICAgIGlmIChvcHRpb25zLnRBZGRyZXNzTW9kZSA9PSB1bmRlZmluZWQp
CisgICAgICAgICAgICB0aGlzLl90QWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICB0aGlzLl90QWRkcmVzc01vZGUgPSBvcHRpb25zLnRBZGRyZXNz
TW9kZTsKKyAgICAgICAgaWYgKG9wdGlvbnMubWluRmlsdGVyID09IHVuZGVmaW5lZCkKKyAgICAg
ICAgICAgIHRoaXMuX21pbkZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgdGhpcy5fbWluRmlsdGVyID0gb3B0aW9ucy5taW5GaWx0ZXI7CisgICAgICAgIGlmIChv
cHRpb25zLm1hZ0ZpbHRlciA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9tYWdGaWx0
ZXIgPSAibmVhcmVzdCI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX21hZ0ZpbHRl
ciA9IG9wdGlvbnMubWFnRmlsdGVyOworICAgICAgICBpZiAob3B0aW9ucy5taXBtYXBGaWx0ZXIg
PT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fbWlwbWFwRmlsdGVyID0gIm5lYXJlc3Qi
OworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9taXBtYXBGaWx0ZXIgPSBvcHRpb25z
Lm1pcG1hcEZpbHRlcjsKKyAgICAgICAgaWYgKG9wdGlvbnMubG9kTWluQ2xhbXAgPT0gdW5kZWZp
bmVkKQorICAgICAgICAgICAgdGhpcy5fbG9kTWluQ2xhbXAgPSAtTnVtYmVyLk1BWF9WQUxVRTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fbG9kTWluQ2xhbXAgPSBvcHRpb25zLmxv
ZE1pbkNsYW1wOworICAgICAgICBpZiAob3B0aW9ucy5sb2RNYXhDbGFtcCA9PSB1bmRlZmluZWQp
CisgICAgICAgICAgICB0aGlzLl9sb2RNYXhDbGFtcCA9IE51bWJlci5NQVhfVkFMVUU7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX2xvZE1heENsYW1wID0gb3B0aW9ucy5sb2RNYXhD
bGFtcDsKKyAgICAgICAgaWYgKG9wdGlvbnMubWF4QW5pc290cm9weSA9PSB1bmRlZmluZWQpCisg
ICAgICAgICAgICB0aGlzLl9tYXhBbmlzb3Ryb3B5ID0gMTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgdGhpcy5fbWF4QW5pc290cm9weSA9IG9wdGlvbnMubWF4QW5pc290cm9weTsKKyAgICAg
ICAgaWYgKG9wdGlvbnMuY29tcGFyZUZ1bmN0aW9uID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAg
IHRoaXMuX2NvbXBhcmVGdW5jdGlvbiA9ICJuZXZlciI7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHRoaXMuX2NvbXBhcmVGdW5jdGlvbiA9IG9wdGlvbnMuY29tcGFyZUZ1bmN0aW9uOworICAg
ICAgICBpZiAob3B0aW9ucy5ib3JkZXJDb2xvciA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0
aGlzLl9ib3JkZXJDb2xvciA9ICJ0cmFuc3BhcmVudEJsYWNrIjsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgdGhpcy5fYm9yZGVyQ29sb3IgPSBvcHRpb25zLmJvcmRlckNvbG9yOworICAgIH0K
KyAgICAKKyAgICBnZXQgckFkZHJlc3NNb2RlKCkgeyByZXR1cm4gdGhpcy5fckFkZHJlc3NNb2Rl
OyB9CisgICAgZ2V0IHNBZGRyZXNzTW9kZSgpIHsgcmV0dXJuIHRoaXMuX3NBZGRyZXNzTW9kZTsg
fQorICAgIGdldCB0QWRkcmVzc01vZGUoKSB7IHJldHVybiB0aGlzLl90QWRkcmVzc01vZGU7IH0K
KyAgICBnZXQgbWluRmlsdGVyKCkgeyByZXR1cm4gdGhpcy5fbWluRmlsdGVyOyB9CisgICAgZ2V0
IG1hZ0ZpbHRlcigpIHsgcmV0dXJuIHRoaXMuX21hZ0ZpbHRlcjsgfQorICAgIGdldCBtaXBtYXBG
aWx0ZXIoKSB7IHJldHVybiB0aGlzLl9taXBtYXBGaWx0ZXI7IH0KKyAgICBnZXQgbG9kTWluQ2xh
bXAoKSB7IHJldHVybiB0aGlzLl9sb2RNaW5DbGFtcDsgfQorICAgIGdldCBsb2RNYXhDbGFtcCgp
IHsgcmV0dXJuIHRoaXMuX2xvZE1heENsYW1wOyB9CisgICAgZ2V0IG1heEFuaXNvdHJvcHkoKSB7
IHJldHVybiB0aGlzLl9tYXhBbmlzb3Ryb3B5OyB9CisgICAgZ2V0IGNvbXBhcmVGdW5jdGlvbigp
IHsgcmV0dXJuIHRoaXMuX2NvbXBhcmVGdW5jdGlvbjsgfQorICAgIGdldCBib3JkZXJDb2xvcigp
IHsgcmV0dXJuIHRoaXMuX2JvcmRlckNvbG9yOyB9CisKKyAgICBjYWxjdWxhdGVCb3JkZXJDb2xv
cihpbm5lclR5cGUpCisgICAgeworICAgICAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUu
My4zCisgICAgICAgIGZ1bmN0aW9uIGNvbXB1dGVWYWx1ZXMoKSB7CisgICAgICAgICAgICBzd2l0
Y2ggKGlubmVyVHlwZSkgeworICAgICAgICAgICAgICAgIGNhc2UgInVjaGFyIjoKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazogMCwg
b3BhcXVlV2hpdGU6IDB4RkZ9OworICAgICAgICAgICAgICAgIGNhc2UgInVzaG9ydCI6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6
IDAsIG9wYXF1ZVdoaXRlOiAweEZGRkZ9OworICAgICAgICAgICAgICAgIGNhc2UgInVpbnQiOgor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJs
YWNrOiAwLCBvcGFxdWVXaGl0ZTogMHhGRkZGRkZGRn07CisgICAgICAgICAgICAgICAgY2FzZSAi
Y2hhciI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwg
b3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdoaXRlOiAweDdGfTsKKyAgICAgICAgICAgICAgICBjYXNl
ICJzaG9ydCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazog
MCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdoaXRlOiAweDdGRkZ9OworICAgICAgICAgICAgICAg
IGNhc2UgImludCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFj
azogMCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdoaXRlOiAweDdGRkZGRkZGfTsKKyAgICAgICAg
ICAgICAgICBjYXNlICJoYWxmIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3Bh
cmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDF9OworICAgICAgICAg
ICAgICAgIGNhc2UgImZsb2F0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3Bh
cmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDF9OworICAgICAgICAg
ICAgICAgIGNhc2UgInVjaGFyMiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNw
YXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4
RkYsIDB4RkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1c2hvcnQyIjoKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBb
MCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHhGRkZGLCAweEZGRkZdfTsKKyAgICAgICAgICAgICAgICBj
YXNlICJ1aW50MiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFj
azogWzAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4RkZGRkZGRkYs
IDB4RkZGRkZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJjaGFyMiI6CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazog
WzAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4N0YsIDB4N0ZdfTsKKyAgICAgICAgICAgICAgICBjYXNl
ICJzaG9ydDIiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6
IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsweDdGRkYsIDB4N0ZG
Rl19OworICAgICAgICAgICAgICAgIGNhc2UgImludDIiOgorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwXSwgb3Bh
cXVlV2hpdGU6IFsweDdGRkZGRkZGLCAweDdGRkZGRkZGXX07CisgICAgICAgICAgICAgICAgY2Fz
ZSAiaGFsZjIiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6
IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsxLCAxXX07CisgICAg
ICAgICAgICAgICAgY2FzZSAiZmxvYXQyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0
cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRl
OiBbMSwgMV19OworICAgICAgICAgICAgICAgIGNhc2UgInVjaGFyMyI6CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazog
WzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4RkYsIDB4RkYsIDB4RkZdfTsKKyAgICAgICAgICAg
ICAgICBjYXNlICJ1c2hvcnQzIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3Bh
cmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZVdoaXRl
OiBbMHhGRkZGLCAweEZGRkYsIDB4RkZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgInVpbnQz
IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwg
MF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHhGRkZGRkZGRiwgMHhG
RkZGRkZGRiwgMHhGRkZGRkZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgImNoYXIzIjoKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9w
YXF1ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHg3RiwgMHg3RiwgMHg3Rl19Owor
ICAgICAgICAgICAgICAgIGNhc2UgInNob3J0MyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVy
biB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBv
cGFxdWVXaGl0ZTogWzB4N0ZGRiwgMHg3RkZGLCAweDdGRkZdfTsKKyAgICAgICAgICAgICAgICBj
YXNlICJpbnQzIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNr
OiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHg3RkZG
RkZGRiwgMHg3RkZGRkZGRiwgMHg3RkZGRkZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgImhh
bGYzIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwg
MCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMSwgMSwgMV19Owor
ICAgICAgICAgICAgICAgIGNhc2UgImZsb2F0MyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVy
biB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBv
cGFxdWVXaGl0ZTogWzEsIDEsIDFdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1Y2hhcjQiOgor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwLCAw
XSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAweEZGXSwgb3BhcXVlV2hpdGU6IFsweEZGLCAweEZG
LCAweEZGLCAweEZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAidXNob3J0NCI6CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBvcGFx
dWVCbGFjazogWzAsIDAsIDAsIDB4RkZGRl0sIG9wYXF1ZVdoaXRlOiBbMHhGRkZGLCAweEZGRkYs
IDB4RkZGRiwgMHhGRkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAidWludDQiOgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3Bh
cXVlQmxhY2s6IFswLCAwLCAwLCAweEZGRkZGRkZGXSwgb3BhcXVlV2hpdGU6IFsweEZGRkZGRkZG
LCAweEZGRkZGRkZGLCAweEZGRkZGRkZGLCAweEZGRkZGRkZGXX07CisgICAgICAgICAgICAgICAg
Y2FzZSAiY2hhcjQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50Qmxh
Y2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAweDdGXSwgb3BhcXVlV2hp
dGU6IFsweDdGLCAweDdGLCAweDdGLCAweDdGXX07CisgICAgICAgICAgICAgICAgY2FzZSAic2hv
cnQ0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwg
MCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMHg3RkZGXSwgb3BhcXVlV2hpdGU6IFsw
eDdGRkYsIDB4N0ZGRiwgMHg3RkZGLCAweDdGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJp
bnQ0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwg
MCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMHg3RkZGRkZGRl0sIG9wYXF1ZVdoaXRl
OiBbMHg3RkZGRkZGRiwgMHg3RkZGRkZGRiwgMHg3RkZGRkZGRiwgMHg3RkZGRkZGRl19OworICAg
ICAgICAgICAgICAgIGNhc2UgImhhbGY0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0
cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMV0s
IG9wYXF1ZVdoaXRlOiBbMSwgMSwgMSwgMV19OworICAgICAgICAgICAgICAgIGNhc2UgImZsb2F0
NCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAs
IDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDAsIDFdLCBvcGFxdWVXaGl0ZTogWzEsIDEsIDEs
IDFdfTsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIlVua25vd24gdGV4dHVyZSBpbm5lciB0eXBlIik7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNvbXB1dGVWYWx1ZXMoKVt0aGlzLmJvcmRlckNv
bG9yXTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9TdGFuZGFyZExpYnJhcnkuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFu
ZGFyZExpYnJhcnkuanMKaW5kZXggM2RkNGZlZTE4NjAwZDVjZDJhODk1YWQ1YTQ3OTcyMWRhNzc4
OGNjMS4uZGZjZWYzNGVmNDY4NDlhYTVhY2NjYzAyNjM4YmMzNDkxNDg2ODIyNyAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCisrKyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcwpAQCAtNTcs
NyArNTcsNyBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICB9
CiAgICAgICAgIHByaW50KGBuYXRpdmUgdHlwZWRlZiBzYW1wbGVyO2ApOwogICAgICAgICBmb3Ig
KHZhciB0eXBlIG9mIFtgVGV4dHVyZTFEYCwgYFJXVGV4dHVyZTFEYCwgYFRleHR1cmUxREFycmF5
YCwgYFJXVGV4dHVyZTFEQXJyYXlgLCBgVGV4dHVyZTJEYCwgYFJXVGV4dHVyZTJEYCwgYFRleHR1
cmUyREFycmF5YCwgYFJXVGV4dHVyZTJEQXJyYXlgLCBgVGV4dHVyZTNEYCwgYFJXVGV4dHVyZTNE
YCwgYFRleHR1cmVDdWJlYF0pIHsKLSAgICAgICAgICAgIGZvciAodmFyIHR5cGVBcmd1bWVudEJh
c2Ugb2YgW2Bib29sYCwgYHVjaGFyYCwgYHVzaG9ydGAsIGB1aW50YCwgYGNoYXJgLCBgc2hvcnRg
LCBgaW50YCwgYGhhbGZgLCBgZmxvYXRgXSkgeworICAgICAgICAgICAgZm9yICh2YXIgdHlwZUFy
Z3VtZW50QmFzZSBvZiBbYHVjaGFyYCwgYHVzaG9ydGAsIGB1aW50YCwgYGNoYXJgLCBgc2hvcnRg
LCBgaW50YCwgYGhhbGZgLCBgZmxvYXRgXSkgewogICAgICAgICAgICAgICAgIGZvciAodmFyIHNp
emUgb2YgW2BgLCBgMmAsIGAzYCwgYDRgXSkgewogICAgICAgICAgICAgICAgICAgICBwcmludChg
bmF0aXZlIHR5cGVkZWYgJHt0eXBlfTwke3R5cGVBcmd1bWVudEJhc2V9JHtzaXplfT47YCk7CiAg
ICAgICAgICAgICAgICAgfQpAQCAtMTg5Nyw3ICsxODk3LDggQEAgbGV0IHN0YW5kYXJkTGlicmFy
eSA9IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBJbnRlcmxv
Y2tlZENvbXBhcmVFeGNoYW5nZSh0aHJlYWQgYXRvbWljXyR7dHlwZX0qLCAke3R5cGV9LCAke3R5
cGV9LCB0aHJlYWQgJHt0eXBlfSopO2ApOwogICAgICAgICB9CiAgICAgICAgIHByaW50KCk7Ci0g
ICAgICAgIAorICAgICAgICAqLworCiAgICAgICAgIGZvciAodmFyIHR5cGUgb2YgW2B1Y2hhcmAs
IGB1c2hvcnRgLCBgdWludGAsIGBjaGFyYCwgYHNob3J0YCwgYGludGAsIGBoYWxmYCwgYGZsb2F0
YF0pIHsKICAgICAgICAgICAgIGZvciAodmFyIGxlbmd0aCBvZiBbYGAsIGAyYCwgYDNgLCBgNGBd
KSB7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBs
ZShUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTtg
KTsKQEAgLTE5NTgsMTYgKzE5NTksNiBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9u
KCkgewogICAgICAgICAgICAgICAgIHByaW50KCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4s
IHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4s
IHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwotICAgICAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUzRDwke3R5cGV9JHtsZW5n
dGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwotICAgICAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUzRDwke3R5cGV9JHtsZW5n
dGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4s
IHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwotICAgICAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTNEPCR7dHlwZX0k
e2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTNEPCR7dHlwZX0ke2xl
bmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDMgb2Zmc2V0KTtgKTsKLSAgICAg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTNEPCR7
dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlM0Q8JHt0eXBl
fSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwot
ICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVy
ZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAg
ICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTNE
PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDMgb2Zmc2V0
KTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9h
ZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIGludDQgbG9jYXRpb24pO2ApOwogICAgICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUzRDwk
e3R5cGV9JHtsZW5ndGh9PiwgaW50NCBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwogICAgICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUzRDwke3R5
cGV9JHtsZW5ndGh9PiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQg
dWludCogSGVpZ2h0LCB0aHJlYWQgdWludCogRGVwdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxl
dmVscyk7YCk7CkBAIC0yMDEwLDk3ICsyMDAxLDk2IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAo
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQotICAgICAgICAKKwogICAgICAgICBmb3IgKHZhciB0eXBlIG9mIFtgaGFsZmAsIGBm
bG9hdGBdKSB7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwogICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+
LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IENvbXBhcmVW
YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRl
eHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9j
YXRpb24sIGZsb2F0IENvbXBhcmVWYWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwk
e3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBD
b21wYXJlVmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25T
dGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUsIGludDIgb2Zmc2V0KTtg
KTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURl
cHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgJHt0eXBlfSBDb21wYXJl
VmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChU
ZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCAke3R5cGV9
IENvbXBhcmVWYWx1ZSwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2Ft
cGxlciwgZmxvYXQyIGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1ZSk7YCk7CisgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0
aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZh
bHVlLCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0g
U2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0
aW9uLCBmbG9hdCBCaWFzKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBT
YW1wbGVCaWFzKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRp
b24sIGZsb2F0IEJpYXMsIGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBm
bG9hdDIgbG9jYXRpb24sIGZsb2F0MiBERFgsIGZsb2F0MiBERFkpO2ApOwogICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4s
IHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQyIEREWCwgZmxvYXQyIEREWSwgaW50MiBv
ZmZzZXQpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVs
KFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0
IExPRCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwo
VGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQg
TE9ELCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0g
R2F0aGVyKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24p
O2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlcihUZXh0dXJlRGVw
dGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7
Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyUmVkKFRleHR1cmVEZXB0
aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwg
c2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4s
IHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0gR2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZs
b2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IEdhdGhlckJsdWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZs
b2F0MiBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0
aGVyQmx1ZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9u
LCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0
aGVyQWxwaGEoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlv
bik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQWxwaGEoVGV4
dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZz
ZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcChUZXh0
dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0
aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfSBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJp
c29uU3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZz
ZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcFJlZChU
ZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxv
Y2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJD
b21wYXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50
MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNt
cEdyZWVuKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBm
bG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+
LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVf
dmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNv
blN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRoMkQ8
JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQg
Y29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVy
Q29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2Ap
OwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEFscGhhKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRp
b24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2Nh
dGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2Nh
dGlvbik7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChU
ZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9m
ZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVu
KFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwor
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlRGVw
dGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7
CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZURl
cHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7CisgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlRGVwdGgyRDwke3R5
cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBs
ZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBs
ZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7CisgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9m
ZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcFJl
ZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9h
dCBjb21wYXJlX3ZhbHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9j
YXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wR3JlZW4oVGV4dHVyZURlcHRoMkQ8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7
CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEdyZWVuKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBh
cmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyQ21wQmx1ZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxv
YXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wQmx1ZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwg
c2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNl
dCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEFscGhh
KFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0
IGNvbXBhcmVfdmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJDbXBBbHBoYShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxv
Y2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgaW50
MyBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gTG9hZChU
ZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgaW50MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwog
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVp
bnQqIEhlaWdodCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTtgKTsKICAgICAgICAgICAg
IHByaW50KCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CiAg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEQXJy
YXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwot
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgy
REFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24s
IGZsb2F0IENvbXBhcmVWYWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJp
c29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgQ29tcGFyZVZhbHVlLCBpbnQyIG9mZnNl
dCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxa
ZXJvKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUs
IGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgQ29tcGFyZVZhbHVlKTtgKTsKLSAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkRBcnJh
eTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9h
dCBDb21wYXJlVmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxl
ciwgZmxvYXQzIGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1ZSk7YCk7CisgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgJHt0eXBlfSBDb21wYXJlVmFsdWUsIGlu
dDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVD
bXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgJHt0eXBlfSBDb21wYXJlVmFsdWUsIGlu
dDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVC
aWFzKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlv
biwgZmxvYXQgQmlhcyk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlQmlhcyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9j
YXRpb24sIGZsb2F0IEJpYXMsIGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQyIEREWCwgZmxvYXQyIEREWSk7YCk7CiAgICAg
ICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlRGVwdGgyREFy
cmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0MiBERFgsIGZsb2F0
MiBERFksIGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSBTYW1wbGVMZXZlbChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9h
dDMgbG9jYXRpb24sIGZsb2F0IExPRCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwg
ZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBMT0QsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXIoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBHYXRoZXIoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwg
ZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX0gR2F0aGVyUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBs
ZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX0gR2F0aGVyUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0
MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9IEdhdGhlckdyZWVuKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIs
IGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0g
R2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gR2F0aGVyQmx1ZShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBm
bG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdh
dGhlckJsdWUoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxv
Y2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX0gR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxv
YXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRo
ZXJBbHBoYShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9j
YXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlz
b25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkRBcnJh
eTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9h
dCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX0gR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNh
bXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1
ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wUmVkKFRl
eHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0
MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJE
QXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwg
ZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX0gR2F0aGVyQ21wR3JlZW4oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNv
bXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQy
IG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21w
Qmx1ZShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRl
LCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRoMkRBcnJheTwk
e3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBj
b21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0gR2F0aGVyQ21wQWxwaGEoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2Ft
cGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVl
KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBBbHBoYShU
ZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9h
dDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVEZXB0aDJEQXJyYXk8
JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBz
YW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBl
fT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2Ft
cGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2Ft
cGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+
LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOworICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3Zh
bHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00
IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9h
dDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9m
ZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEdy
ZWVuKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlv
biwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX00IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBs
ZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2Ap
OworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBCbHVlKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQg
Y29tcGFyZV92YWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdh
dGhlckNtcEJsdWUoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJE
QXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92
YWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEFs
cGhhKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlv
biwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgaW50
NCBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gTG9hZChU
ZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBpbnQ0IGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7
YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJl
RGVwdGgyREFycmF5PCR7dHlwZX0+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgs
IHRocmVhZCB1aW50KiBIZWlnaHQsIHRocmVhZCB1aW50KiBFbGVtZW50cywgdGhyZWFkIHVpbnQq
IE51bWJlck9mTGV2ZWxzKTtgKTsKICAgICAgICAgICAgIHByaW50KCk7CiAgICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJp
c29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgQ29tcGFyZVZhbHVlKTtgKTsKLSAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURl
cHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9u
LCBmbG9hdCBDb21wYXJlVmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMg
bG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1ZSk7YCk7CiAg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGhD
dWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IEJpYXMpO2ApOwot
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRo
Q3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdDIgRERYLCBmbG9h
dDIgRERZKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFk
KFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxv
YXQzIEREWCwgZmxvYXQzIEREWSk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uLCBmbG9hdCBMT0QpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IEdhdGhlcihUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9j
YXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlclJlZChU
ZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwot
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckdyZWVuKFRleHR1cmVEZXB0
aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQmx1ZShUZXh0dXJlRGVwdGhDdWJlPCR7dHlw
ZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9IEdhdGhlckFscGhhKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBs
ZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX0gR2F0aGVyQ21wKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29u
U3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aEN1YmU8
JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQg
Y29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0
aGVyQ21wR3JlZW4oVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25T
dGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aEN1YmU8
JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQg
Y29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0
aGVyQ21wQWxwaGEoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25T
dGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4s
IGludDQgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXIoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9u
KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1
cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CisgICAg
ICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmVEZXB0aEN1
YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxl
ciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBs
b2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX00IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOworICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBHcmVlbihUZXh0dXJlRGVwdGhDdWJl
PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUp
O2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBCbHVlKFRl
eHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQg
Y29tcGFyZV92YWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdh
dGhlckNtcEFscGhhKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBs
b2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0
aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCB1aW50IE1p
cExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBIZWlnaHQsIHRocmVhZCB1
aW50KiBOdW1iZXJPZkxldmVscyk7YCk7CiAgICAgICAgICAgICBwcmludCgpOwogICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlRGVwdGgyRDwke3R5
cGV9PiwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogSGVpZ2h0KTtgKTsKQEAgLTIx
MTQsNyArMjEwNCw2IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICBwcmludChgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlRGVwdGgyREFycmF5PCR7
dHlwZX0+LCAke3R5cGV9LCB1aW50MyBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICBwcmludCgp
OwogICAgICAgICB9Ci0gICAgICAgICovCiAgICAgfSkoKTsKICAgICByZXR1cm4gcmVzdWx0Owog
fSkoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRt
bCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbAppbmRleCA2MDdhNjk1
MzI1M2RhNzI3YjFkZTM3Njc4ZWMzODhiNGZhMjQwNDA1Li5lNzhjY2FjMWEwMjU0Y2JjOTIzYjlk
ZDZjMTg1YWVlNzhjNzJhODE1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9UZXN0Lmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5o
dG1sCkBAIC0yOCw2ICsyOCw3IEBACiA8c2NyaXB0IHNyYz0iQnVpbHRpblZlY3RvclNldHRlci5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2FsbEV4cHJlc3Npb24uanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IkNhbGxGdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ2Fz
dHMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNoZWNrLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJDaGVja0xpdGVyYWxUeXBlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2hl
Y2tMb29wcy5qcyI+PC9zY3JpcHQ+CkBAIC0xMTUsNiArMTE2LDcgQEAKIDxzY3JpcHQgc3JjPSJS
ZXR1cm4uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJldHVybkNoZWNrZXIuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IlJldHVybkV4Y2VwdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iU2FtcGxlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3RhbmRhcmRMaWJyYXJ5
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTdGF0ZW1lbnRDbG9uZXIuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IlN0cnVjdExheW91dEJ1aWxkZXIuanMiPjwvc2NyaXB0PgpAQCAtMTI3
LDYgKzEyOSw4IEBACiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJh
dG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRGVmYXVsdENvbnN0cnVj
dG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRlcm5hcnlFeHByZXNzaW9u
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUZXh0dXJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJUZXh0dXJlT3BlcmF0aW9ucy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHJh
cFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4KQEAgLTE1Miw3
ICsxNTYsNyBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIGRvVGVzdEluQnJvd3NlcigpCiB7Ci0gICAg
dmFyIHRlc3RlciA9IGRvVGVzdCgvLiovKTsKKyAgICB2YXIgdGVzdGVyID0gZG9UZXN0KC90ZXh0
dXJlLyk7CiAgICAgdmFyIGxhc3RUaW1lOwogICAgIGZ1bmN0aW9uIG5leHQoKQogICAgIHsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCmluZGV4IDRhMTFjMTg1ODU5OTc3OGZmMzkx
YjA0ZjI2MzVjNWI3MTAwNWRmN2YuLjYxZDhkMjA2MWEwODlmMmRjNjgyMTFmYmY1NzJkNDk1YmQ4
ZTgzOTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMK
KysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwpAQCAtOTQsNiArOTQs
MTMzIEBAIGZ1bmN0aW9uIG1ha2VFbnVtKHByb2dyYW0sIGVudW1OYW1lLCB2YWx1ZSkKICAgICBy
ZXR1cm4gVHlwZWRWYWx1ZS5ib3goZW51bVR5cGUsIGVudW1NZW1iZXIudmFsdWUudW5pZnlOb2Rl
LnZhbHVlRm9yU2VsZWN0ZWRUeXBlKTsKIH0KIAorZnVuY3Rpb24gbWFrZVNhbXBsZXIocHJvZ3Jh
bSwgb3B0aW9ucykKK3sKKyAgICAvLyBlbnVtIFdlYkdQVUFkZHJlc3NNb2RlIHsKKyAgICAvLyAg
ICAgImNsYW1wVG9FZGdlIiwKKyAgICAvLyAgICAgInJlcGVhdCIsCisgICAgLy8gICAgICJtaXJy
b3JSZXBlYXQiLAorICAgIC8vICAgICAiY2xhbXBUb0JvcmRlckNvbG9yIgorICAgIC8vIH0KKyAg
ICAvLworICAgIC8vIGVudW0gV2ViR1BVRmlsdGVyTW9kZSB7CisgICAgLy8gICAgICJuZWFyZXN0
IiwKKyAgICAvLyAgICAgImxpbmVhciIKKyAgICAvLyB9CisgICAgLy8KKyAgICAvLyBlbnVtIFdl
YkdQVUNvbXBhcmVGdW5jdGlvbiB7CisgICAgLy8gICAgICJuZXZlciIsCisgICAgLy8gICAgICJs
ZXNzIiwKKyAgICAvLyAgICAgImVxdWFsIiwKKyAgICAvLyAgICAgImxlc3NFcXVhbCIsCisgICAg
Ly8gICAgICJncmVhdGVyIiwKKyAgICAvLyAgICAgIm5vdEVxdWFsIiwKKyAgICAvLyAgICAgImdy
ZWF0ZXJFcXVhbCIsCisgICAgLy8gICAgICJhbHdheXMiCisgICAgLy8gfQorICAgIC8vCisgICAg
Ly8gZW51bSBXZWJHUFVCb3JkZXJDb2xvciB7CisgICAgLy8gICAgICJ0cmFuc3BhcmVudEJsYWNr
IiwKKyAgICAvLyAgICAgIm9wYXF1ZUJsYWNrIiwKKyAgICAvLyAgICAgIm9wYXF1ZVdoaXRlIgor
ICAgIC8vIH0KKyAgICAvLworICAgIC8vIGRpY3Rpb25hcnkgV2ViR1BVU2FtcGxlckRlc2NyaXB0
b3IgeworICAgIC8vICAgICBXZWJHUFVkZHJlc3NNb2RlIHJBZGRyZXNzTW9kZSA9ICJjbGFtcFRv
RWRnZSI7CisgICAgLy8gICAgIFdlYkdQVWRkcmVzc01vZGUgc0FkZHJlc3NNb2RlID0gImNsYW1w
VG9FZGdlIjsKKyAgICAvLyAgICAgV2ViR1BVZGRyZXNzTW9kZSB0QWRkcmVzc01vZGUgPSAiY2xh
bXBUb0VkZ2UiOworICAgIC8vICAgICBXZWJHUFVGaWx0ZXJNb2RlRW51bSBtYWdGaWx0ZXIgPSAi
bmVhcmVzdCI7CisgICAgLy8gICAgIFdlYkdQVUZpbHRlck1vZGVFbnVtIG1pbkZpbHRlciA9ICJu
ZWFyZXN0IjsKKyAgICAvLyAgICAgV2ViR1BVRmlsdGVyTW9kZUVudW0gbWlwbWFwRmlsdGVyID0g
Im5lYXJlc3QiOworICAgIC8vICAgICBmbG9hdCBsb2RNaW5DbGFtcCA9IDA7CisgICAgLy8gICAg
IGZsb2F0IGxvZE1heENsYW1wID0gTnVtYmVyLk1BWF9WQUxVRTsKKyAgICAvLyAgICAgdW5zaWdu
ZWQgbG9uZyBtYXhBbmlzb3Ryb3B5ID0gMTsKKyAgICAvLyAgICAgV2ViR1BVQ29tcGFyZUZ1bmN0
aW9uIGNvbXBhcmVGdW5jdGlvbiA9ICJuZXZlciI7CisgICAgLy8gICAgIFdlYkdQVUJvcmRlckNv
bG9yIGJvcmRlckNvbG9yID0gInRyYW5zcGFyZW50QmxhY2siOworICAgIC8vIH07CisgICAgcmV0
dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljcy5zYW1wbGVyLCBuZXcgU2FtcGxl
cihvcHRpb25zKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UxRFRleHR1cmUocHJvZ3JhbSwgbWlwbWFw
cywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50
cmluc2ljc1tgVGV4dHVyZTFEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTFEKGVsZW1l
bnRUeXBlLCBtaXBtYXBzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UxRFRleHR1cmVBcnJheShwcm9n
cmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHBy
b2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZTFEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBU
ZXh0dXJlMURBcnJheShlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24gbWFrZTJE
VGV4dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlw
ZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlMkQ8JHtlbGVtZW50VHlwZX0+
YF0sIG5ldyBUZXh0dXJlMkQoZWxlbWVudFR5cGUsIG1pcG1hcHMpKTsKK30KKworZnVuY3Rpb24g
bWFrZTJEVGV4dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICBy
ZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlMkRBcnJheTwk
e2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUyREFycmF5KGVsZW1lbnRUeXBlLCBhcnJheSkp
OworfQorCitmdW5jdGlvbiBtYWtlM0RUZXh0dXJlKHByb2dyYW0sIG1pcG1hcHMsIGVsZW1lbnRU
eXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRl
eHR1cmUzRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUzRChlbGVtZW50VHlwZSwgbWlw
bWFwcykpOworfQorCitmdW5jdGlvbiBtYWtlVGV4dHVyZUN1YmUocHJvZ3JhbSwgYXJyYXksIGVs
ZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNp
Y3NbYFRleHR1cmVDdWJlPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZUN1YmUoZWxlbWVu
dFR5cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzFEVGV4dHVyZShwcm9ncmFtLCBl
bGVtZW50cywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dy
YW0uaW50cmluc2ljc1tgUldUZXh0dXJlMUQ8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJl
MURSVyhlbGVtZW50VHlwZSwgZWxlbWVudHMpKTsKK30KKworZnVuY3Rpb24gbWFrZVJXMURUZXh0
dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBl
ZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTFEQXJyYXk8JHtlbGVtZW50
VHlwZX0+YF0sIG5ldyBUZXh0dXJlMURBcnJheVJXKGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQor
CitmdW5jdGlvbiBtYWtlUlcyRFRleHR1cmUocHJvZ3JhbSwgcm93cywgZWxlbWVudFR5cGUpCit7
CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldUZXh0dXJl
MkQ8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlMkRSVyhlbGVtZW50VHlwZSwgcm93cykp
OworfQorCitmdW5jdGlvbiBtYWtlUlcyRFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxl
bWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2lj
c1tgUldUZXh0dXJlMkRBcnJheTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUyREFycmF5
UlcoZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzNEVGV4dHVyZShw
cm9ncmFtLCBkZXB0aFNsaWNlcywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFs
dWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldUZXh0dXJlM0Q8JHtlbGVtZW50VHlwZX0+YF0s
IG5ldyBUZXh0dXJlM0RSVyhlbGVtZW50VHlwZSwgZGVwdGhTbGljZXMpKTsKK30KKworZnVuY3Rp
b24gbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIG1pcG1hcHMsIGVsZW1lbnRUeXBlKQorewor
ICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmVEZXB0
aDJEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZURlcHRoMkQoZWxlbWVudFR5cGUsIG1p
cG1hcHMpKTsKK30KKworZnVuY3Rpb24gbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwg
YXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFt
LmludHJpbnNpY3NbYFRleHR1cmVEZXB0aDJEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBU
ZXh0dXJlRGVwdGgyREFycmF5KGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQorCitmdW5jdGlvbiBt
YWtlRGVwdGhUZXh0dXJlQ3ViZShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAg
cmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZURlcHRoQ3Vi
ZTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmVEZXB0aEN1YmUoZWxlbWVudFR5cGUsIGFy
cmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzJERGVwdGhUZXh0dXJlKHByb2dyYW0sIHJvd3Ms
IGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJp
bnNpY3NbYFJXVGV4dHVyZURlcHRoMkQ8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlRGVw
dGgyRFJXKGVsZW1lbnRUeXBlLCByb3dzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzJERGVwdGhU
ZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBU
eXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZURlcHRoMkRBcnJheTwk
e2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmVEZXB0aDJEQXJyYXlSVyhlbGVtZW50VHlwZSwg
YXJyYXkpKTsKK30KKwogZnVuY3Rpb24gY2hlY2tOdW1iZXIocHJvZ3JhbSwgcmVzdWx0LCBleHBl
Y3RlZCkKIHsKICAgICBpZiAoIXJlc3VsdC50eXBlLnVuaWZ5Tm9kZS5pc051bWJlcikKQEAgLTU1
ODIsNyArNTcwOSwxNjQwIEBAIHRlc3RzLmFycmF5SW5kZXggPSBmdW5jdGlvbigpIHsKICAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBb
IG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAyKSBdKSwgMyk7CiAgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUluZGV4aW5nIiwg
WyBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCkgXSksIDQpOwogICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJbmRleGluZyIs
IFsgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpIF0pLCA1KTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmci
LCBbIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAyKSBdKSwgNik7ICAg
IAorICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJbmRl
eGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDIpIF0pLCA2
KTsKK30KKworZnVuY3Rpb24gY3JlYXRlVGV4dHVyZXNGb3JUZXN0aW5nKHByb2dyYW0pCit7Cisg
ICAgbGV0IHRleHR1cmUxRCA9IG1ha2UxRFRleHR1cmUocHJvZ3JhbSwgW1sxLCA3LCAxNCwgNzld
LCBbMTMsIDE2XSwgWzE1XV0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlMURBcnJheSA9IG1h
a2UxRFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1sxLCA3LCAxNCwgNzldLCBbMTMsIDE2XSwgWzE1
XV0sIFtbMTYsIDE3LCAxOCwgMTldLCBbMjAsIDIxXSwgWzIyXV1dLCAiZmxvYXQiKTsKKyAgICBs
ZXQgdGV4dHVyZTJEID0gbWFrZTJEVGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAgIFtbMSwgMiwg
MywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAx
Nl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBb
MjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwg
MzZdLAorICAgICAgICBbMzcsIDM4LCAzOSwgNDBdXSwKKyAgICAgICAgW1s0MSwgNDJdXQorICAg
IF0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlMkRBcnJheSA9IG1ha2UyRFRleHR1cmVBcnJh
eShwcm9ncmFtLCBbWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAg
ICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwg
MjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMx
LCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2XSwKKyAgICAgICAgWzM3LCAzOCwgMzks
IDQwXV0sCisgICAgICAgIFtbNDEsIDQyXV0KKyAgICBdLCBbCisgICAgICAgIFtbNDMsIDQ0LCA0
NSwgNDYsIDQ3LCA0OCwgNDksIDUwXSwKKyAgICAgICAgWzUxLCA1MiwgNTMsIDU0LCA1NSwgNTYs
IDU3LCA1OF0sCisgICAgICAgIFs1OSwgNjAsIDYxLCA2MiwgNjMsIDY0LCA2NSwgNjZdLAorICAg
ICAgICBbNjcsIDY4LCA2OSwgNzAsIDcxLCA3MiwgNzMsIDc0XV0sCisgICAgICAgIFtbNzUsIDc2
LCA3NywgNzhdLAorICAgICAgICBbNzksIDgwLCA4MSwgODJdXSwKKyAgICAgICAgW1s4MywgODRd
XQorICAgIF1dLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZTNEID0gbWFrZTNEVGV4dHVyZShw
cm9ncmFtLCBbCisgICAgICAgIFtbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBb
OSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAs
IDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAz
Ml1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MF0sCisgICAgICAg
IFs0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDhdLAorICAgICAgICBbNDksIDUwLCA1MSwg
NTIsIDUzLCA1NCwgNTUsIDU2XSwKKyAgICAgICAgWzU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYz
LCA2NF1dXSwKKyAgICAgICAgW1tbNjUsIDY2LCA2NywgNjhdLAorICAgICAgICBbNjksIDcwLCA3
MSwgNzJdXV0KKyAgICBdLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZUN1YmUgPSBtYWtlVGV4
dHVyZUN1YmUocHJvZ3JhbSwgW1sKKyAgICAgICAgW1sxLCAyXSwKKyAgICAgICAgWzMsIDRdLAor
ICAgICAgICBbNSwgNl0sCisgICAgICAgIFs3LCA4XV0sCisgICAgICAgIFtbOV0sCisgICAgICAg
IFsxMF1dLAorICAgIF0sIFsKKyAgICAgICAgW1sxMSwgMTJdLAorICAgICAgICBbMTMsIDE0XSwK
KyAgICAgICAgWzE1LCAxNl0sCisgICAgICAgIFsxNywgMThdXSwKKyAgICAgICAgW1sxOV0sCisg
ICAgICAgIFsyMF1dLAorICAgIF0sIFsKKyAgICAgICAgW1syMSwgMjJdLAorICAgICAgICBbMjMs
IDI0XSwKKyAgICAgICAgWzI1LCAyNl0sCisgICAgICAgIFsyNywgMjhdXSwKKyAgICAgICAgW1sy
OV0sCisgICAgICAgIFszMF1dLAorICAgIF0sIFsKKyAgICAgICAgW1szMSwgMzJdLAorICAgICAg
ICBbMzMsIDM0XSwKKyAgICAgICAgWzM1LCAzNl0sCisgICAgICAgIFszNywgMzhdXSwKKyAgICAg
ICAgW1szOV0sCisgICAgICAgIFs0MF1dLAorICAgIF0sIFsKKyAgICAgICAgW1s0MSwgNDJdLAor
ICAgICAgICBbNDMsIDQ0XSwKKyAgICAgICAgWzQ1LCA0Nl0sCisgICAgICAgIFs0NywgNDhdXSwK
KyAgICAgICAgW1s0OV0sCisgICAgICAgIFs1MF1dLAorICAgIF0sIFsKKyAgICAgICAgW1s1MSwg
NTJdLAorICAgICAgICBbNTMsIDU0XSwKKyAgICAgICAgWzU1LCA1Nl0sCisgICAgICAgIFs1Nywg
NThdXSwKKyAgICAgICAgW1s1OV0sCisgICAgICAgIFs2MF1dLAorICAgIF1dLCAiZmxvYXQiKTsK
KyAgICBsZXQgcndUZXh0dXJlMUQgPSBtYWtlUlcxRFRleHR1cmUocHJvZ3JhbSwgWzEsIDIsIDMs
IDQsIDUsIDYsIDcsIDhdLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlMURBcnJheSA9IG1h
a2VSVzFEVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sIFs5
LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAy
MywgMjRdXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4dHVyZTJEID0gbWFrZVJXMkRUZXh0dXJl
KHByb2dyYW0sIFsKKyAgICAgICAgWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBb
OSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAs
IDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAz
Ml1dLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlMkRBcnJheSA9IG1ha2VSVzJEVGV4dHVy
ZUFycmF5KHByb2dyYW0sIFsKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAg
ICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwg
MTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMw
LCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDBdLAor
ICAgICAgICBbNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4XSwKKyAgICAgICAgWzQ5LCA1
MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1Nl0sCisgICAgICAgIFs1NywgNTgsIDU5LCA2MCwgNjEs
IDYyLCA2MywgNjRdXV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmUzRCA9IG1ha2VSVzNE
VGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisg
ICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgs
IDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAz
MCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwXSwK
KyAgICAgICAgWzQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OF0sCisgICAgICAgIFs0OSwg
NTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTZdLAorICAgICAgICBbNTcsIDU4LCA1OSwgNjAsIDYx
LCA2MiwgNjMsIDY0XV1dLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZURlcHRoMkQgPSBtYWtl
MkREZXB0aFRleHR1cmUocHJvZ3JhbSwgWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcs
IDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBb
MTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4
LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2XSwKKyAgICAgICAg
WzM3LCAzOCwgMzksIDQwXV0sCisgICAgICAgIFtbNDEsIDQyXV0KKyAgICBdLCAiZmxvYXQiKTsK
KyAgICBsZXQgdGV4dHVyZURlcHRoMkRBcnJheSA9IG1ha2UyRERlcHRoVGV4dHVyZUFycmF5KHBy
b2dyYW0sIFtbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5
LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwg
MjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMy
XV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzZdLAorICAgICAgICBbMzcsIDM4LCAzOSwgNDBd
XSwKKyAgICAgICAgW1s0MSwgNDJdXQorICAgIF0sIFsKKyAgICAgICAgW1s0MywgNDQsIDQ1LCA0
NiwgNDcsIDQ4LCA0OSwgNTBdLAorICAgICAgICBbNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTcs
IDU4XSwKKyAgICAgICAgWzU5LCA2MCwgNjEsIDYyLCA2MywgNjQsIDY1LCA2Nl0sCisgICAgICAg
IFs2NywgNjgsIDY5LCA3MCwgNzEsIDcyLCA3MywgNzRdXSwKKyAgICAgICAgW1s3NSwgNzYsIDc3
LCA3OF0sCisgICAgICAgIFs3OSwgODAsIDgxLCA4Ml1dLAorICAgICAgICBbWzgzLCA4NF1dCisg
ICAgXV0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlRGVwdGhDdWJlID0gbWFrZURlcHRoVGV4
dHVyZUN1YmUocHJvZ3JhbSwgW1sKKyAgICAgICAgW1sxLCAyXSwKKyAgICAgICAgWzMsIDRdLAor
ICAgICAgICBbNSwgNl0sCisgICAgICAgIFs3LCA4XV0sCisgICAgICAgIFtbOV0sCisgICAgICAg
IFsxMF1dLAorICAgIF0sIFsKKyAgICAgICAgW1sxMSwgMTJdLAorICAgICAgICBbMTMsIDE0XSwK
KyAgICAgICAgWzE1LCAxNl0sCisgICAgICAgIFsxNywgMThdXSwKKyAgICAgICAgW1sxOV0sCisg
ICAgICAgIFsyMF1dLAorICAgIF0sIFsKKyAgICAgICAgW1syMSwgMjJdLAorICAgICAgICBbMjMs
IDI0XSwKKyAgICAgICAgWzI1LCAyNl0sCisgICAgICAgIFsyNywgMjhdXSwKKyAgICAgICAgW1sy
OV0sCisgICAgICAgIFszMF1dLAorICAgIF0sIFsKKyAgICAgICAgW1szMSwgMzJdLAorICAgICAg
ICBbMzMsIDM0XSwKKyAgICAgICAgWzM1LCAzNl0sCisgICAgICAgIFszNywgMzhdXSwKKyAgICAg
ICAgW1szOV0sCisgICAgICAgIFs0MF1dLAorICAgIF0sIFsKKyAgICAgICAgW1s0MSwgNDJdLAor
ICAgICAgICBbNDMsIDQ0XSwKKyAgICAgICAgWzQ1LCA0Nl0sCisgICAgICAgIFs0NywgNDhdXSwK
KyAgICAgICAgW1s0OV0sCisgICAgICAgIFs1MF1dLAorICAgIF0sIFsKKyAgICAgICAgW1s1MSwg
NTJdLAorICAgICAgICBbNTMsIDU0XSwKKyAgICAgICAgWzU1LCA1Nl0sCisgICAgICAgIFs1Nywg
NThdXSwKKyAgICAgICAgW1s1OV0sCisgICAgICAgIFs2MF1dLAorICAgIF1dLCAiZmxvYXQiKTsK
KyAgICBsZXQgcndUZXh0dXJlRGVwdGgyRCA9IG1ha2VSVzJERGVwdGhUZXh0dXJlKHByb2dyYW0s
IFsKKyAgICAgICAgWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDEx
LCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwg
MjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLCAiZmxv
YXQiKTsKKyAgICBsZXQgcndUZXh0dXJlRGVwdGgyREFycmF5ID0gbWFrZVJXMkREZXB0aFRleHR1
cmVBcnJheShwcm9ncmFtLCBbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisg
ICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgs
IDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAz
MCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwXSwK
KyAgICAgICAgWzQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OF0sCisgICAgICAgIFs0OSwg
NTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTZdLAorICAgICAgICBbNTcsIDU4LCA1OSwgNjAsIDYx
LCA2MiwgNjMsIDY0XV1dLCAiZmxvYXQiKTsKKyAgICByZXR1cm4gW3RleHR1cmUxRCwgdGV4dHVy
ZTFEQXJyYXksIHRleHR1cmUyRCwgdGV4dHVyZTJEQXJyYXksIHRleHR1cmUzRCwgdGV4dHVyZUN1
YmUsIHJ3VGV4dHVyZTFELCByd1RleHR1cmUxREFycmF5LCByd1RleHR1cmUyRCwgcndUZXh0dXJl
MkRBcnJheSwgcndUZXh0dXJlM0QsIHRleHR1cmVEZXB0aDJELCB0ZXh0dXJlRGVwdGgyREFycmF5
LCB0ZXh0dXJlRGVwdGhDdWJlLCByd1RleHR1cmVEZXB0aDJELCByd1RleHR1cmVEZXB0aDJEQXJy
YXldOworfQorCit0ZXN0cy50ZXh0dXJlRGltZW5zaW9ucyA9IGZ1bmN0aW9uKCkgeworICAgIGxl
dCBwcm9ncmFtID0gZG9QcmVwKGAKKyAgICAgICAgdWludCBmb28xKFRleHR1cmUxRDxmbG9hdD4g
dGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgbnVt
YmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0
aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAg
fQorICAgICAgICB1aW50IGZvbzIoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAg
ICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAg
ICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmbnVtYmVyT2ZMZXZlbHMp
OworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAg
IHVpbnQgZm9vMyhUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAg
dWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50
IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAm
d2lkdGgsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3
aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzQoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+
IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVs
ZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdl
dERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVs
cyk7CisgICAgICAgICAgICByZXR1cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWlu
dCBmb281KFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50
IHdpZHRoOworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVt
YmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0
aCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJl
ck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNihUZXh0dXJlMkQ8ZmxvYXQ+
IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhl
aWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXRE
aW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsK
KyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzco
VGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAg
ICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZu
dW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9Cisg
ICAgICAgIHVpbnQgZm9vOChUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAg
IHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQg
bnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3
aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1i
ZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzkoVGV4dHVyZTJEQXJyYXk8
ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1
aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50
IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAm
d2lkdGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAg
IHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzEwKFRleHR1cmUyREFy
cmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAg
ICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAg
dWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwg
MCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAg
ICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTEoVGV4dHVy
ZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAg
ICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAg
ICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0
dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAg
ICAgICAgICAgIHJldHVybiBlbGVtZW50czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzEy
KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRo
OworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOwor
ICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVs
cyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAg
ICAgdWludCBmb28xMyhUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVp
bnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVw
dGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGlt
ZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCwgJm51bWJlck9mTGV2
ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50
IGZvbzE0KFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0
aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAg
ICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25z
KHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoLCAmbnVtYmVyT2ZMZXZlbHMpOwor
ICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE1
KFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAg
ICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAg
ICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1
cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAg
ICAgICAgcmV0dXJuIGRlcHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTYoVGV4dHVy
ZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAg
ICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgdWlu
dCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwg
JndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICBy
ZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xNyhUZXh0
dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAg
ICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAg
ICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVt
YmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAg
ICAgIHVpbnQgZm9vMTgoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAg
IHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQg
bnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3
aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWln
aHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xOShUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4
dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0
OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVu
c2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAg
ICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQg
Zm9vMjAoUldUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lk
dGg7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCk7CisgICAgICAg
ICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yMShSV1RleHR1
cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAg
ICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgJndpZHRoLCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAg
ICB9CisgICAgICAgIHVpbnQgZm9vMjIoUldUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkg
eworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7Cisg
ICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmVsZW1lbnRzKTsKKyAg
ICAgICAgICAgIHJldHVybiBlbGVtZW50czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIz
KFJXVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOwor
ICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1
cmUsICZ3aWR0aCwgJmhlaWdodCk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAg
IH0KKyAgICAgICAgdWludCBmb28yNChSV1RleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAg
ICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQpOworICAgICAgICAgICAg
cmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI1KFJXVGV4dHVyZTJE
QXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAg
ICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAg
ICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAg
ICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI2KFJX
VGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7
CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7Cisg
ICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1l
bnRzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWlu
dCBmb28yNyhSV1RleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1
aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVs
ZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWln
aHQsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1cm4gZWxlbWVudHM7CisgICAgICAgIH0K
KyAgICAgICAgdWludCBmb28yOChSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAg
ICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAg
dWludCBkZXB0aDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAm
aGVpZ2h0LCAmZGVwdGgpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9Cisg
ICAgICAgIHVpbnQgZm9vMjkoUldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAg
ICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVp
bnQgZGVwdGg7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhl
aWdodCwgJmRlcHRoKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAg
ICAgICAgdWludCBmb28zMChSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAg
ICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWlu
dCBkZXB0aDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVp
Z2h0LCAmZGVwdGgpOworICAgICAgICAgICAgcmV0dXJuIGRlcHRoOworICAgICAgICB9CisgICAg
ICAgIHVpbnQgZm9vMzEoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAg
ICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVp
bnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAs
ICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3
aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzMyKFRleHR1cmVEZXB0aDJEPGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0
RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7
CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9v
MzMoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lk
dGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZM
ZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhl
aWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVs
czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzM0KFRleHR1cmVEZXB0aDJEQXJyYXk8Zmxv
YXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50
IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51
bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lk
dGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJl
dHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzM1KFRleHR1cmVEZXB0aDJE
QXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAg
ICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAg
ICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJl
LCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAg
ICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28zNihUZXh0
dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRo
OworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOwor
ICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVs
cyk7CisgICAgICAgICAgICByZXR1cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWlu
dCBmb28zNyhUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAg
ICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50
IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAg
IEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMsICZu
dW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb28zOChUZXh0dXJlRGVwdGhDdWJlPGZsb2F0PiB0ZXh0dXJl
KSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7Cisg
ICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9u
cyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAg
ICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28zOShUZXh0dXJl
RGVwdGhDdWJlPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAg
ICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZu
dW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9Cisg
ICAgICAgIHVpbnQgZm9vNDAoVGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAg
ICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0
dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNDEoUldUZXh0
dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAg
ICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJl
LCAmd2lkdGgsICZoZWlnaHQpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9
CisgICAgICAgIHVpbnQgZm9vNDIoUldUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSkgewor
ICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAg
ICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQpOworICAgICAgICAg
ICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzQzKFJXVGV4dHVy
ZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsK
KyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAg
ICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVu
dHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQg
Zm9vNDQoUldUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAg
ICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50
IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZo
ZWlnaHQsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9
CisgICAgICAgIHVpbnQgZm9vNDUoUldUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJl
KSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7Cisg
ICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0
dXJlLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1cm4gZWxl
bWVudHM7CisgICAgICAgIH0KKyAgICBgKTsKKyAgICBsZXQgW3RleHR1cmUxRCwgdGV4dHVyZTFE
QXJyYXksIHRleHR1cmUyRCwgdGV4dHVyZTJEQXJyYXksIHRleHR1cmUzRCwgdGV4dHVyZUN1YmUs
IHJ3VGV4dHVyZTFELCByd1RleHR1cmUxREFycmF5LCByd1RleHR1cmUyRCwgcndUZXh0dXJlMkRB
cnJheSwgcndUZXh0dXJlM0QsIHRleHR1cmVEZXB0aDJELCB0ZXh0dXJlRGVwdGgyREFycmF5LCB0
ZXh0dXJlRGVwdGhDdWJlLCByd1RleHR1cmVEZXB0aDJELCByd1RleHR1cmVEZXB0aDJEQXJyYXld
ID0gY3JlYXRlVGV4dHVyZXNGb3JUZXN0aW5nKHByb2dyYW0pOworICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFEXSksIDQpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVy
ZTFEXSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMiLCBbdGV4dHVyZTFEQXJyYXldKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheV0pLCAyKTsKKyAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUx
REFycmF5XSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzYiLCBbdGV4dHVyZTJEXSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEXSksIDQpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEXSksIDMp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBb
dGV4dHVyZTJEQXJyYXldKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTJEQXJyYXldKSwgNCk7CisgICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZTJEQXJyYXld
KSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTIiLCBbdGV4dHVyZTJEQXJyYXldKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZTNEXSksIDgpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmUzRF0pLCA0
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIs
IFt0ZXh0dXJlM0RdKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZTNEXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVDdWJlXSksIDIpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1
cmVDdWJlXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE5IiwgW3RleHR1cmVDdWJlXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZTFEXSksIDgpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVy
ZTFEQXJyYXldKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjIiLCBbcndUZXh0dXJlMURBcnJheV0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFtyd1RleHR1cmUyRF0pLCA4KTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNCIsIFty
d1RleHR1cmUyRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yNSIsIFtyd1RleHR1cmUyREFycmF5XSksIDgpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI2IiwgW3J3VGV4dHVyZTJEQXJyYXld
KSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjciLCBbcndUZXh0dXJlMkRBcnJheV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOCIsIFtyd1RleHR1cmUzRF0pLCA4KTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOSIsIFtyd1RleHR1cmUz
RF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zMCIsIFtyd1RleHR1cmUzRF0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zMSIsIFt0ZXh0dXJlRGVwdGgyRF0pLCA4KTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMiIsIFt0ZXh0dXJlRGVw
dGgyRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zMyIsIFt0ZXh0dXJlRGVwdGgyRF0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5XSksIDgp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM1Iiwg
W3RleHR1cmVEZXB0aDJEQXJyYXldKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMzYiLCBbdGV4dHVyZURlcHRoMkRBcnJheV0pLCAyKTsKKyAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNyIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5XSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1cmVEZXB0aEN1YmVdKSwgMik7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzkiLCBbdGV4dHVyZURlcHRo
Q3ViZV0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280MCIsIFt0ZXh0dXJlRGVwdGhDdWJlXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3J3VGV4dHVyZURlcHRoMkRdKSwgOCk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBb
cndUZXh0dXJlRGVwdGgyRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280MyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXldKSwgOCk7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbcndUZXh0
dXJlRGVwdGgyREFycmF5XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQ1IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheV0pLCAyKTsKK30KKwor
dGVzdHMudGV4dHVyZUxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3JhbSA9IGRvUHJl
cChgCisgICAgICAgIGZsb2F0IGZvbzEoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgbG9j
YXRpb24sIGludCBtaXBtYXApIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGlu
dDIobG9jYXRpb24sIG1pcG1hcCkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzIoVGV4
dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgbG9jYXRpb24sIGludCBtaXBtYXAsIGludCBvZmZz
ZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIobG9jYXRpb24sIG1p
cG1hcCksIG9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMyhUZXh0dXJlMURB
cnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQgbWlwbWFwLCBpbnQgbGF5ZXIp
IHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMobG9jYXRpb24sIG1pcG1h
cCwgbGF5ZXIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb280KFRleHR1cmUxREFycmF5
PGZsb2F0PiB0ZXh0dXJlLCBpbnQgbG9jYXRpb24sIGludCBtaXBtYXAsIGludCBsYXllciwgaW50
IG9mZnNldCkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myhsb2NhdGlv
biwgbWlwbWFwLCBsYXllciksIG9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9v
NShUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCkgewor
ICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myh4LCB5LCBtaXBtYXApKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb282KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgaW50
IHgsIGludCB5LCBpbnQgbWlwbWFwLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAg
ICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgbWlwbWFwKSwgaW50MihvZmZz
ZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNyhUZXh0dXJlMkRB
cnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbWlwbWFwLCBpbnQgbGF5ZXIp
IHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDQoeCwgeSwgbWlwbWFwLCBs
YXllcikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzgoVGV4dHVyZTJEQXJyYXk8Zmxv
YXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCwgaW50IGxheWVyLCBpbnQgb2Zm
c2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGlu
dDQoeCwgeSwgbWlwbWFwLCBsYXllciksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAg
ICB9CisgICAgICAgIGZsb2F0IGZvbzkoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwg
aW50IHksIGludCB6LCBpbnQgbWlwbWFwKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0
dXJlLCBpbnQ0KHgsIHksIHosIG1pcG1hcCkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZv
bzEwKFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgeiwgaW50IG1p
cG1hcCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZLCBpbnQgb2Zmc2V0WikgeworICAgICAgICAg
ICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50NCh4LCB5LCB6LCBtaXBtYXApLCBpbnQzKG9mZnNl
dFgsIG9mZnNldFksIG9mZnNldFopKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xMShS
V1RleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uKSB7CisgICAgICAgICAgICBy
ZXR1cm4gTG9hZCh0ZXh0dXJlLCBsb2NhdGlvbik7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQg
Zm9vMTIoUldUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQg
bGF5ZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIobG9jYXRpb24s
IGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTMoUldUZXh0dXJlMkQ8Zmxv
YXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4
dHVyZSwgaW50Mih4LCB5KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTQoUldUZXh0
dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbGF5ZXIpIHsKKyAg
ICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgbGF5ZXIpKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb28xNShSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwgaW50
IHgsIGludCB5LCBpbnQgeikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50
Myh4LCB5LCB6KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTYoVGV4dHVyZURlcHRo
MkQ8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCkgeworICAgICAgICAg
ICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myh4LCB5LCBtaXBtYXApKTsKKyAgICAgICAgfQor
ICAgICAgICBmbG9hdCBmb28xNyhUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgs
IGludCB5LCBpbnQgbWlwbWFwLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAg
ICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgbWlwbWFwKSwgaW50MihvZmZzZXRY
LCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTgoVGV4dHVyZURlcHRo
MkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbWlwbWFwLCBpbnQgbGF5
ZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDQoeCwgeSwgbWlwbWFw
LCBsYXllcikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE5KFRleHR1cmVEZXB0aDJE
QXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCwgaW50IGxheWVy
LCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRl
eHR1cmUsIGludDQoeCwgeSwgbWlwbWFwLCBsYXllciksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzIwKFJXVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+
IHRleHR1cmUsIGludCB4LCBpbnQgeSkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVy
ZSwgaW50Mih4LCB5KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMjEoUldUZXh0dXJl
RGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBsYXllcikgewor
ICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myh4LCB5LCBsYXllcikpOworICAg
ICAgICB9CisgICAgYCk7CisgICAgbGV0IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0ZXh0
dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1cmUx
RCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3VGV4
dHVyZTNELCB0ZXh0dXJlRGVwdGgyRCwgdGV4dHVyZURlcHRoMkRBcnJheSwgdGV4dHVyZURlcHRo
Q3ViZSwgcndUZXh0dXJlRGVwdGgyRCwgcndUZXh0dXJlRGVwdGgyREFycmF5XSA9IGNyZWF0ZVRl
eHR1cmVzRm9yVGVzdGluZyhwcm9ncmFtKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4
dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIC0xKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAt
MSldKSwgMTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAyMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
MjEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDcpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1
cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAxKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAxNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgLTEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAyMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDIwKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0
ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4
dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzcpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJE
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE4KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0
ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM3KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJl
MkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzgp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282Iiwg
W3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAt
MSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSks
IG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzMpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAzNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDQzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzci
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDUyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3NSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNzYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDc5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCA4MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTgpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxOSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgMzkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM4KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDM5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMzUpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDQ0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1Mik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDUzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA1Mik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgNjApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUzKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA2MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgNzYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDgwKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA3Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgODEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDgwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSld
KSwgNzYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDgxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAtMSldKSwgNzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNE
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1
cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0MSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDQyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgNjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA2Nik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBb
dGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDY5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNzApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0
ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJl
M0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMTgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDEp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIs
IFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0
dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzUpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0Qs
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDIpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgNDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgLTEpXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgNDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
NTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEwKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBb
dGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDY2KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVy
ZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDY5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDY3KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDcwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCA2NSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCA3MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgNjYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0
dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHBy
b2dyYW0sIDIpXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAzKV0pLCA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBb
cndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgNCldKSwgNSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtl
SW50KHByb2dyYW0sIDUpXSksIDYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCA2KV0p
LCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3
VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4
dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
OCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEy
IiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDIpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTMpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1Rl
eHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCAxNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxOCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFty
d1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDIp
XSksIDIwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChw
cm9ncmFtLCAyKV0pLCAyMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNSks
IG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIzKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwg
bWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVy
ZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1Rl
eHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBb
cndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEz
IiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCA1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCA4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJv
Z3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUlu
dChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBt
YWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEzKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJl
MkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1Rl
eHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwg
W3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MildKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAyKV0pLCAxOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50
KHByb2dyYW0sIDIpXSksIDE5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1h
a2VJbnQocHJvZ3JhbSwgMildKSwgMjApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA0
KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dy
YW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjMpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFr
ZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJE
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI1KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0
dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjYpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFty
d1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAy
Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEz
IiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDMp
XSksIDI4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3Jh
bSwgMyldKSwgMjkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChw
cm9ncmFtLCAzKV0pLCAzMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtl
SW50KHByb2dyYW0sIDMpXSksIDMxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyks
IG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMzIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIs
IFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
NCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDQxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0Mik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNE
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIs
IFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQxKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndU
ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVy
ZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJl
RGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVy
ZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzNyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1
cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVy
ZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTgpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJl
RGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAxNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzgpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJl
RGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAzNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1
cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAzNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFr
ZUludChwcm9ncmFtLCAtMSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
NDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
OCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQ0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgi
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1MSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4Iiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTIpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDc1KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4
dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3Nik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNzkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDgwKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURl
cHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxOCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5Iiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTEpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDE5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzgpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCAzOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzgpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMzkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAz
NSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDUyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCA0NSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTMpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCA2MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNTMpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDYxKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCA3Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
ODApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
OSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDc3KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCA4MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgODApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCA3Nik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgODEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIC0xKV0pLCA3Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMyk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURl
cHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3
VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgOSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRo
MkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTApOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1Rl
eHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCAxMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgMTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dy
YW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFr
ZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURl
cHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFty
d1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDIp
XSksIDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAyKV0pLCAxOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMiks
IG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHBy
b2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIwKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwg
bWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVy
ZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjIp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIs
IFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0s
IDIpXSksIDIzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUlu
dChwcm9ncmFtLCAyKV0pLCAyNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI2KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgy
RCwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyNyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4
dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwg
MjgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dy
YW0sIDMpXSksIDI5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFr
ZUludChwcm9ncmFtLCAzKV0pLCAzMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMzEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtl
SW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDMyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbcndUZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwg
W3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjEiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbcndUZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDQxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjEiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQyKTsKK30KKwordGVzdHMu
dGV4dHVyZVN0b3JlID0gZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAor
ICAgICAgICBmbG9hdCBmb28xKFJXVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCB1aW50IGxvY2F0
aW9uLCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4dHVyZSwgdmFsdWUsIGxv
Y2F0aW9uKTsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludChsb2NhdGlvbikp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzIoUldUZXh0dXJlMURBcnJheTxmbG9hdD4g
dGV4dHVyZSwgdWludCBsb2NhdGlvbiwgdWludCBsYXllciwgZmxvYXQgdmFsdWUpIHsKKyAgICAg
ICAgICAgIFN0b3JlKHRleHR1cmUsIHZhbHVlLCB1aW50Mihsb2NhdGlvbiwgbGF5ZXIpKTsKKyAg
ICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIoaW50KGxvY2F0aW9uKSwgaW50KGxh
eWVyKSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzMoUldUZXh0dXJlMkQ8ZmxvYXQ+
IHRleHR1cmUsIHVpbnQgeCwgdWludCB5LCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3Rv
cmUodGV4dHVyZSwgdmFsdWUsIHVpbnQyKHgsIHkpKTsKKyAgICAgICAgICAgIHJldHVybiBMb2Fk
KHRleHR1cmUsIGludDIoaW50KHgpLCBpbnQoeSkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb280KFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHVpbnQgeCwgdWludCB5LCB1
aW50IGxheWVyLCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4dHVyZSwgdmFs
dWUsIHVpbnQzKHgsIHksIGxheWVyKSk7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJl
LCBpbnQzKGludCh4KSwgaW50KHkpLCBpbnQobGF5ZXIpKSk7CisgICAgICAgIH0KKyAgICAgICAg
ZmxvYXQgZm9vNShSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwgdWludCB4LCB1aW50IHksIHVp
bnQgeiwgZmxvYXQgdmFsdWUpIHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1cmUsIHZhbHVlLCB1
aW50Myh4LCB5LCB6KSk7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKGlu
dCh4KSwgaW50KHkpLCBpbnQoeikpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb282KFJX
VGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHVpbnQgeCwgdWludCB5LCBmbG9hdCB2YWx1
ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4dHVyZSwgdmFsdWUsIHVpbnQyKHgsIHkpKTsKKyAg
ICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIoaW50KHgpLCBpbnQoeSkpKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb283KFJXVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4g
dGV4dHVyZSwgdWludCB4LCB1aW50IHksIHVpbnQgbGF5ZXIsIGZsb2F0IHZhbHVlKSB7CisgICAg
ICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDMoeCwgeSwgbGF5ZXIpKTsKKyAgICAg
ICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoaW50KHgpLCBpbnQoeSksIGludChsYXll
cikpKTsKKyAgICAgICAgfQorICAgIGApOworICAgIGxldCBbdGV4dHVyZTFELCB0ZXh0dXJlMURB
cnJheSwgdGV4dHVyZTJELCB0ZXh0dXJlMkRBcnJheSwgdGV4dHVyZTNELCB0ZXh0dXJlQ3ViZSwg
cndUZXh0dXJlMUQsIHJ3VGV4dHVyZTFEQXJyYXksIHJ3VGV4dHVyZTJELCByd1RleHR1cmUyREFy
cmF5LCByd1RleHR1cmUzRCwgdGV4dHVyZURlcHRoMkQsIHRleHR1cmVEZXB0aDJEQXJyYXksIHRl
eHR1cmVEZXB0aEN1YmUsIHJ3VGV4dHVyZURlcHRoMkQsIHJ3VGV4dHVyZURlcHRoMkRBcnJheV0g
PSBjcmVhdGVUZXh0dXJlc0ZvclRlc3RpbmcocHJvZ3JhbSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFE
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFty
d1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgNSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VV
aW50KHByb2dyYW0sIDYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVy
ZTFELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIs
IFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDIp
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFty
d1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFr
ZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDUpLCBt
YWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1Rl
eHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVp
bnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1
cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUx
REFycmF5LCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJv
Z3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFy
cmF5LCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
IiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9n
cmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5
LCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwg
MyksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwg
W3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFt
LCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBt
YWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNiks
IG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3
VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAy
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1h
a2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVy
ZTJELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDUp
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFty
d1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9n
cmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVp
bnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQs
IG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4
dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0s
IDYpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIs
IFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9n
cmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFr
ZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJl
MkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSks
IG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3
VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dy
YW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0s
IDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChw
cm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwg
bWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0
dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwg
NiksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwg
W3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1h
a2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJy
YXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRB
cnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUy
REFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VV
aW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVy
ZTNELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNE
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBt
YWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWlu
dChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgy
RCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0s
IDMpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIs
IFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwg
bWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDYp
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFty
d1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1Rl
eHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVp
bnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1
cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVE
ZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChw
cm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0
aDJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282
IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9n
cmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJE
LCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwg
NyksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282Iiwg
W3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFt
LCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiks
IG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3
VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAz
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtl
VWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1h
a2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4
dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAzKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWlu
dChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzciLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb283IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VVaW50
KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3J3VGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtyd1RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbcndU
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283
IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50
KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKK30KKwordGVzdHMudGV4dHVyZVNhbXBsZSA9IGZ1bmN0aW9uKCkgeworICAg
IGxldCBwcm9ncmFtID0gZG9QcmVwKGAKKyAgICAgICAgZmxvYXQgZm9vMShUZXh0dXJlMUQ8Zmxv
YXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgbG9jYXRpb24pIHsKKyAgICAgICAgICAgIHJl
dHVybiBTYW1wbGUodGV4dHVyZSwgcywgbG9jYXRpb24pOworICAgICAgICB9CisgICAgICAgIGZs
b2F0IGZvbzIoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IGxvY2F0
aW9uLCBpbnQgb2Zmc2V0KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMs
IGxvY2F0aW9uLCBvZmZzZXQpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzMoVGV4dHVy
ZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgbGF5ZXIp
IHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQyKHgsIGxheWVy
KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNChUZXh0dXJlMURBcnJheTxmbG9hdD4g
dGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCBsYXllciwgaW50IG9mZnNldCkgewor
ICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgbGF5ZXIpLCBv
ZmZzZXQpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzUoVGV4dHVyZTJEPGZsb2F0PiB0
ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHkpIHsKKyAgICAgICAgICAgIHJldHVy
biBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpKTsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdCBmb282KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBm
bG9hdCB5LCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBT
YW1wbGUodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsK
KyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb283KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0
dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyKSB7CisgICAgICAg
ICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllcikpOworICAg
ICAgICB9CisgICAgICAgIGZsb2F0IGZvbzgoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUs
IHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGludCBvZmZzZXRYLCBp
bnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9h
dDMoeCwgeSwgbGF5ZXIpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmb285KFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9h
dCB4LCBmbG9hdCB5LCBmbG9hdCB6KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1
cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTAo
VGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZs
b2F0IHosIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSwgaW50IG9mZnNldFopIHsKKyAgICAgICAg
ICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopLCBpbnQzKG9mZnNl
dFgsIG9mZnNldFksIG9mZnNldFopKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xMShU
ZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBm
bG9hdCB6KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Myh4
LCB5LCB6KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTIoVGV4dHVyZTJEPGZsb2F0
PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IEJpYXMpIHsKKyAg
ICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgQmlh
cyk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTMoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0
dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IEJpYXMsIGludCBvZmZzZXRY
LCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVyZSwg
cywgZmxvYXQyKHgsIHkpLCBCaWFzLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAg
fQorICAgICAgICBmbG9hdCBmb28xNChUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIg
cywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwg
ZmxvYXQgZGR5MSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwgcywg
ZmxvYXQyKHgsIHkpLCBmbG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0MihkZHkwLCBkZHkxKSk7Cisg
ICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTUoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBz
YW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0
IGRkeTAsIGZsb2F0IGRkeTEsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAg
ICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBmbG9hdDIoZGR4
MCwgZGR4MSksIGZsb2F0MihkZHkwLCBkZHkxKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7Cisg
ICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTYoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBz
YW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IExPRCkgeworICAgICAgICAgICAgcmV0
dXJuIFNhbXBsZUxldmVsKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgTE9EKTsKKyAgICAgICAg
fQorICAgICAgICBmbG9hdCBmb28xNyhUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIg
cywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgTE9ELCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkp
IHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwg
eSksIExPRCwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxv
YXQgZm9vMTgoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQg
eCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IEJpYXMpIHsKKyAgICAgICAgICAgIHJldHVy
biBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIEJpYXMpOworICAg
ICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE5KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJl
LCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBCaWFzLCBp
bnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFz
KHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIEJpYXMsIGludDIob2Zmc2V0WCwgb2Zm
c2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzIwKFRleHR1cmUyREFycmF5PGZs
b2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBm
bG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHkwLCBmbG9hdCBkZHkxKSB7CisgICAgICAg
ICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBm
bG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0MihkZHkwLCBkZHkxKSk7CisgICAgICAgIH0KKyAgICAg
ICAgZmxvYXQgZm9vMjEoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywg
ZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZs
b2F0IGRkeTAsIGZsb2F0IGRkeTEsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAg
ICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwg
ZmxvYXQyKGRkeDAsIGRkeDEpLCBmbG9hdDIoZGR5MCwgZGR5MSksIGludDIob2Zmc2V0WCwgb2Zm
c2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzIyKFRleHR1cmUyREFycmF5PGZs
b2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBm
bG9hdCBMT0QpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBm
bG9hdDMoeCwgeSwgbGF5ZXIpLCBMT0QpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzIz
KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0
IHksIGZsb2F0IGxheWVyLCBmbG9hdCBMT0QsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgewor
ICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUxldmVsKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBs
YXllciksIExPRCwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAg
aW50IGZvbzI0KFRleHR1cmUxRDxpbnQ0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IGxvY2F0
aW9uKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGxvY2F0aW9uKS54
OworICAgICAgICB9CisgICAgICAgIGludCBmb28yNShUZXh0dXJlMUQ8aW50ND4gdGV4dHVyZSwg
c2FtcGxlciBzLCBmbG9hdCBsb2NhdGlvbikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0
ZXh0dXJlLCBzLCBsb2NhdGlvbikueTsKKyAgICAgICAgfQorICAgICAgICBpbnQgZm9vMjYoVGV4
dHVyZTFEPGludDQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgbG9jYXRpb24pIHsKKyAgICAg
ICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgbG9jYXRpb24pLno7CisgICAgICAgIH0K
KyAgICAgICAgaW50IGZvbzI3KFRleHR1cmUxRDxpbnQ0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZs
b2F0IGxvY2F0aW9uKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGxv
Y2F0aW9uKS53OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzI4KFRleHR1cmVEZXB0aDJE
PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHkpIHsKKyAgICAgICAg
ICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpKTsKKyAgICAgICAgfQor
ICAgICAgICBmbG9hdCBmb28yOShUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxl
ciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAg
ICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBpbnQyKG9mZnNl
dFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28zMChUZXh0dXJlRGVw
dGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZs
b2F0IGxheWVyKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0
Myh4LCB5LCBsYXllcikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzMxKFRleHR1cmVE
ZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgbGF5ZXIsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0
dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBpbnQyKG9mZnNldFgs
IG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28zMihUZXh0dXJlRGVwdGhD
dWJlPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHop
IHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHop
KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28zMyhUZXh0dXJlRGVwdGgyRDxmbG9hdD4g
dGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBCaWFzKSB7CisgICAg
ICAgICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIEJpYXMp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzM0KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0
ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IEJpYXMsIGludCBvZmZz
ZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVy
ZSwgcywgZmxvYXQyKHgsIHkpLCBCaWFzLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb28zNShUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwg
c2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9h
dCBkZHkwLCBmbG9hdCBkZHkxKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0
dXJlLCBzLCBmbG9hdDIoeCwgeSksIGZsb2F0MihkZHgwLCBkZHgxKSwgZmxvYXQyKGRkeTAsIGRk
eTEpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28zNihUZXh0dXJlRGVwdGgyRDxmbG9h
dD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBkZHgwLCBmbG9h
dCBkZHgxLCBmbG9hdCBkZHkwLCBmbG9hdCBkZHkxLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkp
IHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5
KSwgZmxvYXQyKGRkeDAsIGRkeDEpLCBmbG9hdDIoZGR5MCwgZGR5MSksIGludDIob2Zmc2V0WCwg
b2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzM3KFRleHR1cmVEZXB0aDJE
PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IExPRCkg
eworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUxldmVsKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5
KSwgTE9EKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28zOChUZXh0dXJlRGVwdGgyRDxm
bG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBMT0QsIGlu
dCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUxldmVs
KHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgTE9ELCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsK
KyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28zOShUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0
PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9h
dCBCaWFzKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9h
dDMoeCwgeSwgbGF5ZXIpLCBCaWFzKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb280MChU
ZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZs
b2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBCaWFzLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkp
IHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5
LCBsYXllciksIEJpYXMsIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAg
ICAgIGZsb2F0IGZvbzQxKFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBs
ZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IGRkeDAsIGZsb2F0IGRk
eDEsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVH
cmFkKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGZsb2F0MihkZHgwLCBkZHgxKSwg
ZmxvYXQyKGRkeTAsIGRkeTEpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb280MihUZXh0
dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0
IHksIGZsb2F0IGxheWVyLCBmbG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHkwLCBmbG9h
dCBkZHkxLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBT
YW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGZsb2F0MihkZHgwLCBk
ZHgxKSwgZmxvYXQyKGRkeTAsIGRkeTEpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb280MyhUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0
dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBMT0Qp
IHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwg
eSwgbGF5ZXIpLCBMT0QpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQ0KFRleHR1cmVE
ZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgbGF5ZXIsIGZsb2F0IExPRCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAg
ICAgICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVy
KSwgTE9ELCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb280NShUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4
LCBmbG9hdCB5LCBmbG9hdCBjb21wYXJlVmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1w
bGVDbXAodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBjb21wYXJlVmFsdWUpOworICAgICAgICB9
CisgICAgICAgIGZsb2F0IGZvbzQ2KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1w
bGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGNvbXBhcmVWYWx1ZSwgaW50IG9mZnNldFgs
IGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQ21wKHRleHR1cmUsIHMs
IGZsb2F0Mih4LCB5KSwgY29tcGFyZVZhbHVlLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb280NyhUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0
ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBj
b21wYXJlVmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVDbXAodGV4dHVyZSwgcywg
ZmxvYXQzKHgsIHksIGxheWVyKSwgY29tcGFyZVZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdCBmb280OChUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMs
IGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBjb21wYXJlVmFsdWUsIGludCBv
ZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUNtcCh0ZXh0
dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBjb21wYXJlVmFsdWUsIGludDIob2Zmc2V0WCwg
b2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQ5KFRleHR1cmVDdWJlPGZs
b2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0
IGJpYXMpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0
Myh4LCB5LCB6KSwgYmlhcyk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNTAoVGV4dHVy
ZUN1YmU8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg
eiwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR4MiwgZmxvYXQgZGR5MCwgZmxvYXQg
ZGR5MSwgZmxvYXQgZGR5MikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVy
ZSwgcywgZmxvYXQzKHgsIHksIHopLCBmbG9hdDMoZGR4MCwgZGR4MSwgZGR4MiksIGZsb2F0Myhk
ZHkwLCBkZHkxLCBkZHkyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNTEoVGV4dHVy
ZUN1YmU8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg
eiwgZmxvYXQgbG9kKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwg
cywgZmxvYXQzKHgsIHksIHopLCBsb2QpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzUy
KFRleHR1cmVEZXB0aEN1YmU8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxv
YXQgeSwgZmxvYXQgeiwgZmxvYXQgYmlhcykgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJp
YXModGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopLCBiaWFzKTsKKyAgICAgICAgfQorICAgICAg
ICBmbG9hdCBmb281MyhUZXh0dXJlRGVwdGhDdWJlPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMs
IGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0
IGRkeDIsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEsIGZsb2F0IGRkeTIpIHsKKyAgICAgICAgICAg
IHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSwgZmxvYXQzKGRk
eDAsIGRkeDEsIGRkeDIpLCBmbG9hdDMoZGR5MCwgZGR5MSwgZGR5MikpOworICAgICAgICB9Cisg
ICAgICAgIGZsb2F0IGZvbzU0KFRleHR1cmVEZXB0aEN1YmU8ZmxvYXQ+IHRleHR1cmUsIHNhbXBs
ZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgZmxvYXQgbG9kKSB7CisgICAgICAgICAg
ICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopLCBsb2QpOwor
ICAgICAgICB9CisgICAgYCk7CisgICAgbGV0IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0
ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1
cmUxRCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3
VGV4dHVyZTNELCB0ZXh0dXJlRGVwdGgyRCwgdGV4dHVyZURlcHRoMkRBcnJheSwgdGV4dHVyZURl
cHRoQ3ViZSwgcndUZXh0dXJlRGVwdGgyRCwgcndUZXh0dXJlRGVwdGgyREFycmF5XSA9IGNyZWF0
ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9ncmFtKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHt9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuMzc1KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHt9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNDM3NSldKSwgNyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4
dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjU2
MjUpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHt9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNjI1KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC4zNzUpXSksIDcpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3Rl
eHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNDM3NSldKSwgKDMgKiA3ICsgMSAqIDE0KSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUx
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSldKSwgKDcgKyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjU2MjUp
XSksICgxICogNyArIDMgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjYyNSldKSwgMTQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJB
ZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
Mzc1KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjQzNzUpXSksICgzICogNyArIDEgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFt
cFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICg3ICsgMTQpIC8g
Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEi
LCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwg
ckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41NjI1KV0pLCAoMSAqIDcgKyAzICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRl
ckNvbG9yIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC42MjUpXSksIDE0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJy
ZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC4zNzUpXSksIDcpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTog
InJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjQzNzUpXSksICgzICogNyArIDEg
KiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsg
MC41KV0pLCAoNyArIDE0KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEgKyAwLjU2MjUpXSksICgxICogNyArIDMgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJy
ZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC42MjUpXSksIDE0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6
ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC4zNzUpXSksIDcpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUx
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9k
ZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjQzNzUpXSksICgzICogNyAr
IDEgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAy
ICsgMC41KV0pLCAoNyArIDE0KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDIgKyAwLjU2MjUpXSksICgxICogNyArIDMgKiAxNCkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6
ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC42MjUpXSksIDE0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJl
MUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01v
ZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC42MjUpXSksIDcp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJB
ZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjU2
MjUpXSksICgzICogNyArIDEgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC41KV0pLCAoNyArIDE0KSAvIDIpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTog
Im1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjQzNzUpXSksICgxICog
NyArIDMgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxICsgMC4zNzUpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAyICsgMC4zNzUpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVh
dCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjQzNzUpXSksICgzICogNyArIDEgKiAxNCkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
LCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsg
MC41KV0pLCAoNyArIDE0KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDIgKyAwLjU2MjUpXSksICgxICogNyArIDMgKiAxNCkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJl
MUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01v
ZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC42MjUpXSksIDE0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIs
IFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAtMC4zNzUpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEuMzc1
KV0pLCA3OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgLTAuMzc1KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxLjM3NSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNv
bG9yIiwgYm9yZGVyQ29sb3I6ICJvcGFxdWVCbGFjayJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0w
LjM3NSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIiwgYm9yZGVyQ29sb3I6
ICJvcGFxdWVCbGFjayJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEuMzc1KV0pLCAwKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJl
MUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01v
ZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IiLCBib3JkZXJDb2xvcjogIm9wYXF1ZVdoaXRlIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgLTAuMzc1KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVy
Q29sb3IiLCBib3JkZXJDb2xvcjogIm9wYXF1ZVdoaXRlIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MS4zNzUpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciIsIGJvcmRlckNvbG9y
OiAib3BhcXVlV2hpdGUifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNzkgKyAxKSAvIDIp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIGxv
ZE1pbkNsYW1wOiAxfSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMyArIDE2KSAvIDIp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwg
W3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDE0ICsgNzkp
IC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgKDcgKyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKV0pLCAoMTcgKyAxOCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMTQgKyA3OSkg
LyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCAoMTggKyAxOSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBb
dGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgx
MyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgNiAvIDgpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIy
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsg
NjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgKDYyICsgNjMgKyA3MCArIDcxKSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEgKyA0NCArIDQ1ICsgNTIgKyA1MykgLyA4KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0
dXJlM0QsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpXSksICgxMyArIDE0ICsgMjEgKyAyMiArIDQ1ICsgNDYgKyA1MyArIDU0
KSAvIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b285IiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgyMCArIDIxICsgMjggKyAyOSArIDUyICsgNTMg
KyA2MCArIDYxKSAvIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNSAvIDgpXSksICgxMiArIDEzICsgMjAgKyAyMSAr
ICg0NCArIDQ1ICsgNTIgKyA1MykgKiAzKSAvIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICgxMyArIDE0ICsgMjEgKyAyMiArIDQ1ICsgNDYgKyA1MyArIDU0KSAvIDgpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0Qs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDIwICsgMjEgKyAyOCArIDI5ICsgNTIgKyA1MyArIDYwICsgNjEpIC8g
OCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEw
IiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC4yNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDQ0ICsgNDUgKyA1MiArIDUzKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0
ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKV0pLCAoMyArIDQgKyA1ICsgNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAt
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyAr
IDE0ICsgMTUgKyAxNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIzICsgMjQgKyAyNSArIDI2KSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCldKSwgKDMzICsgMzQgKyAzNSArIDM2KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlQ3Vi
ZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KV0pLCAoNDMgKyA0NCArIDQ1ICsgNDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKV0pLCAoNTMgKyA1NCAr
IDU1ICsgNTYpIC8gNCk7CisgICAgLy8gVW5mb3J0dW5hdGVseSwgd2UgY2FuJ3QgYWN0dWFsbHkg
dGVzdCB0aGUgIkJpYXMiIGFyZ3VtZW50LCBiZWNhdXNlIGl0IGlzIHN1cHBvc2VkIHRvIGJlIGFw
cGxpZWQKKyAgICAvLyB0byB0aGUgdW5jbGFtcGVkIExPRCwgd2hpY2ggZm9yIHVzIGlzIC1JbmZp
bml0eSAoYmVjYXVzZSBvdXIgZGVyaXZhdGl2ZXMgYXJlIGFsbCAwKQorICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFt0ZXh0dXJlMkQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSks
ICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQg
KyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgNiAvIDgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0
IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIs
IFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDEyICsgMTMgKyAy
MCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xNCIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53
aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwg
KDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAu
MjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMTIgKyAxMyArIDIw
ICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE0IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3co
MiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRo
LnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoKCgx
MiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1Iiwg
W3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFt0ZXh0dXJlMkQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgx
MyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9h
ZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5o
ZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyAr
IDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWlu
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZh
bHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWln
aHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNSArIDM2
ICsgMzkgKyA0MCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRl
eHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFt0ZXh0dXJlMkQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAz
OSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTYiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUy
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQg
KyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0
ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBb
dGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlw
bWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsg
KCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3
IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
NyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
LCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsgMjIpIC8g
NCkgKyAoKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIx
ICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE4IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDYgLyA4KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDYyICsg
NjMgKyA3MCArIDcxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAx
NCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgyMCArIDIx
ICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYg
KyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoNjIgKyA2MyAr
IDcwICsgNzEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndp
ZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAo
MTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAv
IHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM0ICsgMzUgKyAzOCArIDM5
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygy
LCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRo
LnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDEy
ICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJE
LmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0
dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAv
IDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYz
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS5oZWlnaHQpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1
ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0
KV0pLCAoNzYgKyA3NyArIDgwICsgODEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9h
ZFZhbHVlKCkuaGVpZ2h0KV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgu
cG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
TWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwg
KCgoNTQgKyA1NSArIDYyICsgNjMpIC8gNCkgKyAoKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpKSAv
IDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyAr
IDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAx
IC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1
cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2Fk
VmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhl
aWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsg
MzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhl
aWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsg
MTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQ
dHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJl
MkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksICgoKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpICsgKCgzNSArIDM2ICsg
MzkgKyA0MCkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53
aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyAr
IDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICg3NyArIDc4ICsgODEgKyA4MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2Fk
VmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41
KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygy
LCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCg1NSArIDU2ICsgNjMgKyA2NCkgLyA0
KSArICgoNzcgKyA3OCArIDgxICsgODIpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3RleHR1cmUyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDM0ICsgMzUgKyAzOCArIDM5
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgx
MiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoKCgxMiArIDEzICsgMjAgKyAy
MSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3RleHR1cmUyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDc2ICsgNzcgKyA4
MCArIDgxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
XSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoKCg1NCArIDU1ICsg
NjIgKyA2MykgLyA0KSArICgoNzYgKyA3NyArIDgwICsgODEpIC8gNCkpIC8gMik7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMiArIDEz
ICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1
cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBt
YXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMyAr
IDE0ICsgMjEgKyAyMikgLyA0KSArICgoMzUgKyAzNiArIDM5ICsgNDApIC8gNCkpIC8gMik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBt
aXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCg1
NCArIDU1ICsgNjIgKyA2MykgLyA0KSArICgoNzYgKyA3NyArIDgwICsgODEpIC8gNCkpIC8gMik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwg
W3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDc3ICsgNzggKyA4MSArIDgyKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
LCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
KCg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KSArICgoNzcgKyA3OCArIDgxICsgODIpIC8gNCkpIC8g
Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2
IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIs
IGxvZE1pbkNsYW1wOiAxLCBsb2RNYXhDbGFtcDogMX0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyKV0pLCAoMzQg
KyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21p
bkZpbHRlcjogImxpbmVhciIsIGxvZE1pbkNsYW1wOiAxLCBsb2RNYXhDbGFtcDogMX0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmUyRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMzQgKyAz
NSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZp
bHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciIsIG1heEFuaXNvdHJvcHk6IDJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgNCAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAoNC8zKSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM0ICsg
MzUgKyAzOCArIDM5KSAvIDQpOworICAgIGxldCB0ZXh0dXJlMURJbnQ0ID0gbWFrZTFEVGV4dHVy
ZShwcm9ncmFtLCBbW1sxLCAyLCAzLCA0XSwgWzEwMCwgMjAwLCAzMDAsIDQwMF0sIFsxMDEsIDIw
MiwgMzAxLCA0MDFdLCBbMTMsIDE0LCAxNSwgMTZdXSwgW1sxNywgMTgsIDE5LCAyMF0sIFsyMSwg
MjIsIDIzLCAyNF1dLCBbWzI1LCAyNiwgMjcsIDI4XV1dLCAiaW50NCIpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjQiLCBbdGV4dHVyZTFESW50NCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSldKSwgMTAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzI1IiwgW3RleHR1cmUxREludDQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksIDIwMSk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNiIsIFt0ZXh0
dXJlMURJbnQ0LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAzMDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjciLCBbdGV4dHVyZTFESW50NCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSld
KSwgNDAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMyArIDE0ICsgMjEgKyAyMikg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAv
IDgpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjkiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI5IiwgW3RleHR1cmVEZXB0aDJE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMCIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMwIiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
KDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zMSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
KDYyICsgNjMgKyA3MCArIDcxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zMiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzICsgNCArIDUg
KyA2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zMiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDE1ICsgMTYpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMyIiwg
W3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCldKSwgKDIzICsgMjQgKyAyNSArIDI2KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMiIsIFt0ZXh0dXJlRGVw
dGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKV0pLCAoMzMgKyAzNCArIDM1ICsgMzYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMyIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwg
KDQzICsgNDQgKyA0NSArIDQ2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zMiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKV0pLCAoNTMgKyA1NCAr
IDU1ICsgNTYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzI4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOCIsIFt0ZXh0dXJlRGVwdGgyRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTMgKyAxNCArIDIx
ICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzI4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDYgLyA4KV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI5IiwgW3RleHR1cmVEZXB0aDJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOSIsIFt0ZXh0dXJl
RGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzAi
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMCIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAy
OCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zMSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksICg2MiArIDYzICsgNzAgKyA3MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzMiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgx
MiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMzMiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAx
NCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzMzIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgyMCArIDIxICsgMjgg
KyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMzQiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzQiLCBbdGV4dHVyZURlcHRo
MkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgyMCAr
IDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMzUiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgx
MiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMzUiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1
ZSgpLmhlaWdodCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNSIsIFt0ZXh0dXJlRGVwdGgyRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM1Iiwg
W3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRW
YWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRy
LmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNSIsIFt0ZXh0dXJl
RGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1h
cEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1
cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoKCgxMiArIDEzICsgMjAgKyAy
MSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAx
NCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9h
ZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5o
ZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyAr
IDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMzYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgp
LmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1
ICsgMzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwg
MC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzYiLCBb
dGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
LCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwg
MC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsgMjIpIC8gNCkg
KyAoKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDM0ICsgMzUg
KyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21p
bkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsg
MjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzM3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVy
OiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSks
ICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkg
LyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MzgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzgiLCBbdGV4dHVyZURlcHRoMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNCArIDM1ICsg
MzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOCIsIFt0ZXh0dXJl
RGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1h
cEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgo
MzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzM4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoMzUgKyAzNiArIDM5ICsgNDApIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1cmVEZXB0aDJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0
ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMzgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTMg
KyAxNCArIDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOSIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEz
ICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOSIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28z
OSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1
NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8g
MTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOSIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDYyICsgNjMgKyA3MCAr
IDcxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280MCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsg
MjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNDAiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAy
MSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQwIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1
ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280MCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
ICg2MiArIDYzICsgNzAgKyA3MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9h
ZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRW
YWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVp
Z2h0KV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQu
ZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBbdGV4
dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lk
dGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUo
KS5oZWlnaHQpXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzgg
KyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
aGVpZ2h0KV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndp
ZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAo
NzYgKyA3NyArIDgwICsgODEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUo
KS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2Fk
VmFsdWUoKS5oZWlnaHQpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1h
cEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCBN
YXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQp
XSksICgoKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpICsgKCg3NiArIDc3ICsgODAgKyA4MSkgLyA0
KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
MTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUo
KS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAy
MSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1
cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBt
aXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVp
Z2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMyAr
IDE0ICsgMjEgKyAyMikgLyA0KSArICgoMzUgKyAzNiArIDM5ICsgNDApIC8gNCkpIC8gMik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2
MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIi
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICg3NyArIDc4ICsgODEgKyA4MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5l
UHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93
KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0
aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoNTUgKyA1NiArIDYzICsg
NjQpIC8gNCkgKyAoKDc3ICsgNzggKyA4MSArIDgyKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MyIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAo
MzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwgW3RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBt
YXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkp
IC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg3NiArIDc3ICsgODAgKyA4MSkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDMiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICg1NCArIDU1ICsg
NjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNDMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgoKDU0ICsgNTUgKyA2MiArIDYzKSAv
IDQpICsgKCg3NiArIDc3ICsgODAgKyA4MSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
IiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
KCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAv
IDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAy
MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMzUgKyAzNiArIDM5
ICsgNDApIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAx
NCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMyArIDE0ICsgMjEgKyAyMikgLyA0KSArICgoMzUg
KyAzNiArIDM5ICsgNDApIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICg3NiArIDc3ICsgODAgKyA4MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDU0ICsgNTUg
KyA2MiArIDYzKSAvIDQpICsgKCg3NiArIDc3ICsgODAgKyA4MSkgLyA0KSkgLyAyKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDc3ICsgNzggKyA4MSArIDgyKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmls
dGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKCgoNTUgKyA1NiArIDYzICsgNjQpIC8gNCkgKyAoKDc3ICsgNzggKyA4MSAr
IDgyKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJm
bG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDExKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3
XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5l
dmVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFt
LCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rp
b246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUo
cHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFy
ZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDEpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRl
eHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
Y29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDApOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkRE
ZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFtt
YWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0p
LCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxNyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0
IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJlcXVhbCJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0s
ICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzc0Vx
dWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFt
LCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rp
b246ICJsZXNzRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0
dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2Nv
bXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtl
MkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSks
IDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMTcpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9h
dCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMjMpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTdd
XV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibm90
RXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dy
YW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5j
dGlvbjogIm5vdEVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4
dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtj
b21wYXJlRnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtl
MkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
MSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0Iiks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3
XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdy
ZWF0ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUo
cHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFy
ZUZ1bmN0aW9uOiAiYWx3YXlzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRo
VGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHtjb21wYXJlRnVuY3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFr
ZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSks
IDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQi
KSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5ldmVyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0
dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHtjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAxNyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtb
W1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9u
OiAibmV2ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIs
IFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3MifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVB
cnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e2NvbXBhcmVGdW5jdGlvbjogImxlc3MifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMTcpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTdd
XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxl
c3MifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtl
MkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXko
cHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21w
YXJlRnVuY3Rpb246ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAxNyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0s
ICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkRE
ZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5
KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29t
cGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3
XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJs
ZXNzRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIs
IFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDApOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1
cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMTcpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBb
W1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlv
bjogImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSks
IDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQi
KSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5vdEVxdWFsIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAxKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhU
ZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dy
YW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1
bmN0aW9uOiAibm90RXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MjMpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAi
ZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXJF
cXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21h
a2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0
dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9n
cmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVG
dW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAx
MSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJm
bG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiYWx3YXlzIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVw
dGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280OSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApXSksICgzICsgNCArIDUgKyA2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280OSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDE1ICsgMTYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ5IiwgW3RleHR1cmVDdWJlLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCldKSwgKDIzICsgMjQgKyAyNSArIDI2KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280OSIsIFt0ZXh0dXJlQ3Vi
ZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMzMgKyAzNCArIDM1ICsgMzYpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ5IiwgW3Rl
eHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDQzICsgNDQgKyA0NSArIDQ2KSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
OSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTMgKyA1NCArIDU1
ICsgNTYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzICsg
NCArIDUgKyA2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDEzICsgMTQgKyAxNSArIDE2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKV0pLCAoMjMgKyAyNCArIDI1ICsgMjYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoMzMgKyAzNCArIDM1ICsgMzYpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg0MyArIDQ0ICsgNDUgKyA0NikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTAiLCBbdGV4dHVy
ZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1MyArIDU0ICsgNTUgKyA1NikgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTAi
LCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTIgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgp
LndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTIgLyB0
ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KV0pLCAoOSArIDEwKSAvIDIpOworICAgIC8qY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLCAwLCAyIC8gdGV4
dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIC0yIC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWln
aHQpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDE5ICsgMjApIC8gMik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJl
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkud2lk
dGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAyIC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgyOSArIDMwKSAv
IDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281
MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZUN1YmUuZVB0
ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIC0yIC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWln
aHQpXSksICgzOSArIDQwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIg
LyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIC0yIC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDQ5ICsgNTApIC8gMik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIC0yIC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMiAvIHRleHR1cmVDdWJlLmVQdHIubG9h
ZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1OSArIDYwKSAvIDIp
OyovCiB9CiAKIG9rVG9UZXN0ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1RleHR1cmUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9U
ZXh0dXJlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwNzY5NGZhYzI2N2E3NzgzNjViOTRhNjhjMDIxMzcwMjU0
Y2E1MGYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9U
ZXh0dXJlLmpzCkBAIC0wLDAgKzEsNTQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKyJ1c2Ugc3RyaWN0IjsKKworY2xhc3MgVGV4dHVyZSB7CisgICAgY29u
c3RydWN0b3IoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5
ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgdGhpcy5fZGltZW5zaW9u
ID0gZGltZW5zaW9uOworICAgICAgICB0aGlzLl93aWR0aCA9IHdpZHRoOworICAgICAgICB0aGlz
Ll9oZWlnaHQgPSBoZWlnaHQ7CisgICAgICAgIHRoaXMuX2RlcHRoID0gZGVwdGg7CisgICAgICAg
IHRoaXMuX2xldmVsQ291bnQgPSBsZXZlbENvdW50OworICAgICAgICB0aGlzLl9sYXllckNvdW50
ID0gbGF5ZXJDb3VudDsKKyAgICAgICAgdGhpcy5faW5uZXJUeXBlID0gaW5uZXJUeXBlOworICAg
ICAgICB0aGlzLl9kYXRhID0gZGF0YTsKKyAgICB9CisKKyAgICBnZXQgZGltZW5zaW9uKCkgeyBy
ZXR1cm4gdGhpcy5fZGltZW5zaW9uOyB9CisgICAgZ2V0IHdpZHRoKCkgeyByZXR1cm4gdGhpcy5f
d2lkdGg7IH0KKyAgICBnZXQgaGVpZ2h0KCkgeyByZXR1cm4gdGhpcy5faGVpZ2h0OyB9CisgICAg
Z2V0IGRlcHRoKCkgeyByZXR1cm4gdGhpcy5fZGVwdGg7IH0KKyAgICBnZXQgbGV2ZWxDb3VudCgp
IHsgcmV0dXJuIHRoaXMuX2xldmVsQ291bnQ7IH0KKyAgICBnZXQgbGF5ZXJDb3VudCgpIHsgcmV0
dXJuIHRoaXMuX2xheWVyQ291bnQ7IH0KKyAgICBnZXQgaW5uZXJUeXBlKCkgeyByZXR1cm4gdGhp
cy5faW5uZXJUeXBlOyB9CisgICAgZ2V0IGRhdGEoKSB7IHJldHVybiB0aGlzLl9kYXRhOyB9CisK
KyAgICBlbGVtZW50Q2hlY2tlZChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAg
ICBpZiAobGF5ZXIgPCAwIHx8IGxheWVyID49IHRoaXMubGF5ZXJDb3VudAorICAgICAgICAgICAg
fHwgbGV2ZWwgPCAwIHx8IGxldmVsID49IHRoaXMubGV2ZWxDb3VudAorICAgICAgICAgICAgfHwg
ayA8IDAgfHwgayA+PSB0aGlzLmRlcHRoCisgICAgICAgICAgICB8fCBqIDwgMCB8fCBqID49IHRo
aXMuaGVpZ2h0CisgICAgICAgICAgICB8fCBpIDwgMCB8fCBpID49IHRoaXMud2lkdGgpCisgICAg
ICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50KGxh
eWVyLCBsZXZlbCwgaywgaiwgaSk7CisgICAgfQorCisgICAgc2V0RWxlbWVudENoZWNrZWQobGF5
ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmIChsYXllciA8IDAg
fHwgbGF5ZXIgPj0gdGhpcy5sYXllckNvdW50CisgICAgICAgICAgICB8fCBsZXZlbCA8IDAgfHwg
bGV2ZWwgPj0gdGhpcy5sZXZlbENvdW50CisgICAgICAgICAgICB8fCBrIDwgMCB8fCBrID49IHRo
aXMuZGVwdGgKKyAgICAgICAgICAgIHx8IGogPCAwIHx8IGogPj0gdGhpcy5oZWlnaHQKKyAgICAg
ICAgICAgIHx8IGkgPCAwIHx8IGkgPj0gdGhpcy53aWR0aCkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgdGhpcy5zZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFs
dWUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUxRCBl
eHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7
CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiBtaXBtYXBzLgorICAgICAgICAvLyBU
aGUgZmlyc3QgbWlwbWFwIGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBFYWNo
IGVsZW1lbnQgbWF5IGJlIGEgc2NhbGFyIG9yIGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgorICAg
ICAgICAvLyBUaGUgd2lkdGggbXVzdCBiZSBhIHBvd2VyLW9mLXR3by4KKyAgICAgICAgLy8gRWFj
aCBtaXBtYXAgaXMgaGFsZi1zaXplIG9mIHRoZSBwcmV2aW91cyBzaXplLgorCisgICAgICAgIGxl
dCBkaW1lbnNpb24gPSAxOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdLmxlbmd0aDsKKyAg
ICAgICAgbGV0IGhlaWdodCA9IDE7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxl
dCBsZXZlbENvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gMTsK
KyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3Vu
dCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2
ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXS5sZW5ndGg7
CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVy
biAxOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJl
dHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1baV07CisgICAgfQorCisgICAgc2V0
RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhp
cy5kYXRhW2xldmVsXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTFEQXJy
YXkgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisg
ICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgMUQgdGV4dHVyZXMuCisgICAg
ICAgIC8vIEFsbCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNhbWUgd2lkdGggYW5kIG51bWJlciBv
ZiBtaXBtYXBzLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAxOworICAgICAgICBsZXQgd2lk
dGggPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IDE7CisgICAgICAg
IGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YVswXS5sZW5ndGg7
CisgICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIHN1cGVyKGRp
bWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlu
bmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKworICAg
IGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisK
KyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9
CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJl
dHVybiB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50
KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFb
bGF5ZXJdW2xldmVsXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTJEIGV4
dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsK
KyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIG1pcG1hcHMuCisgICAgICAgIC8vIFRo
ZSBmaXJzdCBtaXBtYXAgaXMgYSByZWN0YW5ndWxhciBhcnJheSBvZiByb3dzLCB3aGVyZSBlYWNo
IHJvdyBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1h
eSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhl
IHdpZHRoIGFuZCBoZWlnaHQgbXVzdCBiZSBwb3dlcnMtb2YtdHdvLgorICAgICAgICAvLyBFYWNo
IG1pcG1hcCBpcyBoYWxmLXdpZHRoIGFuZCBoYWxmLWhlaWdodCBvZiB0aGUgcHJldmlvdXMgc2l6
ZS4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMjsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0
YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRhWzBdLmxlbmd0aDsKKyAg
ICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSBkYXRhLmxlbmd0
aDsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSAxOworICAgICAgICBzdXBlcihkaW1lbnNpb24s
IHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUs
IGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRB
dExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF0ubGVu
Z3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJl
dHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1bal1baV07CisgICAgfQorCisgICAg
c2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAg
dGhpcy5kYXRhW2xldmVsXVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworbGV0IFRleHR1cmVE
ZXB0aDJEID0gVGV4dHVyZTJEOworCitjbGFzcyBUZXh0dXJlMkRBcnJheSBleHRlbmRzIFRleHR1
cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8v
ICJkYXRhIiBpcyBhbiBhcnJheSBvZiAyRCB0ZXh0dXJlcy4KKyAgICAgICAgLy8gQWxsIHRleHR1
cmVzIG11c3QgaGF2ZSB0aGUgc2FtZSB3aWR0aCwgaGVpZ2h0IGFuZCBudW1iZXIgb2YgbWlwbWFw
cy4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMjsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0
YVswXVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRhWzBdWzBdLmxlbmd0
aDsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSBkYXRh
WzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAg
ICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5
ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2
ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdW2xldmVsXVswXS5sZW5ndGg7
CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVy
biB0aGlzLmRhdGFbMF1bbGV2ZWxdLmxlbmd0aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwo
bGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxh
eWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGF5
ZXJdW2xldmVsXVtqXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwg
aywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtq
XVtpXSA9IHZhbHVlOworICAgIH0KK30KKworbGV0IFRleHR1cmVEZXB0aDJEQXJyYXkgPSBUZXh0
dXJlMkRBcnJheTsKKworY2xhc3MgVGV4dHVyZTNEIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29u
c3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFu
IGFycmF5IG9mIG1pcG1hcHMuCisgICAgICAgIC8vIFRoZSBmaXJzdCBtaXBtYXAgaXMgYW4gYXJy
YXkgb2YgZGVwdGggc2xpY2VzLCBlYWNoIGRlcHRoIHNsaWNlIGlzIGFuIGFycmF5IG9mIHJvd3Ms
IGFuZCBlYWNoIHJvdyBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBl
bGVtZW50IG1heSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAg
ICAgLy8gVGhlIHdpZHRoLCBoZWlnaHQsIGFuZCBkZXB0aCBtdXN0IGJlIHBvd2Vycy1vZi10d28u
CisgICAgICAgIC8vIEVhY2ggbWlwbWFwIGlzIGhhbGYtd2lkdGgsIGhhbGYtaGVpZ2h0LCBhbmQg
aGFsZi1kZXB0aCBvZiB0aGUgcHJldmlvdXMgc2l6ZS4KKworICAgICAgICBsZXQgZGltZW5zaW9u
ID0gMzsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXVswXS5sZW5ndGg7CisgICAgICAg
IGxldCBoZWlnaHQgPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGRlcHRoID0gZGF0
YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YS5sZW5ndGg7CisgICAg
ICAgIGxldCBsYXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwg
aGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsK
KyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5kYXRhW2xldmVsXVswXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZl
bChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdWzBdLmxlbmd0
aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1
cm4gdGhpcy5kYXRhW2xldmVsXS5sZW5ndGg7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwg
bGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXVtr
XVtqXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwg
dmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbbGV2ZWxdW2tdW2pdW2ldID0gdmFsdWU7
CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlQ3ViZSBleHRlbmRzIFRleHR1cmUgeworICAgIGNv
bnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBh
biBhcnJheSBvZiA2IDJEIHRleHR1cmVzLgorICAgICAgICAvLyBBbGwgdGV4dHVyZXMgbXVzdCBo
YXZlIHRoZSBzYW1lIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBhbmQgbnVtYmVyIG9mIG1pcG1hcHMu
CisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFb
MF1bMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXVswXS5sZW5ndGg7
CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YVsw
XS5sZW5ndGg7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAg
IHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVy
Q291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVs
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF1bMF0ubGVuZ3RoOwor
ICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5kYXRhWzBdW2xldmVsXS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxl
dmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXll
ciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xheWVy
XVtsZXZlbF1bal1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGss
IGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1bal1b
aV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2xldCBUZXh0dXJlRGVwdGhDdWJlID0gVGV4dHVyZUN1
YmU7CisKK2NsYXNzIFRleHR1cmUxRFJXIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0
b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5
IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBFYWNoIGVsZW1lbnQgbWF5IGJlIGEgc2NhbGFyIG9y
IGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgorICAgICAgICAvLyBUaGUgd2lkdGggbXVzdCBiZSBh
IHBvd2VyLW9mLXR3by4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMTsKKyAgICAgICAgbGV0
IHdpZHRoID0gZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSAxOworICAgICAgICBs
ZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7CisgICAgICAgIGxldCBs
YXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBk
ZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisK
KyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRh
Lmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGos
IGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2ldOworICAgIH0KKworICAgIHNl
dEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRo
aXMuZGF0YVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTFEQXJyYXlSVyBl
eHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7
CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiAxRCBSVyB0ZXh0dXJlcy4KKyAgICAg
ICAgLy8gQWxsIHRleHR1cmVzIG11c3QgaGF2ZSB0aGUgc2FtZSBzaXplLgorCisgICAgICAgIGxl
dCBkaW1lbnNpb24gPSAxOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdLmxlbmd0aDsKKyAg
ICAgICAgbGV0IGhlaWdodCA9IDE7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxl
dCBsZXZlbENvdW50ID0gMTsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSBkYXRhLmxlbmd0aDsK
KyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3Vu
dCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2
ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdLmxlbmd0aDsKKyAg
ICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7
CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgewor
ICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xheWVyXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVt
ZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRh
dGFbbGF5ZXJdW2ldID0gdmFsdWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlMkRSVyBleHRl
bmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7Cisg
ICAgICAgIC8vICJkYXRhIiBpcyBhIHJlY3Rhbmd1bGFyIGFycmF5IG9mIHJvd3MsIHdoZXJlIGVh
Y2ggcm93IGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBFYWNoIGVsZW1lbnQg
bWF5IGJlIGEgc2NhbGFyIG9yIGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgorICAgICAgICAvLyBU
aGUgd2lkdGggYW5kIGhlaWdodCBtdXN0IGJlIHBvd2Vycy1vZi10d28uCisKKyAgICAgICAgbGV0
IGRpbWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF0ubGVuZ3RoOworICAg
ICAgICBsZXQgaGVpZ2h0ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0aCA9IDE7Cisg
ICAgICAgIGxldCBsZXZlbENvdW50ID0gMTsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSAxOwor
ICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50
LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZl
bChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF0ubGVuZ3RoOworICAg
IH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhp
cy5kYXRhLmxlbmd0aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgewor
ICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywg
aiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbal1baV07CisgICAgfQorCisg
ICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAg
ICAgdGhpcy5kYXRhW2pdW2ldID0gdmFsdWU7CisgICAgfQorfQorCitsZXQgVGV4dHVyZURlcHRo
MkRSVyA9IFRleHR1cmUyRFJXOworCitjbGFzcyBUZXh0dXJlMkRBcnJheVJXIGV4dGVuZHMgVGV4
dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAg
Ly8gImRhdGEiIGlzIGFuIGFycmF5IG9mIDJEIFJXIHRleHR1cmVzLgorICAgICAgICAvLyBBbGwg
dGV4dHVyZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHdpZHRoIGFuZCBoZWlnaHQuCisKKyAgICAgICAg
bGV0IGRpbWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF0ubGVuZ3Ro
OworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0
aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gMTsKKyAgICAgICAgbGV0IGxheWVyQ291
bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0
LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9
CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5k
YXRhWzBdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXS5sZW5ndGg7CisgICAgfQorCisgICAgZGVw
dGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAg
ZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhp
cy5kYXRhW2xheWVyXVtqXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZl
bCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbbGF5ZXJdW2pdW2ld
ID0gdmFsdWU7CisgICAgfQorfQorCitsZXQgVGV4dHVyZURlcHRoMkRBcnJheVJXID0gVGV4dHVy
ZTJEQXJyYXlSVworCitjbGFzcyBUZXh0dXJlM0RSVyBleHRlbmRzIFRleHR1cmUgeworICAgIGNv
bnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBh
biBhcnJheSBvZiBkZXB0aCBzbGljZXMsIGVhY2ggZGVwdGggc2xpY2UgaXMgYW4gYXJyYXkgb2Yg
cm93cywgYW5kIGVhY2ggcm93IGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBF
YWNoIGVsZW1lbnQgbWF5IGJlIGEgc2NhbGFyIG9yIGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgor
ICAgICAgICAvLyBUaGUgd2lkdGgsIGhlaWdodCwgYW5kIGRlcHRoIG11c3QgYmUgcG93ZXJzLW9m
LXR3by4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMzsKKyAgICAgICAgbGV0IHdpZHRoID0g
ZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRhWzBdLmxlbmd0aDsK
KyAgICAgICAgbGV0IGRlcHRoID0gZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBsZXZlbENvdW50
ID0gMTsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSAxOworICAgICAgICBzdXBlcihkaW1lbnNp
b24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5
cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0aGlzLmRhdGFbMF1bMF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0
TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdLmxlbmd0aDsK
KyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5kYXRhLmxlbmd0aDsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywg
aiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFba11bal1baV07CisgICAgfQor
CisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAg
ICAgICAgdGhpcy5kYXRhW2tdW2pdW2ldID0gdmFsdWU7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanMgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlT3BlcmF0aW9ucy5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mMDEwNzUxZmE1MzU0ODVlMGQ2ODgzZTk3ZDJiY2JkMzVmZDgwNDBlCi0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanMK
QEAgLTAsMCArMSw2MzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworInVzZSBzdHJpY3QiOworCitmdW5jdGlvbiBkZXB0aENvbXBhcmVPcGVyYXRpb24oZHJl
ZiwgZCwgY29tcGFyZUZ1bmN0aW9uKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAx
NS4zLjQKKyAgICBzd2l0Y2ggKGNvbXBhcmVGdW5jdGlvbikgeworICAgICAgICBjYXNlICJuZXZl
ciI6CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgY2FzZSAibGVzcyI6CisgICAgICAg
ICAgICByZXR1cm4gZHJlZiA8IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAiZXF1YWwiOgorICAg
ICAgICAgICAgcmV0dXJuIGRyZWYgPT0gZCA/IDEgOiAwOworICAgICAgICBjYXNlICJsZXNzRXF1
YWwiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYgPD0gZCA/IDEgOiAwOworICAgICAgICBjYXNl
ICJncmVhdGVyIjoKKyAgICAgICAgICAgIHJldHVybiBkcmVmID4gZCA/IDEgOiAwOworICAgICAg
ICBjYXNlICJub3RFcXVhbCI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiAhPSBkID8gMSA6IDA7
CisgICAgICAgIGNhc2UgImdyZWF0ZXJFcXVhbCI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiA+
PSBkID8gMSA6IDA7CisgICAgICAgIGNhc2UgImFsd2F5cyI6CisgICAgICAgICAgICByZXR1cm4g
MTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93
biBkZXB0aCBjb21wYXJpc29uIGZ1bmN0aW9uIik7CisgICAgfQorfQorCitmdW5jdGlvbiBjb252
ZXJzaW9uVG9SR0JBKHZhbHVlKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS4z
LjUKKyAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSkgeworICAgICAgICBsZXQgcmVzdWx0
ID0gW107CisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyArK2kpCisg
ICAgICAgICAgICByZXN1bHQucHVzaCh2YWx1ZVtpXSk7CisgICAgICAgIHdoaWxlIChyZXN1bHQu
bGVuZ3RoICE9IDQpCisgICAgICAgICAgICByZXN1bHQucHVzaChyZXN1bHQubGVuZ3RoID09IDMg
PyAxIDogMCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfSBlbHNlCisgICAgICAgIHJl
dHVybiBbdmFsdWUsIDAsIDAsIDFdOworfQorCitmdW5jdGlvbiBwcm9qZWN0aW9uT3BlcmF0aW9u
KHMsIHQsIHIsIGRyZWYsIHEpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYu
MQorICAgIHJldHVybiBbcyAvIHEsIHQgLyBxLCByIC8gcSwgZHJlZiAhPSB1bmRlZmluZWQgPyBk
cmVmIC8gcSA6IHVuZGVmaW5lZF07Cit9CisKK2Z1bmN0aW9uIGN1YmVNYXBGYWNlU2VsZWN0aW9u
KHMsIHQsIHIsIHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRv
WSwgcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZLCBwYXJ0
aWFsUnpXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1kpCit7CisgICAgLy8g
VnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuNAorICAgIGxldCByeCA9IHM7CisgICAgbGV0IHJ5
ID0gdDsKKyAgICBsZXQgcnogPSByOworICAgIGxldCB3aW5uZXIgPSAwOworICAgIGlmIChNYXRo
LmFicyhyeikgPj0gTWF0aC5hYnMocnkpICYmIE1hdGguYWJzKHJ6KSA+PSBNYXRoLmFicyhyeCkp
CisgICAgICAgIHdpbm5lciA9IDI7CisgICAgZWxzZSBpZiAoTWF0aC5hYnMocnkpID49IE1hdGgu
YWJzKHJ4KSAmJiBNYXRoLmFicyhyeSkgPj0gTWF0aC5hYnMocnopKQorICAgICAgICB3aW5uZXIg
PSAxOworCisgICAgbGV0IGxheWVyTnVtYmVyOworICAgIGxldCBzYzsKKyAgICBsZXQgdGM7Cisg
ICAgbGV0IHJjOworICAgIGxldCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWDsKKyAgICBsZXQgcGFy
dGlhbFNjV2l0aFJlc3BlY3RUb1k7CisgICAgbGV0IHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YOwor
ICAgIGxldCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWTsKKyAgICBsZXQgcGFydGlhbFJjV2l0aFJl
c3BlY3RUb1g7CisgICAgbGV0IHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZOworICAgIGlmICh3aW5u
ZXIgPT0gMCAmJiByeCA+PSAwKSB7CisgICAgICAgIGxheWVyTnVtYmVyID0gMDsKKyAgICAgICAg
c2MgPSAtcno7CisgICAgICAgIHRjID0gLXJ5OworICAgICAgICByYyA9IHJ4OworICAgICAgICBw
YXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAg
ICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7Cisg
ICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9Y
OworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVj
dFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnhXaXRoUmVz
cGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnhXaXRo
UmVzcGVjdFRvWTsKKyAgICB9IGVsc2UgaWYgKHdpbm5lciA9PSAwKSB7CisgICAgICAgIGxheWVy
TnVtYmVyID0gMTsKKyAgICAgICAgc2MgPSByejsKKyAgICAgICAgdGMgPSAtcnk7CisgICAgICAg
IHJjID0gcng7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ6V2l0
aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ6
V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRp
YWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1w
YXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gg
PSAtcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0
VG9ZID0gLXBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxzZSBpZiAod2lubmVyID09
IDEgJiYgcnkgPj0gMCkgeworICAgICAgICBsYXllck51bWJlciA9IDI7CisgICAgICAgIHNjID0g
cng7CisgICAgICAgIHRjID0gLXJ6OworICAgICAgICByYyA9IHJ5OworICAgICAgICBwYXJ0aWFs
U2NXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0
aWFsU2NXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgICAgICBw
YXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAg
ICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAg
ICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOwor
ICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeVdpdGhSZXNwZWN0VG9Z
OworICAgIH0gZWxzZSBpZiAod2lubmVyID09IDEpIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSAz
OworICAgICAgICBzYyA9IHJ4OworICAgICAgICB0YyA9IC1yejsKKyAgICAgICAgcmMgPSByeTsK
KyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRv
WDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnhXaXRoUmVzcGVj
dFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ6V2l0aFJl
c3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeldp
dGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFs
UnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSAtcGFy
dGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgfSBlbHNlIGlmICh3aW5uZXIgPT0gMiAmJiByeiA+
PSAwKSB7CisgICAgICAgIGxheWVyTnVtYmVyID0gNDsKKyAgICAgICAgc2MgPSByeDsKKyAgICAg
ICAgdGMgPSAtcnk7CisgICAgICAgIHJjID0gcno7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNw
ZWN0VG9YID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhS
ZXNwZWN0VG9ZID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dp
dGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFs
VGNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFy
dGlhbFJjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAg
cGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICB9
IGVsc2UgeworICAgICAgICBsYXllck51bWJlciA9IDU7CisgICAgICAgIHNjID0gLXJ4OworICAg
ICAgICB0YyA9IC1yeTsKKyAgICAgICAgcmMgPSByejsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJl
c3BlY3RUb1ggPSAtcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dp
dGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFs
VGNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFy
dGlhbFRjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgICAg
IHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAg
ICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsK
KyAgICB9CisgICAgcmV0dXJuIFtsYXllck51bWJlciwgc2MsIHRjLCByYywgcGFydGlhbFNjV2l0
aFJlc3BlY3RUb1gsIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVGNXaXRoUmVzcGVj
dFRvWCwgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YLCBw
YXJ0aWFsUmNXaXRoUmVzcGVjdFRvWV0KK30KKworZnVuY3Rpb24gY3ViZU1hcENvb3JkaW5hdGVU
cmFuc2Zvcm1hdGlvbihzYywgdGMsIHJjKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlv
biAxNS42LjUKKyAgICBsZXQgc0ZhY2UgPSAoMSAvIDIpICogc2MgLyBNYXRoLmFicyhyYykgKyAo
MSAvIDIpOworICAgIGxldCB0RmFjZSA9ICgxIC8gMikgKiB0YyAvIE1hdGguYWJzKHJjKSArICgx
IC8gMik7CisgICAgcmV0dXJuIFtzRmFjZSwgdEZhY2VdOworfQorCitmdW5jdGlvbiBjdWJlTWFw
RGVyaXZhdGl2ZVRyYW5zZm9ybWF0aW9uKHNjLCB0YywgcmMsIHBhcnRpYWxTY1dpdGhSZXNwZWN0
VG9YLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1gsIHBh
cnRpYWxUY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJj
V2l0aFJlc3BlY3RUb1kpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuNgor
ICAgIGxldCBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWCA9ICgxIC8gMikgKiAoKE1hdGguYWJz
KHJjKSAqIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YIC0gc2MgKiBwYXJ0aWFsUmNXaXRoUmVzcGVj
dFRvWCkgLyBNYXRoLnBvdyhyYywgMikpOworICAgIGxldCBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVj
dFRvWSA9ICgxIC8gMikgKiAoKE1hdGguYWJzKHJjKSAqIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9Z
IC0gc2MgKiBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSkgLyBNYXRoLnBvdyhyYywgMikpOworICAg
IGxldCBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRvWCA9ICgxIC8gMikgKiAoKE1hdGguYWJzKHJj
KSAqIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YIC0gdGMgKiBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRv
WCkgLyBNYXRoLnBvdyhyYywgMikpOworICAgIGxldCBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRv
WSA9ICgxIC8gMikgKiAoKE1hdGguYWJzKHJjKSAqIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZIC0g
dGMgKiBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSkgLyBNYXRoLnBvdyhyYywgMikpOworICAgIHJl
dHVybiBbcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTRmFjZVdpdGhSZXNwZWN0
VG9ZLCBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RU
b1ldOworfQorCitmdW5jdGlvbiBzY2FsZUZhY3Rvck9wZXJhdGlvbihkZXZpY2VNYXhBbmlzb3Ry
b3B5LCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgc2FtcGxlck1heEFuaXNvdHJvcHksIHBhcnRpYWxT
V2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSV2l0aFJlc3Bl
Y3RUb1gsIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1ksIHBh
cnRpYWxSV2l0aFJlc3BlY3RUb1kpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1
LjYuNworICAgIGxldCBtdXggPSBNYXRoLmFicyhwYXJ0aWFsU1dpdGhSZXNwZWN0VG9YKSAqIHdp
ZHRoOworICAgIGxldCBtdnggPSBNYXRoLmFicyhwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YKSAqIGhl
aWdodDsKKyAgICBsZXQgbXd4ID0gTWF0aC5hYnMocGFydGlhbFJXaXRoUmVzcGVjdFRvWCkgKiBk
ZXB0aDsKKyAgICBsZXQgbXV5ID0gTWF0aC5hYnMocGFydGlhbFNXaXRoUmVzcGVjdFRvWSkgKiB3
aWR0aDsKKyAgICBsZXQgbXZ5ID0gTWF0aC5hYnMocGFydGlhbFRXaXRoUmVzcGVjdFRvWSkgKiBo
ZWlnaHQ7CisgICAgbGV0IG13eSA9IE1hdGguYWJzKHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kpICog
ZGVwdGg7CisKKyAgICAvLyBJIG1hZGUgdGhpcyB1cC4gVGhlIGZvcm11bGEgaXNuJ3QgbGlzdGVk
IGluIHRoZSBzcGVjLgorICAgIGxldCBmeCA9IE1hdGguc3FydChtdXggKiBtdXggKyBtdnggKiBt
dnggKyBtd3ggKiBtd3gpOworICAgIGxldCBmeSA9IE1hdGguc3FydChtdXkgKiBtdXkgKyBtdnkg
KiBtdnkgKyBtd3kgKiBtd3kpOworCisgICAgbGV0IHJob1ggPSBmeDsKKyAgICBsZXQgcmhvWSA9
IGZ5OworICAgIGxldCByaG9NYXggPSBNYXRoLm1heChyaG9YLCByaG9ZKTsKKyAgICBsZXQgcmhv
TWluID0gTWF0aC5taW4ocmhvWCwgcmhvWSk7CisKKyAgICBsZXQgbWF4QW5pc28gPSBNYXRoLm1p
bihzYW1wbGVyTWF4QW5pc290cm9weSwgZGV2aWNlTWF4QW5pc290cm9weSk7CisKKyAgICBsZXQg
ZXRhOworICAgIGlmIChyaG9NYXggPT0gMCAmJiByaG9NaW4gPT0gMCkKKyAgICAgICAgZXRhID0g
MTsKKyAgICBlbHNlIGlmIChyaG9NaW4gPT0gMCkKKyAgICAgICAgZXRhID0gbWF4QW5pc287Cisg
ICAgZWxzZQorICAgICAgICBldGEgPSBNYXRoLm1pbihyaG9NYXggLyByaG9NaW4sIG1heEFuaXNv
KTsKKworICAgIGxldCBOID0gTWF0aC5jZWlsKGV0YSk7CisgICAgcmV0dXJuIFtyaG9NYXgsIHJo
b01pbiwgZXRhLCBOXTsKK30KKworZnVuY3Rpb24gbGV2ZWxPZkRldGFpbE9wZXJhdGlvbihkZXZp
Y2VNYXhTYW1wbGVyTG9kQmlhcywgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwgbG9kTWluRnJvbUZ1
bmN0aW9uT3BlcmFuZCwgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIHNhbXBsZXJCaWFzLCBzYW1w
bGVyTG9kTWluLCBzYW1wbGVyTG9kTWF4LCByaG9NYXgsIGV0YSkKK3sKKyAgICAvLyBWdWxrYW4g
MS4xLjgzIHNlY3Rpb24gMTUuNi43CisgICAgaWYgKGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kID09
IHVuZGVmaW5lZCkKKyAgICAgICAgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQgPSAwOworCisgICAg
bGV0IGxhbWJkYUJhc2UgPSBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kICE9IHVuZGVmaW5lZCA/IGxv
ZEZyb21GdW5jdGlvbk9wZXJhbmQgOiBNYXRoLmxvZzIocmhvTWF4IC8gZXRhKTsKKyAgICBsZXQg
bGFtYmRhUHJpbWUgPSBsYW1iZGFCYXNlICsgTWF0aC5taW4oTWF0aC5tYXgoc2FtcGxlckJpYXMg
KyBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwgLWRldmljZU1heFNhbXBsZXJMb2RCaWFzKSwgZGV2
aWNlTWF4U2FtcGxlckxvZEJpYXMpOworICAgIGxldCBsb2RNaW4gPSBNYXRoLm1heChzYW1wbGVy
TG9kTWluLCBsb2RNaW5Gcm9tRnVuY3Rpb25PcGVyYW5kKTsKKyAgICBsZXQgbG9kTWF4ID0gc2Ft
cGxlckxvZE1heDsKKyAgICBsZXQgbGFtYmRhOworICAgIGlmIChsYW1iZGFQcmltZSA+IGxvZE1h
eCkKKyAgICAgICAgbGFtYmRhID0gbG9kTWF4OworICAgIGVsc2UgaWYgKGxvZE1pbiA8PSBsYW1i
ZGFQcmltZSAmJiBsYW1iZGFQcmltZSA8PSBsb2RNYXgpCisgICAgICAgIGxhbWJkYSA9IGxhbWJk
YVByaW1lOworICAgIGVsc2UgaWYgKGxhbWJkYVByaW1lIDwgbG9kTWluKQorICAgICAgICBsYW1i
ZGEgPSBsb2RNaW47CisgICAgZWxzZQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImxvZE1pbiA+
PSBsb2RNYXgiKTsKKyAgICByZXR1cm4gbGFtYmRhOworfQorCitmdW5jdGlvbiBpbWFnZUxldmVs
U2VsZWN0aW9uKGJhc2VNaXBMZXZlbCwgbGV2ZWxDb3VudCwgbWlwbWFwTW9kZSwgbGFtYmRhKQor
eworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjcKKyAgICBmdW5jdGlvbiBuZWFy
ZXN0KGRQcmltZSkKKyAgICB7CisgICAgICAgIHJldHVybiBNYXRoLmNlaWwoZFByaW1lICsgMC41
KSAtIDE7CisgICAgfQorCisgICAgbGV0IHEgPSBsZXZlbENvdW50IC0gMTsKKyAgICBsZXQgZFBy
aW1lID0gYmFzZU1pcExldmVsICsgTWF0aC5taW4oTWF0aC5tYXgobGFtYmRhLCAwKSwgcSk7Cisg
ICAgbGV0IGRsOworICAgIGlmIChtaXBtYXBNb2RlID09ICJuZWFyZXN0IikKKyAgICAgICAgZGwg
PSBuZWFyZXN0KGRQcmltZSk7CisgICAgZWxzZQorICAgICAgICBkbCA9IGRQcmltZTsKKyAgICBp
ZiAobWlwbWFwTW9kZSA9PSAibmVhcmVzdCIpCisgICAgICAgIHJldHVybiBkbDsKKyAgICBlbHNl
IHsKKyAgICAgICAgbGV0IGRIaSA9IE1hdGguZmxvb3IoZGwpOworICAgICAgICBsZXQgZExvdyA9
IE1hdGgubWluKGRIaSArIDEsIHEpOworICAgICAgICBsZXQgZGVsdGEgPSBkbCAtIGRIaTsKKyAg
ICAgICAgcmV0dXJuIFtkSGksIGRMb3csIGRlbHRhXTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHN0
cnFhVG9VVldBVHJhbnNmb3JtYXRpb24ocywgdCwgciwgd2lkdGgsIGhlaWdodCwgZGVwdGgpCit7
CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuOAorICAgIGxldCB1ID0gcyAqIHdp
ZHRoOworICAgIGxldCB2ID0gdCAqIGhlaWdodDsKKyAgICBsZXQgdyA9IHIgKiBkZXB0aDsKKyAg
ICByZXR1cm4gW3UsIHYsIHddOworfQorCitmdW5jdGlvbiB1dndhVG9JSktMTlRyYW5zZm9ybWF0
aW9uQW5kQXJyYXlMYXllclNlbGVjdGlvbihsYXllckNvdW50LCBiYXNlQXJyYXlMYXllciwgZmls
dGVyLCB1LCB2LCB3LCBhLCBkZWx0YUksIGRlbHRhSiwgZGVsdGFLKQoreworICAgIC8vIFZ1bGth
biAxLjEuODMgc2VjdGlvbiAxNS43LjEKKworICAgIGlmIChkZWx0YUkgPT0gdW5kZWZpbmVkKQor
ICAgICAgICBkZWx0YUkgPSAwOworICAgIGlmIChkZWx0YUogPT0gdW5kZWZpbmVkKQorICAgICAg
ICBkZWx0YUogPSAwOworICAgIGlmIChkZWx0YUsgPT0gdW5kZWZpbmVkKQorICAgICAgICBkZWx0
YUsgPSAwOworCisgICAgZnVuY3Rpb24gcm5lKGEpCisgICAgeworICAgICAgICByZXR1cm4gTWF0
aC5mbG9vcihhICsgMC41KTsKKyAgICB9CisgICAgbGV0IGwgPSBNYXRoLm1pbihNYXRoLm1heChy
bmUoYSksIDApLCBsYXllckNvdW50IC0gMSkgKyBiYXNlQXJyYXlMYXllcjsKKyAgICBsZXQgaTsK
KyAgICBsZXQgajsKKyAgICBsZXQgazsKKyAgICBpZiAoZmlsdGVyID09ICJuZWFyZXN0Iikgewor
ICAgICAgICBpID0gTWF0aC5mbG9vcih1KTsKKyAgICAgICAgaiA9IE1hdGguZmxvb3Iodik7Cisg
ICAgICAgIGsgPSBNYXRoLmZsb29yKHcpOworICAgICAgICAKKyAgICAgICAgaSArPSBkZWx0YUk7
CisgICAgICAgIGogKz0gZGVsdGFKOworICAgICAgICBrICs9IGRlbHRhSzsKKyAgICAgICAgCisg
ICAgICAgIHJldHVybiBbaSwgaiwgaywgbF07CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGZp
bHRlciAhPSAibGluZWFyIikKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBm
aWx0ZXIiKTsKKyAgICAgICAgbGV0IGkwID0gTWF0aC5mbG9vcih1IC0gMC41KTsKKyAgICAgICAg
bGV0IGkxID0gaTAgKyAxOworICAgICAgICBsZXQgajAgPSBNYXRoLmZsb29yKHYgLSAwLjUpOwor
ICAgICAgICBsZXQgajEgPSBqMCArIDE7CisgICAgICAgIGxldCBrMCA9IE1hdGguZmxvb3IodyAt
IDAuNSk7CisgICAgICAgIGxldCBrMSA9IGswICsgMTsKKyAgICAgICAgbGV0IGFscGhhID0gKHUg
LSAwLjUpIC0gaTA7CisgICAgICAgIGxldCBiZXRhID0gKHYgLSAwLjUpIC0gajA7CisgICAgICAg
IGxldCBnYW1tYSA9ICh3IC0gMC41KSAtIGswOworICAgICAgICAKKyAgICAgICAgaTAgKz0gZGVs
dGFJOworICAgICAgICBpMSArPSBkZWx0YUk7CisgICAgICAgIGowICs9IGRlbHRhSjsKKyAgICAg
ICAgajEgKz0gZGVsdGFKOworICAgICAgICBrMCArPSBkZWx0YUs7CisgICAgICAgIGsxICs9IGRl
bHRhSzsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBbaTAsIGkxLCBqMCwgajEsIGswLCBrMSwg
bCwgYWxwaGEsIGJldGEsIGdhbW1hXTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGludGVnZXJUZXhl
bENvb3JkaW5hdGVPcGVyYXRpb25zKGJhc2VNaXBMZXZlbCwgbGV2ZWxDb3VudCwgbGV2ZWxCYXNl
LCBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlv
biAxNS44CisgICAgbGV0IGQgPSBsZXZlbEJhc2UgKyBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kOwor
ICAgIGlmIChkIDwgYmFzZU1pcExldmVsIHx8IGQgPj0gYmFzZU1pcExldmVsICsgbGV2ZWxDb3Vu
dCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTZWxlY3RlZCBsZXZlbCBkb2VzIG5vdCBsaWUg
aW5zaWRlIHRoZSBpbWFnZSIpOworICAgIHJldHVybiBkOworfQorCitmdW5jdGlvbiB3cmFwcGlu
Z09wZXJhdGlvbih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgYWRkcmVzc01vZGVVLCBhZGRyZXNzTW9k
ZVYsIGFkZHJlc3NNb2RlVywgaSwgaiwgaykKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rp
b24gMTUuOS4xCisgICAgLy8gRklYTUU6IEltcGxlbWVudCBjdWJlIG1hcCBoYW5kbGluZworICAg
IGZ1bmN0aW9uIHRyYW5zZm9ybShhZGRyZXNzTW9kZSwgc2l6ZSwgaSkKKyAgICB7CisgICAgICAg
IGZ1bmN0aW9uIG1pcnJvcihuKSB7CisgICAgICAgICAgICBpZiAobiA+PSAwKQorICAgICAgICAg
ICAgICAgIHJldHVybiBuOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVy
biAtKDEgKyBuKTsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKGFkZHJlc3NNb2RlKSB7Cisg
ICAgICAgICAgICBjYXNlICJjbGFtcFRvRWRnZSI6CisgICAgICAgICAgICAgICAgcmV0dXJuIE1h
dGgubWluKE1hdGgubWF4KGksIDApLCBzaXplIC0gMSk7CisgICAgICAgICAgICBjYXNlICJyZXBl
YXQiOgorICAgICAgICAgICAgICAgIHJldHVybiBpICUgc2l6ZTsKKyAgICAgICAgICAgIGNhc2Ug
Im1pcnJvclJlcGVhdCI6CisgICAgICAgICAgICAgICAgcmV0dXJuIChzaXplIC0gMSkgLSBtaXJy
b3IoKGkgJSAoMiAqIHNpemUpKSAtIHNpemUpOworICAgICAgICAgICAgY2FzZSAiY2xhbXBUb0Jv
cmRlckNvbG9yIjoKKyAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoaSwg
LTEpLCBzaXplKTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJVbmtub3duIGFkZHJlc3MgbW9kZSIpOworICAgICAgICB9CisgICAgfQorICAg
IHJldHVybiBbdHJhbnNmb3JtKGFkZHJlc3NNb2RlVSwgd2lkdGgsIGkpLCB0cmFuc2Zvcm0oYWRk
cmVzc01vZGVWLCBoZWlnaHQsIGopLCB0cmFuc2Zvcm0oYWRkcmVzc01vZGVXLCBkZXB0aCwgayld
OworfQorCitmdW5jdGlvbiB0ZXhlbEdhdGhlcmluZygpCit7CisgICAgLy8gVnVsa2FuIDEuMS44
MyBzZWN0aW9uIDE1LjkuMgorICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcworICAgIC8qbGV0
IHRhdVIgPSA7CisgICAgbGV0IHRhdUcgPSA7CisgICAgbGV0IHRhdUIgPSA7CisgICAgbGV0IHRh
dUEgPSA7Ki8KK30KKworZnVuY3Rpb24gdGV4ZWxGaWx0ZXJpbmcoCisgICAgZGV2aWNlTWF4QW5p
c290cm9weSwKKyAgICBkZXZpY2VNYXhTYW1wbGVyTG9kQmlhcywKKyAgICBiYXNlTWlwTGV2ZWws
CisgICAgYmFzZUFycmF5TGF5ZXIsCisgICAgdGV4dHVyZSwKKyAgICBzYW1wbGVyLAorICAgIHNh
bXBsZXJCaWFzLAorICAgIHMsIHQsIHIsIGEsCisgICAgZGVsdGFJLCBkZWx0YUosIGRlbHRhSywK
KyAgICBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJh
bmQsCisgICAgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgZGR4LCBkZHkpCit7CisgICAg
Ly8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjkuMworCisgICAgLy8gVGhlIHNwZWMgdXNlcyBk
aWZmZXJlbnQgbmFtZXMgdGhhbiBXZWJHUFUgZG9lcy4KKyAgICBsZXQgYWRkcmVzc01vZGVVID0g
c2FtcGxlci5yQWRkcmVzc01vZGU7CisgICAgbGV0IGFkZHJlc3NNb2RlViA9IHNhbXBsZXIuc0Fk
ZHJlc3NNb2RlOworICAgIGxldCBhZGRyZXNzTW9kZVcgPSBzYW1wbGVyLnRBZGRyZXNzTW9kZTsK
KworICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgd29yayB3aXRoIGN1YmVtYXBzCisgICAgbGV0IHBh
cnRpYWxTV2l0aFJlc3BlY3RUb1ggPSAwOworICAgIGxldCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9Y
ID0gMDsKKyAgICBsZXQgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCA9IDA7CisgICAgaWYgKGRkeCAh
PSB1bmRlZmluZWQpIHsKKyAgICAgICAgcGFydGlhbFNXaXRoUmVzcGVjdFRvWCA9IGRkeFswXTsK
KyAgICAgICAgcGFydGlhbFRXaXRoUmVzcGVjdFRvWCA9IGRkeFsxXTsKKyAgICAgICAgcGFydGlh
bFJXaXRoUmVzcGVjdFRvWCA9IGRkeFsyXTsKKyAgICB9CisgICAgbGV0IHBhcnRpYWxTV2l0aFJl
c3BlY3RUb1kgPSAwOworICAgIGxldCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZID0gMDsKKyAgICBs
ZXQgcGFydGlhbFJXaXRoUmVzcGVjdFRvWSA9IDA7CisgICAgaWYgKGRkeSAhPSB1bmRlZmluZWQp
IHsKKyAgICAgICAgcGFydGlhbFNXaXRoUmVzcGVjdFRvWSA9IGRkeVswXTsKKyAgICAgICAgcGFy
dGlhbFRXaXRoUmVzcGVjdFRvWSA9IGRkeVsxXTsKKyAgICAgICAgcGFydGlhbFJXaXRoUmVzcGVj
dFRvWSA9IGRkeVsyXTsKKyAgICB9CisKKyAgICBpZiAodGV4dHVyZSBpbnN0YW5jZW9mIFRleHR1
cmVDdWJlKSB7CisgICAgICAgIGxldCBbbGF5ZXJOdW1iZXIsIHNjLCB0YywgcmMsIHBhcnRpYWxT
Y1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRjV2l0aFJl
c3BlY3RUb1gsIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRv
WCwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ldID0gY3ViZU1hcEZhY2VTZWxlY3Rpb24ocywgdCwg
ciwgcGFydGlhbFNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNXaXRoUmVzcGVjdFRvWSwgcGFydGlh
bFRXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJXaXRoUmVz
cGVjdFRvWCwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWSkKKyAgICAgICAgbGV0IFtzRmFjZSwgdEZh
Y2VdID0gY3ViZU1hcENvb3JkaW5hdGVUcmFuc2Zvcm1hdGlvbihzYywgdGMsIHJjKQorICAgICAg
ICBsZXQgW3BhcnRpYWxTRmFjZVdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVj
dFRvWSwgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0
VG9ZXSA9IGN1YmVNYXBEZXJpdmF0aXZlVHJhbnNmb3JtYXRpb24oc2MsIHRjLCByYywgcGFydGlh
bFNjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVGNXaXRo
UmVzcGVjdFRvWCwgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSY1dpdGhSZXNwZWN0
VG9YLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSkKKyAgICAgICAgcyA9IHNGYWNlOworICAgICAg
ICB0ID0gdEZhY2U7CisgICAgICAgIHIgPSAwOworICAgICAgICBhID0gbGF5ZXJOdW1iZXI7Cisg
ICAgICAgIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRv
WDsKKyAgICAgICAgcGFydGlhbFNXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxTRmFjZVdpdGhSZXNw
ZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YID0gcGFydGlhbFRGYWNlV2l0
aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsVEZh
Y2VXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCA9IDA7Cisg
ICAgICAgIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kgPSAwOworICAgIH0KKworICAgIGxldCBbcmhv
TWF4LCByaG9NaW4sIGV0YSwgTl0gPSBzY2FsZUZhY3Rvck9wZXJhdGlvbihkZXZpY2VNYXhBbmlz
b3Ryb3B5LCB0ZXh0dXJlLndpZHRoLCB0ZXh0dXJlLmhlaWdodCwgdGV4dHVyZS5kZXB0aCwgc2Ft
cGxlci5tYXhBbmlzb3Ryb3B5LCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVFdpdGhS
ZXNwZWN0VG9YLCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9Z
LCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9ZKTsKKyAgICBs
ZXQgbGFtYmRhID0gbGV2ZWxPZkRldGFpbE9wZXJhdGlvbihkZXZpY2VNYXhTYW1wbGVyTG9kQmlh
cywgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwgbG9kTWluRnJvbUZ1bmN0aW9uT3BlcmFuZCwgYmlh
c0Zyb21GdW5jdGlvbk9wZXJhbmQsIHNhbXBsZXJCaWFzLCBzYW1wbGVyLmxvZE1pbkNsYW1wLCBz
YW1wbGVyLmxvZE1heENsYW1wLCByaG9NYXgsIGV0YSk7CisKKyAgICBsZXQgZmlsdGVyOworICAg
IGlmIChsYW1iZGEgPD0gMCkKKyAgICAgICAgZmlsdGVyID0gc2FtcGxlci5tYWdGaWx0ZXI7Cisg
ICAgZWxzZQorICAgICAgICBmaWx0ZXIgPSBzYW1wbGVyLm1pbkZpbHRlcjsKKworICAgIGZ1bmN0
aW9uIHJlZHVjZSguLi52YWx1ZXMpCisgICAgeworICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCAl
IDIgIT0gMCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRG9uJ3QgaGF2ZSBhIHdlaWdo
dCBjb3JyZXNwb25kaW5nIHRvIGVhY2ggdmFsdWUiKTsKKyAgICAgICAgaWYgKHZhbHVlcy5sZW5n
dGggPCAyKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJEb24ndCBoYXZlIGVub3VnaCB0
aGluZ3MgdG8gY2FsY3VsYXRlIGFuIGF2ZXJhZ2UiKTsKKyAgICAgICAgbGV0IHN1bTsKKyAgICAg
ICAgaWYgKHZhbHVlc1sxXSBpbnN0YW5jZW9mIEFycmF5KSB7CisgICAgICAgICAgICBzdW0gPSBb
XTsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzWzFdLmxlbmd0aDsgKytp
KQorICAgICAgICAgICAgICAgIHN1bS5wdXNoKDApOworICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgIHN1bSA9IDA7CisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aCAv
IDI7ICsraSkgeworICAgICAgICAgICAgbGV0IHdlaWdodCA9IHZhbHVlc1syICogaV07CisgICAg
ICAgICAgICBsZXQgY29sb3IgPSB2YWx1ZXNbMiAqIGkgKyAxXTsKKyAgICAgICAgICAgIGlmIChj
b2xvciBpbnN0YW5jZW9mIEFycmF5KSB7CisgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7
IGkgPCBjb2xvci5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICAgICAgc3VtW2ldICs9IHdl
aWdodCAqIGNvbG9yW2ldOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgc3Vt
ICs9IHdlaWdodCAqIGNvbG9yOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdW07CisgICAg
fQorCisgICAgZnVuY3Rpb24gY29tcHV0ZVRhdShsZXZlbCkKKyAgICB7CisgICAgICAgIGZ1bmN0
aW9uIGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsLCBpLCBqLCBrKQorICAgICAg
ICB7CisgICAgICAgICAgICBmdW5jdGlvbiBzaG91bGRCZUJvcmRlcih2YWx1ZSwgbWF4KQorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA8IC0xIHx8IHZhbHVlID4gbWF4
KQorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk91dC1vZi1ib3VuZHMgdGV4
dHVyZSByZWFkIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09IC0xIHx8IHZhbHVl
ID09IG1heDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGV0IFt3cmFwcGVkSSwgd3Jh
cHBlZEosIHdyYXBwZWRLXSA9IHdyYXBwaW5nT3BlcmF0aW9uKHdpZHRoLCBoZWlnaHQsIGRlcHRo
LCBhZGRyZXNzTW9kZVUsIGFkZHJlc3NNb2RlViwgYWRkcmVzc01vZGVXLCBpLCBqLCBrKQorICAg
ICAgICAgICAgaWYgKHNob3VsZEJlQm9yZGVyKHdyYXBwZWRJLCB3aWR0aCkgfHwgc2hvdWxkQmVC
b3JkZXIod3JhcHBlZEosIGhlaWdodCkgfHwgc2hvdWxkQmVCb3JkZXIod3JhcHBlZEssIGRlcHRo
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc2FtcGxlci5jYWxjdWxhdGVCb3JkZXJDb2xvcih0
ZXh0dXJlLmlubmVyVHlwZSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0
dXJuIHRleHR1cmUuZWxlbWVudChsLCBsZXZlbCwgd3JhcHBlZEssIHdyYXBwZWRKLCB3cmFwcGVk
SSk7CisgICAgICAgIH0KKworICAgICAgICBsZXQgW3UsIHYsIHddID0gc3RycWFUb1VWV0FUcmFu
c2Zvcm1hdGlvbihzLCB0LCByLCB0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUu
aGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSk7CisgICAg
ICAgIGlmIChmaWx0ZXIgPT0gIm5lYXJlc3QiKSB7CisgICAgICAgICAgICBsZXQgW2ksIGosIGss
IGxdID0gdXZ3YVRvSUpLTE5UcmFuc2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJTZWxlY3Rpb24odGV4
dHVyZS5sYXllckNvdW50LCBiYXNlQXJyYXlMYXllciwgZmlsdGVyLCB1LCB2LCB3LCBhLCBkZWx0
YUksIGRlbHRhSiwgZGVsdGFLKTsKKyAgICAgICAgICAgIHJldHVybiBhY2Nlc3NDb2xvcih0ZXh0
dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRl
eHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaSwgaiwgayk7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBpZiAoZmlsdGVyICE9ICJsaW5lYXIiKQorICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiVW5rbm93biBmaWx0ZXIiKTsKKyAgICAgICAgICAgIGxldCBbaTAsIGkx
LCBqMCwgajEsIGswLCBrMSwgbCwgYWxwaGEsIGJldGEsIGdhbW1hXSA9IHV2d2FUb0lKS0xOVHJh
bnNmb3JtYXRpb25BbmRBcnJheUxheWVyU2VsZWN0aW9uKHRleHR1cmUubGF5ZXJDb3VudCwgYmFz
ZUFycmF5TGF5ZXIsIGZpbHRlciwgdSwgdiwgdywgYSwgZGVsdGFJLCBkZWx0YUosIGRlbHRhSyk7
CisgICAgICAgICAgICBsZXQgY29sb3IwMDAgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRM
ZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhB
dExldmVsKGxldmVsKSwgbCwgaTAsIGowLCBrMCk7CisgICAgICAgICAgICBsZXQgY29sb3IxMDAg
PSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0
QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTEsIGowLCBr
MCk7CisgICAgICAgICAgICBsZXQgY29sb3IwMTAgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRo
QXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVw
dGhBdExldmVsKGxldmVsKSwgbCwgaTAsIGoxLCBrMCk7CisgICAgICAgICAgICBsZXQgY29sb3Ix
MTAgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVp
Z2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTEsIGox
LCBrMCk7CisgICAgICAgICAgICBsZXQgY29sb3IwMDEgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndp
ZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUu
ZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTAsIGowLCBrMSk7CisgICAgICAgICAgICBsZXQgY29s
b3IxMDEgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUu
aGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTEs
IGowLCBrMSk7CisgICAgICAgICAgICBsZXQgY29sb3IwMTEgPSBhY2Nlc3NDb2xvcih0ZXh0dXJl
LndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1
cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTAsIGoxLCBrMSk7CisgICAgICAgICAgICBsZXQg
Y29sb3IxMTEgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1
cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwg
aTEsIGoxLCBrMSk7CisgICAgICAgICAgICBzd2l0Y2ggKHRleHR1cmUuZGltZW5zaW9uKSB7Cisg
ICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IwID0g
Y29sb3IwMTE7CisgICAgICAgICAgICAgICAgICAgIGxldCBjb2xvcjEgPSBjb2xvcjExMTsKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZHVjZSgxIC0gYWxwaGEsIGNvbG9yMCwgYWxwaGEs
IGNvbG9yMSk7CisgICAgICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICBs
ZXQgY29sb3IwMCA9IGNvbG9yMDAxOworICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IxMCA9
IGNvbG9yMTAxOworICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IwMSA9IGNvbG9yMDExOwor
ICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IxMSA9IGNvbG9yMTExOworICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gcmVkdWNlKCgxIC0gYWxwaGEpICogKDEgLSBiZXRhKSwgY29sb3IwMCwg
YWxwaGEgKiAoMSAtIGJldGEpLCBjb2xvcjEwLCAoMSAtIGFscGhhKSAqIGJldGEsIGNvbG9yMDEs
IGFscGhhICogYmV0YSwgY29sb3IxMSk7CisgICAgICAgICAgICAgICAgY2FzZSAzOgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gcmVkdWNlKAorICAgICAgICAgICAgICAgICAgICAgICAgKDEg
LSBhbHBoYSkgKiAoMSAtIGJldGEpICogKDEgLSBnYW1tYSksIGNvbG9yMDAwLAorICAgICAgICAg
ICAgICAgICAgICAgICAgYWxwaGEgKiAoMSAtIGJldGEpICogKDEgLSBnYW1tYSksIGNvbG9yMTAw
LAorICAgICAgICAgICAgICAgICAgICAgICAgKDEgLSBhbHBoYSkgKiBiZXRhICogKDEgLSBnYW1t
YSksIGNvbG9yMDEwLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxwaGEgKiBiZXRhICogKDEg
LSBnYW1tYSksIGNvbG9yMTEwLAorICAgICAgICAgICAgICAgICAgICAgICAgKDEgLSBhbHBoYSkg
KiAoMSAtIGJldGEpICogZ2FtbWEsIGNvbG9yMDAxLAorICAgICAgICAgICAgICAgICAgICAgICAg
YWxwaGEgKiAoMSAtIGJldGEpICogZ2FtbWEsIGNvbG9yMTAxLAorICAgICAgICAgICAgICAgICAg
ICAgICAgKDEgLSBhbHBoYSkgKiBiZXRhICogZ2FtbWEsIGNvbG9yMDExLAorICAgICAgICAgICAg
ICAgICAgICAgICAgYWxwaGEgKiBiZXRhICogZ2FtbWEsIGNvbG9yMTExKTsKKyAgICAgICAgICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25v
d24gZGltZW5zaW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBp
ZiAoc2FtcGxlci5taXBtYXBGaWx0ZXIgPT0gIm5lYXJlc3QiKSB7CisgICAgICAgIGxldCBpbWFn
ZUxldmVsID0gaW1hZ2VMZXZlbFNlbGVjdGlvbihiYXNlTWlwTGV2ZWwsIHRleHR1cmUubGV2ZWxD
b3VudCwgc2FtcGxlci5taXBtYXBGaWx0ZXIsIGxhbWJkYSk7CisgICAgICAgIHJldHVybiBjb21w
dXRlVGF1KGltYWdlTGV2ZWwpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChzYW1wbGVyLm1p
cG1hcEZpbHRlciAhPSAibGluZWFyIikKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5r
bm93biBmaWx0ZXIiKTsKKyAgICAgICAgbGV0IFtkSGksIGRMb3csIGRlbHRhXSA9IGltYWdlTGV2
ZWxTZWxlY3Rpb24oYmFzZU1pcExldmVsLCB0ZXh0dXJlLmxldmVsQ291bnQsIHNhbXBsZXIubWlw
bWFwRmlsdGVyLCBsYW1iZGEpOworICAgICAgICByZXR1cm4gcmVkdWNlKDEgLSBkZWx0YSwgY29t
cHV0ZVRhdShkSGkpLCBkZWx0YSwgY29tcHV0ZVRhdShkTG93KSk7CisgICAgfQorfQorCitmdW5j
dGlvbiBjYXN0VG9Jbm5lclR5cGUodmFsdWUsIGlubmVyVHlwZSkKK3sKKyAgICBzd2l0Y2ggKGlu
bmVyVHlwZSkgeworICAgICAgICBjYXNlICJ1Y2hhciI6CisgICAgICAgICAgICByZXR1cm4gY2Fz
dFRvVWNoYXIodmFsdWUpOworICAgICAgICBjYXNlICJ1c2hvcnQiOgorICAgICAgICAgICAgcmV0
dXJuIGNhc3RUb1VzaG9ydCh2YWx1ZSk7CisgICAgICAgIGNhc2UgInVpbnQiOgorICAgICAgICAg
ICAgcmV0dXJuIGNhc3RUb1VpbnQodmFsdWUpOworICAgICAgICBjYXNlICJjaGFyIjoKKyAgICAg
ICAgICAgIHJldHVybiBjYXN0VG9DaGFyKHZhbHVlKTsKKyAgICAgICAgY2FzZSAic2hvcnQiOgor
ICAgICAgICAgICAgcmV0dXJuIGNhc3RUb1Nob3J0KHZhbHVlKTsKKyAgICAgICAgY2FzZSAiaW50
IjoKKyAgICAgICAgICAgIHJldHVybiBjYXN0VG9JbnQodmFsdWUpOworICAgICAgICBjYXNlICJo
YWxmIjoKKyAgICAgICAgICAgIHJldHVybiBjYXN0VG9IYWxmKHZhbHVlKTsKKyAgICAgICAgY2Fz
ZSAiZmxvYXQiOgorICAgICAgICAgICAgcmV0dXJuIGNhc3RUb0Zsb2F0KHZhbHVlKTsKKyAgICAg
ICAgCisgICAgICAgIGNhc2UgInVjaGFyMiI6CisgICAgICAgIGNhc2UgInVjaGFyMyI6CisgICAg
ICAgIGNhc2UgInVjaGFyNCI6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb1Vj
aGFyKTsKKyAgICAgICAgY2FzZSAidXNob3J0MiI6CisgICAgICAgIGNhc2UgInVzaG9ydDMiOgor
ICAgICAgICBjYXNlICJ1c2hvcnQ0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoY2Fz
dFRvVXNob3J0KTsKKyAgICAgICAgY2FzZSAidWludDIiOgorICAgICAgICBjYXNlICJ1aW50MyI6
CisgICAgICAgIGNhc2UgInVpbnQ0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoY2Fz
dFRvVWludCk7CisgICAgICAgIGNhc2UgImNoYXIyIjoKKyAgICAgICAgY2FzZSAiY2hhcjMiOgor
ICAgICAgICBjYXNlICJjaGFyNCI6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RU
b0NoYXIpOworICAgICAgICBjYXNlICJzaG9ydDIiOgorICAgICAgICBjYXNlICJzaG9ydDMiOgor
ICAgICAgICBjYXNlICJzaG9ydDQiOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcChjYXN0
VG9TaG9ydCk7CisgICAgICAgIGNhc2UgImludDIiOgorICAgICAgICBjYXNlICJpbnQzIjoKKyAg
ICAgICAgY2FzZSAiaW50NCI6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb0lu
dCk7CisgICAgICAgIGNhc2UgImhhbGYyIjoKKyAgICAgICAgY2FzZSAiaGFsZjMiOgorICAgICAg
ICBjYXNlICJoYWxmNCI6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb0hhbGYp
OworICAgICAgICBjYXNlICJmbG9hdDIiOgorICAgICAgICBjYXNlICJmbG9hdDMiOgorICAgICAg
ICBjYXNlICJmbG9hdDQiOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcChjYXN0VG9GbG9h
dCk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25v
d24gdGV4dHVyZSBpbm5lciB0eXBlIik7CisgICAgfQorfQorCitmdW5jdGlvbiBzYW1wbGVUZXh0
dXJlKHRleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZWx0YSwgYmlhc0Zyb21GdW5jdGlvbk9w
ZXJhbmQsIGRkeCwgZGR5LCBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLCBkcmVmKQoreworICAgIGxl
dCBzID0gbG9jYXRpb25bMF07CisgICAgbGV0IHQgPSBsb2NhdGlvblsxXTsKKyAgICBsZXQgciA9
IGxvY2F0aW9uWzJdOworICAgIGxldCBxID0gbG9jYXRpb25bM107CisgICAgbGV0IGEgPSBsb2Nh
dGlvbls0XTsKKworICAgIGxldCBkZWx0YUkgPSB1bmRlZmluZWQ7CisgICAgbGV0IGRlbHRhSiA9
IHVuZGVmaW5lZDsKKyAgICBsZXQgZGVsdGFLID0gdW5kZWZpbmVkOworICAgIGlmIChkZWx0YSAh
PSB1bmRlZmluZWQpIHsKKyAgICAgICAgZGVsdGFJID0gZGVsdGFbMF07CisgICAgICAgIGRlbHRh
SiA9IGRlbHRhWzFdOworICAgICAgICBkZWx0YUsgPSBkZWx0YVsyXTsKKyAgICB9CisKKyAgICBb
cywgdCwgciwgZHJlZl0gPSBwcm9qZWN0aW9uT3BlcmF0aW9uKHMsIHQsIHIsIGRyZWYsIHEpOwor
ICAgIGxldCByZXN1bHQgPSB0ZXhlbEZpbHRlcmluZygKKyAgICAgICAgTnVtYmVyLk1BWF9WQUxV
RSwKKyAgICAgICAgTnVtYmVyLk1BWF9WQUxVRSwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAg
ICAgICAgdGV4dHVyZSwKKyAgICAgICAgc2FtcGxlciwKKyAgICAgICAgMCwKKyAgICAgICAgcywg
dCwgciwgYSwKKyAgICAgICAgZGVsdGFJLCBkZWx0YUosIGRlbHRhSywKKyAgICAgICAgbG9kRnJv
bUZ1bmN0aW9uT3BlcmFuZCwKKyAgICAgICAgLU51bWJlci5NQVhfVkFMVUUsCisgICAgICAgIGJp
YXNGcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgICAgICBkZHgsIGRkeSk7CisgICAgaWYgKGRyZWYg
IT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBBcnJheSkKKyAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRGVwdGggY29tcGFyaXNvbiBub3Qgc3VwcG9ydGVk
IG9uIG11bHRpY2hhbm5lbCB0ZXh0dXJlcyIpOworICAgICAgICByZXN1bHQgPSBkZXB0aENvbXBh
cmVPcGVyYXRpb24oZHJlZiwgcmVzdWx0LCBzYW1wbGVyLmNvbXBhcmVGdW5jdGlvbik7CisgICAg
fQorICAgIHJldHVybiBjYXN0VG9Jbm5lclR5cGUocmVzdWx0LCB0ZXh0dXJlLmlubmVyVHlwZSk7
CisgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBkbyB3aXRoIGFuaXNvdHJvcHkKKyAg
ICAvLyBGSVhNRTogRmlndXJlIG91dCBob3cgdG8gZG8gbXVsdGlzYW1wbGluZy4KK30KZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCmluZGV4IDY1YTg2NDExYjNlNzcwYjU1
N2I0MWFjYzdlNDE0ZGVmNDI0MDMwMTMuLmU2ZTEzZGZlOGRmYTVjNTMzMmFkOWVmMDQ5ZWNlYTM1
OWI3ZTNhNDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4
Lmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbApAQCAt
MjgsNiArMjgsNyBAQAogPHNjcmlwdCBzcmM9IkJ1aWx0aW5WZWN0b3JTZXR0ZXIuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IkNhbGxFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJDYWxsRnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNhc3RzLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDaGVjay5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
Q2hlY2tMaXRlcmFsVHlwZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNoZWNrTG9vcHMu
anMiPjwvc2NyaXB0PgpAQCAtMTE1LDYgKzExNiw3IEBACiA8c2NyaXB0IHNyYz0iUmV0dXJuLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZXR1cm5DaGVja2VyLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJSZXR1cm5FeGNlcHRpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlNh
bXBsZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN0YW5kYXJkTGlicmFyeS5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3RhdGVtZW50Q2xvbmVyLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIj48L3NjcmlwdD4KQEAgLTEyNyw2ICsxMjks
OCBAQAogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJh
dG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
VGV4dHVyZU9wZXJhdGlvbnMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1l
bnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348775</attachid>
            <date>2018-09-03 09:20:22 -0700</date>
            <delta_ts>2018-09-03 15:23:54 -0700</delta_ts>
            <desc>Cubemaps complete</desc>
            <filename>bug-188940-20180903092021.patch</filename>
            <type>text/plain</type>
            <size>436478</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTg5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWE0MzNhZWVmNTA2YjZmNDY1NTYwMTNiZmJiNDM2MWJm
MjE5YWMxYS4uNTlhODliMDY1MjFmMzdlYjI1MDk3OGJjZDI5MDM4MDk1NzUyNTU5NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
OSBAQAorMjAxOC0wOS0wMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRleHR1cmUgdHlwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNp
Y3MuanM6CisgICAgICAgIChJbnRyaW5zaWNzLik6CisgICAgICAgIChJbnRyaW5zaWNzLmNoZWNr
RmFsc2UpOgorICAgICAgICAoSW50cmluc2ljcy5ib3hWZWN0b3IpOgorICAgICAgICAoSW50cmlu
c2ljcy51bmJveFZlY3Rvcik6CisgICAgICAgIChJbnRyaW5zaWNzKToKKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qczoKKyAgICAgICAgKGxldC5zdGFuZGFyZExpYnJh
cnkpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAobWFrZVNhbXBs
ZXIpOgorICAgICAgICAobWFrZTFEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMURUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMkRUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTNEVGV4dHVyZSk6CisgICAgICAgIChtYWtlVGV4dHVyZUN1YmUp
OgorICAgICAgICAobWFrZVJXMURUZXh0dXJlKToKKyAgICAgICAgKG1ha2VSVzFEVGV4dHVyZUFy
cmF5KToKKyAgICAgICAgKG1ha2VSVzJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlUlcyRFRleHR1
cmVBcnJheSk6CisgICAgICAgIChtYWtlUlczRFRleHR1cmUpOgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1RleHR1cmUuanM6IEFkZGVkLgorICAgICAgICAoVGV4dHVyZSk6Cisg
ICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQgZGltZW5zaW9uKToKKyAgICAgICAgKFRleHR1
cmUucHJvdG90eXBlLmdldCB3aWR0aCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aGVpZ2h0KToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkZXB0aCk6CisgICAgICAg
IChUZXh0dXJlLnByb3RvdHlwZS5nZXQgbGV2ZWxDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnBy
b3RvdHlwZS5nZXQgbGF5ZXJDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aW5uZXJUeXBlKToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkYXRhKToKKyAgICAg
ICAgKFRleHR1cmUucHJvdG90eXBlLmVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUu
cHJvdG90eXBlLnNldEVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUxRCk6CisgICAg
ICAgIChUZXh0dXJlMUQucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJl
MUQucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlw
ZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlwZS5lbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUxRC5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0
dXJlMURBcnJheSk6CisgICAgICAgIChUZXh0dXJlMURBcnJheS5wcm90b3R5cGUud2lkdGhBdExl
dmVsKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToK
KyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTFEQXJyYXkucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTFE
QXJyYXkucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEKToKKyAgICAg
ICAgKFRleHR1cmUyRC5wcm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUy
RC5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBl
LmRlcHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBlLmVsZW1lbnQpOgor
ICAgICAgICAoVGV4dHVyZTJELnByb3RvdHlwZS5zZXRFbGVtZW50KToKKyAgICAgICAgKFRleHR1
cmUyREFycmF5KToKKyAgICAgICAgKFRleHR1cmUyREFycmF5LnByb3RvdHlwZS53aWR0aEF0TGV2
ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgor
ICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMkRBcnJheS5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMkRB
cnJheS5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlM0QpOgorICAgICAg
ICAoVGV4dHVyZTNELnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTNE
LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUuZWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0QucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVy
ZUN1YmUpOgorICAgICAgICAoVGV4dHVyZUN1YmUucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6Cisg
ICAgICAgIChUZXh0dXJlQ3ViZS5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlQ3ViZS5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmVDdWJl
LnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmVDdWJlLnByb3RvdHlwZS5zZXRF
bGVtZW50KToKKyAgICAgICAgKFRleHR1cmUxRFJXKToKKyAgICAgICAgKFRleHR1cmUxRFJXLnBy
b3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmhl
aWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmRlcHRoQXRMZXZl
bCk6CisgICAgICAgIChUZXh0dXJlMURSVy5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChU
ZXh0dXJlMURSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMURBcnJh
eVJXKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6
CisgICAgICAgIChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAg
ICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUx
REFycmF5UlcucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEUlcpOgor
ICAgICAgICAoVGV4dHVyZTJEUlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlMkRSVy5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkRS
Vy5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlw
ZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlwZS5zZXRFbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUyREFycmF5UlcpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5w
cm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90
eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90eXBlLmVsZW1l
bnQpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0RSVyk6CisgICAgICAgIChUZXh0dXJlM0RSVy5wcm90b3R5cGUud2lk
dGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVs
KToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTNEUlcucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTNEUlcu
cHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1RleHR1cmVPcGVyYXRpb25zLmpzOiBBZGRlZC4KKyAgICAgICAgKGRlcHRoQ29tcGFyZU9wZXJh
dGlvbik6CisgICAgICAgIChjb252ZXJzaW9uVG9SR0JBKToKKyAgICAgICAgKHByb2plY3Rpb25P
cGVyYXRpb24pOgorICAgICAgICAoY3ViZU1hcEZhY2VTZWxlY3Rpb24pOgorICAgICAgICAoY3Vi
ZU1hcENvb3JkaW5hdGVUcmFuc2Zvcm1hdGlvbik6CisgICAgICAgIChjdWJlTWFwRGVyaXZhdGl2
ZVRyYW5zZm9ybWF0aW9uKToKKyAgICAgICAgKHNjYWxlRmFjdG9yT3BlcmF0aW9uKToKKyAgICAg
ICAgKGxldmVsT2ZEZXRhaWxPcGVyYXRpb24pOgorICAgICAgICAobmVhcmVzdCk6CisgICAgICAg
IChpbWFnZUxldmVsU2VsZWN0aW9uKToKKyAgICAgICAgKHN0cnFhVG9VVldBVHJhbnNmb3JtYXRp
b24pOgorICAgICAgICAocm5lKToKKyAgICAgICAgKHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25B
bmRBcnJheUxheWVyU2VsZWN0aW9uKToKKyAgICAgICAgKGludGVnZXJUZXhlbENvb3JkaW5hdGVP
cGVyYXRpb25zKToKKyAgICAgICAgKG1pcnJvcik6CisgICAgICAgICh0cmFuc2Zvcm0pOgorICAg
ICAgICAod3JhcHBpbmdPcGVyYXRpb24pOgorICAgICAgICAodGV4ZWxHYXRoZXJpbmcpOgorICAg
ICAgICAoY29tcHV0ZVRhdS5yZWR1Y2UpOgorICAgICAgICAoY29tcHV0ZVRhdS5zaG91bGRCZUJv
cmRlcik6CisgICAgICAgIChjb21wdXRlVGF1LmFjY2Vzc0NvbG9yKToKKyAgICAgICAgKGNvbXB1
dGVUYXUpOgorICAgICAgICAodGV4ZWxGaWx0ZXJpbmcpOgorICAgICAgICAoc2FtcGxlVGV4dHVy
ZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAx
OC0wOS0wMSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW1dQRV0gMi4yMS45MSBmYWlscyB0byBidWlsZCB3aXRoIEVOQUJMRV9NSU5JQlJPV1NF
UgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCmluZGV4IDljMmEzNzE1MGMxZTk3NmI5
MjZjZmJlZTIzNDM3NTIwYThkZTRhNDcuLjkwZmM4NDEzYTY1MTIyNDQ2YmYwMWZkOTY3ZGQ2NTEz
OWEwZjg3ZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5q
cworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKQEAgLTUxLDYgKzUx
LDcgQEAgbG9hZCgiQnVpbHRpblZlY3RvckdldHRlci5qcyIpOwogbG9hZCgiQnVpbHRpblZlY3Rv
clNldHRlci5qcyIpOwogbG9hZCgiQ2FsbEV4cHJlc3Npb24uanMiKTsKIGxvYWQoIkNhbGxGdW5j
dGlvbi5qcyIpOworbG9hZCgiQ2FzdHMuanMiKTsKIGxvYWQoIkNoZWNrLmpzIik7CiBsb2FkKCJD
aGVja0xpdGVyYWxUeXBlcy5qcyIpOwogbG9hZCgiQ2hlY2tMb29wcy5qcyIpOwpAQCAtMTM4LDYg
KzEzOSw3IEBAIGxvYWQoIlJlc29sdmVUeXBlRGVmcy5qcyIpOwogbG9hZCgiUmV0dXJuLmpzIik7
CiBsb2FkKCJSZXR1cm5DaGVja2VyLmpzIik7CiBsb2FkKCJSZXR1cm5FeGNlcHRpb24uanMiKTsK
K2xvYWQoIlNhbXBsZXIuanMiKTsKIGxvYWQoIlN0YW5kYXJkTGlicmFyeS5qcyIpOwogbG9hZCgi
U3RhdGVtZW50Q2xvbmVyLmpzIik7CiBsb2FkKCJTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIik7CkBA
IC0xNTAsNiArMTUyLDggQEAgbG9hZCgiU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyIpOwog
bG9hZCgiU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIik7CiBsb2FkKCJTeW50
aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiKTsKIGxvYWQoIlRlcm5hcnlFeHBy
ZXNzaW9uLmpzIik7Citsb2FkKCJUZXh0dXJlLmpzIik7Citsb2FkKCJUZXh0dXJlT3BlcmF0aW9u
cy5qcyIpOwogbG9hZCgiVHJhcFN0YXRlbWVudC5qcyIpOwogbG9hZCgiVHlwZURlZi5qcyIpOwog
bG9hZCgiVHlwZURlZlJlc29sdmVyLmpzIik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9DYXN0cy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Nh
c3RzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFjYmIyZWEwMjg1MzViNDY3MDQyMzA5N2Y3YTViNTdjYWY2Yjhi
MWMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYXN0
cy5qcwpAQCAtMCwwICsxLDExNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworInVzZSBzdHJpY3QiOworCitmdW5jdGlvbiBjYXN0KHR5cGVkQXJyYXlDb25z
dHJ1Y3RvciwgbnVtYmVyKQoreworICAgIHZhciBhcnJheSA9IG5ldyB0eXBlZEFycmF5Q29uc3Ry
dWN0b3IoMSk7CisgICAgYXJyYXlbMF0gPSBudW1iZXI7CisgICAgcmV0dXJuIGFycmF5WzBdOwor
fQorCitmdW5jdGlvbiBiaXR3aXNlQ2FzdCh0eXBlZEFycmF5Q29uc3RydWN0b3IxLCB0eXBlZEFy
cmF5Q29uc3RydWN0b3IyLCB2YWx1ZSkKK3sKKyAgICBsZXQgdHlwZWRBcnJheTEgPSBuZXcgdHlw
ZWRBcnJheUNvbnN0cnVjdG9yMSgxKTsKKyAgICBsZXQgdHlwZWRBcnJheTIgPSBuZXcgdHlwZWRB
cnJheUNvbnN0cnVjdG9yMih0eXBlZEFycmF5MS5idWZmZXIpOworICAgIHR5cGVkQXJyYXkxWzBd
ID0gdmFsdWU7CisgICAgcmV0dXJuIHR5cGVkQXJyYXkyWzBdOworfQorCitmdW5jdGlvbiBjYXN0
VG9VY2hhcihudW1iZXIpCit7CisgICAgcmV0dXJuIG51bWJlciAmIDB4RkY7Cit9CisKK2Z1bmN0
aW9uIGNhc3RUb1VzaG9ydChudW1iZXIpCit7CisgICAgcmV0dXJuIG51bWJlciAmIDB4RkZGRjsK
K30KKworZnVuY3Rpb24gY2FzdFRvVWludChudW1iZXIpCit7CisgICAgcmV0dXJuIG51bWJlciA+
Pj4gMDsKK30KKworZnVuY3Rpb24gY2FzdFRvQ2hhcihudW1iZXIpCit7CisgICAgcmV0dXJuIGNh
c3QoSW50OEFycmF5LCBudW1iZXIpOworfQorCitmdW5jdGlvbiBjYXN0VG9TaG9ydChudW1iZXIp
Cit7CisgICAgcmV0dXJuIGNhc3QoSW50MTZBcnJheSwgbnVtYmVyKTsKK30KKworZnVuY3Rpb24g
Y2FzdFRvSW50KG51bWJlcikKK3sKKyAgICByZXR1cm4gbnVtYmVyIHwgMDsKK30KKworZnVuY3Rp
b24gY2FzdFRvSGFsZihudW1iZXIpCit7CisgICAgLy8gRklYTUU6IE1ha2UgdGhpcyBtYXRoIG9i
ZXkgSUVFRSA3NTQuCisgICAgaWYgKE51bWJlci5pc05hTihudW1iZXIpKQorICAgICAgIHJldHVy
biBudW1iZXIKKyAgICBpZiAobnVtYmVyID4gNjU1MDQpCisgICAgICAgIHJldHVybiBOdW1iZXIu
UE9TSVRJVkVfSU5GSU5JVFk7CisgICAgaWYgKG51bWJlciA8IC02NTUwNCkKKyAgICAgICAgcmV0
dXJuIE51bWJlci5ORUdBVElWRV9JTkZJTklUWTsKKyAgICBpZiAobnVtYmVyID4gMCAmJiBudW1i
ZXIgPCBNYXRoLnBvdygyLCAtMjQpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAobnVtYmVy
IDwgMCAmJiBudW1iZXIgPiAtTWF0aC5wb3coMiwgLTI0KSkKKyAgICAgICAgcmV0dXJuIC0wOwor
ICAgIGxldCBkb3VibGVBcnJheSA9IG5ldyBGbG9hdDY0QXJyYXkoMSk7CisgICAgbGV0IHVpbnRB
cnJheSA9IG5ldyBVaW50OEFycmF5KGRvdWJsZUFycmF5LmJ1ZmZlcik7CisgICAgZG91YmxlQXJy
YXlbMF0gPSBudW1iZXI7CisgICAgbGV0IHNpZ24gPSB1aW50QXJyYXlbN10gJiAweDgwOworICAg
IGxldCBleHBvbmVudCA9ICgodWludEFycmF5WzddICYgMHg3ZikgPDwgNCkgfCAoKHVpbnRBcnJh
eVs2XSAmIDB4ZjApID4+PiA0KTsKKyAgICBsZXQgc2lnbmlmaWNhbmQgPSAoKHVpbnRBcnJheVs2
XSAmIDB4MGYpIDw8IDYpIHwgKCh1aW50QXJyYXlbNV0gJiAweGZjKSA+Pj4gMik7CisKKyAgICBp
ZiAoKGV4cG9uZW50IC0gMTAyMykgPCAtMTQpIHsKKyAgICAgICAgZXhwb25lbnQgPSAwOworICAg
ICAgICBzaWduaWZpY2FuZCA9IChNYXRoLmFicyhudW1iZXIpICogTWF0aC5wb3coMiwgMjQpKSA+
Pj4gMDsKKyAgICAgICAgbGV0IHZhbHVlID0gTWF0aC5wb3coMiwgLTE0KSAqIHNpZ25pZmljYW5k
IC8gMTAyNDsKKyAgICAgICAgaWYgKHNpZ24gIT0gMCkKKyAgICAgICAgICAgIHZhbHVlICo9IC0x
OworICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorCisgICAgZG91YmxlQXJyYXlbMF0gPSAw
OworCisgICAgdWludEFycmF5WzddIHw9IHNpZ247CisgICAgdWludEFycmF5WzddIHw9IChleHBv
bmVudCA+Pj4gNCk7CisgICAgdWludEFycmF5WzZdIHw9ICgoZXhwb25lbnQgPDwgNCkgJiAweGYw
KTsKKyAgICB1aW50QXJyYXlbNl0gfD0gKHNpZ25pZmljYW5kID4+PiA2KTsKKyAgICB1aW50QXJy
YXlbNV0gfD0gKChzaWduaWZpY2FuZCA8PCAyKSAmIDB4ZmMpOworCisgICAgcmV0dXJuIGRvdWJs
ZUFycmF5WzBdOworfQorCitmdW5jdGlvbiBjYXN0VG9GbG9hdChudW1iZXIpCit7CisgICAgcmV0
dXJuIE1hdGguZnJvdW5kKG51bWJlcik7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvSW50cmluc2ljcy5qcwppbmRleCBiMDA0MDY3ZjVlYmZiM2E4YjRiZDk4ZTQzN2E4YzA3Njhi
ZTI2ZjFlLi4xOGExODM0ZGMxNjFkZjE4MGI3YjA3MjFjYWQzMTEzOWMxYmZlZjdjIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCisrKyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMKQEAgLTQ4LDYxICs0OCw2
IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KIAotICAgICAgICBmdW5jdGlvbiBjYXN0KHR5cGVkQXJyYXlDb25zdHJ1Y3RvciwgbnVtYmVy
KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgYXJyYXkgPSBuZXcgdHlwZWRBcnJheUNvbnN0
cnVjdG9yKDEpOwotICAgICAgICAgICAgYXJyYXlbMF0gPSBudW1iZXI7Ci0gICAgICAgICAgICBy
ZXR1cm4gYXJyYXlbMF07Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBiaXR3aXNlQ2Fz
dCh0eXBlZEFycmF5Q29uc3RydWN0b3IxLCB0eXBlZEFycmF5Q29uc3RydWN0b3IyLCB2YWx1ZSkK
LSAgICAgICAgewotICAgICAgICAgICAgbGV0IHR5cGVkQXJyYXkxID0gbmV3IHR5cGVkQXJyYXlD
b25zdHJ1Y3RvcjEoMSk7Ci0gICAgICAgICAgICBsZXQgdHlwZWRBcnJheTIgPSBuZXcgdHlwZWRB
cnJheUNvbnN0cnVjdG9yMih0eXBlZEFycmF5MS5idWZmZXIpOwotICAgICAgICAgICAgdHlwZWRB
cnJheTFbMF0gPSB2YWx1ZTsKLSAgICAgICAgICAgIHJldHVybiB0eXBlZEFycmF5MlswXTsKLSAg
ICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIGNhc3RUb0hhbGYobnVtYmVyKQotICAgICAgICB7
Ci0gICAgICAgICAgICAvLyBGSVhNRTogTWFrZSB0aGlzIG1hdGggb2JleSBJRUVFIDc1NC4KLSAg
ICAgICAgICAgIGlmIChOdW1iZXIuaXNOYU4obnVtYmVyKSkKLSAgICAgICAgICAgICAgIHJldHVy
biBudW1iZXIKLSAgICAgICAgICAgIGlmIChudW1iZXIgPiA2NTUwNCkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOwotICAgICAgICAgICAgaWYgKG51bWJl
ciA8IC02NTUwNCkKLSAgICAgICAgICAgICAgICByZXR1cm4gTnVtYmVyLk5FR0FUSVZFX0lORklO
SVRZOwotICAgICAgICAgICAgaWYgKG51bWJlciA+IDAgJiYgbnVtYmVyIDwgTWF0aC5wb3coMiwg
LTI0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIGlmIChudW1iZXIg
PCAwICYmIG51bWJlciA+IC1NYXRoLnBvdygyLCAtMjQpKQotICAgICAgICAgICAgICAgIHJldHVy
biAtMDsKLSAgICAgICAgICAgIGxldCBkb3VibGVBcnJheSA9IG5ldyBGbG9hdDY0QXJyYXkoMSk7
Ci0gICAgICAgICAgICBsZXQgdWludEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoZG91YmxlQXJyYXku
YnVmZmVyKTsKLSAgICAgICAgICAgIGRvdWJsZUFycmF5WzBdID0gbnVtYmVyOwotICAgICAgICAg
ICAgbGV0IHNpZ24gPSB1aW50QXJyYXlbN10gJiAweDgwOwotICAgICAgICAgICAgbGV0IGV4cG9u
ZW50ID0gKCh1aW50QXJyYXlbN10gJiAweDdmKSA8PCA0KSB8ICgodWludEFycmF5WzZdICYgMHhm
MCkgPj4+IDQpOwotICAgICAgICAgICAgbGV0IHNpZ25pZmljYW5kID0gKCh1aW50QXJyYXlbNl0g
JiAweDBmKSA8PCA2KSB8ICgodWludEFycmF5WzVdICYgMHhmYykgPj4+IDIpOwotCi0gICAgICAg
ICAgICBpZiAoKGV4cG9uZW50IC0gMTAyMykgPCAtMTQpIHsKLSAgICAgICAgICAgICAgICBleHBv
bmVudCA9IDA7Ci0gICAgICAgICAgICAgICAgc2lnbmlmaWNhbmQgPSAoTWF0aC5hYnMobnVtYmVy
KSAqIE1hdGgucG93KDIsIDI0KSkgPj4+IDA7Ci0gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0g
TWF0aC5wb3coMiwgLTE0KSAqIHNpZ25pZmljYW5kIC8gMTAyNDsKLSAgICAgICAgICAgICAgICBp
ZiAoc2lnbiAhPSAwKQotICAgICAgICAgICAgICAgICAgICB2YWx1ZSAqPSAtMTsKLSAgICAgICAg
ICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGRvdWJs
ZUFycmF5WzBdID0gMDsKLQotICAgICAgICAgICAgdWludEFycmF5WzddIHw9IHNpZ247Ci0gICAg
ICAgICAgICB1aW50QXJyYXlbN10gfD0gKGV4cG9uZW50ID4+PiA0KTsKLSAgICAgICAgICAgIHVp
bnRBcnJheVs2XSB8PSAoKGV4cG9uZW50IDw8IDQpICYgMHhmMCk7Ci0gICAgICAgICAgICB1aW50
QXJyYXlbNl0gfD0gKHNpZ25pZmljYW5kID4+PiA2KTsKLSAgICAgICAgICAgIHVpbnRBcnJheVs1
XSB8PSAoKHNpZ25pZmljYW5kIDw8IDIpICYgMHhmYyk7Ci0KLSAgICAgICAgICAgIHJldHVybiBk
b3VibGVBcnJheVswXTsKLSAgICAgICAgfQotCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAg
ICAgICAgICAibmF0aXZlIHR5cGVkZWYgdm9pZCIsCiAgICAgICAgICAgICB0eXBlID0+IHsKQEAg
LTEyOCwxNSArNzMsMTUgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgdHlw
ZS5pc0ludCA9IHRydWU7CiAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHR5
cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudCh2YWx1ZSAmIDB4
ZmYsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+
IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvVWNoYXIodmFsdWUpLCB2YWx1ZSk7CiAgICAgICAg
ICAgICAgICAgdHlwZS5zaXplID0gMTsKICAgICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1
ZSA9IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFs
dWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2YWx1ZSAmIDB4ZmYsIHR5cGUpOwot
ICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiAodmFsdWUgKyAx
KSAmIDB4ZmY7CisgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwg
dmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBjYXN0VG9VY2hhcih2YWx1ZSks
IHR5cGUpOworICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBj
YXN0VG9VY2hhcih2YWx1ZSArIDEpOwogICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwg
PSAoYSwgYikgPT4gYSA9PT0gYjsKICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVs
dFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7Ci0gICAg
ICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFs
dWUgJiAweGZmOwotICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVy
YWwgPSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmY7CisgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRW
YWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvVWNoYXIodmFsdWUpOworICAgICAg
ICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0
VG9VY2hhcih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlv
biooKSB7CiAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmY7ICsr
aSkKICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogaSwgbmFtZTogaX07CkBA
IC0xNTIsMTUgKzk3LDE1IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICB0
eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7
CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAg
ICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVl
ICYgMHhmZmZmLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0g
dmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0VG9Vc2hvcnQodmFsdWUpLCB2YWx1ZSk7
CiAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAgICAgIHR5cGUu
ZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0g
KG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2YWx1ZSAmIDB4
ZmZmZiwgdHlwZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1
ZSA9PiAodmFsdWUgKyAxKSAmIDB4ZmZmZjsKKyAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVM
aXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBj
YXN0VG9Vc2hvcnQodmFsdWUpLCB0eXBlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNz
b3JWYWx1ZSA9IHZhbHVlID0+IGNhc3RUb1VzaG9ydCh2YWx1ZSArIDEpOwogICAgICAgICAgICAg
ICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7CiAgICAgICAgICAgICAg
ICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZl
ci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21J
bnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAweGZmZmY7Ci0gICAgICAgICAgICAgICAgIHR5
cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmZmZjsK
KyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUg
PT4gY2FzdFRvVXNob3J0KHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1
ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb1VzaG9ydCh2YWx1ZSk7CiAgICAgICAg
ICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVuY3Rpb24qKCkgewogICAgICAgICAgICAgICAg
ICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhmZmZmOyArK2kpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgeWllbGQge3ZhbHVlOiBpLCBuYW1lOiBpfTsKQEAgLTE3NSwxNSArMTIwLDE1IEBA
IGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsK
ICAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAgICAgICAg
IHR5cGUuaXNTaWduZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNl
bnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVlID4+PiAwLCB2YWx1ZSk7Cisg
ICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1
aXZhbGVudChjYXN0VG9VaW50KHZhbHVlKSwgdmFsdWUpOwogICAgICAgICAgICAgICAgICB0eXBl
LnNpemUgPSAxOwogICAgICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAg
ICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRM
aXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgdmFsdWUgPj4+IDAsIHR5cGUpOwotICAgICAgICAgICAg
ICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gKHZhbHVlICsgMSkgPj4+IDA7Cisg
ICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJ
bnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2FzdFRvVWludCh2YWx1ZSksIHR5cGUpOworICAg
ICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdFRvVWludCh2
YWx1ZSArIDEpOwogICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+
IGEgPT09IGI7CiAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAo
YnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAg
ICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgPj4+IDA7
Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1
ZSA9PiB2YWx1ZSA+Pj4gMDsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21J
bnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvVWludCh2YWx1ZSk7CisgICAgICAgICAgICAgICAg
IHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9VaW50KHZh
bHVlKTsKICAgICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7CiAg
ICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSAweGZmZmZmZmZmOyArK2kp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVlOiBpLCBuYW1lOiBpfTsKQEAg
LTE5OCwxOCArMTQzLDE4IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICB0
eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7
CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSB0cnVlOwotICAgICAgICAgICAgICAg
ICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdChJ
bnQ4QXJyYXksIHZhbHVlKSwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJl
c2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvQ2hhcih2YWx1ZSksIHZh
bHVlKTsKICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKICAgICAgICAgICAgICAgICAg
dHlwZS5kZWZhdWx0VmFsdWUgPSAwOwotICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVy
YWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3Qo
SW50OEFycmF5LCB2YWx1ZSksIHR5cGUpOwotICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3Nv
clZhbHVlID0gdmFsdWUgPT4gY2FzdChJbnQ4QXJyYXksIHZhbHVlICsgMSk7CisgICAgICAgICAg
ICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFs
LndpdGhUeXBlKG9yaWdpbiwgY2FzdFRvQ2hhcih2YWx1ZSksIHR5cGUpOworICAgICAgICAgICAg
ICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdFRvQ2hhcih2YWx1ZSArIDEp
OwogICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7
CiAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBv
ZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5m
b3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdChJbnQ4QXJyYXksIHZhbHVl
KTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZh
bHVlID0+IGNhc3QoSW50OEFycmF5LCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9y
bWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb0NoYXIodmFsdWUpOworICAg
ICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4g
Y2FzdFRvQ2hhcih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVu
Y3Rpb24qKCkgewogICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhm
ZjsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gY2FzdChJbnQ4
QXJyYXksIGkpOworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGNhc3RUb0No
YXIoaSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVlOiB2YWx1ZSwgbmFt
ZTogdmFsdWV9OwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9OwpA
QCAtMjIzLDE4ICsxNjgsMTggQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAg
IHR5cGUuaXNJbnQgPSB0cnVlOwogICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1
ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IHRydWU7Ci0gICAgICAgICAgICAg
ICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0
KEludDE2QXJyYXksIHZhbHVlKSwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJl
cHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvU2hvcnQodmFsdWUp
LCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAg
ICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVM
aXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBj
YXN0KEludDE2QXJyYXksIHZhbHVlKSwgdHlwZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuc3Vj
Y2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0KEludDE2QXJyYXksIHZhbHVlICsgMSk7CisgICAg
ICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRM
aXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2FzdFRvU2hvcnQodmFsdWUpLCB0eXBlKTsKKyAgICAg
ICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+IGNhc3RUb1Nob3J0KHZh
bHVlICsgMSk7CiAgICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4g
YSA9PT0gYjsKICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChi
dWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOwotICAgICAgICAgICAgICAg
ICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0KEludDE2QXJy
YXksIHZhbHVlKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0
ZXJhbCA9IHZhbHVlID0+IGNhc3QoSW50MTZBcnJheSwgdmFsdWUpOworICAgICAgICAgICAgICAg
ICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9TaG9ydCh2
YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwg
PSB2YWx1ZSA9PiBjYXN0VG9TaG9ydCh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuYWxs
VmFsdWVzID0gZnVuY3Rpb24qKCkgewogICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9
IDA7IGkgPD0gMHhmZmZmOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFs
dWUgPSBjYXN0KEludDE2QXJyYXksIGkpOworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2
YWx1ZSA9IGNhc3RUb1Nob3J0KGkpOwogICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2
YWx1ZTogdmFsdWUsIG5hbWU6IHZhbHVlfTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgfTsKQEAgLTI0OCwxOCArMTkzLDE4IEBAIGNsYXNzIEludHJpbnNpY3Mgewog
ICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlw
ZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSB0cnVl
OwotICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lz
ZUVxdWl2YWxlbnQodmFsdWUgfCAwLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuY2Fu
UmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0VG9JbnQodmFsdWUp
LCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAg
ICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVM
aXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2
YWx1ZSB8IDAsIHR5cGUpOwotICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0g
dmFsdWUgPT4gKHZhbHVlICsgMSkgfCAwOworICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxp
dGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNh
c3RUb0ludCh2YWx1ZSksIHR5cGUpOworICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZh
bHVlID0gdmFsdWUgPT4gY2FzdFRvSW50KHZhbHVlICsgMSk7CiAgICAgICAgICAgICAgICAgIHR5
cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKICAgICAgICAgICAgICAgICAgdHlw
ZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChv
ZmZzZXQsIDApOwotICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVy
YWwgPSB2YWx1ZSA9PiB2YWx1ZSB8IDA7Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFs
dWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSB8IDA7CisgICAgICAgICAgICAgICAg
IHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb0ludCh2YWx1
ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2
YWx1ZSA9PiBjYXN0VG9JbnQodmFsdWUpOwogICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVl
cyA9IGZ1bmN0aW9uKigpIHsKICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBp
IDw9IDB4ZmZmZmZmZmY7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1
ZSA9IGkgfCAwOworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGNhc3RUb0lu
dChpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IHZhbHVlLCBuYW1l
OiB2YWx1ZX07CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH07CkBA
IC0yOTIsNyArMjM3LDcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgIHR5
cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQo
b2Zmc2V0LCAwKTsKICAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRl
cmFsID0gdmFsdWUgPT4gdmFsdWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVG
cm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5m
b3JtYXRWYWx1ZUZyb21GbG9hdExpdGVyYWwgPSB2YWx1ZSA9PiBNYXRoLmZyb3VuZCh2YWx1ZSk7
CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tRmxvYXRMaXRlcmFsID0gdmFs
dWUgPT4gY2FzdFRvRmxvYXQodmFsdWUpOwogICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCkBAIC0zMzAsNyArMjc1LDggQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAg
ICAgICAgICAibmF0aXZlIHR5cGVkZWYgc2FtcGxlciIsCiAgICAgICAgICAgICB0eXBlID0+IHsK
ICAgICAgICAgICAgICAgICB0aGlzLnNhbXBsZXIgPSB0eXBlOwotICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gcHV0IGhlcmUuCisgICAgICAgICAgICAgICAgdHlw
ZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0g
KGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAg
fSk7CiAKICAgICAgICAgZm9yIChsZXQgdGV4dHVyZVR5cGUgb2YgWyJUZXh0dXJlMUQiLCAiUldU
ZXh0dXJlMUQiLCAiVGV4dHVyZTFEQXJyYXkiLCAiUldUZXh0dXJlMURBcnJheSIsICJUZXh0dXJl
MkQiLCAiUldUZXh0dXJlMkQiLCAiVGV4dHVyZTJEQXJyYXkiLCAiUldUZXh0dXJlMkRBcnJheSIs
ICJUZXh0dXJlM0QiLCAiUldUZXh0dXJlM0QiLCAiVGV4dHVyZUN1YmUiXSkgewpAQCAtMzM5LDEy
ICsyODUsMTYgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgdHlwZWRlZiAke3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YCwKICAgICAgICAgICAg
ICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1
cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAg
ICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVE
ZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCB7fSk7
CiAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAy
OyBpIDw9IDQ7ICsraSkgewogICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAg
ICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlw
ZUFyZ3VtZW50fSR7aX0+YCwKICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3Vt
ZW50fSR7aX0+YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUuc2l6
ZSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRW
YWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIHt9KTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
QEAgLTM1Niw2ICszMDYsOCBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gLAogICAg
ICAgICAgICAgICAgICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNb
YCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gXSA9IHR5cGU7CisgICAgICAgICAgICAg
ICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5w
b3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZz
ZXQsIHt9KTsKICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KQEAgLTM2NCw3ICszMTYsNyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCiAgICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciB1Y2hhcigke3By
aW1pdGl2ZVR5cGV9KWAsCiAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUu
bG9hZFZhbHVlKCkgJiAweGZmKTsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9VY2hhcih2YWx1ZS5sb2FkVmFsdWUo
KSkpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKQEAgLTM3Miw3ICszMjQsNyBA
QCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciB1c2hvcnQoJHtwcmltaXRpdmVUeXBlfSlgLAogICAg
ICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpICYgMHhmZmZm
KTsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PiBFUHRyLmJveChjYXN0VG9Vc2hvcnQodmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfQogCkBAIC0zODAsNyArMzMyLDcgQEAgY2xhc3MgSW50cmluc2lj
cyB7CiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgICAgIGBuYXRpdmUg
b3BlcmF0b3IgdWludCgke3ByaW1pdGl2ZVR5cGV9KWAsCiAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkg
PT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgPj4+IDApOworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb1VpbnQo
dmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgfQogCkBA
IC0zODgsNyArMzQwLDcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAogICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgY2hhcigke3ByaW1pdGl2
ZVR5cGV9KWAsCiAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdChJbnQ4QXJy
YXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdFRvQ2hhcih2YWx1ZS5sb2FkVmFs
dWUoKSkpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKQEAgLTM5Niw3ICszNDgs
NyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciBzaG9ydCgke3ByaW1pdGl2ZVR5cGV9KWAsCiAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdChJbnQxNkFycmF5LCB2YWx1ZS5s
b2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb1Nob3J0KHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KIApAQCAtNDIwLDcgKzM3Miw3IEBAIGNsYXNz
IEludHJpbnNpY3MgewogICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICAg
ICBgbmF0aXZlIG9wZXJhdG9yIGZsb2F0KCR7cHJpbWl0aXZlVHlwZX0pYCwKICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PiBFUHRyLmJveChNYXRoLmZyb3VuZCh2YWx1ZS5sb2FkVmFsdWUoKSkpOwor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQ
dHIuYm94KGNhc3RUb0Zsb2F0KHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0KIApAQCAtNDg0LDI5MiArNDM2LDI5MiBAQCBjbGFzcyBJbnRyaW5zaWNz
IHsKICAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yLShpbnQpIiwKICAgICAgICAgICAg
IGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVl
XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKC12YWx1ZS5sb2FkVmFsdWUoKSkg
fCAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KC12YWx1ZS5sb2Fk
VmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAg
ICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3ItKGZsb2F0KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0p
ID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKC12YWx1ZS5sb2Fk
VmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdCgtdmFs
dWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcisoaW50LGludCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
bGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2Fk
VmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAg
Im5hdGl2ZSBpbnQgb3BlcmF0b3ItKGludCxpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewog
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5s
b2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50
KGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7
CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJh
dG9yKihpbnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgp
ICogcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMu
X21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvci8oaW50LGludCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVm
dC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAg
ICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1
ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAg
ICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yKyh1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1
bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJp
Z2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkg
KyByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChjYXN0VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFsdWUoKSkpOwogICAg
ICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRp
dmUgdWludCBvcGVyYXRvci0odWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0g
ICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9h
ZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWlu
dChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3Bl
cmF0b3IqKHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+
Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2Fk
VmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yLyh1aW50
LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgLyBy
aWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFw
LnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3IrKGZsb2F0LGZsb2F0KSIs
CiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1h
dGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFsdWUoKSkpOworICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChsZWZ0LmxvYWRWYWx1ZSgpICsgcmln
aHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yLShmbG9hdCxmbG9hdCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRo
LmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQobGVmdC5sb2FkVmFsdWUoKSAtIHJpZ2h0
LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0
KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvciooZmxvYXQsZmxvYXQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5s
b2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgK
ICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3IvKGZsb2F0LGZsb2F0KSIsCiAgICAg
ICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJv
dW5kKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChsZWZ0LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9h
ZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAg
ICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvciYoaW50LGludCkiLAogICAgICAgICAgICAg
ZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwg
cmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUo
KSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAg
ICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2
ZSBpbnQgb3BlcmF0b3J8KGludCxpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgfCByaWdodC5sb2FkVmFs
dWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQu
bG9hZFZhbHVlKCkgfCByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yXihp
bnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmln
aHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcn4oaW50KSIsCiAgICAgICAgICAg
ICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1
ZV0pID0+IEVQdHIuYm94KCh+dmFsdWUubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9JbnQo
fnZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9t
YXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3I8PChpbnQsdWludCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVm
dC5sb2FkVmFsdWUoKSA8PCByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZh
bHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAg
ICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcj4+KGludCx1aW50KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCBy
aWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgp
ID4+IHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSA+PiByaWdodC5sb2FkVmFsdWUoKSkpOwogICAg
ICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRp
dmUgdWludCBvcGVyYXRvciYodWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0g
ICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICYgcmlnaHQubG9h
ZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWlu
dChsZWZ0LmxvYWRWYWx1ZSgpICYgcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3Bl
cmF0b3J8KHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSB8IHJpZ2h0LmxvYWRWYWx1ZSgpKSA+
Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2Fk
VmFsdWUoKSB8IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yXih1aW50
LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgXiByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgXiBy
aWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFw
LnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcn4odWludCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
dmFsdWVdKSA9PiBFUHRyLmJveCgofnZhbHVlLmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0
VG9VaW50KH52YWx1ZS5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAg
dGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcjw8KHVpbnQs
dWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRy
LmJveCgobGVmdC5sb2FkVmFsdWUoKSA8PCByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgPDwg
cmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21h
cC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3I+Pih1aW50LHVpbnQpIiwK
ICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxl
ZnQubG9hZFZhbHVlKCkgPj4+IHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSA+Pj4gcmlnaHQu
bG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQo
CiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNvcyhmbG9hdCkiLAogICAgICAgICAgICAgZnVu
YyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmNvcyh2YWx1
ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxv
YXQoTWF0aC5jb3ModmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAg
ICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBzaW4oZmxvYXQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQoTWF0aC5zaW4odmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguc2luKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAg
ICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRp
dmUgZmxvYXQgdGFuKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgudGFuKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLnRhbih2YWx1ZS5s
b2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQo
CiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGFjb3MoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1
bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5hY29zKHZh
bHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9G
bG9hdChNYXRoLmFjb3ModmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAog
ICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBhc2luKGZs
b2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1h
dGguZnJvdW5kKE1hdGguYXNpbih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5hc2luKHZhbHVlLmxvYWRWYWx1ZSgpKSkp
OwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAg
ICJuYXRpdmUgZmxvYXQgYXRhbihmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmF0YW4odmFsdWUubG9hZFZhbHVl
KCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguYXRh
bih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMu
X21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNvc2goZmxvYXQpIiwKICAgICAg
ICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0
aC5jb3NoKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChjYXN0VG9GbG9hdChNYXRoLmNvc2godmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAg
ICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9h
dCBzaW5oKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KE1hdGguZnJvdW5kKE1hdGguc2luaCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5zaW5oKHZhbHVlLmxvYWRW
YWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAg
ICAgICAgICAgICJuYXRpdmUgZmxvYXQgdGFuaChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9
PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9Pgot
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnRhbmgodmFsdWUu
bG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0
KE1hdGgudGFuaCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNlaWwoZmxvYXQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQoTWF0aC5jZWlsKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLmNlaWwodmFsdWUubG9hZFZhbHVlKCkpKSk7CiAg
ICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5h
dGl2ZSBmbG9hdCBleHAoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5leHAodmFsdWUubG9hZFZhbHVlKCkpKSk7
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguZXhwKHZhbHVl
LmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgZmxvb3IoZmxvYXQpIiwKICAgICAgICAgICAg
IGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVl
XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5mbG9v
cih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2Fz
dFRvRmxvYXQoTWF0aC5mbG9vcih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGxv
ZyhmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChNYXRoLmZyb3VuZChNYXRoLmxvZyh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5sb2codmFsdWUubG9hZFZhbHVlKCkp
KSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAg
ICAgIm5hdGl2ZSBmbG9hdCByb3VuZChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnJvdW5kKHZhbHVlLmxvYWRW
YWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRo
LnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAg
dGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgc3FydChmbG9hdCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3Vu
ZChNYXRoLnNxcnQodmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguc3FydCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAg
ICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZl
IGZsb2F0IHRydW5jKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgudHJ1bmModmFsdWUubG9hZFZhbHVlKCkpKSk7
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgudHJ1bmModmFs
dWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAu
c2V0KApAQCAtNzg4LDcgKzc0MCw3IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAg
Im5hdGl2ZSBmbG9hdCBwb3coZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewog
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5wb3cobGVmdC5s
b2FkVmFsdWUoKSwgcmlnaHQubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgucG93KGxlZnQubG9hZFZhbHVlKCksIHJpZ2h0LmxvYWRW
YWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKQEAg
LTgzMiw3ICs3ODQsNyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICJuYXRpdmUg
ZmxvYXQgYXRhbjIoZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5hdGFuMihsZWZ0LmxvYWRW
YWx1ZSgpLCByaWdodC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goY2FzdFRvRmxvYXQoTWF0aC5hdGFuMihsZWZ0LmxvYWRWYWx1ZSgpLCByaWdodC5sb2FkVmFs
dWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCkBAIC05
MTQsNiArODY2LDE1MTcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAKICAgICAgICAgZm9yIChsZXQg
c2V0dGVyIG9mIEJ1aWx0aW5NYXRyaXhTZXR0ZXIuZnVuY3Rpb25zKCkpCiAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KHNldHRlci50b1N0cmluZygpLCBmdW5jID0+IHNldHRlci5pbnN0YW50aWF0
ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsKKworICAgICAgICBmdW5jdGlvbiBjaGVja1VuZGVmaW5l
ZChvcmlnaW4sIGV4cGxhbmF0aW9uLCB2YWx1ZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYg
KHZhbHVlID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJv
cigiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIik7CisgICAgICAgICAgICBy
ZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja0ZhbHNlKG9y
aWdpbiwgZXhwbGFuYXRpb24sIHZhbHVlKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAodmFs
dWUgPT0gZmFsc2UpCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltTdG9y
ZV0iLCAiVGV4dHVyZSBzdG9yZSBvdXQgb2YgYm91bmRzIik7CisgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiBib3hWZWN0b3IoYSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGEgaW5z
dGFuY2VvZiBBcnJheSkgeworICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgRVB0cihu
ZXcgRUJ1ZmZlcihhLmxlbmd0aCksIDApOworICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAw
OyBpIDwgYS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNldChpLCBh
W2ldKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KGEpOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gdW5ib3hWZWN0b3IoYSwgbGVuZ3RoKQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAobGVuZ3RoICE9ICIiKSB7CisgICAgICAgICAgICAgICAgbGVuZ3RoID0gTnVtYmVyLnBh
cnNlSW50KGxlbmd0aCk7CisgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IFtdOworICAgICAg
ICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdC5wdXNoKGEuZ2V0KGkpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIGEubG9hZFZh
bHVlKCk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFsidWNoYXIiLCAi
dXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9ydCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJd
KSB7CisgICAgICAgICAgICBmb3IgKHZhciBsZW5ndGhWYXJpYWJsZSBvZiBbYGAsIGAyYCwgYDNg
LCBgNGBdKSB7CisgICAgICAgICAgICAgICAgbGV0IGxlbmd0aCA9IGxlbmd0aFZhcmlhYmxlOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmxvYWRWYWx1ZSgpLCAwLCAwLCAxLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxRDwke3R5cGV9JHts
ZW5ndGh9PixzYW1wbGVyLGZsb2F0IGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24ubG9hZFZhbHVlKCksIDAsIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5sb2FkVmFsdWUoKSwgMCwgMF07CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUu
bG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJy
YXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixpbnQy
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihj
aGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4
dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAs
IGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTFEPCR7dHlw
ZX0ke2xlbmd0aH0+LGludDIgbG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRd
IiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVt
ZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSArIG9m
ZnNldC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPCR7dHlwZX0k
e2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBO
dW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
bWlwbGV2ZWwsIHdpZHRoLCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9u
c10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
bGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxREFycmF5
PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQo
MCksIDAsIDAsIDEsIGxvY2F0aW9uLmdldCgxKV07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IFNhbXBsZShUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0
MiBsb2NhdGlvbixpbnQgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgMCwgMCwgMSwg
bG9jYXRpb24uZ2V0KDEpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFB
cnJheSA9IFtvZmZzZXQubG9hZFZhbHVlKCksIDAsIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gTG9hZChUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1Vu
ZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5s
b2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMCwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJl
MURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRl
ZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9h
ZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSks
IDAsIDAsIGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERp
bWVuc2lvbnMoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1
aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEVsZW1lbnRzLHVpbnQqIHRocmVhZCBOdW1i
ZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlw
bGV2ZWwsIHdpZHRoLCBlbGVtZW50cywgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERp
bWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVy
ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxl
dmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2Ft
cGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTJEPCR7
dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
b2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5
ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZz
ZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVj
dG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUo
KSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJpYXMo
VGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0
IEJpYXMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJE
PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMsaW50
MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSks
IDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0g
W29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxv
YWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSlgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCks
IGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hW
ZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1
ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFy
cmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlR3JhZChU
ZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQy
IEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5n
ZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0
KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtv
ZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwg
c2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVk
LCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVu
Z3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDIgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0
KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVj
dG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUo
KSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxl
TGV2ZWwoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9u
LGZsb2F0IExPRCxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0XSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9j
YXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
ZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVy
ZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFB
cnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1
bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRl
eHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9m
ZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhN
RTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUy
RDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhl
cmluZworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZs
b2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklY
TUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1
cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNl
dClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog
SW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkQ8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJp
bmcKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhN
RTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVy
ZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTJE
PCR7dHlwZX0ke2xlbmd0aH0+LGludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSBy
ZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAs
IGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxv
Y2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91
dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0
aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24u
Z2V0KDApICsgb2Zmc2V0LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTJEPCR7
dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRo
cmVhZCBIZWlnaHQsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgbnVtYmVy
T2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1
cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0g
bWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1p
cElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25l
eGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZl
bChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1w
bGUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5
ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQo
MildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxl
VGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlv
bkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTJEQXJyYXk8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwK
KyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJy
YXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdl
dCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zm
c2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVu
Z3RofSBTYW1wbGVCaWFzKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRp
b24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIGJpYXMubG9h
ZFZhbHVlKCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0ke2xlbmd0aH0gU2FtcGxlQmlhcyhUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzLGludDIgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlh
cywgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFy
cmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5n
ZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29m
ZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBz
YW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxvYWRW
YWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZKWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBk
ZHldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCks
IGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJh
eSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwg
c2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IGRkeEFycmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IFNhbXBsZUdyYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4
LCBkZHksIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRp
b25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRp
b24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBb
ZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5n
ZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Io
c2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBs
b2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIGRkeEFycmF5LCBkZHlBcnJheSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUxldmVsKFRleHR1
cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0
IExPRClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIGxvZF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRp
b25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRp
b24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9y
KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwg
bG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlTGV2
ZWwoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24sZmxvYXQgTE9ELGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kLCBvZmZzZXRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBs
b2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgx
KSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1w
bGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0
aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxv
ZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyREFycmF5
PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVy
aW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBs
ZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4
dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50
MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRl
eHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRl
eHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBl
fSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZz
ZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0
ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBl
fSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRl
eHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGlu
dDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQo
VGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4saW50NCBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2Fk
XSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxl
bWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDMpLCBsb2NhdGlvbi5nZXQoMiksIDAsIGxvY2F0aW9u
LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJl
MkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQ0IGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5k
ZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxv
YWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIp
LCAwLCBsb2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQuZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkgKyBv
ZmZzZXQuZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMkRBcnJheTwke3R5cGV9
JHtsZW5ndGh9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQg
SGVpZ2h0LHVpbnQqIHRocmVhZCBFbGVtZW50cyx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMp
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0
aCwgaGVpZ2h0LCBlbGVtZW50cywgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVu
c2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJv
bShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lk
dGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1l
bnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNh
bXBsZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBd
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4
dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFy
cmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTNEPCR7dHlwZX0k
e2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQo
MCksIG9mZnNldC5nZXQoMSksIG9mZnNldC5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gTG9hZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4saW50NCBsb2NhdGlvbilg
LAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmlu
ZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZh
bHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDMpLCBsb2NhdGlvbi5nZXQoMiks
IGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9h
ZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4saW50NCBsb2NhdGlvbixpbnQzIG9mZnNldClg
LAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZz
ZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVj
a1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVy
ZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMyksIGxvY2F0aW9u
LmdldCgyKSArIG9mZnNldC5nZXQoMiksIGxvY2F0aW9uLmdldCgxKSArIG9mZnNldC5nZXQoMSks
IGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRl
eHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0
aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBEZXB0aCx1aW50KiB0aHJlYWQgTnVt
YmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1p
cGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigi
W0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2Yg
dGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoLmxvYWRWYWx1ZSgp
LmNvcHlGcm9tKEVQdHIuYm94KHRleC5kZXB0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KHRleC5oZWlnaHRBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwo
bWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0
aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJp
YXMoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24s
ZmxvYXQgQmlhcylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0
aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgYmlhcy5sb2FkVmFsdWUoKSwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBT
YW1wbGVHcmFkKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uLGZsb2F0MyBERFgsZmxvYXQzIEREWSlgLAorICAgICAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwg
bG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCBkZHgu
Z2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5
LmdldCgwKSwgZGR5LmdldCgxKSwgZGR5LmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCks
IHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVu
Z3RofSBTYW1wbGVMZXZlbChUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2RdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXIoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9j
YXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZUN1YmU8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4
dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVy
ZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5n
dGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGlt
ZW5zaW9ucyhUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9Pix1aW50IE1pcExldmVsLHVpbnQq
IHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxl
dmVscylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWws
IHdpZHRoLCBoZWlnaHQsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICh0ZXgubGF5ZXJDb3VudCAhPSA2KQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkN1YmUgdGV4dHVyZSBkb2Vzbid0IGhh
dmUgNiBmYWNlcyIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0
ZXgubGV2ZWxDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3
IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQg
bWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWln
aHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQp
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUx
RDwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiB0aHJlYWQgV2lkdGgpYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleHR1cmUubG9hZFZh
bHVlKCkud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMUQ8JHt0eXBlfSR7
bGVuZ3RofT4sZmxvYXQqIHRocmVhZCBXaWR0aClgLAorICAgICAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgd2lkdGhdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lk
dGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4dHVyZS5sb2FkVmFsdWUoKS53aWR0
aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChSV1RleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9
PixpbnQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVj
dG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMi
LCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIDAsIDAsIDAsIGxvY2F0aW9u
LmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4s
JHt0eXBlfSR7bGVuZ3RofSx1aW50IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBvdXQgb2YgYm91
bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tlZCgwLCAwLCAwLCAwLCBs
b2NhdGlvbi5sb2FkVmFsdWUoKSwgdW5ib3hWZWN0b3IodmFsdWUsIGxlbmd0aCkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lk
IEdldERpbWVuc2lvbnMoUldUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiB0
aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lv
bnMoUldUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixmbG9hdCogdGhyZWFkIFdpZHRo
LHVpbnQqIHRocmVhZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgd2lkdGgsIGVsZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4
dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4saW50MiBsb2NhdGlvbilgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIs
ICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVu
dENoZWNrZWQobG9jYXRpb24uZ2V0KDEpLCAwLCAwLCAwLCBsb2NhdGlvbi5nZXQoMCkpKSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9p
ZCBTdG9yZShSV1RleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0
aH0sdWludDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hl
Y2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0dXJlIHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJl
LmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgMCwg
bG9jYXRpb24uZ2V0KDApLCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0
RGltZW5zaW9ucyhSV1RleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiB0aHJlYWQgV2lk
dGgsdWludCogdGhyZWFkIEhlaWdodClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgd2lkdGgsIGhlaWdodF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUyRDwke3R5
cGV9JHtsZW5ndGh9PixmbG9hdCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0KWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0XSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1
ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5
RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LGludDIgbG9j
YXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNr
VW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJl
LmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9j
YXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4s
JHt0eXBlfSR7bGVuZ3RofSx1aW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjaGVja0ZhbHNlKCJbU3RvcmVdIiwgIlRleHR1cmUgd3JpdGUgb3V0IG9mIGJv
dW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQoMCwgMCwgMCwgbG9j
YXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVlLCBsZW5ndGgp
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
CisgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBu
YXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3Ro
fT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIEVs
ZW1lbnRzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwg
aGVpZ2h0LCBlbGVtZW50c10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4
ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVt
ZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lk
dGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXRE
aW1lbnNpb25zKFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sZmxvYXQqIHRocmVh
ZCBXaWR0aCxmbG9hdCogdGhyZWFkIEhlaWdodCxmbG9hdCogdGhyZWFkIEVsZW1lbnRzKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBlbGVt
ZW50c10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5s
b2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
aGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2Fk
KFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4saW50MyBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltM
b2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCku
ZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDIpLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxv
Y2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVu
Z3RofT4sJHt0eXBlfSR7bGVuZ3RofSx1aW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjaGVja0ZhbHNlKCJbU3RvcmVdIiwgIlRleHR1cmUgd3JpdGUgb3V0
IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQobG9jYXRp
b24uZ2V0KDIpLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hW
ZWN0b3IodmFsdWUsIGxlbmd0aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlM0Q8
JHt0eXBlfSR7bGVuZ3RofT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQs
dWludCogdGhyZWFkIERlcHRoKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkZXB0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguZGVwdGgpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
ZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0
RGltZW5zaW9ucyhSV1RleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PixmbG9hdCogdGhyZWFkIFdp
ZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0LGZsb2F0KiB0aHJlYWQgRGVwdGgpYCwKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGRlcHRoXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9t
KEVQdHIuYm94KHRleC5kZXB0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhl
aWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVyZTNEPCR7dHlw
ZX0ke2xlbmd0aH0+LGludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91
dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIDAsIGxv
Y2F0aW9uLmdldCgyKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBT
dG9yZShSV1RleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQz
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFs
dWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2Uo
IltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFs
dWUoKS5zZXRFbGVtZW50Q2hlY2tlZCgwLCAwLCBsb2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdl
dCgxKSwgbG9jYXRpb24uZ2V0KDApLCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHR5cGUgb2YgWyJoYWxmIiwgImZs
b2F0Il0pIHsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0
dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9j
YXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwg
MF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxv
Y2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9u
LmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVj
dG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUo
KSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sJHt0eXBlfSBDb21wYXJlVmFsdWUs
aW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIGNvbXBhcmVWYWx1ZSwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSks
IDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zm
c2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCkpKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21w
TGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9u
LCR7dHlwZX0gQ29tcGFyZVZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEPCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlLGludDIg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgdGhpcworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
MCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBs
ZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRp
b25BcnJheSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBCaWFzLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5n
ZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0
dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0
YUFycmF5LCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBs
b2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBERFkpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0g
W2RkeC5nZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGRkeUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVy
ZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9h
dDIgRERZLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeSwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQo
MSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2Rk
eC5nZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRk
eUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUo
dGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwg
ZGVsdGFBcnJheSwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0
aW9uLGZsb2F0IExPRClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgbG9kXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9u
QXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1
cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1
bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9j
YXRpb24sZmxvYXQgTE9ELGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2QsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24u
Z2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5
ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCks
IHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxvZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4
dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVy
ZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNl
dF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVy
ZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVy
ZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklY
TUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBG
SVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlRGVwdGgyRDwke3R5
cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1
ZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJs
dWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBv
ZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxl
bWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVw
dGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVl
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBj
b21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDIgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVl
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50
IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDIgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21w
UmVkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0
IGNvbXBhcmVfdmFsdWUsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZSwgb2Zmc2V0XSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21w
R3JlZW4oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxv
YXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wR3JlZW4oVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSxp
bnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0
aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFsdWUp
YCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNv
bXBhcmVWYWx1ZV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZh
bHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBBbHBoYShUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVy
aW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJDbXBBbHBoYShUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlv
bixmbG9hdCBjb21wYXJlX3ZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRo
ZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9h
ZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBv
dXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2Nh
dGlvbi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmVE
ZXB0aDJEPCR7dHlwZX0+LGludDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0
dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNr
ZWQoMCwgbG9jYXRpb24uZ2V0KDIpLCAwLCBsb2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQuZ2V0KDEp
LCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZzZXQuZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmVEZXB0aDJEPCR7
dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWln
aHQsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBudW1iZXJPZkxldmVsc10pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXREaW1lbnNp
b25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXguaGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwo
bWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRo
MkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24u
Z2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBs
ZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEQXJy
YXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdl
dCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0Lmdl
dCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBs
ZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRp
b25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24sJHt0eXBlfSBDb21wYXJlVmFsdWUpYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZV0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZh
bHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9h
ZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24sJHt0eXBlfSBDb21wYXJlVmFsdWUsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZSwgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9j
YXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07Cisg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBv
ZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4
dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbiwke3R5cGV9
IENvbXBhcmVWYWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0aGlzCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlw
ZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlLGludDIgb2Zm
c2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgdGhpcworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlhcylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEp
LCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9h
ZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgYmlhcy5sb2FkVmFsdWUoKSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZURlcHRo
MkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzLGludDIg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uLCBiaWFzLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRp
b25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRp
b24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29m
ZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBs
ZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIGJpYXMubG9hZFZhbHVl
KCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQyIERE
WCxmbG9hdDIgRERZKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uLCBkZHgsIGRkeV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2Nh
dGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2Rk
eC5nZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRk
eUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCks
IHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURl
cHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdDIgRERYLGZs
b2F0MiBERFksaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdl
dCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9m
ZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rv
cihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCks
IGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IExPRClgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJl
RGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IExPRCxp
bnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgbG9kLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9j
YXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9j
YXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0g
W29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIGxvZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVy
ZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0
dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zm
c2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50
IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNh
bXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0
dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3Jl
ZW4oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixp
bnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IElt
cGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklY
TUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlRGVwdGgyREFycmF5PCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5n
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJB
bHBoYShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdh
dGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBs
b2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8
JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFy
ZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0
ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVl
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50
IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVy
aW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJDbXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBn
YXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00
IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24g
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wR3Jl
ZW4oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixm
bG9hdCBjb21wYXJlX3ZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJp
bmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckNtcEJsdWUoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBCbHVlKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29t
cGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBBbHBo
YShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZs
b2F0IGNvbXBhcmVfdmFsdWUpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0
aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92
YWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9PixpbnQ0IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRz
IiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMyksIGxv
Y2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVy
ZURlcHRoMkRBcnJheTwke3R5cGV9PixpbnQ0IGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0i
LCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1l
bnRDaGVja2VkKGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIpLCAwLCBsb2NhdGlvbi5n
ZXQoMSkgKyBvZmZzZXQuZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZzZXQuZ2V0KDApKSkp
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNp
b25zKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJl
YWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRWxlbWVudHMsdWludCog
dGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50cywgbnVtYmVyT2ZMZXZlbHNdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5z
aW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7
CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVs
KG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRl
eC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUo
dGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSkpOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBM
ZXZlbFplcm8oVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
biwke3R5cGV9IENvbXBhcmVWYWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzCisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1
ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0
dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0MyBERFgs
ZmxvYXQzIEREWSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRp
b25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0
KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHgu
Z2V0KDApLCBkZHguZ2V0KDEpLCBkZHguZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCBkZHkuZ2V0KDIpXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0
dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1w
bGVMZXZlbChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
LGZsb2F0IExPRClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgbG9kXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJy
YXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwg
MSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9h
ZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQgdGV4dHVyZSBnYXRoZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog
SW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhN
RTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlRGVwdGhDdWJlPCR7dHlw
ZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aEN1YmU8JHt0
eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZh
bHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0
dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24g
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0ZXh0dXJlIGdhdGhlcmluZworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wR3Jl
ZW4oVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9h
dCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAv
LyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVyaW5nCisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aEN1
YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29t
cGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0ZXh0dXJlIGdhdGhlcmluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyQ21wQWxwaGEoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRleHR1cmUgZ2F0aGVy
aW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVu
c2lvbnMoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVh
ZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdo
dCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0g
dGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9
IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5s
YXllckNvdW50ICE9IDYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJDdWJlIHRleHR1cmUgZG9lc24ndCBoYXZlIDYgZmFjZXMiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3VudCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRp
bmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWln
aHRBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlRGVwdGgyRDwke3R5
cGV9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodClgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0XSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCks
IDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixmbG9h
dCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0KWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbiAoW3RleHR1cmUsIHdpZHRoLCBoZWlnaHRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0gTG9hZChSV1RleHR1cmVEZXB0aDJEPCR7dHlwZX0+LGludDIgbG9jYXRpb24pYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAi
VGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRD
aGVja2VkKDAsIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmVE
ZXB0aDJEPCR7dHlwZX0+LCR7dHlwZX0sdWludDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0dXJlIHdyaXRlIG91dCBvZiBib3VuZHMi
LCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKDAsIDAsIDAsIGxvY2F0aW9u
LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApLCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25z
KFJXVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCog
dGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uIChbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXll
ckNvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAg
ICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMo
UldUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LGZsb2F0KiB0aHJlYWQgV2lkdGgsZmxvYXQq
IHRocmVhZCBIZWlnaHQsZmxvYXQqIHRocmVhZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50c10pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lmxh
eWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUo
KS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChSV1Rl
eHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQg
b3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRp
b24uZ2V0KDIpLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJl
RGVwdGgyREFycmF5PCR7dHlwZX0+LCR7dHlwZX0sdWludDMgbG9jYXRpb24pYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0dXJlIHdyaXRlIG91dCBvZiBi
b3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdl
dCgyKSwgMCwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCksIHVuYm94VmVjdG9y
KHZhbHVlLCBsZW5ndGgpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGFkZCh0aGluZykKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCmluZGV4IDc4ZDAwOGY4MzVmOWU5YzIzNGVmMmRmNmQ2
ZGVlYTNmNzQyNmNlNjUuLjFiMjZjZjJiMmU2NTE1MjdhMTUyZWU4ZDkyZmYyNWJlZGE2MWQzMzkg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKKysr
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbApAQCAtMzQsNiArMzQs
NyBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IkJ1aWx0aW5WZWN0b3JTZXR0ZXIuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJDYWxsRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9IkNhbGxGdW5jdGlvbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
IkNhc3RzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ2hlY2suanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJDaGVja0xpdGVyYWxUeXBlcy5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9IkNoZWNrTG9vcHMuanMiPjwvc2NyaXB0PgpAQCAtMTIxLDYgKzEyMiw3IEBA
IHRkIHsKICAgICA8c2NyaXB0IHNyYz0iUmV0dXJuLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iUmV0dXJuQ2hlY2tlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlJldHVy
bkV4Y2VwdGlvbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlNhbXBsZXIuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJTdGFuZGFyZExpYnJhcnkuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJTdGF0ZW1lbnRDbG9uZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIj48L3NjcmlwdD4KQEAgLTEzMyw2ICsxMzUs
OCBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVy
YXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVEZWZhdWx0Q29u
c3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlRlcm5hcnlF
eHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVGV4dHVyZS5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlRleHR1cmVPcGVyYXRpb25zLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iVHJhcFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVz
b2x2ZXIuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU2FtcGxlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NhbXBsZXIu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZWU3NzEzZGZjODFmODNjNTg0NzM2MjEyMTc1NjRmMzk1NzJiMTRiOAot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NhbXBsZXIu
anMKQEAgLTAsMCArMSwxNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworInVzZSBzdHJpY3QiOworCitjbGFzcyBTYW1wbGVyIHsKKyAgICBjb25zdHJ1Y3Rv
cihvcHRpb25zKQorICAgIHsKKyAgICAgICAgaWYgKG9wdGlvbnMuckFkZHJlc3NNb2RlID09IHVu
ZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX3JBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX3JBZGRyZXNzTW9kZSA9IG9wdGlvbnMu
ckFkZHJlc3NNb2RlOworICAgICAgICBpZiAob3B0aW9ucy5zQWRkcmVzc01vZGUgPT0gdW5kZWZp
bmVkKQorICAgICAgICAgICAgdGhpcy5fc0FkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fc0FkZHJlc3NNb2RlID0gb3B0aW9ucy5zQWRk
cmVzc01vZGU7CisgICAgICAgIGlmIChvcHRpb25zLnRBZGRyZXNzTW9kZSA9PSB1bmRlZmluZWQp
CisgICAgICAgICAgICB0aGlzLl90QWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICB0aGlzLl90QWRkcmVzc01vZGUgPSBvcHRpb25zLnRBZGRyZXNz
TW9kZTsKKyAgICAgICAgaWYgKG9wdGlvbnMubWluRmlsdGVyID09IHVuZGVmaW5lZCkKKyAgICAg
ICAgICAgIHRoaXMuX21pbkZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgdGhpcy5fbWluRmlsdGVyID0gb3B0aW9ucy5taW5GaWx0ZXI7CisgICAgICAgIGlmIChv
cHRpb25zLm1hZ0ZpbHRlciA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9tYWdGaWx0
ZXIgPSAibmVhcmVzdCI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX21hZ0ZpbHRl
ciA9IG9wdGlvbnMubWFnRmlsdGVyOworICAgICAgICBpZiAob3B0aW9ucy5taXBtYXBGaWx0ZXIg
PT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fbWlwbWFwRmlsdGVyID0gIm5lYXJlc3Qi
OworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9taXBtYXBGaWx0ZXIgPSBvcHRpb25z
Lm1pcG1hcEZpbHRlcjsKKyAgICAgICAgaWYgKG9wdGlvbnMubG9kTWluQ2xhbXAgPT0gdW5kZWZp
bmVkKQorICAgICAgICAgICAgdGhpcy5fbG9kTWluQ2xhbXAgPSAtTnVtYmVyLk1BWF9WQUxVRTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fbG9kTWluQ2xhbXAgPSBvcHRpb25zLmxv
ZE1pbkNsYW1wOworICAgICAgICBpZiAob3B0aW9ucy5sb2RNYXhDbGFtcCA9PSB1bmRlZmluZWQp
CisgICAgICAgICAgICB0aGlzLl9sb2RNYXhDbGFtcCA9IE51bWJlci5NQVhfVkFMVUU7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX2xvZE1heENsYW1wID0gb3B0aW9ucy5sb2RNYXhD
bGFtcDsKKyAgICAgICAgaWYgKG9wdGlvbnMubWF4QW5pc290cm9weSA9PSB1bmRlZmluZWQpCisg
ICAgICAgICAgICB0aGlzLl9tYXhBbmlzb3Ryb3B5ID0gMTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgdGhpcy5fbWF4QW5pc290cm9weSA9IG9wdGlvbnMubWF4QW5pc290cm9weTsKKyAgICAg
ICAgaWYgKG9wdGlvbnMuY29tcGFyZUZ1bmN0aW9uID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAg
IHRoaXMuX2NvbXBhcmVGdW5jdGlvbiA9ICJuZXZlciI7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHRoaXMuX2NvbXBhcmVGdW5jdGlvbiA9IG9wdGlvbnMuY29tcGFyZUZ1bmN0aW9uOworICAg
ICAgICBpZiAob3B0aW9ucy5ib3JkZXJDb2xvciA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0
aGlzLl9ib3JkZXJDb2xvciA9ICJ0cmFuc3BhcmVudEJsYWNrIjsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgdGhpcy5fYm9yZGVyQ29sb3IgPSBvcHRpb25zLmJvcmRlckNvbG9yOworICAgIH0K
KyAgICAKKyAgICBnZXQgckFkZHJlc3NNb2RlKCkgeyByZXR1cm4gdGhpcy5fckFkZHJlc3NNb2Rl
OyB9CisgICAgZ2V0IHNBZGRyZXNzTW9kZSgpIHsgcmV0dXJuIHRoaXMuX3NBZGRyZXNzTW9kZTsg
fQorICAgIGdldCB0QWRkcmVzc01vZGUoKSB7IHJldHVybiB0aGlzLl90QWRkcmVzc01vZGU7IH0K
KyAgICBnZXQgbWluRmlsdGVyKCkgeyByZXR1cm4gdGhpcy5fbWluRmlsdGVyOyB9CisgICAgZ2V0
IG1hZ0ZpbHRlcigpIHsgcmV0dXJuIHRoaXMuX21hZ0ZpbHRlcjsgfQorICAgIGdldCBtaXBtYXBG
aWx0ZXIoKSB7IHJldHVybiB0aGlzLl9taXBtYXBGaWx0ZXI7IH0KKyAgICBnZXQgbG9kTWluQ2xh
bXAoKSB7IHJldHVybiB0aGlzLl9sb2RNaW5DbGFtcDsgfQorICAgIGdldCBsb2RNYXhDbGFtcCgp
IHsgcmV0dXJuIHRoaXMuX2xvZE1heENsYW1wOyB9CisgICAgZ2V0IG1heEFuaXNvdHJvcHkoKSB7
IHJldHVybiB0aGlzLl9tYXhBbmlzb3Ryb3B5OyB9CisgICAgZ2V0IGNvbXBhcmVGdW5jdGlvbigp
IHsgcmV0dXJuIHRoaXMuX2NvbXBhcmVGdW5jdGlvbjsgfQorICAgIGdldCBib3JkZXJDb2xvcigp
IHsgcmV0dXJuIHRoaXMuX2JvcmRlckNvbG9yOyB9CisKKyAgICBjYWxjdWxhdGVCb3JkZXJDb2xv
cihpbm5lclR5cGUpCisgICAgeworICAgICAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUu
My4zCisgICAgICAgIGZ1bmN0aW9uIGNvbXB1dGVWYWx1ZXMoKSB7CisgICAgICAgICAgICBzd2l0
Y2ggKGlubmVyVHlwZSkgeworICAgICAgICAgICAgICAgIGNhc2UgInVjaGFyIjoKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazogMCwg
b3BhcXVlV2hpdGU6IDB4RkZ9OworICAgICAgICAgICAgICAgIGNhc2UgInVzaG9ydCI6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6
IDAsIG9wYXF1ZVdoaXRlOiAweEZGRkZ9OworICAgICAgICAgICAgICAgIGNhc2UgInVpbnQiOgor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJs
YWNrOiAwLCBvcGFxdWVXaGl0ZTogMHhGRkZGRkZGRn07CisgICAgICAgICAgICAgICAgY2FzZSAi
Y2hhciI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwg
b3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdoaXRlOiAweDdGfTsKKyAgICAgICAgICAgICAgICBjYXNl
ICJzaG9ydCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazog
MCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdoaXRlOiAweDdGRkZ9OworICAgICAgICAgICAgICAg
IGNhc2UgImludCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFj
azogMCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdoaXRlOiAweDdGRkZGRkZGfTsKKyAgICAgICAg
ICAgICAgICBjYXNlICJoYWxmIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3Bh
cmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDF9OworICAgICAgICAg
ICAgICAgIGNhc2UgImZsb2F0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3Bh
cmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDF9OworICAgICAgICAg
ICAgICAgIGNhc2UgInVjaGFyMiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNw
YXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4
RkYsIDB4RkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1c2hvcnQyIjoKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBb
MCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHhGRkZGLCAweEZGRkZdfTsKKyAgICAgICAgICAgICAgICBj
YXNlICJ1aW50MiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFj
azogWzAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4RkZGRkZGRkYs
IDB4RkZGRkZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJjaGFyMiI6CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazog
WzAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4N0YsIDB4N0ZdfTsKKyAgICAgICAgICAgICAgICBjYXNl
ICJzaG9ydDIiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6
IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsweDdGRkYsIDB4N0ZG
Rl19OworICAgICAgICAgICAgICAgIGNhc2UgImludDIiOgorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwXSwgb3Bh
cXVlV2hpdGU6IFsweDdGRkZGRkZGLCAweDdGRkZGRkZGXX07CisgICAgICAgICAgICAgICAgY2Fz
ZSAiaGFsZjIiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6
IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsxLCAxXX07CisgICAg
ICAgICAgICAgICAgY2FzZSAiZmxvYXQyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0
cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRl
OiBbMSwgMV19OworICAgICAgICAgICAgICAgIGNhc2UgInVjaGFyMyI6CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazog
WzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4RkYsIDB4RkYsIDB4RkZdfTsKKyAgICAgICAgICAg
ICAgICBjYXNlICJ1c2hvcnQzIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3Bh
cmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZVdoaXRl
OiBbMHhGRkZGLCAweEZGRkYsIDB4RkZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgInVpbnQz
IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwg
MF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHhGRkZGRkZGRiwgMHhG
RkZGRkZGRiwgMHhGRkZGRkZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgImNoYXIzIjoKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9w
YXF1ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHg3RiwgMHg3RiwgMHg3Rl19Owor
ICAgICAgICAgICAgICAgIGNhc2UgInNob3J0MyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVy
biB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBv
cGFxdWVXaGl0ZTogWzB4N0ZGRiwgMHg3RkZGLCAweDdGRkZdfTsKKyAgICAgICAgICAgICAgICBj
YXNlICJpbnQzIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNr
OiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHg3RkZG
RkZGRiwgMHg3RkZGRkZGRiwgMHg3RkZGRkZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgImhh
bGYzIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwg
MCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMSwgMSwgMV19Owor
ICAgICAgICAgICAgICAgIGNhc2UgImZsb2F0MyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVy
biB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBv
cGFxdWVXaGl0ZTogWzEsIDEsIDFdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1Y2hhcjQiOgor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwLCAw
XSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAweEZGXSwgb3BhcXVlV2hpdGU6IFsweEZGLCAweEZG
LCAweEZGLCAweEZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAidXNob3J0NCI6CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBvcGFx
dWVCbGFjazogWzAsIDAsIDAsIDB4RkZGRl0sIG9wYXF1ZVdoaXRlOiBbMHhGRkZGLCAweEZGRkYs
IDB4RkZGRiwgMHhGRkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAidWludDQiOgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3Bh
cXVlQmxhY2s6IFswLCAwLCAwLCAweEZGRkZGRkZGXSwgb3BhcXVlV2hpdGU6IFsweEZGRkZGRkZG
LCAweEZGRkZGRkZGLCAweEZGRkZGRkZGLCAweEZGRkZGRkZGXX07CisgICAgICAgICAgICAgICAg
Y2FzZSAiY2hhcjQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50Qmxh
Y2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAweDdGXSwgb3BhcXVlV2hp
dGU6IFsweDdGLCAweDdGLCAweDdGLCAweDdGXX07CisgICAgICAgICAgICAgICAgY2FzZSAic2hv
cnQ0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwg
MCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMHg3RkZGXSwgb3BhcXVlV2hpdGU6IFsw
eDdGRkYsIDB4N0ZGRiwgMHg3RkZGLCAweDdGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJp
bnQ0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwg
MCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMHg3RkZGRkZGRl0sIG9wYXF1ZVdoaXRl
OiBbMHg3RkZGRkZGRiwgMHg3RkZGRkZGRiwgMHg3RkZGRkZGRiwgMHg3RkZGRkZGRl19OworICAg
ICAgICAgICAgICAgIGNhc2UgImhhbGY0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0
cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMV0s
IG9wYXF1ZVdoaXRlOiBbMSwgMSwgMSwgMV19OworICAgICAgICAgICAgICAgIGNhc2UgImZsb2F0
NCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAs
IDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDAsIDFdLCBvcGFxdWVXaGl0ZTogWzEsIDEsIDEs
IDFdfTsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIlVua25vd24gdGV4dHVyZSBpbm5lciB0eXBlIik7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNvbXB1dGVWYWx1ZXMoKVt0aGlzLmJvcmRlckNv
bG9yXTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9TdGFuZGFyZExpYnJhcnkuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFu
ZGFyZExpYnJhcnkuanMKaW5kZXggM2RkNGZlZTE4NjAwZDVjZDJhODk1YWQ1YTQ3OTcyMWRhNzc4
OGNjMS4uZGZjZWYzNGVmNDY4NDlhYTVhY2NjYzAyNjM4YmMzNDkxNDg2ODIyNyAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCisrKyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcwpAQCAtNTcs
NyArNTcsNyBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICB9
CiAgICAgICAgIHByaW50KGBuYXRpdmUgdHlwZWRlZiBzYW1wbGVyO2ApOwogICAgICAgICBmb3Ig
KHZhciB0eXBlIG9mIFtgVGV4dHVyZTFEYCwgYFJXVGV4dHVyZTFEYCwgYFRleHR1cmUxREFycmF5
YCwgYFJXVGV4dHVyZTFEQXJyYXlgLCBgVGV4dHVyZTJEYCwgYFJXVGV4dHVyZTJEYCwgYFRleHR1
cmUyREFycmF5YCwgYFJXVGV4dHVyZTJEQXJyYXlgLCBgVGV4dHVyZTNEYCwgYFJXVGV4dHVyZTNE
YCwgYFRleHR1cmVDdWJlYF0pIHsKLSAgICAgICAgICAgIGZvciAodmFyIHR5cGVBcmd1bWVudEJh
c2Ugb2YgW2Bib29sYCwgYHVjaGFyYCwgYHVzaG9ydGAsIGB1aW50YCwgYGNoYXJgLCBgc2hvcnRg
LCBgaW50YCwgYGhhbGZgLCBgZmxvYXRgXSkgeworICAgICAgICAgICAgZm9yICh2YXIgdHlwZUFy
Z3VtZW50QmFzZSBvZiBbYHVjaGFyYCwgYHVzaG9ydGAsIGB1aW50YCwgYGNoYXJgLCBgc2hvcnRg
LCBgaW50YCwgYGhhbGZgLCBgZmxvYXRgXSkgewogICAgICAgICAgICAgICAgIGZvciAodmFyIHNp
emUgb2YgW2BgLCBgMmAsIGAzYCwgYDRgXSkgewogICAgICAgICAgICAgICAgICAgICBwcmludChg
bmF0aXZlIHR5cGVkZWYgJHt0eXBlfTwke3R5cGVBcmd1bWVudEJhc2V9JHtzaXplfT47YCk7CiAg
ICAgICAgICAgICAgICAgfQpAQCAtMTg5Nyw3ICsxODk3LDggQEAgbGV0IHN0YW5kYXJkTGlicmFy
eSA9IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBJbnRlcmxv
Y2tlZENvbXBhcmVFeGNoYW5nZSh0aHJlYWQgYXRvbWljXyR7dHlwZX0qLCAke3R5cGV9LCAke3R5
cGV9LCB0aHJlYWQgJHt0eXBlfSopO2ApOwogICAgICAgICB9CiAgICAgICAgIHByaW50KCk7Ci0g
ICAgICAgIAorICAgICAgICAqLworCiAgICAgICAgIGZvciAodmFyIHR5cGUgb2YgW2B1Y2hhcmAs
IGB1c2hvcnRgLCBgdWludGAsIGBjaGFyYCwgYHNob3J0YCwgYGludGAsIGBoYWxmYCwgYGZsb2F0
YF0pIHsKICAgICAgICAgICAgIGZvciAodmFyIGxlbmd0aCBvZiBbYGAsIGAyYCwgYDNgLCBgNGBd
KSB7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBs
ZShUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0IGxvY2F0aW9uKTtg
KTsKQEAgLTE5NTgsMTYgKzE5NTksNiBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9u
KCkgewogICAgICAgICAgICAgICAgIHByaW50KCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4s
IHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4s
IHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwotICAgICAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUzRDwke3R5cGV9JHtsZW5n
dGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwotICAgICAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUzRDwke3R5cGV9JHtsZW5n
dGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4s
IHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwotICAgICAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTNEPCR7dHlwZX0k
e2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTNEPCR7dHlwZX0ke2xl
bmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDMgb2Zmc2V0KTtgKTsKLSAgICAg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTNEPCR7
dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlM0Q8JHt0eXBl
fSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwot
ICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVy
ZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAg
ICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTNE
PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDMgb2Zmc2V0
KTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9h
ZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIGludDQgbG9jYXRpb24pO2ApOwogICAgICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUzRDwk
e3R5cGV9JHtsZW5ndGh9PiwgaW50NCBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwogICAgICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUzRDwke3R5
cGV9JHtsZW5ndGh9PiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQg
dWludCogSGVpZ2h0LCB0aHJlYWQgdWludCogRGVwdGgsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxl
dmVscyk7YCk7CkBAIC0yMDEwLDk3ICsyMDAxLDk2IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAo
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQotICAgICAgICAKKwogICAgICAgICBmb3IgKHZhciB0eXBlIG9mIFtgaGFsZmAsIGBm
bG9hdGBdKSB7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwogICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+
LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IENvbXBhcmVW
YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRl
eHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9j
YXRpb24sIGZsb2F0IENvbXBhcmVWYWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwk
e3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBD
b21wYXJlVmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25T
dGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUsIGludDIgb2Zmc2V0KTtg
KTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURl
cHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgJHt0eXBlfSBDb21wYXJl
VmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChU
ZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCAke3R5cGV9
IENvbXBhcmVWYWx1ZSwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2Ft
cGxlciwgZmxvYXQyIGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1ZSk7YCk7CisgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0
aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZh
bHVlLCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0g
U2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0
aW9uLCBmbG9hdCBCaWFzKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBT
YW1wbGVCaWFzKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRp
b24sIGZsb2F0IEJpYXMsIGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBm
bG9hdDIgbG9jYXRpb24sIGZsb2F0MiBERFgsIGZsb2F0MiBERFkpO2ApOwogICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4s
IHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQyIEREWCwgZmxvYXQyIEREWSwgaW50MiBv
ZmZzZXQpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVs
KFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0
IExPRCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwo
VGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQg
TE9ELCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0g
R2F0aGVyKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24p
O2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlcihUZXh0dXJlRGVw
dGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7
Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyUmVkKFRleHR1cmVEZXB0
aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwg
c2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4s
IHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0gR2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZs
b2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IEdhdGhlckJsdWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZs
b2F0MiBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0
aGVyQmx1ZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9u
LCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0
aGVyQWxwaGEoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlv
bik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQWxwaGEoVGV4
dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZz
ZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcChUZXh0
dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0
aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfSBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJp
c29uU3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZz
ZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcFJlZChU
ZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxv
Y2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJD
b21wYXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50
MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNt
cEdyZWVuKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBm
bG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+
LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVf
dmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNv
blN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRoMkQ8
JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQg
Y29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVy
Q29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2Ap
OwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEFscGhhKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRp
b24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2Nh
dGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2Nh
dGlvbik7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChU
ZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9m
ZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVu
KFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwor
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlRGVw
dGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7
CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZURl
cHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7CisgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlRGVwdGgyRDwke3R5
cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBs
ZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBs
ZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7CisgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9m
ZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcFJl
ZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9h
dCBjb21wYXJlX3ZhbHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9j
YXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wR3JlZW4oVGV4dHVyZURlcHRoMkQ8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7
CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEdyZWVuKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBh
cmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyQ21wQmx1ZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxv
YXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wQmx1ZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwg
c2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNl
dCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEFscGhh
KFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0
IGNvbXBhcmVfdmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJDbXBBbHBoYShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxv
Y2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgaW50
MyBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gTG9hZChU
ZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgaW50MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwog
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVp
bnQqIEhlaWdodCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTtgKTsKICAgICAgICAgICAg
IHByaW50KCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CiAg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEQXJy
YXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwot
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgy
REFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24s
IGZsb2F0IENvbXBhcmVWYWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJp
c29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgQ29tcGFyZVZhbHVlLCBpbnQyIG9mZnNl
dCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxa
ZXJvKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUs
IGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgQ29tcGFyZVZhbHVlKTtgKTsKLSAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkRBcnJh
eTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9h
dCBDb21wYXJlVmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxl
ciwgZmxvYXQzIGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1ZSk7YCk7CisgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgJHt0eXBlfSBDb21wYXJlVmFsdWUsIGlu
dDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVD
bXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgJHt0eXBlfSBDb21wYXJlVmFsdWUsIGlu
dDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVC
aWFzKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlv
biwgZmxvYXQgQmlhcyk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlQmlhcyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9j
YXRpb24sIGZsb2F0IEJpYXMsIGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQyIEREWCwgZmxvYXQyIEREWSk7YCk7CiAgICAg
ICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlRGVwdGgyREFy
cmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0MiBERFgsIGZsb2F0
MiBERFksIGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSBTYW1wbGVMZXZlbChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9h
dDMgbG9jYXRpb24sIGZsb2F0IExPRCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwg
ZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBMT0QsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXIoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBHYXRoZXIoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwg
ZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX0gR2F0aGVyUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBs
ZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX0gR2F0aGVyUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0
MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9IEdhdGhlckdyZWVuKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIs
IGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0g
R2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gR2F0aGVyQmx1ZShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBm
bG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdh
dGhlckJsdWUoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxv
Y2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX0gR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxv
YXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRo
ZXJBbHBoYShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9j
YXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlz
b25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkRBcnJh
eTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9h
dCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX0gR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNh
bXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1
ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wUmVkKFRl
eHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0
MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJE
QXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwg
ZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX0gR2F0aGVyQ21wR3JlZW4oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNv
bXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQy
IG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21w
Qmx1ZShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRl
LCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRoMkRBcnJheTwk
e3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBj
b21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0gR2F0aGVyQ21wQWxwaGEoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2Ft
cGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVl
KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBBbHBoYShU
ZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9h
dDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVEZXB0aDJEQXJyYXk8
JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBz
YW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBl
fT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2Ft
cGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2Ft
cGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+
LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOworICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3Zh
bHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00
IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9h
dDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9m
ZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEdy
ZWVuKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlv
biwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX00IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBs
ZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2Ap
OworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBCbHVlKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQg
Y29tcGFyZV92YWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdh
dGhlckNtcEJsdWUoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJE
QXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92
YWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcEFs
cGhhKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlv
biwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgaW50
NCBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gTG9hZChU
ZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBpbnQ0IGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7
YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJl
RGVwdGgyREFycmF5PCR7dHlwZX0+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgs
IHRocmVhZCB1aW50KiBIZWlnaHQsIHRocmVhZCB1aW50KiBFbGVtZW50cywgdGhyZWFkIHVpbnQq
IE51bWJlck9mTGV2ZWxzKTtgKTsKICAgICAgICAgICAgIHByaW50KCk7CiAgICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJp
c29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgQ29tcGFyZVZhbHVlKTtgKTsKLSAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURl
cHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9u
LCBmbG9hdCBDb21wYXJlVmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMg
bG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1ZSk7YCk7CiAg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGhD
dWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IEJpYXMpO2ApOwot
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRo
Q3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdDIgRERYLCBmbG9h
dDIgRERZKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFk
KFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxv
YXQzIEREWCwgZmxvYXQzIEREWSk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uLCBmbG9hdCBMT0QpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IEdhdGhlcihUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9j
YXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlclJlZChU
ZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwot
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckdyZWVuKFRleHR1cmVEZXB0
aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQmx1ZShUZXh0dXJlRGVwdGhDdWJlPCR7dHlw
ZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9IEdhdGhlckFscGhhKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBs
ZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX0gR2F0aGVyQ21wKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29u
U3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aEN1YmU8
JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQg
Y29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0
aGVyQ21wR3JlZW4oVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25T
dGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aEN1YmU8
JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQg
Y29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0
aGVyQ21wQWxwaGEoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25T
dGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4s
IGludDQgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXIoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9u
KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1
cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CisgICAg
ICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmVEZXB0aEN1
YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxl
ciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBs
b2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX00IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOworICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBHcmVlbihUZXh0dXJlRGVwdGhDdWJl
PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUp
O2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBCbHVlKFRl
eHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQg
Y29tcGFyZV92YWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdh
dGhlckNtcEFscGhhKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBs
b2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0
aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCB1aW50IE1p
cExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBIZWlnaHQsIHRocmVhZCB1
aW50KiBOdW1iZXJPZkxldmVscyk7YCk7CiAgICAgICAgICAgICBwcmludCgpOwogICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlRGVwdGgyRDwke3R5
cGV9PiwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogSGVpZ2h0KTtgKTsKQEAgLTIx
MTQsNyArMjEwNCw2IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICBwcmludChgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlRGVwdGgyREFycmF5PCR7
dHlwZX0+LCAke3R5cGV9LCB1aW50MyBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICBwcmludCgp
OwogICAgICAgICB9Ci0gICAgICAgICovCiAgICAgfSkoKTsKICAgICByZXR1cm4gcmVzdWx0Owog
fSkoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRt
bCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbAppbmRleCA2MDdhNjk1
MzI1M2RhNzI3YjFkZTM3Njc4ZWMzODhiNGZhMjQwNDA1Li5lNzhjY2FjMWEwMjU0Y2JjOTIzYjlk
ZDZjMTg1YWVlNzhjNzJhODE1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9UZXN0Lmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5o
dG1sCkBAIC0yOCw2ICsyOCw3IEBACiA8c2NyaXB0IHNyYz0iQnVpbHRpblZlY3RvclNldHRlci5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2FsbEV4cHJlc3Npb24uanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IkNhbGxGdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ2Fz
dHMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNoZWNrLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJDaGVja0xpdGVyYWxUeXBlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2hl
Y2tMb29wcy5qcyI+PC9zY3JpcHQ+CkBAIC0xMTUsNiArMTE2LDcgQEAKIDxzY3JpcHQgc3JjPSJS
ZXR1cm4uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJldHVybkNoZWNrZXIuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IlJldHVybkV4Y2VwdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iU2FtcGxlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3RhbmRhcmRMaWJyYXJ5
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTdGF0ZW1lbnRDbG9uZXIuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IlN0cnVjdExheW91dEJ1aWxkZXIuanMiPjwvc2NyaXB0PgpAQCAtMTI3
LDYgKzEyOSw4IEBACiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJh
dG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRGVmYXVsdENvbnN0cnVj
dG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRlcm5hcnlFeHByZXNzaW9u
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUZXh0dXJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJUZXh0dXJlT3BlcmF0aW9ucy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHJh
cFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4KQEAgLTE1Miw3
ICsxNTYsNyBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIGRvVGVzdEluQnJvd3NlcigpCiB7Ci0gICAg
dmFyIHRlc3RlciA9IGRvVGVzdCgvLiovKTsKKyAgICB2YXIgdGVzdGVyID0gZG9UZXN0KC90ZXh0
dXJlLyk7CiAgICAgdmFyIGxhc3RUaW1lOwogICAgIGZ1bmN0aW9uIG5leHQoKQogICAgIHsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCmluZGV4IDRhMTFjMTg1ODU5OTc3OGZmMzkx
YjA0ZjI2MzVjNWI3MTAwNWRmN2YuLjM1OTY3N2JlNjhlNTAzN2VlYjM0ZDE3Y2RjODgyMjVhMDlh
MGIxNjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMK
KysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwpAQCAtOTQsNiArOTQs
MTMzIEBAIGZ1bmN0aW9uIG1ha2VFbnVtKHByb2dyYW0sIGVudW1OYW1lLCB2YWx1ZSkKICAgICBy
ZXR1cm4gVHlwZWRWYWx1ZS5ib3goZW51bVR5cGUsIGVudW1NZW1iZXIudmFsdWUudW5pZnlOb2Rl
LnZhbHVlRm9yU2VsZWN0ZWRUeXBlKTsKIH0KIAorZnVuY3Rpb24gbWFrZVNhbXBsZXIocHJvZ3Jh
bSwgb3B0aW9ucykKK3sKKyAgICAvLyBlbnVtIFdlYkdQVUFkZHJlc3NNb2RlIHsKKyAgICAvLyAg
ICAgImNsYW1wVG9FZGdlIiwKKyAgICAvLyAgICAgInJlcGVhdCIsCisgICAgLy8gICAgICJtaXJy
b3JSZXBlYXQiLAorICAgIC8vICAgICAiY2xhbXBUb0JvcmRlckNvbG9yIgorICAgIC8vIH0KKyAg
ICAvLworICAgIC8vIGVudW0gV2ViR1BVRmlsdGVyTW9kZSB7CisgICAgLy8gICAgICJuZWFyZXN0
IiwKKyAgICAvLyAgICAgImxpbmVhciIKKyAgICAvLyB9CisgICAgLy8KKyAgICAvLyBlbnVtIFdl
YkdQVUNvbXBhcmVGdW5jdGlvbiB7CisgICAgLy8gICAgICJuZXZlciIsCisgICAgLy8gICAgICJs
ZXNzIiwKKyAgICAvLyAgICAgImVxdWFsIiwKKyAgICAvLyAgICAgImxlc3NFcXVhbCIsCisgICAg
Ly8gICAgICJncmVhdGVyIiwKKyAgICAvLyAgICAgIm5vdEVxdWFsIiwKKyAgICAvLyAgICAgImdy
ZWF0ZXJFcXVhbCIsCisgICAgLy8gICAgICJhbHdheXMiCisgICAgLy8gfQorICAgIC8vCisgICAg
Ly8gZW51bSBXZWJHUFVCb3JkZXJDb2xvciB7CisgICAgLy8gICAgICJ0cmFuc3BhcmVudEJsYWNr
IiwKKyAgICAvLyAgICAgIm9wYXF1ZUJsYWNrIiwKKyAgICAvLyAgICAgIm9wYXF1ZVdoaXRlIgor
ICAgIC8vIH0KKyAgICAvLworICAgIC8vIGRpY3Rpb25hcnkgV2ViR1BVU2FtcGxlckRlc2NyaXB0
b3IgeworICAgIC8vICAgICBXZWJHUFVkZHJlc3NNb2RlIHJBZGRyZXNzTW9kZSA9ICJjbGFtcFRv
RWRnZSI7CisgICAgLy8gICAgIFdlYkdQVWRkcmVzc01vZGUgc0FkZHJlc3NNb2RlID0gImNsYW1w
VG9FZGdlIjsKKyAgICAvLyAgICAgV2ViR1BVZGRyZXNzTW9kZSB0QWRkcmVzc01vZGUgPSAiY2xh
bXBUb0VkZ2UiOworICAgIC8vICAgICBXZWJHUFVGaWx0ZXJNb2RlRW51bSBtYWdGaWx0ZXIgPSAi
bmVhcmVzdCI7CisgICAgLy8gICAgIFdlYkdQVUZpbHRlck1vZGVFbnVtIG1pbkZpbHRlciA9ICJu
ZWFyZXN0IjsKKyAgICAvLyAgICAgV2ViR1BVRmlsdGVyTW9kZUVudW0gbWlwbWFwRmlsdGVyID0g
Im5lYXJlc3QiOworICAgIC8vICAgICBmbG9hdCBsb2RNaW5DbGFtcCA9IDA7CisgICAgLy8gICAg
IGZsb2F0IGxvZE1heENsYW1wID0gTnVtYmVyLk1BWF9WQUxVRTsKKyAgICAvLyAgICAgdW5zaWdu
ZWQgbG9uZyBtYXhBbmlzb3Ryb3B5ID0gMTsKKyAgICAvLyAgICAgV2ViR1BVQ29tcGFyZUZ1bmN0
aW9uIGNvbXBhcmVGdW5jdGlvbiA9ICJuZXZlciI7CisgICAgLy8gICAgIFdlYkdQVUJvcmRlckNv
bG9yIGJvcmRlckNvbG9yID0gInRyYW5zcGFyZW50QmxhY2siOworICAgIC8vIH07CisgICAgcmV0
dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljcy5zYW1wbGVyLCBuZXcgU2FtcGxl
cihvcHRpb25zKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UxRFRleHR1cmUocHJvZ3JhbSwgbWlwbWFw
cywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50
cmluc2ljc1tgVGV4dHVyZTFEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTFEKGVsZW1l
bnRUeXBlLCBtaXBtYXBzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UxRFRleHR1cmVBcnJheShwcm9n
cmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHBy
b2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZTFEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBU
ZXh0dXJlMURBcnJheShlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24gbWFrZTJE
VGV4dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlw
ZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlMkQ8JHtlbGVtZW50VHlwZX0+
YF0sIG5ldyBUZXh0dXJlMkQoZWxlbWVudFR5cGUsIG1pcG1hcHMpKTsKK30KKworZnVuY3Rpb24g
bWFrZTJEVGV4dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICBy
ZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlMkRBcnJheTwk
e2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUyREFycmF5KGVsZW1lbnRUeXBlLCBhcnJheSkp
OworfQorCitmdW5jdGlvbiBtYWtlM0RUZXh0dXJlKHByb2dyYW0sIG1pcG1hcHMsIGVsZW1lbnRU
eXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRl
eHR1cmUzRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUzRChlbGVtZW50VHlwZSwgbWlw
bWFwcykpOworfQorCitmdW5jdGlvbiBtYWtlVGV4dHVyZUN1YmUocHJvZ3JhbSwgYXJyYXksIGVs
ZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNp
Y3NbYFRleHR1cmVDdWJlPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZUN1YmUoZWxlbWVu
dFR5cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzFEVGV4dHVyZShwcm9ncmFtLCBl
bGVtZW50cywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dy
YW0uaW50cmluc2ljc1tgUldUZXh0dXJlMUQ8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJl
MURSVyhlbGVtZW50VHlwZSwgZWxlbWVudHMpKTsKK30KKworZnVuY3Rpb24gbWFrZVJXMURUZXh0
dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBl
ZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTFEQXJyYXk8JHtlbGVtZW50
VHlwZX0+YF0sIG5ldyBUZXh0dXJlMURBcnJheVJXKGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQor
CitmdW5jdGlvbiBtYWtlUlcyRFRleHR1cmUocHJvZ3JhbSwgcm93cywgZWxlbWVudFR5cGUpCit7
CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldUZXh0dXJl
MkQ8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlMkRSVyhlbGVtZW50VHlwZSwgcm93cykp
OworfQorCitmdW5jdGlvbiBtYWtlUlcyRFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxl
bWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2lj
c1tgUldUZXh0dXJlMkRBcnJheTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUyREFycmF5
UlcoZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzNEVGV4dHVyZShw
cm9ncmFtLCBkZXB0aFNsaWNlcywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFs
dWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldUZXh0dXJlM0Q8JHtlbGVtZW50VHlwZX0+YF0s
IG5ldyBUZXh0dXJlM0RSVyhlbGVtZW50VHlwZSwgZGVwdGhTbGljZXMpKTsKK30KKworZnVuY3Rp
b24gbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIG1pcG1hcHMsIGVsZW1lbnRUeXBlKQorewor
ICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmVEZXB0
aDJEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZURlcHRoMkQoZWxlbWVudFR5cGUsIG1p
cG1hcHMpKTsKK30KKworZnVuY3Rpb24gbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwg
YXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFt
LmludHJpbnNpY3NbYFRleHR1cmVEZXB0aDJEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBU
ZXh0dXJlRGVwdGgyREFycmF5KGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQorCitmdW5jdGlvbiBt
YWtlRGVwdGhUZXh0dXJlQ3ViZShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAg
cmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZURlcHRoQ3Vi
ZTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmVEZXB0aEN1YmUoZWxlbWVudFR5cGUsIGFy
cmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzJERGVwdGhUZXh0dXJlKHByb2dyYW0sIHJvd3Ms
IGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJp
bnNpY3NbYFJXVGV4dHVyZURlcHRoMkQ8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlRGVw
dGgyRFJXKGVsZW1lbnRUeXBlLCByb3dzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzJERGVwdGhU
ZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBU
eXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZURlcHRoMkRBcnJheTwk
e2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmVEZXB0aDJEQXJyYXlSVyhlbGVtZW50VHlwZSwg
YXJyYXkpKTsKK30KKwogZnVuY3Rpb24gY2hlY2tOdW1iZXIocHJvZ3JhbSwgcmVzdWx0LCBleHBl
Y3RlZCkKIHsKICAgICBpZiAoIXJlc3VsdC50eXBlLnVuaWZ5Tm9kZS5pc051bWJlcikKQEAgLTU1
ODIsNyArNTcwOSwxNjgyIEBAIHRlc3RzLmFycmF5SW5kZXggPSBmdW5jdGlvbigpIHsKICAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBb
IG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAyKSBdKSwgMyk7CiAgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUluZGV4aW5nIiwg
WyBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCkgXSksIDQpOwogICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJbmRleGluZyIs
IFsgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpIF0pLCA1KTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmci
LCBbIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAyKSBdKSwgNik7ICAg
IAorICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJbmRl
eGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDIpIF0pLCA2
KTsKK30KKworZnVuY3Rpb24gY3JlYXRlVGV4dHVyZXNGb3JUZXN0aW5nKHByb2dyYW0pCit7Cisg
ICAgbGV0IHRleHR1cmUxRCA9IG1ha2UxRFRleHR1cmUocHJvZ3JhbSwgW1sxLCA3LCAxNCwgNzld
LCBbMTMsIDE2XSwgWzE1XV0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlMURBcnJheSA9IG1h
a2UxRFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1sxLCA3LCAxNCwgNzldLCBbMTMsIDE2XSwgWzE1
XV0sIFtbMTYsIDE3LCAxOCwgMTldLCBbMjAsIDIxXSwgWzIyXV1dLCAiZmxvYXQiKTsKKyAgICBs
ZXQgdGV4dHVyZTJEID0gbWFrZTJEVGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAgIFtbMSwgMiwg
MywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAx
Nl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBb
MjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwg
MzZdLAorICAgICAgICBbMzcsIDM4LCAzOSwgNDBdXSwKKyAgICAgICAgW1s0MSwgNDJdXQorICAg
IF0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlMkRBcnJheSA9IG1ha2UyRFRleHR1cmVBcnJh
eShwcm9ncmFtLCBbWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAg
ICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwg
MjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMx
LCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2XSwKKyAgICAgICAgWzM3LCAzOCwgMzks
IDQwXV0sCisgICAgICAgIFtbNDEsIDQyXV0KKyAgICBdLCBbCisgICAgICAgIFtbNDMsIDQ0LCA0
NSwgNDYsIDQ3LCA0OCwgNDksIDUwXSwKKyAgICAgICAgWzUxLCA1MiwgNTMsIDU0LCA1NSwgNTYs
IDU3LCA1OF0sCisgICAgICAgIFs1OSwgNjAsIDYxLCA2MiwgNjMsIDY0LCA2NSwgNjZdLAorICAg
ICAgICBbNjcsIDY4LCA2OSwgNzAsIDcxLCA3MiwgNzMsIDc0XV0sCisgICAgICAgIFtbNzUsIDc2
LCA3NywgNzhdLAorICAgICAgICBbNzksIDgwLCA4MSwgODJdXSwKKyAgICAgICAgW1s4MywgODRd
XQorICAgIF1dLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZTNEID0gbWFrZTNEVGV4dHVyZShw
cm9ncmFtLCBbCisgICAgICAgIFtbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBb
OSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAs
IDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAz
Ml1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MF0sCisgICAgICAg
IFs0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDhdLAorICAgICAgICBbNDksIDUwLCA1MSwg
NTIsIDUzLCA1NCwgNTUsIDU2XSwKKyAgICAgICAgWzU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYz
LCA2NF1dXSwKKyAgICAgICAgW1tbNjUsIDY2LCA2NywgNjhdLAorICAgICAgICBbNjksIDcwLCA3
MSwgNzJdXV0KKyAgICBdLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZUN1YmUgPSBtYWtlVGV4
dHVyZUN1YmUocHJvZ3JhbSwgW1sKKyAgICAgICAgW1sxLCAyXSwKKyAgICAgICAgWzMsIDRdLAor
ICAgICAgICBbNSwgNl0sCisgICAgICAgIFs3LCA4XV0sCisgICAgICAgIFtbOV0sCisgICAgICAg
IFsxMF1dLAorICAgIF0sIFsKKyAgICAgICAgW1sxMSwgMTJdLAorICAgICAgICBbMTMsIDE0XSwK
KyAgICAgICAgWzE1LCAxNl0sCisgICAgICAgIFsxNywgMThdXSwKKyAgICAgICAgW1sxOV0sCisg
ICAgICAgIFsyMF1dLAorICAgIF0sIFsKKyAgICAgICAgW1syMSwgMjJdLAorICAgICAgICBbMjMs
IDI0XSwKKyAgICAgICAgWzI1LCAyNl0sCisgICAgICAgIFsyNywgMjhdXSwKKyAgICAgICAgW1sy
OV0sCisgICAgICAgIFszMF1dLAorICAgIF0sIFsKKyAgICAgICAgW1szMSwgMzJdLAorICAgICAg
ICBbMzMsIDM0XSwKKyAgICAgICAgWzM1LCAzNl0sCisgICAgICAgIFszNywgMzhdXSwKKyAgICAg
ICAgW1szOV0sCisgICAgICAgIFs0MF1dLAorICAgIF0sIFsKKyAgICAgICAgW1s0MSwgNDJdLAor
ICAgICAgICBbNDMsIDQ0XSwKKyAgICAgICAgWzQ1LCA0Nl0sCisgICAgICAgIFs0NywgNDhdXSwK
KyAgICAgICAgW1s0OV0sCisgICAgICAgIFs1MF1dLAorICAgIF0sIFsKKyAgICAgICAgW1s1MSwg
NTJdLAorICAgICAgICBbNTMsIDU0XSwKKyAgICAgICAgWzU1LCA1Nl0sCisgICAgICAgIFs1Nywg
NThdXSwKKyAgICAgICAgW1s1OV0sCisgICAgICAgIFs2MF1dLAorICAgIF1dLCAiZmxvYXQiKTsK
KyAgICBsZXQgcndUZXh0dXJlMUQgPSBtYWtlUlcxRFRleHR1cmUocHJvZ3JhbSwgWzEsIDIsIDMs
IDQsIDUsIDYsIDcsIDhdLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlMURBcnJheSA9IG1h
a2VSVzFEVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sIFs5
LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAy
MywgMjRdXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4dHVyZTJEID0gbWFrZVJXMkRUZXh0dXJl
KHByb2dyYW0sIFsKKyAgICAgICAgWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBb
OSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAs
IDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAz
Ml1dLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlMkRBcnJheSA9IG1ha2VSVzJEVGV4dHVy
ZUFycmF5KHByb2dyYW0sIFsKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAg
ICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwg
MTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMw
LCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDBdLAor
ICAgICAgICBbNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4XSwKKyAgICAgICAgWzQ5LCA1
MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1Nl0sCisgICAgICAgIFs1NywgNTgsIDU5LCA2MCwgNjEs
IDYyLCA2MywgNjRdXV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmUzRCA9IG1ha2VSVzNE
VGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisg
ICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgs
IDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAz
MCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwXSwK
KyAgICAgICAgWzQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OF0sCisgICAgICAgIFs0OSwg
NTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTZdLAorICAgICAgICBbNTcsIDU4LCA1OSwgNjAsIDYx
LCA2MiwgNjMsIDY0XV1dLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZURlcHRoMkQgPSBtYWtl
MkREZXB0aFRleHR1cmUocHJvZ3JhbSwgWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcs
IDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBb
MTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4
LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2XSwKKyAgICAgICAg
WzM3LCAzOCwgMzksIDQwXV0sCisgICAgICAgIFtbNDEsIDQyXV0KKyAgICBdLCAiZmxvYXQiKTsK
KyAgICBsZXQgdGV4dHVyZURlcHRoMkRBcnJheSA9IG1ha2UyRERlcHRoVGV4dHVyZUFycmF5KHBy
b2dyYW0sIFtbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5
LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwg
MjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMy
XV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzZdLAorICAgICAgICBbMzcsIDM4LCAzOSwgNDBd
XSwKKyAgICAgICAgW1s0MSwgNDJdXQorICAgIF0sIFsKKyAgICAgICAgW1s0MywgNDQsIDQ1LCA0
NiwgNDcsIDQ4LCA0OSwgNTBdLAorICAgICAgICBbNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTcs
IDU4XSwKKyAgICAgICAgWzU5LCA2MCwgNjEsIDYyLCA2MywgNjQsIDY1LCA2Nl0sCisgICAgICAg
IFs2NywgNjgsIDY5LCA3MCwgNzEsIDcyLCA3MywgNzRdXSwKKyAgICAgICAgW1s3NSwgNzYsIDc3
LCA3OF0sCisgICAgICAgIFs3OSwgODAsIDgxLCA4Ml1dLAorICAgICAgICBbWzgzLCA4NF1dCisg
ICAgXV0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlRGVwdGhDdWJlID0gbWFrZURlcHRoVGV4
dHVyZUN1YmUocHJvZ3JhbSwgW1sKKyAgICAgICAgW1sxLCAyXSwKKyAgICAgICAgWzMsIDRdLAor
ICAgICAgICBbNSwgNl0sCisgICAgICAgIFs3LCA4XV0sCisgICAgICAgIFtbOV0sCisgICAgICAg
IFsxMF1dLAorICAgIF0sIFsKKyAgICAgICAgW1sxMSwgMTJdLAorICAgICAgICBbMTMsIDE0XSwK
KyAgICAgICAgWzE1LCAxNl0sCisgICAgICAgIFsxNywgMThdXSwKKyAgICAgICAgW1sxOV0sCisg
ICAgICAgIFsyMF1dLAorICAgIF0sIFsKKyAgICAgICAgW1syMSwgMjJdLAorICAgICAgICBbMjMs
IDI0XSwKKyAgICAgICAgWzI1LCAyNl0sCisgICAgICAgIFsyNywgMjhdXSwKKyAgICAgICAgW1sy
OV0sCisgICAgICAgIFszMF1dLAorICAgIF0sIFsKKyAgICAgICAgW1szMSwgMzJdLAorICAgICAg
ICBbMzMsIDM0XSwKKyAgICAgICAgWzM1LCAzNl0sCisgICAgICAgIFszNywgMzhdXSwKKyAgICAg
ICAgW1szOV0sCisgICAgICAgIFs0MF1dLAorICAgIF0sIFsKKyAgICAgICAgW1s0MSwgNDJdLAor
ICAgICAgICBbNDMsIDQ0XSwKKyAgICAgICAgWzQ1LCA0Nl0sCisgICAgICAgIFs0NywgNDhdXSwK
KyAgICAgICAgW1s0OV0sCisgICAgICAgIFs1MF1dLAorICAgIF0sIFsKKyAgICAgICAgW1s1MSwg
NTJdLAorICAgICAgICBbNTMsIDU0XSwKKyAgICAgICAgWzU1LCA1Nl0sCisgICAgICAgIFs1Nywg
NThdXSwKKyAgICAgICAgW1s1OV0sCisgICAgICAgIFs2MF1dLAorICAgIF1dLCAiZmxvYXQiKTsK
KyAgICBsZXQgcndUZXh0dXJlRGVwdGgyRCA9IG1ha2VSVzJERGVwdGhUZXh0dXJlKHByb2dyYW0s
IFsKKyAgICAgICAgWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDEx
LCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwg
MjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLCAiZmxv
YXQiKTsKKyAgICBsZXQgcndUZXh0dXJlRGVwdGgyREFycmF5ID0gbWFrZVJXMkREZXB0aFRleHR1
cmVBcnJheShwcm9ncmFtLCBbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisg
ICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgs
IDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAz
MCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwXSwK
KyAgICAgICAgWzQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OF0sCisgICAgICAgIFs0OSwg
NTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTZdLAorICAgICAgICBbNTcsIDU4LCA1OSwgNjAsIDYx
LCA2MiwgNjMsIDY0XV1dLCAiZmxvYXQiKTsKKyAgICByZXR1cm4gW3RleHR1cmUxRCwgdGV4dHVy
ZTFEQXJyYXksIHRleHR1cmUyRCwgdGV4dHVyZTJEQXJyYXksIHRleHR1cmUzRCwgdGV4dHVyZUN1
YmUsIHJ3VGV4dHVyZTFELCByd1RleHR1cmUxREFycmF5LCByd1RleHR1cmUyRCwgcndUZXh0dXJl
MkRBcnJheSwgcndUZXh0dXJlM0QsIHRleHR1cmVEZXB0aDJELCB0ZXh0dXJlRGVwdGgyREFycmF5
LCB0ZXh0dXJlRGVwdGhDdWJlLCByd1RleHR1cmVEZXB0aDJELCByd1RleHR1cmVEZXB0aDJEQXJy
YXldOworfQorCit0ZXN0cy50ZXh0dXJlRGltZW5zaW9ucyA9IGZ1bmN0aW9uKCkgeworICAgIGxl
dCBwcm9ncmFtID0gZG9QcmVwKGAKKyAgICAgICAgdWludCBmb28xKFRleHR1cmUxRDxmbG9hdD4g
dGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgbnVt
YmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0
aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAg
fQorICAgICAgICB1aW50IGZvbzIoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAg
ICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAg
ICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmbnVtYmVyT2ZMZXZlbHMp
OworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAg
IHVpbnQgZm9vMyhUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAg
dWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50
IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAm
d2lkdGgsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3
aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzQoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+
IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVs
ZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdl
dERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVs
cyk7CisgICAgICAgICAgICByZXR1cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWlu
dCBmb281KFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50
IHdpZHRoOworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVt
YmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0
aCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJl
ck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNihUZXh0dXJlMkQ8ZmxvYXQ+
IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhl
aWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXRE
aW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsK
KyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzco
VGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAg
ICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZu
dW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9Cisg
ICAgICAgIHVpbnQgZm9vOChUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAg
IHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQg
bnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3
aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1i
ZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzkoVGV4dHVyZTJEQXJyYXk8
ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1
aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50
IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAm
d2lkdGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAg
IHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzEwKFRleHR1cmUyREFy
cmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAg
ICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAg
dWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwg
MCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAg
ICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTEoVGV4dHVy
ZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAg
ICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAg
ICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0
dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAg
ICAgICAgICAgIHJldHVybiBlbGVtZW50czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzEy
KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRo
OworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOwor
ICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVs
cyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAg
ICAgdWludCBmb28xMyhUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVp
bnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVw
dGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGlt
ZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCwgJm51bWJlck9mTGV2
ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50
IGZvbzE0KFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0
aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAg
ICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25z
KHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoLCAmbnVtYmVyT2ZMZXZlbHMpOwor
ICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE1
KFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAg
ICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAg
ICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1
cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAg
ICAgICAgcmV0dXJuIGRlcHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTYoVGV4dHVy
ZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAg
ICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgdWlu
dCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwg
JndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICBy
ZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xNyhUZXh0
dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAg
ICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAg
ICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVt
YmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAg
ICAgIHVpbnQgZm9vMTgoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAg
IHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQg
bnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3
aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWln
aHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xOShUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4
dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0
OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVu
c2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAg
ICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQg
Zm9vMjAoUldUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lk
dGg7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCk7CisgICAgICAg
ICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yMShSV1RleHR1
cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAg
ICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgJndpZHRoLCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAg
ICB9CisgICAgICAgIHVpbnQgZm9vMjIoUldUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkg
eworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7Cisg
ICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmVsZW1lbnRzKTsKKyAg
ICAgICAgICAgIHJldHVybiBlbGVtZW50czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIz
KFJXVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOwor
ICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1
cmUsICZ3aWR0aCwgJmhlaWdodCk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAg
IH0KKyAgICAgICAgdWludCBmb28yNChSV1RleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAg
ICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQpOworICAgICAgICAgICAg
cmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI1KFJXVGV4dHVyZTJE
QXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAg
ICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAg
ICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAg
ICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI2KFJX
VGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7
CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7Cisg
ICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1l
bnRzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWlu
dCBmb28yNyhSV1RleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1
aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVs
ZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWln
aHQsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1cm4gZWxlbWVudHM7CisgICAgICAgIH0K
KyAgICAgICAgdWludCBmb28yOChSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAg
ICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAg
dWludCBkZXB0aDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAm
aGVpZ2h0LCAmZGVwdGgpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9Cisg
ICAgICAgIHVpbnQgZm9vMjkoUldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAg
ICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVp
bnQgZGVwdGg7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhl
aWdodCwgJmRlcHRoKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAg
ICAgICAgdWludCBmb28zMChSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAg
ICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWlu
dCBkZXB0aDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVp
Z2h0LCAmZGVwdGgpOworICAgICAgICAgICAgcmV0dXJuIGRlcHRoOworICAgICAgICB9CisgICAg
ICAgIHVpbnQgZm9vMzEoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAg
ICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVp
bnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAs
ICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3
aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzMyKFRleHR1cmVEZXB0aDJEPGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0
RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7
CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9v
MzMoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lk
dGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZM
ZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhl
aWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVs
czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzM0KFRleHR1cmVEZXB0aDJEQXJyYXk8Zmxv
YXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50
IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51
bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lk
dGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJl
dHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzM1KFRleHR1cmVEZXB0aDJE
QXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAg
ICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAg
ICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJl
LCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAg
ICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28zNihUZXh0
dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRo
OworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOwor
ICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVs
cyk7CisgICAgICAgICAgICByZXR1cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWlu
dCBmb28zNyhUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAg
ICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50
IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAg
IEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMsICZu
dW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb28zOChUZXh0dXJlRGVwdGhDdWJlPGZsb2F0PiB0ZXh0dXJl
KSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7Cisg
ICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9u
cyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAg
ICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28zOShUZXh0dXJl
RGVwdGhDdWJlPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAg
ICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZu
dW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9Cisg
ICAgICAgIHVpbnQgZm9vNDAoVGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAg
ICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0
dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNDEoUldUZXh0
dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAg
ICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJl
LCAmd2lkdGgsICZoZWlnaHQpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9
CisgICAgICAgIHVpbnQgZm9vNDIoUldUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSkgewor
ICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAg
ICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQpOworICAgICAgICAg
ICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzQzKFJXVGV4dHVy
ZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsK
KyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAg
ICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVu
dHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQg
Zm9vNDQoUldUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAg
ICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50
IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZo
ZWlnaHQsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9
CisgICAgICAgIHVpbnQgZm9vNDUoUldUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJl
KSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7Cisg
ICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0
dXJlLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1cm4gZWxl
bWVudHM7CisgICAgICAgIH0KKyAgICBgKTsKKyAgICBsZXQgW3RleHR1cmUxRCwgdGV4dHVyZTFE
QXJyYXksIHRleHR1cmUyRCwgdGV4dHVyZTJEQXJyYXksIHRleHR1cmUzRCwgdGV4dHVyZUN1YmUs
IHJ3VGV4dHVyZTFELCByd1RleHR1cmUxREFycmF5LCByd1RleHR1cmUyRCwgcndUZXh0dXJlMkRB
cnJheSwgcndUZXh0dXJlM0QsIHRleHR1cmVEZXB0aDJELCB0ZXh0dXJlRGVwdGgyREFycmF5LCB0
ZXh0dXJlRGVwdGhDdWJlLCByd1RleHR1cmVEZXB0aDJELCByd1RleHR1cmVEZXB0aDJEQXJyYXld
ID0gY3JlYXRlVGV4dHVyZXNGb3JUZXN0aW5nKHByb2dyYW0pOworICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFEXSksIDQpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVy
ZTFEXSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMiLCBbdGV4dHVyZTFEQXJyYXldKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheV0pLCAyKTsKKyAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUx
REFycmF5XSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzYiLCBbdGV4dHVyZTJEXSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEXSksIDQpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEXSksIDMp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBb
dGV4dHVyZTJEQXJyYXldKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTJEQXJyYXldKSwgNCk7CisgICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZTJEQXJyYXld
KSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTIiLCBbdGV4dHVyZTJEQXJyYXldKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZTNEXSksIDgpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmUzRF0pLCA0
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIs
IFt0ZXh0dXJlM0RdKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZTNEXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVDdWJlXSksIDIpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1
cmVDdWJlXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE5IiwgW3RleHR1cmVDdWJlXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZTFEXSksIDgpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVy
ZTFEQXJyYXldKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjIiLCBbcndUZXh0dXJlMURBcnJheV0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFtyd1RleHR1cmUyRF0pLCA4KTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNCIsIFty
d1RleHR1cmUyRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yNSIsIFtyd1RleHR1cmUyREFycmF5XSksIDgpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI2IiwgW3J3VGV4dHVyZTJEQXJyYXld
KSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjciLCBbcndUZXh0dXJlMkRBcnJheV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOCIsIFtyd1RleHR1cmUzRF0pLCA4KTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOSIsIFtyd1RleHR1cmUz
RF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zMCIsIFtyd1RleHR1cmUzRF0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zMSIsIFt0ZXh0dXJlRGVwdGgyRF0pLCA4KTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMiIsIFt0ZXh0dXJlRGVw
dGgyRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zMyIsIFt0ZXh0dXJlRGVwdGgyRF0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5XSksIDgp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM1Iiwg
W3RleHR1cmVEZXB0aDJEQXJyYXldKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMzYiLCBbdGV4dHVyZURlcHRoMkRBcnJheV0pLCAyKTsKKyAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNyIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5XSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1cmVEZXB0aEN1YmVdKSwgMik7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzkiLCBbdGV4dHVyZURlcHRo
Q3ViZV0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280MCIsIFt0ZXh0dXJlRGVwdGhDdWJlXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3J3VGV4dHVyZURlcHRoMkRdKSwgOCk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBb
cndUZXh0dXJlRGVwdGgyRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280MyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXldKSwgOCk7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbcndUZXh0
dXJlRGVwdGgyREFycmF5XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQ1IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheV0pLCAyKTsKK30KKwor
dGVzdHMudGV4dHVyZUxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3JhbSA9IGRvUHJl
cChgCisgICAgICAgIGZsb2F0IGZvbzEoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgbG9j
YXRpb24sIGludCBtaXBtYXApIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGlu
dDIobG9jYXRpb24sIG1pcG1hcCkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzIoVGV4
dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgbG9jYXRpb24sIGludCBtaXBtYXAsIGludCBvZmZz
ZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIobG9jYXRpb24sIG1p
cG1hcCksIG9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMyhUZXh0dXJlMURB
cnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQgbWlwbWFwLCBpbnQgbGF5ZXIp
IHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMobG9jYXRpb24sIG1pcG1h
cCwgbGF5ZXIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb280KFRleHR1cmUxREFycmF5
PGZsb2F0PiB0ZXh0dXJlLCBpbnQgbG9jYXRpb24sIGludCBtaXBtYXAsIGludCBsYXllciwgaW50
IG9mZnNldCkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myhsb2NhdGlv
biwgbWlwbWFwLCBsYXllciksIG9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9v
NShUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCkgewor
ICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myh4LCB5LCBtaXBtYXApKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb282KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgaW50
IHgsIGludCB5LCBpbnQgbWlwbWFwLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAg
ICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgbWlwbWFwKSwgaW50MihvZmZz
ZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNyhUZXh0dXJlMkRB
cnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbWlwbWFwLCBpbnQgbGF5ZXIp
IHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDQoeCwgeSwgbWlwbWFwLCBs
YXllcikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzgoVGV4dHVyZTJEQXJyYXk8Zmxv
YXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCwgaW50IGxheWVyLCBpbnQgb2Zm
c2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGlu
dDQoeCwgeSwgbWlwbWFwLCBsYXllciksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAg
ICB9CisgICAgICAgIGZsb2F0IGZvbzkoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwg
aW50IHksIGludCB6LCBpbnQgbWlwbWFwKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0
dXJlLCBpbnQ0KHgsIHksIHosIG1pcG1hcCkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZv
bzEwKFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgeiwgaW50IG1p
cG1hcCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZLCBpbnQgb2Zmc2V0WikgeworICAgICAgICAg
ICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50NCh4LCB5LCB6LCBtaXBtYXApLCBpbnQzKG9mZnNl
dFgsIG9mZnNldFksIG9mZnNldFopKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xMShS
V1RleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uKSB7CisgICAgICAgICAgICBy
ZXR1cm4gTG9hZCh0ZXh0dXJlLCBsb2NhdGlvbik7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQg
Zm9vMTIoUldUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQg
bGF5ZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIobG9jYXRpb24s
IGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTMoUldUZXh0dXJlMkQ8Zmxv
YXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4
dHVyZSwgaW50Mih4LCB5KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTQoUldUZXh0
dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbGF5ZXIpIHsKKyAg
ICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgbGF5ZXIpKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb28xNShSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwgaW50
IHgsIGludCB5LCBpbnQgeikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50
Myh4LCB5LCB6KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTYoVGV4dHVyZURlcHRo
MkQ8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCkgeworICAgICAgICAg
ICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myh4LCB5LCBtaXBtYXApKTsKKyAgICAgICAgfQor
ICAgICAgICBmbG9hdCBmb28xNyhUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgs
IGludCB5LCBpbnQgbWlwbWFwLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAg
ICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgbWlwbWFwKSwgaW50MihvZmZzZXRY
LCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTgoVGV4dHVyZURlcHRo
MkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbWlwbWFwLCBpbnQgbGF5
ZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDQoeCwgeSwgbWlwbWFw
LCBsYXllcikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE5KFRleHR1cmVEZXB0aDJE
QXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCwgaW50IGxheWVy
LCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRl
eHR1cmUsIGludDQoeCwgeSwgbWlwbWFwLCBsYXllciksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzIwKFJXVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+
IHRleHR1cmUsIGludCB4LCBpbnQgeSkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVy
ZSwgaW50Mih4LCB5KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMjEoUldUZXh0dXJl
RGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBsYXllcikgewor
ICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myh4LCB5LCBsYXllcikpOworICAg
ICAgICB9CisgICAgYCk7CisgICAgbGV0IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0ZXh0
dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1cmUx
RCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3VGV4
dHVyZTNELCB0ZXh0dXJlRGVwdGgyRCwgdGV4dHVyZURlcHRoMkRBcnJheSwgdGV4dHVyZURlcHRo
Q3ViZSwgcndUZXh0dXJlRGVwdGgyRCwgcndUZXh0dXJlRGVwdGgyREFycmF5XSA9IGNyZWF0ZVRl
eHR1cmVzRm9yVGVzdGluZyhwcm9ncmFtKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4
dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIC0xKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAt
MSldKSwgMTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAyMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
MjEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDcpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1
cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAxKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAxNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgLTEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAyMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDIwKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0
ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4
dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzcpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJE
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE4KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0
ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM3KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJl
MkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzgp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282Iiwg
W3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAt
MSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSks
IG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzMpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAzNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDQzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzci
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDUyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3NSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNzYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDc5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCA4MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTgpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxOSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgMzkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM4KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDM5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMzUpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDQ0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1Mik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDUzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA1Mik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgNjApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUzKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA2MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgNzYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDgwKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA3Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgODEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDgwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSld
KSwgNzYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDgxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAtMSldKSwgNzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNE
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1
cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0MSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDQyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgNjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA2Nik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBb
dGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDY5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNzApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0
ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJl
M0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMTgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDEp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIs
IFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0
dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzUpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0Qs
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDIpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgNDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgLTEpXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgNDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
NTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEwKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBb
dGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDY2KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVy
ZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDY5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDY3KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDcwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCA2NSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCA3MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgNjYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0
dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHBy
b2dyYW0sIDIpXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAzKV0pLCA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBb
cndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgNCldKSwgNSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtl
SW50KHByb2dyYW0sIDUpXSksIDYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCA2KV0p
LCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3
VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4
dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
OCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEy
IiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDIpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTMpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1Rl
eHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCAxNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxOCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFty
d1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDIp
XSksIDIwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChw
cm9ncmFtLCAyKV0pLCAyMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNSks
IG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIzKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwg
bWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVy
ZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1Rl
eHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBb
cndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEz
IiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCA1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCA4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJv
Z3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUlu
dChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBt
YWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEzKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJl
MkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1Rl
eHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwg
W3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MildKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAyKV0pLCAxOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50
KHByb2dyYW0sIDIpXSksIDE5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1h
a2VJbnQocHJvZ3JhbSwgMildKSwgMjApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA0
KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dy
YW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjMpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFr
ZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJE
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI1KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0
dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjYpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFty
d1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAy
Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEz
IiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDMp
XSksIDI4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3Jh
bSwgMyldKSwgMjkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChw
cm9ncmFtLCAzKV0pLCAzMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtl
SW50KHByb2dyYW0sIDMpXSksIDMxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyks
IG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMzIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIs
IFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
NCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDQxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0Mik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNE
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIs
IFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQxKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndU
ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVy
ZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJl
RGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVy
ZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzNyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1
cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVy
ZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTgpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJl
RGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAxNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzgpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJl
RGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAzNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1
cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAzNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFr
ZUludChwcm9ncmFtLCAtMSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
NDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
OCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQ0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgi
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1MSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4Iiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTIpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDc1KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4
dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3Nik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNzkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDgwKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURl
cHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxOCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5Iiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTEpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDE5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzgpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCAzOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzgpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMzkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAz
NSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDUyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCA0NSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTMpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCA2MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNTMpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDYxKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCA3Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
ODApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
OSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDc3KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCA4MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgODApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCA3Nik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgODEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIC0xKV0pLCA3Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMyk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURl
cHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3
VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgOSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRo
MkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTApOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1Rl
eHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCAxMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgMTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dy
YW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFr
ZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURl
cHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFty
d1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDIp
XSksIDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAyKV0pLCAxOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMiks
IG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHBy
b2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIwKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwg
bWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVy
ZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjIp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIs
IFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0s
IDIpXSksIDIzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUlu
dChwcm9ncmFtLCAyKV0pLCAyNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI2KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgy
RCwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyNyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4
dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwg
MjgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dy
YW0sIDMpXSksIDI5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFr
ZUludChwcm9ncmFtLCAzKV0pLCAzMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMzEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtl
SW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDMyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbcndUZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwg
W3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjEiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbcndUZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDQxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjEiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQyKTsKK30KKwordGVzdHMu
dGV4dHVyZVN0b3JlID0gZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAor
ICAgICAgICBmbG9hdCBmb28xKFJXVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCB1aW50IGxvY2F0
aW9uLCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4dHVyZSwgdmFsdWUsIGxv
Y2F0aW9uKTsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludChsb2NhdGlvbikp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzIoUldUZXh0dXJlMURBcnJheTxmbG9hdD4g
dGV4dHVyZSwgdWludCBsb2NhdGlvbiwgdWludCBsYXllciwgZmxvYXQgdmFsdWUpIHsKKyAgICAg
ICAgICAgIFN0b3JlKHRleHR1cmUsIHZhbHVlLCB1aW50Mihsb2NhdGlvbiwgbGF5ZXIpKTsKKyAg
ICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIoaW50KGxvY2F0aW9uKSwgaW50KGxh
eWVyKSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzMoUldUZXh0dXJlMkQ8ZmxvYXQ+
IHRleHR1cmUsIHVpbnQgeCwgdWludCB5LCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3Rv
cmUodGV4dHVyZSwgdmFsdWUsIHVpbnQyKHgsIHkpKTsKKyAgICAgICAgICAgIHJldHVybiBMb2Fk
KHRleHR1cmUsIGludDIoaW50KHgpLCBpbnQoeSkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb280KFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHVpbnQgeCwgdWludCB5LCB1
aW50IGxheWVyLCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4dHVyZSwgdmFs
dWUsIHVpbnQzKHgsIHksIGxheWVyKSk7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJl
LCBpbnQzKGludCh4KSwgaW50KHkpLCBpbnQobGF5ZXIpKSk7CisgICAgICAgIH0KKyAgICAgICAg
ZmxvYXQgZm9vNShSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwgdWludCB4LCB1aW50IHksIHVp
bnQgeiwgZmxvYXQgdmFsdWUpIHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1cmUsIHZhbHVlLCB1
aW50Myh4LCB5LCB6KSk7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKGlu
dCh4KSwgaW50KHkpLCBpbnQoeikpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb282KFJX
VGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHVpbnQgeCwgdWludCB5LCBmbG9hdCB2YWx1
ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4dHVyZSwgdmFsdWUsIHVpbnQyKHgsIHkpKTsKKyAg
ICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIoaW50KHgpLCBpbnQoeSkpKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb283KFJXVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4g
dGV4dHVyZSwgdWludCB4LCB1aW50IHksIHVpbnQgbGF5ZXIsIGZsb2F0IHZhbHVlKSB7CisgICAg
ICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDMoeCwgeSwgbGF5ZXIpKTsKKyAgICAg
ICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoaW50KHgpLCBpbnQoeSksIGludChsYXll
cikpKTsKKyAgICAgICAgfQorICAgIGApOworICAgIGxldCBbdGV4dHVyZTFELCB0ZXh0dXJlMURB
cnJheSwgdGV4dHVyZTJELCB0ZXh0dXJlMkRBcnJheSwgdGV4dHVyZTNELCB0ZXh0dXJlQ3ViZSwg
cndUZXh0dXJlMUQsIHJ3VGV4dHVyZTFEQXJyYXksIHJ3VGV4dHVyZTJELCByd1RleHR1cmUyREFy
cmF5LCByd1RleHR1cmUzRCwgdGV4dHVyZURlcHRoMkQsIHRleHR1cmVEZXB0aDJEQXJyYXksIHRl
eHR1cmVEZXB0aEN1YmUsIHJ3VGV4dHVyZURlcHRoMkQsIHJ3VGV4dHVyZURlcHRoMkRBcnJheV0g
PSBjcmVhdGVUZXh0dXJlc0ZvclRlc3RpbmcocHJvZ3JhbSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFE
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFty
d1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgNSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VV
aW50KHByb2dyYW0sIDYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVy
ZTFELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIs
IFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDIp
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFty
d1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFr
ZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDUpLCBt
YWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1Rl
eHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVp
bnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1
cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUx
REFycmF5LCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJv
Z3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFy
cmF5LCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
IiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9n
cmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5
LCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwg
MyksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwg
W3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFt
LCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBt
YWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNiks
IG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3
VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAy
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1h
a2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVy
ZTJELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDUp
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFty
d1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9n
cmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVp
bnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQs
IG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4
dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0s
IDYpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIs
IFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9n
cmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFr
ZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJl
MkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSks
IG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3
VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dy
YW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0s
IDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChw
cm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwg
bWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0
dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwg
NiksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwg
W3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1h
a2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJy
YXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRB
cnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUy
REFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VV
aW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVy
ZTNELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNE
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBt
YWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWlu
dChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3J3VGV4dHVyZTNELCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgy
RCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0s
IDMpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIs
IFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwg
bWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDYp
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFty
d1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1Rl
eHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVp
bnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1
cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVE
ZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChw
cm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0
aDJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282
IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9n
cmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJE
LCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwg
NyksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282Iiwg
W3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFt
LCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiks
IG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3
VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAz
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtl
VWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1h
a2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4
dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAzKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWlu
dChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzciLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb283IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VVaW50
KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3J3VGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtyd1RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbcndU
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283
IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50
KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKK30KKwordGVzdHMudGV4dHVyZVNhbXBsZSA9IGZ1bmN0aW9uKCkgeworICAg
IGxldCBwcm9ncmFtID0gZG9QcmVwKGAKKyAgICAgICAgZmxvYXQgZm9vMShUZXh0dXJlMUQ8Zmxv
YXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgbG9jYXRpb24pIHsKKyAgICAgICAgICAgIHJl
dHVybiBTYW1wbGUodGV4dHVyZSwgcywgbG9jYXRpb24pOworICAgICAgICB9CisgICAgICAgIGZs
b2F0IGZvbzIoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IGxvY2F0
aW9uLCBpbnQgb2Zmc2V0KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMs
IGxvY2F0aW9uLCBvZmZzZXQpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzMoVGV4dHVy
ZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgbGF5ZXIp
IHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQyKHgsIGxheWVy
KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNChUZXh0dXJlMURBcnJheTxmbG9hdD4g
dGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCBsYXllciwgaW50IG9mZnNldCkgewor
ICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgbGF5ZXIpLCBv
ZmZzZXQpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzUoVGV4dHVyZTJEPGZsb2F0PiB0
ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHkpIHsKKyAgICAgICAgICAgIHJldHVy
biBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpKTsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdCBmb282KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBm
bG9hdCB5LCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBT
YW1wbGUodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsK
KyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb283KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0
dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyKSB7CisgICAgICAg
ICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllcikpOworICAg
ICAgICB9CisgICAgICAgIGZsb2F0IGZvbzgoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUs
IHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGludCBvZmZzZXRYLCBp
bnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9h
dDMoeCwgeSwgbGF5ZXIpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmb285KFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9h
dCB4LCBmbG9hdCB5LCBmbG9hdCB6KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1
cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTAo
VGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZs
b2F0IHosIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSwgaW50IG9mZnNldFopIHsKKyAgICAgICAg
ICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopLCBpbnQzKG9mZnNl
dFgsIG9mZnNldFksIG9mZnNldFopKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xMShU
ZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBm
bG9hdCB6KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Myh4
LCB5LCB6KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTIoVGV4dHVyZTJEPGZsb2F0
PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IEJpYXMpIHsKKyAg
ICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgQmlh
cyk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTMoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0
dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IEJpYXMsIGludCBvZmZzZXRY
LCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVyZSwg
cywgZmxvYXQyKHgsIHkpLCBCaWFzLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAg
fQorICAgICAgICBmbG9hdCBmb28xNChUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIg
cywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwg
ZmxvYXQgZGR5MSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwgcywg
ZmxvYXQyKHgsIHkpLCBmbG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0MihkZHkwLCBkZHkxKSk7Cisg
ICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTUoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBz
YW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0
IGRkeTAsIGZsb2F0IGRkeTEsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAg
ICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBmbG9hdDIoZGR4
MCwgZGR4MSksIGZsb2F0MihkZHkwLCBkZHkxKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7Cisg
ICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTYoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBz
YW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IExPRCkgeworICAgICAgICAgICAgcmV0
dXJuIFNhbXBsZUxldmVsKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgTE9EKTsKKyAgICAgICAg
fQorICAgICAgICBmbG9hdCBmb28xNyhUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIg
cywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgTE9ELCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkp
IHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwg
eSksIExPRCwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxv
YXQgZm9vMTgoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQg
eCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IEJpYXMpIHsKKyAgICAgICAgICAgIHJldHVy
biBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIEJpYXMpOworICAg
ICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE5KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJl
LCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBCaWFzLCBp
bnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFz
KHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIEJpYXMsIGludDIob2Zmc2V0WCwgb2Zm
c2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzIwKFRleHR1cmUyREFycmF5PGZs
b2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBm
bG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHkwLCBmbG9hdCBkZHkxKSB7CisgICAgICAg
ICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBm
bG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0MihkZHkwLCBkZHkxKSk7CisgICAgICAgIH0KKyAgICAg
ICAgZmxvYXQgZm9vMjEoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywg
ZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZs
b2F0IGRkeTAsIGZsb2F0IGRkeTEsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAg
ICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwg
ZmxvYXQyKGRkeDAsIGRkeDEpLCBmbG9hdDIoZGR5MCwgZGR5MSksIGludDIob2Zmc2V0WCwgb2Zm
c2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzIyKFRleHR1cmUyREFycmF5PGZs
b2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBm
bG9hdCBMT0QpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBm
bG9hdDMoeCwgeSwgbGF5ZXIpLCBMT0QpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzIz
KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0
IHksIGZsb2F0IGxheWVyLCBmbG9hdCBMT0QsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgewor
ICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUxldmVsKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBs
YXllciksIExPRCwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAg
aW50IGZvbzI0KFRleHR1cmUxRDxpbnQ0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IGxvY2F0
aW9uKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGxvY2F0aW9uKS54
OworICAgICAgICB9CisgICAgICAgIGludCBmb28yNShUZXh0dXJlMUQ8aW50ND4gdGV4dHVyZSwg
c2FtcGxlciBzLCBmbG9hdCBsb2NhdGlvbikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0
ZXh0dXJlLCBzLCBsb2NhdGlvbikueTsKKyAgICAgICAgfQorICAgICAgICBpbnQgZm9vMjYoVGV4
dHVyZTFEPGludDQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgbG9jYXRpb24pIHsKKyAgICAg
ICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgbG9jYXRpb24pLno7CisgICAgICAgIH0K
KyAgICAgICAgaW50IGZvbzI3KFRleHR1cmUxRDxpbnQ0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZs
b2F0IGxvY2F0aW9uKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGxv
Y2F0aW9uKS53OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzI4KFRleHR1cmVEZXB0aDJE
PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHkpIHsKKyAgICAgICAg
ICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpKTsKKyAgICAgICAgfQor
ICAgICAgICBmbG9hdCBmb28yOShUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxl
ciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAg
ICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBpbnQyKG9mZnNl
dFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28zMChUZXh0dXJlRGVw
dGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZs
b2F0IGxheWVyKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0
Myh4LCB5LCBsYXllcikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzMxKFRleHR1cmVE
ZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgbGF5ZXIsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0
dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBpbnQyKG9mZnNldFgs
IG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28zMihUZXh0dXJlRGVwdGhD
dWJlPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHop
IHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHop
KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28zMyhUZXh0dXJlRGVwdGgyRDxmbG9hdD4g
dGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBCaWFzKSB7CisgICAg
ICAgICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIEJpYXMp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzM0KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0
ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IEJpYXMsIGludCBvZmZz
ZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVy
ZSwgcywgZmxvYXQyKHgsIHkpLCBCaWFzLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb28zNShUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwg
c2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9h
dCBkZHkwLCBmbG9hdCBkZHkxKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0
dXJlLCBzLCBmbG9hdDIoeCwgeSksIGZsb2F0MihkZHgwLCBkZHgxKSwgZmxvYXQyKGRkeTAsIGRk
eTEpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28zNihUZXh0dXJlRGVwdGgyRDxmbG9h
dD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBkZHgwLCBmbG9h
dCBkZHgxLCBmbG9hdCBkZHkwLCBmbG9hdCBkZHkxLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkp
IHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5
KSwgZmxvYXQyKGRkeDAsIGRkeDEpLCBmbG9hdDIoZGR5MCwgZGR5MSksIGludDIob2Zmc2V0WCwg
b2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzM3KFRleHR1cmVEZXB0aDJE
PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IExPRCkg
eworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUxldmVsKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5
KSwgTE9EKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28zOChUZXh0dXJlRGVwdGgyRDxm
bG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBMT0QsIGlu
dCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUxldmVs
KHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgTE9ELCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsK
KyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28zOShUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0
PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9h
dCBCaWFzKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9h
dDMoeCwgeSwgbGF5ZXIpLCBCaWFzKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb280MChU
ZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZs
b2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBCaWFzLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkp
IHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5
LCBsYXllciksIEJpYXMsIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAg
ICAgIGZsb2F0IGZvbzQxKFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBs
ZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IGRkeDAsIGZsb2F0IGRk
eDEsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVH
cmFkKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGZsb2F0MihkZHgwLCBkZHgxKSwg
ZmxvYXQyKGRkeTAsIGRkeTEpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb280MihUZXh0
dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0
IHksIGZsb2F0IGxheWVyLCBmbG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHkwLCBmbG9h
dCBkZHkxLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBT
YW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGZsb2F0MihkZHgwLCBk
ZHgxKSwgZmxvYXQyKGRkeTAsIGRkeTEpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb280MyhUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0
dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBMT0Qp
IHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwg
eSwgbGF5ZXIpLCBMT0QpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQ0KFRleHR1cmVE
ZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgbGF5ZXIsIGZsb2F0IExPRCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAg
ICAgICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVy
KSwgTE9ELCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb280NShUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4
LCBmbG9hdCB5LCBmbG9hdCBjb21wYXJlVmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1w
bGVDbXAodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBjb21wYXJlVmFsdWUpOworICAgICAgICB9
CisgICAgICAgIGZsb2F0IGZvbzQ2KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1w
bGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGNvbXBhcmVWYWx1ZSwgaW50IG9mZnNldFgs
IGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQ21wKHRleHR1cmUsIHMs
IGZsb2F0Mih4LCB5KSwgY29tcGFyZVZhbHVlLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb280NyhUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0
ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBj
b21wYXJlVmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVDbXAodGV4dHVyZSwgcywg
ZmxvYXQzKHgsIHksIGxheWVyKSwgY29tcGFyZVZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdCBmb280OChUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMs
IGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBjb21wYXJlVmFsdWUsIGludCBv
ZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUNtcCh0ZXh0
dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBjb21wYXJlVmFsdWUsIGludDIob2Zmc2V0WCwg
b2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQ5KFRleHR1cmVDdWJlPGZs
b2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0
IGJpYXMpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0
Myh4LCB5LCB6KSwgYmlhcyk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNTAoVGV4dHVy
ZUN1YmU8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg
eiwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR4MiwgZmxvYXQgZGR5MCwgZmxvYXQg
ZGR5MSwgZmxvYXQgZGR5MikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVy
ZSwgcywgZmxvYXQzKHgsIHksIHopLCBmbG9hdDMoZGR4MCwgZGR4MSwgZGR4MiksIGZsb2F0Myhk
ZHkwLCBkZHkxLCBkZHkyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNTEoVGV4dHVy
ZUN1YmU8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg
eiwgZmxvYXQgbG9kKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwg
cywgZmxvYXQzKHgsIHksIHopLCBsb2QpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzUy
KFRleHR1cmVEZXB0aEN1YmU8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxv
YXQgeSwgZmxvYXQgeiwgZmxvYXQgYmlhcykgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJp
YXModGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopLCBiaWFzKTsKKyAgICAgICAgfQorICAgICAg
ICBmbG9hdCBmb281MyhUZXh0dXJlRGVwdGhDdWJlPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMs
IGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0
IGRkeDIsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEsIGZsb2F0IGRkeTIpIHsKKyAgICAgICAgICAg
IHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSwgZmxvYXQzKGRk
eDAsIGRkeDEsIGRkeDIpLCBmbG9hdDMoZGR5MCwgZGR5MSwgZGR5MikpOworICAgICAgICB9Cisg
ICAgICAgIGZsb2F0IGZvbzU0KFRleHR1cmVEZXB0aEN1YmU8ZmxvYXQ+IHRleHR1cmUsIHNhbXBs
ZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgZmxvYXQgbG9kKSB7CisgICAgICAgICAg
ICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopLCBsb2QpOwor
ICAgICAgICB9CisgICAgYCk7CisgICAgbGV0IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0
ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1
cmUxRCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3
VGV4dHVyZTNELCB0ZXh0dXJlRGVwdGgyRCwgdGV4dHVyZURlcHRoMkRBcnJheSwgdGV4dHVyZURl
cHRoQ3ViZSwgcndUZXh0dXJlRGVwdGgyRCwgcndUZXh0dXJlRGVwdGgyREFycmF5XSA9IGNyZWF0
ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9ncmFtKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHt9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuMzc1KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHt9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNDM3NSldKSwgNyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4
dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjU2
MjUpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHt9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNjI1KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC4zNzUpXSksIDcpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3Rl
eHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNDM3NSldKSwgKDMgKiA3ICsgMSAqIDE0KSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUx
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSldKSwgKDcgKyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjU2MjUp
XSksICgxICogNyArIDMgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjYyNSldKSwgMTQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJB
ZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
Mzc1KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjQzNzUpXSksICgzICogNyArIDEgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFt
cFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICg3ICsgMTQpIC8g
Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEi
LCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwg
ckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41NjI1KV0pLCAoMSAqIDcgKyAzICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRl
ckNvbG9yIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC42MjUpXSksIDE0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJy
ZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC4zNzUpXSksIDcpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTog
InJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjQzNzUpXSksICgzICogNyArIDEg
KiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsg
MC41KV0pLCAoNyArIDE0KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEgKyAwLjU2MjUpXSksICgxICogNyArIDMgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJy
ZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC42MjUpXSksIDE0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6
ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC4zNzUpXSksIDcpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUx
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9k
ZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjQzNzUpXSksICgzICogNyAr
IDEgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAy
ICsgMC41KV0pLCAoNyArIDE0KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDIgKyAwLjU2MjUpXSksICgxICogNyArIDMgKiAxNCkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6
ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC42MjUpXSksIDE0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJl
MUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01v
ZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC42MjUpXSksIDcp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJB
ZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjU2
MjUpXSksICgzICogNyArIDEgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC41KV0pLCAoNyArIDE0KSAvIDIpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTog
Im1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjQzNzUpXSksICgxICog
NyArIDMgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxICsgMC4zNzUpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAyICsgMC4zNzUpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVh
dCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjQzNzUpXSksICgzICogNyArIDEgKiAxNCkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
LCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsg
MC41KV0pLCAoNyArIDE0KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDIgKyAwLjU2MjUpXSksICgxICogNyArIDMgKiAxNCkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJl
MUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01v
ZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC42MjUpXSksIDE0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIs
IFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAtMC4zNzUpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEuMzc1
KV0pLCA3OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgLTAuMzc1KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxLjM3NSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNv
bG9yIiwgYm9yZGVyQ29sb3I6ICJvcGFxdWVCbGFjayJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0w
LjM3NSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIiwgYm9yZGVyQ29sb3I6
ICJvcGFxdWVCbGFjayJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEuMzc1KV0pLCAwKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJl
MUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01v
ZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IiLCBib3JkZXJDb2xvcjogIm9wYXF1ZVdoaXRlIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgLTAuMzc1KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVy
Q29sb3IiLCBib3JkZXJDb2xvcjogIm9wYXF1ZVdoaXRlIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MS4zNzUpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciIsIGJvcmRlckNvbG9y
OiAib3BhcXVlV2hpdGUifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNzkgKyAxKSAvIDIp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIGxv
ZE1pbkNsYW1wOiAxfSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMyArIDE2KSAvIDIp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwg
W3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDE0ICsgNzkp
IC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgKDcgKyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKV0pLCAoMTcgKyAxOCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMTQgKyA3OSkg
LyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCAoMTggKyAxOSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBb
dGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgx
MyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgNiAvIDgpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIy
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsg
NjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgKDYyICsgNjMgKyA3MCArIDcxKSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEgKyA0NCArIDQ1ICsgNTIgKyA1MykgLyA4KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0
dXJlM0QsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpXSksICgxMyArIDE0ICsgMjEgKyAyMiArIDQ1ICsgNDYgKyA1MyArIDU0
KSAvIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b285IiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgyMCArIDIxICsgMjggKyAyOSArIDUyICsgNTMg
KyA2MCArIDYxKSAvIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNSAvIDgpXSksICgxMiArIDEzICsgMjAgKyAyMSAr
ICg0NCArIDQ1ICsgNTIgKyA1MykgKiAzKSAvIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICgxMyArIDE0ICsgMjEgKyAyMiArIDQ1ICsgNDYgKyA1MyArIDU0KSAvIDgpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0Qs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDIwICsgMjEgKyAyOCArIDI5ICsgNTIgKyA1MyArIDYwICsgNjEpIC8g
OCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEw
IiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC4yNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDQ0ICsgNDUgKyA1MiArIDUzKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0
ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKV0pLCAoMyArIDQgKyA1ICsgNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAt
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyAr
IDE0ICsgMTUgKyAxNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIzICsgMjQgKyAyNSArIDI2KSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCldKSwgKDMzICsgMzQgKyAzNSArIDM2KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlQ3Vi
ZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KV0pLCAoNDMgKyA0NCArIDQ1ICsgNDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKV0pLCAoNTMgKyA1NCAr
IDU1ICsgNTYpIC8gNCk7CisgICAgLy8gVW5mb3J0dW5hdGVseSwgd2UgY2FuJ3QgYWN0dWFsbHkg
dGVzdCB0aGUgIkJpYXMiIGFyZ3VtZW50LCBiZWNhdXNlIGl0IGlzIHN1cHBvc2VkIHRvIGJlIGFw
cGxpZWQKKyAgICAvLyB0byB0aGUgdW5jbGFtcGVkIExPRCwgd2hpY2ggZm9yIHVzIGlzIC1JbmZp
bml0eSAoYmVjYXVzZSBvdXIgZGVyaXZhdGl2ZXMgYXJlIGFsbCAwKQorICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFt0ZXh0dXJlMkQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSks
ICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQg
KyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgNiAvIDgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0
IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIs
IFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDEyICsgMTMgKyAy
MCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xNCIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53
aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwg
KDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAu
MjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMTIgKyAxMyArIDIw
ICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE0IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3co
MiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRo
LnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoKCgx
MiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1Iiwg
W3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFt0ZXh0dXJlMkQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgx
MyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9h
ZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5o
ZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyAr
IDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWlu
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZh
bHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWln
aHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNSArIDM2
ICsgMzkgKyA0MCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRl
eHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFt0ZXh0dXJlMkQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAz
OSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTYiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUy
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQg
KyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0
ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBb
dGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlw
bWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsg
KCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3
IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
NyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
LCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsgMjIpIC8g
NCkgKyAoKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIx
ICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE4IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDYgLyA4KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDYyICsg
NjMgKyA3MCArIDcxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAx
NCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgyMCArIDIx
ICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYg
KyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoNjIgKyA2MyAr
IDcwICsgNzEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndp
ZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAo
MTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAv
IHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM0ICsgMzUgKyAzOCArIDM5
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygy
LCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRo
LnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDEy
ICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJE
LmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0
dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAv
IDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYz
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS5oZWlnaHQpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1
ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0
KV0pLCAoNzYgKyA3NyArIDgwICsgODEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9h
ZFZhbHVlKCkuaGVpZ2h0KV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgu
cG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
TWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwg
KCgoNTQgKyA1NSArIDYyICsgNjMpIC8gNCkgKyAoKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpKSAv
IDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyAr
IDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAx
IC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1
cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2Fk
VmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhl
aWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsg
MzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhl
aWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsg
MTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQ
dHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJl
MkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksICgoKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpICsgKCgzNSArIDM2ICsg
MzkgKyA0MCkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53
aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyAr
IDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICg3NyArIDc4ICsgODEgKyA4MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2Fk
VmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41
KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygy
LCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCg1NSArIDU2ICsgNjMgKyA2NCkgLyA0
KSArICgoNzcgKyA3OCArIDgxICsgODIpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3RleHR1cmUyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDM0ICsgMzUgKyAzOCArIDM5
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgx
MiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoKCgxMiArIDEzICsgMjAgKyAy
MSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3RleHR1cmUyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDc2ICsgNzcgKyA4
MCArIDgxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
XSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoKCg1NCArIDU1ICsg
NjIgKyA2MykgLyA0KSArICgoNzYgKyA3NyArIDgwICsgODEpIC8gNCkpIC8gMik7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMiArIDEz
ICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1
cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBt
YXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMyAr
IDE0ICsgMjEgKyAyMikgLyA0KSArICgoMzUgKyAzNiArIDM5ICsgNDApIC8gNCkpIC8gMik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBt
aXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCg1
NCArIDU1ICsgNjIgKyA2MykgLyA0KSArICgoNzYgKyA3NyArIDgwICsgODEpIC8gNCkpIC8gMik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwg
W3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDc3ICsgNzggKyA4MSArIDgyKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
LCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
KCg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KSArICgoNzcgKyA3OCArIDgxICsgODIpIC8gNCkpIC8g
Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2
IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIs
IGxvZE1pbkNsYW1wOiAxLCBsb2RNYXhDbGFtcDogMX0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyKV0pLCAoMzQg
KyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21p
bkZpbHRlcjogImxpbmVhciIsIGxvZE1pbkNsYW1wOiAxLCBsb2RNYXhDbGFtcDogMX0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmUyRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMzQgKyAz
NSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZp
bHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciIsIG1heEFuaXNvdHJvcHk6IDJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgNCAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAoNC8zKSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM0ICsg
MzUgKyAzOCArIDM5KSAvIDQpOworICAgIGxldCB0ZXh0dXJlMURJbnQ0ID0gbWFrZTFEVGV4dHVy
ZShwcm9ncmFtLCBbW1sxLCAyLCAzLCA0XSwgWzEwMCwgMjAwLCAzMDAsIDQwMF0sIFsxMDEsIDIw
MiwgMzAxLCA0MDFdLCBbMTMsIDE0LCAxNSwgMTZdXSwgW1sxNywgMTgsIDE5LCAyMF0sIFsyMSwg
MjIsIDIzLCAyNF1dLCBbWzI1LCAyNiwgMjcsIDI4XV1dLCAiaW50NCIpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjQiLCBbdGV4dHVyZTFESW50NCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSldKSwgMTAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzI1IiwgW3RleHR1cmUxREludDQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksIDIwMSk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNiIsIFt0ZXh0
dXJlMURJbnQ0LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAzMDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjciLCBbdGV4dHVyZTFESW50NCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSld
KSwgNDAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMyArIDE0ICsgMjEgKyAyMikg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAv
IDgpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjkiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI5IiwgW3RleHR1cmVEZXB0aDJE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMCIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMwIiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
KDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zMSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
KDYyICsgNjMgKyA3MCArIDcxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zMiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzICsgNCArIDUg
KyA2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zMiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDE1ICsgMTYpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMyIiwg
W3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCldKSwgKDIzICsgMjQgKyAyNSArIDI2KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMiIsIFt0ZXh0dXJlRGVw
dGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKV0pLCAoMzMgKyAzNCArIDM1ICsgMzYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMyIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwg
KDQzICsgNDQgKyA0NSArIDQ2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zMiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKV0pLCAoNTMgKyA1NCAr
IDU1ICsgNTYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzI4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOCIsIFt0ZXh0dXJlRGVwdGgyRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTMgKyAxNCArIDIx
ICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzI4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDYgLyA4KV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI5IiwgW3RleHR1cmVEZXB0aDJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOSIsIFt0ZXh0dXJl
RGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzAi
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMCIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAy
OCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zMSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksICg2MiArIDYzICsgNzAgKyA3MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzMiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgx
MiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMzMiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAx
NCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzMzIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgyMCArIDIxICsgMjgg
KyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMzQiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzQiLCBbdGV4dHVyZURlcHRo
MkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgyMCAr
IDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMzUiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgx
MiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMzUiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1
ZSgpLmhlaWdodCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNSIsIFt0ZXh0dXJlRGVwdGgyRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM1Iiwg
W3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRW
YWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRy
LmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNSIsIFt0ZXh0dXJl
RGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1h
cEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1
cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoKCgxMiArIDEzICsgMjAgKyAy
MSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAx
NCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9h
ZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5o
ZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyAr
IDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMzYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgp
LmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1
ICsgMzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwg
MC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzYiLCBb
dGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
LCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwg
MC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsgMjIpIC8gNCkg
KyAoKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDM0ICsgMzUg
KyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21p
bkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsg
MjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzM3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVy
OiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSks
ICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkg
LyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MzgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzgiLCBbdGV4dHVyZURlcHRoMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNCArIDM1ICsg
MzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOCIsIFt0ZXh0dXJl
RGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1h
cEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgo
MzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzM4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoMzUgKyAzNiArIDM5ICsgNDApIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1cmVEZXB0aDJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0
ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMzgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTMg
KyAxNCArIDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOSIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEz
ICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOSIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28z
OSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1
NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8g
MTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOSIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDYyICsgNjMgKyA3MCAr
IDcxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280MCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsg
MjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNDAiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAy
MSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQwIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1
ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280MCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
ICg2MiArIDYzICsgNzAgKyA3MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9h
ZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRW
YWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVp
Z2h0KV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQu
ZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBbdGV4
dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lk
dGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUo
KS5oZWlnaHQpXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzgg
KyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
aGVpZ2h0KV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndp
ZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAo
NzYgKyA3NyArIDgwICsgODEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUo
KS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2Fk
VmFsdWUoKS5oZWlnaHQpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1h
cEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCBN
YXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQp
XSksICgoKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpICsgKCg3NiArIDc3ICsgODAgKyA4MSkgLyA0
KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
MTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUo
KS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAy
MSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1
cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBt
aXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVp
Z2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMyAr
IDE0ICsgMjEgKyAyMikgLyA0KSArICgoMzUgKyAzNiArIDM5ICsgNDApIC8gNCkpIC8gMik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2
MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIi
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICg3NyArIDc4ICsgODEgKyA4MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5l
UHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93
KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0
aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoNTUgKyA1NiArIDYzICsg
NjQpIC8gNCkgKyAoKDc3ICsgNzggKyA4MSArIDgyKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MyIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAo
MzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwgW3RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBt
YXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkp
IC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg3NiArIDc3ICsgODAgKyA4MSkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDMiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICg1NCArIDU1ICsg
NjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNDMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgoKDU0ICsgNTUgKyA2MiArIDYzKSAv
IDQpICsgKCg3NiArIDc3ICsgODAgKyA4MSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
IiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
KCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAv
IDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAy
MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMzUgKyAzNiArIDM5
ICsgNDApIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAx
NCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMyArIDE0ICsgMjEgKyAyMikgLyA0KSArICgoMzUg
KyAzNiArIDM5ICsgNDApIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICg3NiArIDc3ICsgODAgKyA4MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDU0ICsgNTUg
KyA2MiArIDYzKSAvIDQpICsgKCg3NiArIDc3ICsgODAgKyA4MSkgLyA0KSkgLyAyKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDc3ICsgNzggKyA4MSArIDgyKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmls
dGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKCgoNTUgKyA1NiArIDYzICsgNjQpIC8gNCkgKyAoKDc3ICsgNzggKyA4MSAr
IDgyKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJm
bG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDExKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3
XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5l
dmVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFt
LCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rp
b246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUo
cHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFy
ZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDEpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRl
eHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
Y29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDApOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkRE
ZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFtt
YWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0p
LCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxNyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0
IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJlcXVhbCJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0s
ICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzc0Vx
dWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFt
LCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rp
b246ICJsZXNzRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0
dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2Nv
bXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtl
MkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSks
IDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMTcpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9h
dCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMjMpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTdd
XV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibm90
RXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dy
YW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5j
dGlvbjogIm5vdEVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4
dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtj
b21wYXJlRnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtl
MkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
MSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0Iiks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3
XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdy
ZWF0ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUo
cHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFy
ZUZ1bmN0aW9uOiAiYWx3YXlzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRo
VGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHtjb21wYXJlRnVuY3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFr
ZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSks
IDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQi
KSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5ldmVyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0
dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHtjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAxNyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtb
W1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9u
OiAibmV2ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIs
IFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3MifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVB
cnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e2NvbXBhcmVGdW5jdGlvbjogImxlc3MifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMTcpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTdd
XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxl
c3MifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtl
MkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXko
cHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21w
YXJlRnVuY3Rpb246ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAxNyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0s
ICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkRE
ZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5
KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29t
cGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3
XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJs
ZXNzRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIs
IFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDApOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1
cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMTcpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBb
W1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlv
bjogImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSks
IDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQi
KSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5vdEVxdWFsIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAxKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhU
ZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dy
YW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1
bmN0aW9uOiAibm90RXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MjMpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAi
ZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXJF
cXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21h
a2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0
dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9n
cmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVG
dW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAx
MSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJm
bG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiYWx3YXlzIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVw
dGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280OSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApXSksICgzICsgNCArIDUgKyA2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280OSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDE1ICsgMTYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ5IiwgW3RleHR1cmVDdWJlLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCldKSwgKDIzICsgMjQgKyAyNSArIDI2KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280OSIsIFt0ZXh0dXJlQ3Vi
ZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMzMgKyAzNCArIDM1ICsgMzYpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ5IiwgW3Rl
eHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDQzICsgNDQgKyA0NSArIDQ2KSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
OSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTMgKyA1NCArIDU1
ICsgNTYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzICsg
NCArIDUgKyA2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDEzICsgMTQgKyAxNSArIDE2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKV0pLCAoMjMgKyAyNCArIDI1ICsgMjYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoMzMgKyAzNCArIDM1ICsgMzYpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg0MyArIDQ0ICsgNDUgKyA0NikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTAiLCBbdGV4dHVy
ZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1MyArIDU0ICsgNTUgKyA1NikgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTAi
LCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgp
LndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTQgLyB0
ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KV0pLCAoOSArIDEwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21p
bkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCwgMCwgNCAvIHRleHR1
cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAtNCAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxOSArIDIwKSAvIDIpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLndpZHRo
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
NCAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMjkgKyAzMCkgLyAy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTAi
LCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgNCAvIHRleHR1cmVDdWJlLmVQdHIu
bG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAtNCAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0
KV0pLCAoMzkgKyA0MCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNTAiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA0IC8g
dGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAtNCAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApXSksICg0OSArIDUwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VG
bG9hdChwcm9ncmFtLCAtNCAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRW
YWx1ZSgpLmhlaWdodCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTkgKyA2MCkgLyAyKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTEiLCBb
dGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMyArIDQgKyA1ICsgNikgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTEi
LCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAxNSAr
IDE2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgyMyArIDI0
ICsgMjUgKyAyNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDMzICsgMzQgKyAzNSArIDM2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApXSksICg0MyArIDQ0ICsgNDUgKyA0NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCldKSwgKDUzICsgNTQgKyA1NSArIDU2KSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpXSksICg5ICsgMTApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUxIiwgW3RleHR1cmVDdWJlLCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
LTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpXSksICgxOSArIDIwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpXSksICgyOSArIDMwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKV0pLCAoMzkgKyA0MCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKV0pLCAoNDkgKyA1MCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSldKSwgKDU5ICsgNjApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzUyIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKV0pLCAoMyArIDQgKyA1ICsgNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTIiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDE1ICsgMTYpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUyIiwgW3RleHR1cmVEZXB0
aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMjMgKyAyNCArIDI1ICsgMjYpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUyIiwg
W3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMzICsgMzQgKyAz
NSArIDM2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb281MiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDQzICsgNDQgKyA0NSArIDQ2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281MiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApXSksICg1MyArIDU0ICsgNTUgKyA1NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURlcHRoQ3ViZSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMyArIDQgKyA1ICsgNikgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURl
cHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAxNSArIDE2KSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281
MyIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgyMyArIDI0
ICsgMjUgKyAyNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCldKSwgKDMzICsgMzQgKyAzNSArIDM2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MyIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApXSksICg0MyArIDQ0ICsgNDUgKyA0NikgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURlcHRo
Q3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDUzICsgNTQgKyA1NSArIDU2KSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MyIs
IFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC00IC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFs
dWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC00
IC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCldKSwgKDkgKyAxMCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCwgMCwg
NCAvIHRleHR1cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC00IC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRy
LmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTkgKyAyMCkg
LyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NTMiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDQgLyB0ZXh0dXJlRGVw
dGhDdWJlLmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA0IC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRyLmxv
YWRWYWx1ZSgpLmhlaWdodCldKSwgKDI5ICsgMzApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgNCAvIHRleHR1cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS53
aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIC00IC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM5
ICsgNDApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA0IC8gdGV4
dHVyZURlcHRoQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIC00IC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdo
dCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNDkgKyA1MCkgLyAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURlcHRo
Q3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAtNCAvIHRleHR1cmVEZXB0aEN1YmUuZVB0ci5sb2Fk
VmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtNCAvIHRleHR1
cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCldKSwgKDU5ICsgNjApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKV0pLCAoMyArIDQgKyA1ICsgNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0x
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDE1ICsgMTYpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1
YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMjMgKyAyNCArIDI1ICsgMjYpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU0IiwgW3Rl
eHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMzICsgMzQgKyAzNSAr
IDM2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDQz
ICsgNDQgKyA0NSArIDQ2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApXSksICg1MyArIDU0ICsgNTUgKyA1NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpXSksICg5ICsgMTApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDE5ICsgMjApIC8gMik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1YmUs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoMjkgKyAzMCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRoQ3Vi
ZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoMzkgKyA0MCkgLyAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRo
Q3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg0OSArIDUwKSAvIDIpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0dXJlRGVw
dGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg1OSArIDYwKSAvIDIpOwogfQogCiBv
a1RvVGVzdCA9IHRydWU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UZXh0dXJlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kMDc2OTRmYWMyNjdhNzc4MzY1Yjk0YTY4YzAyMTM3MDI1NGNhNTBmCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZS5qcwpA
QCAtMCwwICsxLDU0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisidXNlIHN0cmljdCI7CisKK2NsYXNzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGRp
bWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlu
bmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIHRoaXMuX2RpbWVuc2lvbiA9IGRpbWVuc2lv
bjsKKyAgICAgICAgdGhpcy5fd2lkdGggPSB3aWR0aDsKKyAgICAgICAgdGhpcy5faGVpZ2h0ID0g
aGVpZ2h0OworICAgICAgICB0aGlzLl9kZXB0aCA9IGRlcHRoOworICAgICAgICB0aGlzLl9sZXZl
bENvdW50ID0gbGV2ZWxDb3VudDsKKyAgICAgICAgdGhpcy5fbGF5ZXJDb3VudCA9IGxheWVyQ291
bnQ7CisgICAgICAgIHRoaXMuX2lubmVyVHlwZSA9IGlubmVyVHlwZTsKKyAgICAgICAgdGhpcy5f
ZGF0YSA9IGRhdGE7CisgICAgfQorCisgICAgZ2V0IGRpbWVuc2lvbigpIHsgcmV0dXJuIHRoaXMu
X2RpbWVuc2lvbjsgfQorICAgIGdldCB3aWR0aCgpIHsgcmV0dXJuIHRoaXMuX3dpZHRoOyB9Cisg
ICAgZ2V0IGhlaWdodCgpIHsgcmV0dXJuIHRoaXMuX2hlaWdodDsgfQorICAgIGdldCBkZXB0aCgp
IHsgcmV0dXJuIHRoaXMuX2RlcHRoOyB9CisgICAgZ2V0IGxldmVsQ291bnQoKSB7IHJldHVybiB0
aGlzLl9sZXZlbENvdW50OyB9CisgICAgZ2V0IGxheWVyQ291bnQoKSB7IHJldHVybiB0aGlzLl9s
YXllckNvdW50OyB9CisgICAgZ2V0IGlubmVyVHlwZSgpIHsgcmV0dXJuIHRoaXMuX2lubmVyVHlw
ZTsgfQorICAgIGdldCBkYXRhKCkgeyByZXR1cm4gdGhpcy5fZGF0YTsgfQorCisgICAgZWxlbWVu
dENoZWNrZWQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgaWYgKGxheWVy
IDwgMCB8fCBsYXllciA+PSB0aGlzLmxheWVyQ291bnQKKyAgICAgICAgICAgIHx8IGxldmVsIDwg
MCB8fCBsZXZlbCA+PSB0aGlzLmxldmVsQ291bnQKKyAgICAgICAgICAgIHx8IGsgPCAwIHx8IGsg
Pj0gdGhpcy5kZXB0aAorICAgICAgICAgICAgfHwgaiA8IDAgfHwgaiA+PSB0aGlzLmhlaWdodAor
ICAgICAgICAgICAgfHwgaSA8IDAgfHwgaSA+PSB0aGlzLndpZHRoKQorICAgICAgICAgICAgcmV0
dXJuIHVuZGVmaW5lZDsKKyAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudChsYXllciwgbGV2ZWws
IGssIGosIGkpOworICAgIH0KKworICAgIHNldEVsZW1lbnRDaGVja2VkKGxheWVyLCBsZXZlbCwg
aywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICBpZiAobGF5ZXIgPCAwIHx8IGxheWVyID49
IHRoaXMubGF5ZXJDb3VudAorICAgICAgICAgICAgfHwgbGV2ZWwgPCAwIHx8IGxldmVsID49IHRo
aXMubGV2ZWxDb3VudAorICAgICAgICAgICAgfHwgayA8IDAgfHwgayA+PSB0aGlzLmRlcHRoCisg
ICAgICAgICAgICB8fCBqIDwgMCB8fCBqID49IHRoaXMuaGVpZ2h0CisgICAgICAgICAgICB8fCBp
IDwgMCB8fCBpID49IHRoaXMud2lkdGgpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIHRoaXMuc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKTsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlMUQgZXh0ZW5kcyBUZXh0
dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAv
LyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgbWlwbWFwcy4KKyAgICAgICAgLy8gVGhlIGZpcnN0IG1p
cG1hcCBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1h
eSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhl
IHdpZHRoIG11c3QgYmUgYSBwb3dlci1vZi10d28uCisgICAgICAgIC8vIEVhY2ggbWlwbWFwIGlz
IGhhbGYtc2l6ZSBvZiB0aGUgcHJldmlvdXMgc2l6ZS4KKworICAgICAgICBsZXQgZGltZW5zaW9u
ID0gMTsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBo
ZWlnaHQgPSAxOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3Vu
dCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IDE7CisgICAgICAgIHN1
cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291
bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKwor
ICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9
CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAg
ICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5
ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsZXZl
bF1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUxREFycmF5IGV4dGVuZHMg
VGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAg
ICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIDFEIHRleHR1cmVzLgorICAgICAgICAvLyBBbGwg
dGV4dHVyZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHdpZHRoIGFuZCBudW1iZXIgb2YgbWlwbWFwcy4K
KworICAgICAgICBsZXQgZGltZW5zaW9uID0gMTsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVsw
XVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSAxOworICAgICAgICBsZXQgZGVwdGgg
PSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBs
ZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdp
ZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRh
dGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB0aGlzLmRhdGFbMF1bbGV2ZWxdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExl
dmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZGVwdGhB
dExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxl
bWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5k
YXRhW2xheWVyXVtsZXZlbF1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2
ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtsZXZl
bF1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUyRCBleHRlbmRzIFRleHR1
cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8v
ICJkYXRhIiBpcyBhbiBhcnJheSBvZiBtaXBtYXBzLgorICAgICAgICAvLyBUaGUgZmlyc3QgbWlw
bWFwIGlzIGEgcmVjdGFuZ3VsYXIgYXJyYXkgb2Ygcm93cywgd2hlcmUgZWFjaCByb3cgaXMgYW4g
YXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2Fs
YXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCBhbmQg
aGVpZ2h0IG11c3QgYmUgcG93ZXJzLW9mLXR3by4KKyAgICAgICAgLy8gRWFjaCBtaXBtYXAgaXMg
aGFsZi13aWR0aCBhbmQgaGFsZi1oZWlnaHQgb2YgdGhlIHByZXZpb3VzIHNpemUuCisKKyAgICAg
ICAgbGV0IGRpbWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF0ubGVu
Z3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBk
ZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAg
IGxldCBsYXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVp
Z2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAg
ICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhp
cy5kYXRhW2xldmVsXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZl
bCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdLmxlbmd0aDsKKyAgICB9
CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAg
ICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdW2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQo
bGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVts
ZXZlbF1bal1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2xldCBUZXh0dXJlRGVwdGgyRCA9IFRl
eHR1cmUyRDsKKworY2xhc3MgVGV4dHVyZTJEQXJyYXkgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBj
b25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMg
YW4gYXJyYXkgb2YgMkQgdGV4dHVyZXMuCisgICAgICAgIC8vIEFsbCB0ZXh0dXJlcyBtdXN0IGhh
dmUgdGhlIHNhbWUgd2lkdGgsIGhlaWdodCBhbmQgbnVtYmVyIG9mIG1pcG1hcHMuCisKKyAgICAg
ICAgbGV0IGRpbWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF1bMF0u
bGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAg
IGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YVswXS5sZW5ndGg7
CisgICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIHN1cGVyKGRp
bWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlu
bmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF1bMF0ubGVuZ3RoOworICAgIH0KKwor
ICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRh
WzBdW2xldmVsXS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWws
IGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1b
al1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZh
bHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1bal1baV0gPSB2YWx1
ZTsKKyAgICB9Cit9CisKK2xldCBUZXh0dXJlRGVwdGgyREFycmF5ID0gVGV4dHVyZTJEQXJyYXk7
CisKK2NsYXNzIFRleHR1cmUzRCBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlu
bmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiBt
aXBtYXBzLgorICAgICAgICAvLyBUaGUgZmlyc3QgbWlwbWFwIGlzIGFuIGFycmF5IG9mIGRlcHRo
IHNsaWNlcywgZWFjaCBkZXB0aCBzbGljZSBpcyBhbiBhcnJheSBvZiByb3dzLCBhbmQgZWFjaCBy
b3cgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkg
YmUgYSBzY2FsYXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3
aWR0aCwgaGVpZ2h0LCBhbmQgZGVwdGggbXVzdCBiZSBwb3dlcnMtb2YtdHdvLgorICAgICAgICAv
LyBFYWNoIG1pcG1hcCBpcyBoYWxmLXdpZHRoLCBoYWxmLWhlaWdodCwgYW5kIGhhbGYtZGVwdGgg
b2YgdGhlIHByZXZpb3VzIHNpemUuCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDM7CisgICAg
ICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0
ID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0aCA9IGRhdGFbMF0ubGVuZ3Ro
OworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgbGF5
ZXJDb3VudCA9IDE7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVw
dGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisg
ICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVts
ZXZlbF1bMF1bMF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisg
ICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXVswXS5sZW5ndGg7CisgICAgfQor
CisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0
YVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBq
LCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1ba11bal1baV07Cisg
ICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAg
IHsKKyAgICAgICAgdGhpcy5kYXRhW2xldmVsXVtrXVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30K
KworY2xhc3MgVGV4dHVyZUN1YmUgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihp
bm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2Yg
NiAyRCB0ZXh0dXJlcy4KKyAgICAgICAgLy8gQWxsIHRleHR1cmVzIG11c3QgaGF2ZSB0aGUgc2Ft
ZSB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgYW5kIG51bWJlciBvZiBtaXBtYXBzLgorCisgICAgICAg
IGxldCBkaW1lbnNpb24gPSAyOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdWzBdLmxl
bmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAgICAgICBs
ZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGFbMF0ubGVuZ3RoOwor
ICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBzdXBlcihkaW1l
bnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5l
clR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bbGV2ZWxdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAg
ICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVsw
XVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7
CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBr
LCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2pd
W2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1
ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2pdW2ldID0gdmFsdWU7
CisgICAgfQorfQorCitsZXQgVGV4dHVyZURlcHRoQ3ViZSA9IFRleHR1cmVDdWJlOworCitjbGFz
cyBUZXh0dXJlMURSVyBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlw
ZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiBlbGVtZW50
cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBv
ZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRoIG11c3QgYmUgYSBwb3dlci1vZi10
d28uCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDE7CisgICAgICAgIGxldCB3aWR0aCA9IGRh
dGEubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gMTsKKyAgICAgICAgbGV0IGRlcHRoID0g
MTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSAxOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9
IDE7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVs
Q291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhB
dExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5sZW5ndGg7Cisg
ICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAx
OworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVy
biAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxh
eWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbaV0g
PSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUxREFycmF5UlcgZXh0ZW5kcyBUZXh0
dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAv
LyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgMUQgUlcgdGV4dHVyZXMuCisgICAgICAgIC8vIEFsbCB0
ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNhbWUgc2l6ZS4KKworICAgICAgICBsZXQgZGltZW5zaW9u
ID0gMTsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBo
ZWlnaHQgPSAxOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3Vu
dCA9IDE7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIHN1
cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291
bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXS5sZW5ndGg7CisgICAgfQorCisgICAg
aGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKwor
ICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0K
KworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHRoaXMuZGF0YVtsYXllcl1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwg
bGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtp
XSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTJEUlcgZXh0ZW5kcyBUZXh0dXJl
IHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAi
ZGF0YSIgaXMgYSByZWN0YW5ndWxhciBhcnJheSBvZiByb3dzLCB3aGVyZSBlYWNoIHJvdyBpcyBh
biBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBhIHNj
YWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRoIGFu
ZCBoZWlnaHQgbXVzdCBiZSBwb3dlcnMtb2YtdHdvLgorCisgICAgICAgIGxldCBkaW1lbnNpb24g
PSAyOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhl
aWdodCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQg
bGV2ZWxDb3VudCA9IDE7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gMTsKKyAgICAgICAgc3Vw
ZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3Vu
dCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisg
ICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBo
ZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5sZW5n
dGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAg
eworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1l
bnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0
YVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworbGV0IFRleHR1cmVEZXB0aDJEUlcgPSBUZXh0
dXJlMkRSVzsKKworY2xhc3MgVGV4dHVyZTJEQXJyYXlSVyBleHRlbmRzIFRleHR1cmUgeworICAg
IGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBp
cyBhbiBhcnJheSBvZiAyRCBSVyB0ZXh0dXJlcy4KKyAgICAgICAgLy8gQWxsIHRleHR1cmVzIG11
c3QgaGF2ZSB0aGUgc2FtZSB3aWR0aCBhbmQgaGVpZ2h0LgorCisgICAgICAgIGxldCBkaW1lbnNp
b24gPSAyOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAg
bGV0IGhlaWdodCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAg
ICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5s
ZW5ndGg7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxl
dmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lk
dGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVswXS5s
ZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLmRhdGFbMF0ubGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChs
ZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5
ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsYXll
cl1bal1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGks
IHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtqXVtpXSA9IHZhbHVlOwor
ICAgIH0KK30KKworbGV0IFRleHR1cmVEZXB0aDJEQXJyYXlSVyA9IFRleHR1cmUyREFycmF5UlcK
KworY2xhc3MgVGV4dHVyZTNEUlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihp
bm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2Yg
ZGVwdGggc2xpY2VzLCBlYWNoIGRlcHRoIHNsaWNlIGlzIGFuIGFycmF5IG9mIHJvd3MsIGFuZCBl
YWNoIHJvdyBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50
IG1heSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8g
VGhlIHdpZHRoLCBoZWlnaHQsIGFuZCBkZXB0aCBtdXN0IGJlIHBvd2Vycy1vZi10d28uCisKKyAg
ICAgICAgbGV0IGRpbWVuc2lvbiA9IDM7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF0u
bGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxl
dCBkZXB0aCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7CisgICAg
ICAgIGxldCBsYXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwg
aGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsK
KyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5kYXRhWzBdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVs
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXS5sZW5ndGg7CisgICAgfQorCisg
ICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5s
ZW5ndGg7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAg
eworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2tdW2pdW2ldOworICAgIH0KKworICAgIHNldEVs
ZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMu
ZGF0YVtrXVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1cmVPcGVyYXRpb25zLmpzIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjAxMDc1MWZh
NTM1NDg1ZTBkNjg4M2U5N2QyYmNiZDM1ZmQ4MDQwZQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1cmVPcGVyYXRpb25zLmpzCkBAIC0wLDAgKzEs
NjMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyJ1c2Ug
c3RyaWN0IjsKKworZnVuY3Rpb24gZGVwdGhDb21wYXJlT3BlcmF0aW9uKGRyZWYsIGQsIGNvbXBh
cmVGdW5jdGlvbikKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuMy40CisgICAg
c3dpdGNoIChjb21wYXJlRnVuY3Rpb24pIHsKKyAgICAgICAgY2FzZSAibmV2ZXIiOgorICAgICAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgIGNhc2UgImxlc3MiOgorICAgICAgICAgICAgcmV0dXJu
IGRyZWYgPCBkID8gMSA6IDA7CisgICAgICAgIGNhc2UgImVxdWFsIjoKKyAgICAgICAgICAgIHJl
dHVybiBkcmVmID09IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAibGVzc0VxdWFsIjoKKyAgICAg
ICAgICAgIHJldHVybiBkcmVmIDw9IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAiZ3JlYXRlciI6
CisgICAgICAgICAgICByZXR1cm4gZHJlZiA+IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAibm90
RXF1YWwiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYgIT0gZCA/IDEgOiAwOworICAgICAgICBj
YXNlICJncmVhdGVyRXF1YWwiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYgPj0gZCA/IDEgOiAw
OworICAgICAgICBjYXNlICJhbHdheXMiOgorICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZGVwdGggY29t
cGFyaXNvbiBmdW5jdGlvbiIpOworICAgIH0KK30KKworZnVuY3Rpb24gY29udmVyc2lvblRvUkdC
QSh2YWx1ZSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuMy41CisgICAgaWYg
KHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IFtdOworICAg
ICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgKytpKQorICAgICAgICAgICAg
cmVzdWx0LnB1c2godmFsdWVbaV0pOworICAgICAgICB3aGlsZSAocmVzdWx0Lmxlbmd0aCAhPSA0
KQorICAgICAgICAgICAgcmVzdWx0LnB1c2gocmVzdWx0Lmxlbmd0aCA9PSAzID8gMSA6IDApOwor
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0gZWxzZQorICAgICAgICByZXR1cm4gW3ZhbHVl
LCAwLCAwLCAxXTsKK30KKworZnVuY3Rpb24gcHJvamVjdGlvbk9wZXJhdGlvbihzLCB0LCByLCBk
cmVmLCBxKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjEKKyAgICByZXR1
cm4gW3MgLyBxLCB0IC8gcSwgciAvIHEsIGRyZWYgIT0gdW5kZWZpbmVkID8gZHJlZiAvIHEgOiB1
bmRlZmluZWRdOworfQorCitmdW5jdGlvbiBjdWJlTWFwRmFjZVNlbGVjdGlvbihzLCB0LCByLCBw
YXJ0aWFsUnhXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxS
eVdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJ6V2l0aFJl
c3BlY3RUb1gsIHBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZKQoreworICAgIC8vIFZ1bGthbiAxLjEu
ODMgc2VjdGlvbiAxNS42LjQKKyAgICBsZXQgcnggPSBzOworICAgIGxldCByeSA9IHQ7CisgICAg
bGV0IHJ6ID0gcjsKKyAgICBsZXQgd2lubmVyID0gMDsKKyAgICBpZiAoTWF0aC5hYnMocnopID49
IE1hdGguYWJzKHJ5KSAmJiBNYXRoLmFicyhyeikgPj0gTWF0aC5hYnMocngpKQorICAgICAgICB3
aW5uZXIgPSAyOworICAgIGVsc2UgaWYgKE1hdGguYWJzKHJ5KSA+PSBNYXRoLmFicyhyeCkgJiYg
TWF0aC5hYnMocnkpID49IE1hdGguYWJzKHJ6KSkKKyAgICAgICAgd2lubmVyID0gMTsKKworICAg
IGxldCBsYXllck51bWJlcjsKKyAgICBsZXQgc2M7CisgICAgbGV0IHRjOworICAgIGxldCByYzsK
KyAgICBsZXQgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1g7CisgICAgbGV0IHBhcnRpYWxTY1dpdGhS
ZXNwZWN0VG9ZOworICAgIGxldCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWDsKKyAgICBsZXQgcGFy
dGlhbFRjV2l0aFJlc3BlY3RUb1k7CisgICAgbGV0IHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YOwor
ICAgIGxldCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWTsKKyAgICBpZiAod2lubmVyID09IDAgJiYg
cnggPj0gMCkgeworICAgICAgICBsYXllck51bWJlciA9IDA7CisgICAgICAgIHNjID0gLXJ6Owor
ICAgICAgICB0YyA9IC1yeTsKKyAgICAgICAgcmMgPSByeDsKKyAgICAgICAgcGFydGlhbFNjV2l0
aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxT
Y1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0
aWFsVGNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAg
cGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAg
ICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7Cisg
ICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7
CisgICAgfSBlbHNlIGlmICh3aW5uZXIgPT0gMCkgeworICAgICAgICBsYXllck51bWJlciA9IDE7
CisgICAgICAgIHNjID0gcno7CisgICAgICAgIHRjID0gLXJ5OworICAgICAgICByYyA9IHJ4Owor
ICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9Y
OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeldpdGhSZXNwZWN0
VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVz
cGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0
aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxS
eFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0
aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAgICB9IGVsc2UgaWYgKHdpbm5lciA9PSAxICYmIHJ5ID49
IDApIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSAyOworICAgICAgICBzYyA9IHJ4OworICAgICAg
ICB0YyA9IC1yejsKKyAgICAgICAgcmMgPSByeTsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3Bl
Y3RUb1ggPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJl
c3BlY3RUb1kgPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0
aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRj
V2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlh
bFJjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFy
dGlhbFJjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICB9IGVs
c2UgaWYgKHdpbm5lciA9PSAxKSB7CisgICAgICAgIGxheWVyTnVtYmVyID0gMzsKKyAgICAgICAg
c2MgPSByeDsKKyAgICAgICAgdGMgPSAtcno7CisgICAgICAgIHJjID0gcnk7CisgICAgICAgIHBh
cnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAg
IHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAg
ICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOwor
ICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRv
WTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3Bl
Y3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhS
ZXNwZWN0VG9ZOworICAgIH0gZWxzZSBpZiAod2lubmVyID09IDIgJiYgcnogPj0gMCkgeworICAg
ICAgICBsYXllck51bWJlciA9IDQ7CisgICAgICAgIHNjID0gcng7CisgICAgICAgIHRjID0gLXJ5
OworICAgICAgICByYyA9IHJ6OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IHBh
cnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9
IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRv
WCA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3Bl
Y3RUb1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhS
ZXNwZWN0VG9YID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dp
dGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgbGF5ZXJOdW1iZXIgPSA1OworICAgICAgICBzYyA9IC1yeDsKKyAgICAgICAgdGMgPSAt
cnk7CisgICAgICAgIHJjID0gcno7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0g
LXBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRv
WSA9IC1wYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3Bl
Y3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhS
ZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNX
aXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlh
bFJjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgfQorICAg
IHJldHVybiBbbGF5ZXJOdW1iZXIsIHNjLCB0YywgcmMsIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9Y
LCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1gsIHBhcnRp
YWxUY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJjV2l0
aFJlc3BlY3RUb1ldCit9CisKK2Z1bmN0aW9uIGN1YmVNYXBDb29yZGluYXRlVHJhbnNmb3JtYXRp
b24oc2MsIHRjLCByYykKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi41Cisg
ICAgbGV0IHNGYWNlID0gKDEgLyAyKSAqIHNjIC8gTWF0aC5hYnMocmMpICsgKDEgLyAyKTsKKyAg
ICBsZXQgdEZhY2UgPSAoMSAvIDIpICogdGMgLyBNYXRoLmFicyhyYykgKyAoMSAvIDIpOworICAg
IHJldHVybiBbc0ZhY2UsIHRGYWNlXTsKK30KKworZnVuY3Rpb24gY3ViZU1hcERlcml2YXRpdmVU
cmFuc2Zvcm1hdGlvbihzYywgdGMsIHJjLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCwgcGFydGlh
bFNjV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVGNXaXRo
UmVzcGVjdFRvWSwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSY1dpdGhSZXNwZWN0
VG9ZKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjYKKyAgICBsZXQgcGFy
dGlhbFNGYWNlV2l0aFJlc3BlY3RUb1ggPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0
aWFsU2NXaXRoUmVzcGVjdFRvWCAtIHNjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gpIC8gTWF0
aC5wb3cocmMsIDIpKTsKKyAgICBsZXQgcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1kgPSAoMSAv
IDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSAtIHNjICogcGFy
dGlhbFJjV2l0aFJlc3BlY3RUb1kpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICBsZXQgcGFydGlh
bFRGYWNlV2l0aFJlc3BlY3RUb1ggPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFs
VGNXaXRoUmVzcGVjdFRvWCAtIHRjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gpIC8gTWF0aC5w
b3cocmMsIDIpKTsKKyAgICBsZXQgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1kgPSAoMSAvIDIp
ICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSAtIHRjICogcGFydGlh
bFJjV2l0aFJlc3BlY3RUb1kpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICByZXR1cm4gW3BhcnRp
YWxTRmFjZVdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWSwgcGFydGlh
bFRGYWNlV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0VG9ZXTsKK30KKwor
ZnVuY3Rpb24gc2NhbGVGYWN0b3JPcGVyYXRpb24oZGV2aWNlTWF4QW5pc290cm9weSwgd2lkdGgs
IGhlaWdodCwgZGVwdGgsIHNhbXBsZXJNYXhBbmlzb3Ryb3B5LCBwYXJ0aWFsU1dpdGhSZXNwZWN0
VG9YLCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9YLCBwYXJ0
aWFsU1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUldpdGhS
ZXNwZWN0VG9ZKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjcKKyAgICBs
ZXQgbXV4ID0gTWF0aC5hYnMocGFydGlhbFNXaXRoUmVzcGVjdFRvWCkgKiB3aWR0aDsKKyAgICBs
ZXQgbXZ4ID0gTWF0aC5hYnMocGFydGlhbFRXaXRoUmVzcGVjdFRvWCkgKiBoZWlnaHQ7CisgICAg
bGV0IG13eCA9IE1hdGguYWJzKHBhcnRpYWxSV2l0aFJlc3BlY3RUb1gpICogZGVwdGg7CisgICAg
bGV0IG11eSA9IE1hdGguYWJzKHBhcnRpYWxTV2l0aFJlc3BlY3RUb1kpICogd2lkdGg7CisgICAg
bGV0IG12eSA9IE1hdGguYWJzKHBhcnRpYWxUV2l0aFJlc3BlY3RUb1kpICogaGVpZ2h0OworICAg
IGxldCBtd3kgPSBNYXRoLmFicyhwYXJ0aWFsUldpdGhSZXNwZWN0VG9ZKSAqIGRlcHRoOworCisg
ICAgLy8gSSBtYWRlIHRoaXMgdXAuIFRoZSBmb3JtdWxhIGlzbid0IGxpc3RlZCBpbiB0aGUgc3Bl
Yy4KKyAgICBsZXQgZnggPSBNYXRoLnNxcnQobXV4ICogbXV4ICsgbXZ4ICogbXZ4ICsgbXd4ICog
bXd4KTsKKyAgICBsZXQgZnkgPSBNYXRoLnNxcnQobXV5ICogbXV5ICsgbXZ5ICogbXZ5ICsgbXd5
ICogbXd5KTsKKworICAgIGxldCByaG9YID0gZng7CisgICAgbGV0IHJob1kgPSBmeTsKKyAgICBs
ZXQgcmhvTWF4ID0gTWF0aC5tYXgocmhvWCwgcmhvWSk7CisgICAgbGV0IHJob01pbiA9IE1hdGgu
bWluKHJob1gsIHJob1kpOworCisgICAgbGV0IG1heEFuaXNvID0gTWF0aC5taW4oc2FtcGxlck1h
eEFuaXNvdHJvcHksIGRldmljZU1heEFuaXNvdHJvcHkpOworCisgICAgbGV0IGV0YTsKKyAgICBp
ZiAocmhvTWF4ID09IDAgJiYgcmhvTWluID09IDApCisgICAgICAgIGV0YSA9IDE7CisgICAgZWxz
ZSBpZiAocmhvTWluID09IDApCisgICAgICAgIGV0YSA9IG1heEFuaXNvOworICAgIGVsc2UKKyAg
ICAgICAgZXRhID0gTWF0aC5taW4ocmhvTWF4IC8gcmhvTWluLCBtYXhBbmlzbyk7CisKKyAgICBs
ZXQgTiA9IE1hdGguY2VpbChldGEpOworICAgIHJldHVybiBbcmhvTWF4LCByaG9NaW4sIGV0YSwg
Tl07Cit9CisKK2Z1bmN0aW9uIGxldmVsT2ZEZXRhaWxPcGVyYXRpb24oZGV2aWNlTWF4U2FtcGxl
ckxvZEJpYXMsIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJh
bmQsIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLCBzYW1wbGVyQmlhcywgc2FtcGxlckxvZE1pbiwg
c2FtcGxlckxvZE1heCwgcmhvTWF4LCBldGEpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0
aW9uIDE1LjYuNworICAgIGlmIChiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCA9PSB1bmRlZmluZWQp
CisgICAgICAgIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kID0gMDsKKworICAgIGxldCBsYW1iZGFC
YXNlID0gbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCAhPSB1bmRlZmluZWQgPyBsb2RGcm9tRnVuY3Rp
b25PcGVyYW5kIDogTWF0aC5sb2cyKHJob01heCAvIGV0YSk7CisgICAgbGV0IGxhbWJkYVByaW1l
ID0gbGFtYmRhQmFzZSArIE1hdGgubWluKE1hdGgubWF4KHNhbXBsZXJCaWFzICsgYmlhc0Zyb21G
dW5jdGlvbk9wZXJhbmQsIC1kZXZpY2VNYXhTYW1wbGVyTG9kQmlhcyksIGRldmljZU1heFNhbXBs
ZXJMb2RCaWFzKTsKKyAgICBsZXQgbG9kTWluID0gTWF0aC5tYXgoc2FtcGxlckxvZE1pbiwgbG9k
TWluRnJvbUZ1bmN0aW9uT3BlcmFuZCk7CisgICAgbGV0IGxvZE1heCA9IHNhbXBsZXJMb2RNYXg7
CisgICAgbGV0IGxhbWJkYTsKKyAgICBpZiAobGFtYmRhUHJpbWUgPiBsb2RNYXgpCisgICAgICAg
IGxhbWJkYSA9IGxvZE1heDsKKyAgICBlbHNlIGlmIChsb2RNaW4gPD0gbGFtYmRhUHJpbWUgJiYg
bGFtYmRhUHJpbWUgPD0gbG9kTWF4KQorICAgICAgICBsYW1iZGEgPSBsYW1iZGFQcmltZTsKKyAg
ICBlbHNlIGlmIChsYW1iZGFQcmltZSA8IGxvZE1pbikKKyAgICAgICAgbGFtYmRhID0gbG9kTWlu
OworICAgIGVsc2UKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJsb2RNaW4gPj0gbG9kTWF4Iik7
CisgICAgcmV0dXJuIGxhbWJkYTsKK30KKworZnVuY3Rpb24gaW1hZ2VMZXZlbFNlbGVjdGlvbihi
YXNlTWlwTGV2ZWwsIGxldmVsQ291bnQsIG1pcG1hcE1vZGUsIGxhbWJkYSkKK3sKKyAgICAvLyBW
dWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi43CisgICAgZnVuY3Rpb24gbmVhcmVzdChkUHJpbWUp
CisgICAgeworICAgICAgICByZXR1cm4gTWF0aC5jZWlsKGRQcmltZSArIDAuNSkgLSAxOworICAg
IH0KKworICAgIGxldCBxID0gbGV2ZWxDb3VudCAtIDE7CisgICAgbGV0IGRQcmltZSA9IGJhc2VN
aXBMZXZlbCArIE1hdGgubWluKE1hdGgubWF4KGxhbWJkYSwgMCksIHEpOworICAgIGxldCBkbDsK
KyAgICBpZiAobWlwbWFwTW9kZSA9PSAibmVhcmVzdCIpCisgICAgICAgIGRsID0gbmVhcmVzdChk
UHJpbWUpOworICAgIGVsc2UKKyAgICAgICAgZGwgPSBkUHJpbWU7CisgICAgaWYgKG1pcG1hcE1v
ZGUgPT0gIm5lYXJlc3QiKQorICAgICAgICByZXR1cm4gZGw7CisgICAgZWxzZSB7CisgICAgICAg
IGxldCBkSGkgPSBNYXRoLmZsb29yKGRsKTsKKyAgICAgICAgbGV0IGRMb3cgPSBNYXRoLm1pbihk
SGkgKyAxLCBxKTsKKyAgICAgICAgbGV0IGRlbHRhID0gZGwgLSBkSGk7CisgICAgICAgIHJldHVy
biBbZEhpLCBkTG93LCBkZWx0YV07CisgICAgfQorfQorCitmdW5jdGlvbiBzdHJxYVRvVVZXQVRy
YW5zZm9ybWF0aW9uKHMsIHQsIHIsIHdpZHRoLCBoZWlnaHQsIGRlcHRoKQoreworICAgIC8vIFZ1
bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjgKKyAgICBsZXQgdSA9IHMgKiB3aWR0aDsKKyAgICBs
ZXQgdiA9IHQgKiBoZWlnaHQ7CisgICAgbGV0IHcgPSByICogZGVwdGg7CisgICAgcmV0dXJuIFt1
LCB2LCB3XTsKK30KKworZnVuY3Rpb24gdXZ3YVRvSUpLTE5UcmFuc2Zvcm1hdGlvbkFuZEFycmF5
TGF5ZXJTZWxlY3Rpb24obGF5ZXJDb3VudCwgYmFzZUFycmF5TGF5ZXIsIGZpbHRlciwgdSwgdiwg
dywgYSwgZGVsdGFJLCBkZWx0YUosIGRlbHRhSykKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNl
Y3Rpb24gMTUuNy4xCisKKyAgICBpZiAoZGVsdGFJID09IHVuZGVmaW5lZCkKKyAgICAgICAgZGVs
dGFJID0gMDsKKyAgICBpZiAoZGVsdGFKID09IHVuZGVmaW5lZCkKKyAgICAgICAgZGVsdGFKID0g
MDsKKyAgICBpZiAoZGVsdGFLID09IHVuZGVmaW5lZCkKKyAgICAgICAgZGVsdGFLID0gMDsKKwor
ICAgIGZ1bmN0aW9uIHJuZShhKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoYSAr
IDAuNSk7CisgICAgfQorICAgIGxldCBsID0gTWF0aC5taW4oTWF0aC5tYXgocm5lKGEpLCAwKSwg
bGF5ZXJDb3VudCAtIDEpICsgYmFzZUFycmF5TGF5ZXI7CisgICAgbGV0IGk7CisgICAgbGV0IGo7
CisgICAgbGV0IGs7CisgICAgaWYgKGZpbHRlciA9PSAibmVhcmVzdCIpIHsKKyAgICAgICAgaSA9
IE1hdGguZmxvb3IodSk7CisgICAgICAgIGogPSBNYXRoLmZsb29yKHYpOworICAgICAgICBrID0g
TWF0aC5mbG9vcih3KTsKKyAgICAgICAgCisgICAgICAgIGkgKz0gZGVsdGFJOworICAgICAgICBq
ICs9IGRlbHRhSjsKKyAgICAgICAgayArPSBkZWx0YUs7CisgICAgICAgIAorICAgICAgICByZXR1
cm4gW2ksIGosIGssIGxdOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChmaWx0ZXIgIT0gImxp
bmVhciIpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZmlsdGVyIik7Cisg
ICAgICAgIGxldCBpMCA9IE1hdGguZmxvb3IodSAtIDAuNSk7CisgICAgICAgIGxldCBpMSA9IGkw
ICsgMTsKKyAgICAgICAgbGV0IGowID0gTWF0aC5mbG9vcih2IC0gMC41KTsKKyAgICAgICAgbGV0
IGoxID0gajAgKyAxOworICAgICAgICBsZXQgazAgPSBNYXRoLmZsb29yKHcgLSAwLjUpOworICAg
ICAgICBsZXQgazEgPSBrMCArIDE7CisgICAgICAgIGxldCBhbHBoYSA9ICh1IC0gMC41KSAtIGkw
OworICAgICAgICBsZXQgYmV0YSA9ICh2IC0gMC41KSAtIGowOworICAgICAgICBsZXQgZ2FtbWEg
PSAodyAtIDAuNSkgLSBrMDsKKyAgICAgICAgCisgICAgICAgIGkwICs9IGRlbHRhSTsKKyAgICAg
ICAgaTEgKz0gZGVsdGFJOworICAgICAgICBqMCArPSBkZWx0YUo7CisgICAgICAgIGoxICs9IGRl
bHRhSjsKKyAgICAgICAgazAgKz0gZGVsdGFLOworICAgICAgICBrMSArPSBkZWx0YUs7CisgICAg
ICAgIAorICAgICAgICByZXR1cm4gW2kwLCBpMSwgajAsIGoxLCBrMCwgazEsIGwsIGFscGhhLCBi
ZXRhLCBnYW1tYV07CisgICAgfQorfQorCitmdW5jdGlvbiBpbnRlZ2VyVGV4ZWxDb29yZGluYXRl
T3BlcmF0aW9ucyhiYXNlTWlwTGV2ZWwsIGxldmVsQ291bnQsIGxldmVsQmFzZSwgbG9kRnJvbUZ1
bmN0aW9uT3BlcmFuZCkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOAorICAg
IGxldCBkID0gbGV2ZWxCYXNlICsgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZDsKKyAgICBpZiAoZCA8
IGJhc2VNaXBMZXZlbCB8fCBkID49IGJhc2VNaXBMZXZlbCArIGxldmVsQ291bnQpCisgICAgICAg
IHRocm93IG5ldyBFcnJvcigiU2VsZWN0ZWQgbGV2ZWwgZG9lcyBub3QgbGllIGluc2lkZSB0aGUg
aW1hZ2UiKTsKKyAgICByZXR1cm4gZDsKK30KKworZnVuY3Rpb24gd3JhcHBpbmdPcGVyYXRpb24o
d2lkdGgsIGhlaWdodCwgZGVwdGgsIGFkZHJlc3NNb2RlVSwgYWRkcmVzc01vZGVWLCBhZGRyZXNz
TW9kZVcsIGksIGosIGspCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjkuMQor
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgY3ViZSBtYXAgaGFuZGxpbmcKKyAgICBmdW5jdGlvbiB0
cmFuc2Zvcm0oYWRkcmVzc01vZGUsIHNpemUsIGkpCisgICAgeworICAgICAgICBmdW5jdGlvbiBt
aXJyb3IobikgeworICAgICAgICAgICAgaWYgKG4gPj0gMCkKKyAgICAgICAgICAgICAgICByZXR1
cm4gbjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gLSgxICsgbik7
CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoIChhZGRyZXNzTW9kZSkgeworICAgICAgICAgICAg
Y2FzZSAiY2xhbXBUb0VkZ2UiOgorICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLm1pbihNYXRo
Lm1heChpLCAwKSwgc2l6ZSAtIDEpOworICAgICAgICAgICAgY2FzZSAicmVwZWF0IjoKKyAgICAg
ICAgICAgICAgICByZXR1cm4gaSAlIHNpemU7CisgICAgICAgICAgICBjYXNlICJtaXJyb3JSZXBl
YXQiOgorICAgICAgICAgICAgICAgIHJldHVybiAoc2l6ZSAtIDEpIC0gbWlycm9yKChpICUgKDIg
KiBzaXplKSkgLSBzaXplKTsKKyAgICAgICAgICAgIGNhc2UgImNsYW1wVG9Cb3JkZXJDb2xvciI6
CisgICAgICAgICAgICAgICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGksIC0xKSwgc2l6ZSk7
CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigi
VW5rbm93biBhZGRyZXNzIG1vZGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gW3Ry
YW5zZm9ybShhZGRyZXNzTW9kZVUsIHdpZHRoLCBpKSwgdHJhbnNmb3JtKGFkZHJlc3NNb2RlViwg
aGVpZ2h0LCBqKSwgdHJhbnNmb3JtKGFkZHJlc3NNb2RlVywgZGVwdGgsIGspXTsKK30KKworZnVu
Y3Rpb24gdGV4ZWxHYXRoZXJpbmcoKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAx
NS45LjIKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMKKyAgICAvKmxldCB0YXVSID0gOwor
ICAgIGxldCB0YXVHID0gOworICAgIGxldCB0YXVCID0gOworICAgIGxldCB0YXVBID0gOyovCit9
CisKK2Z1bmN0aW9uIHRleGVsRmlsdGVyaW5nKAorICAgIGRldmljZU1heEFuaXNvdHJvcHksCisg
ICAgZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMsCisgICAgYmFzZU1pcExldmVsLAorICAgIGJhc2VB
cnJheUxheWVyLAorICAgIHRleHR1cmUsCisgICAgc2FtcGxlciwKKyAgICBzYW1wbGVyQmlhcywK
KyAgICBzLCB0LCByLCBhLAorICAgIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUssCisgICAgbG9kRnJv
bUZ1bmN0aW9uT3BlcmFuZCwKKyAgICBsb2RNaW5Gcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgIGJp
YXNGcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgIGRkeCwgZGR5KQoreworICAgIC8vIFZ1bGthbiAx
LjEuODMgc2VjdGlvbiAxNS45LjMKKworICAgIC8vIFRoZSBzcGVjIHVzZXMgZGlmZmVyZW50IG5h
bWVzIHRoYW4gV2ViR1BVIGRvZXMuCisgICAgbGV0IGFkZHJlc3NNb2RlVSA9IHNhbXBsZXIuckFk
ZHJlc3NNb2RlOworICAgIGxldCBhZGRyZXNzTW9kZVYgPSBzYW1wbGVyLnNBZGRyZXNzTW9kZTsK
KyAgICBsZXQgYWRkcmVzc01vZGVXID0gc2FtcGxlci50QWRkcmVzc01vZGU7CisKKyAgICAvLyBG
SVhNRTogTWFrZSB0aGlzIHdvcmsgd2l0aCBjdWJlbWFwcworICAgIGxldCBwYXJ0aWFsU1dpdGhS
ZXNwZWN0VG9YID0gMDsKKyAgICBsZXQgcGFydGlhbFRXaXRoUmVzcGVjdFRvWCA9IDA7CisgICAg
bGV0IHBhcnRpYWxSV2l0aFJlc3BlY3RUb1ggPSAwOworICAgIGlmIChkZHggIT0gdW5kZWZpbmVk
KSB7CisgICAgICAgIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1ggPSBkZHhbMF07CisgICAgICAgIHBh
cnRpYWxUV2l0aFJlc3BlY3RUb1ggPSBkZHhbMV07CisgICAgICAgIHBhcnRpYWxSV2l0aFJlc3Bl
Y3RUb1ggPSBkZHhbMl07CisgICAgfQorICAgIGxldCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9ZID0g
MDsKKyAgICBsZXQgcGFydGlhbFRXaXRoUmVzcGVjdFRvWSA9IDA7CisgICAgbGV0IHBhcnRpYWxS
V2l0aFJlc3BlY3RUb1kgPSAwOworICAgIGlmIChkZHkgIT0gdW5kZWZpbmVkKSB7CisgICAgICAg
IHBhcnRpYWxTV2l0aFJlc3BlY3RUb1kgPSBkZHlbMF07CisgICAgICAgIHBhcnRpYWxUV2l0aFJl
c3BlY3RUb1kgPSBkZHlbMV07CisgICAgICAgIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kgPSBkZHlb
Ml07CisgICAgfQorCisgICAgaWYgKHRleHR1cmUgaW5zdGFuY2VvZiBUZXh0dXJlQ3ViZSkgewor
ICAgICAgICBsZXQgW2xheWVyTnVtYmVyLCBzYywgdGMsIHJjLCBwYXJ0aWFsU2NXaXRoUmVzcGVj
dFRvWCwgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YLCBw
YXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxS
Y1dpdGhSZXNwZWN0VG9ZXSA9IGN1YmVNYXBGYWNlU2VsZWN0aW9uKHMsIHQsIHIsIHBhcnRpYWxT
V2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxUV2l0aFJlc3Bl
Y3RUb1gsIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1gsIHBh
cnRpYWxSV2l0aFJlc3BlY3RUb1kpCisgICAgICAgIGxldCBbc0ZhY2UsIHRGYWNlXSA9IGN1YmVN
YXBDb29yZGluYXRlVHJhbnNmb3JtYXRpb24oc2MsIHRjLCByYykKKyAgICAgICAgbGV0IFtwYXJ0
aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1ksIHBhcnRp
YWxURmFjZVdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRvWV0gPSBjdWJl
TWFwRGVyaXZhdGl2ZVRyYW5zZm9ybWF0aW9uKHNjLCB0YywgcmMsIHBhcnRpYWxTY1dpdGhSZXNw
ZWN0VG9YLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1gs
IHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCwgcGFydGlh
bFJjV2l0aFJlc3BlY3RUb1kpCisgICAgICAgIHMgPSBzRmFjZTsKKyAgICAgICAgdCA9IHRGYWNl
OworICAgICAgICByID0gMDsKKyAgICAgICAgYSA9IGxheWVyTnVtYmVyOworICAgICAgICBwYXJ0
aWFsU1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1g7CisgICAgICAg
IHBhcnRpYWxTV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWTsKKyAg
ICAgICAgcGFydGlhbFRXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0VG9Y
OworICAgICAgICBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFRGYWNlV2l0aFJlc3Bl
Y3RUb1k7CisgICAgICAgIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1ggPSAwOworICAgICAgICBwYXJ0
aWFsUldpdGhSZXNwZWN0VG9ZID0gMDsKKyAgICB9CisKKyAgICBsZXQgW3Job01heCwgcmhvTWlu
LCBldGEsIE5dID0gc2NhbGVGYWN0b3JPcGVyYXRpb24oZGV2aWNlTWF4QW5pc290cm9weSwgdGV4
dHVyZS53aWR0aCwgdGV4dHVyZS5oZWlnaHQsIHRleHR1cmUuZGVwdGgsIHNhbXBsZXIubWF4QW5p
c290cm9weSwgcGFydGlhbFNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRXaXRoUmVzcGVjdFRvWCwg
cGFydGlhbFJXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRX
aXRoUmVzcGVjdFRvWSwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWSk7CisgICAgbGV0IGxhbWJkYSA9
IGxldmVsT2ZEZXRhaWxPcGVyYXRpb24oZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMsIGxvZEZyb21G
dW5jdGlvbk9wZXJhbmQsIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQsIGJpYXNGcm9tRnVuY3Rp
b25PcGVyYW5kLCBzYW1wbGVyQmlhcywgc2FtcGxlci5sb2RNaW5DbGFtcCwgc2FtcGxlci5sb2RN
YXhDbGFtcCwgcmhvTWF4LCBldGEpOworCisgICAgbGV0IGZpbHRlcjsKKyAgICBpZiAobGFtYmRh
IDw9IDApCisgICAgICAgIGZpbHRlciA9IHNhbXBsZXIubWFnRmlsdGVyOworICAgIGVsc2UKKyAg
ICAgICAgZmlsdGVyID0gc2FtcGxlci5taW5GaWx0ZXI7CisKKyAgICBmdW5jdGlvbiByZWR1Y2Uo
Li4udmFsdWVzKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggJSAyICE9IDApCisg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkRvbid0IGhhdmUgYSB3ZWlnaHQgY29ycmVzcG9u
ZGluZyB0byBlYWNoIHZhbHVlIik7CisgICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoIDwgMikKKyAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRG9uJ3QgaGF2ZSBlbm91Z2ggdGhpbmdzIHRvIGNh
bGN1bGF0ZSBhbiBhdmVyYWdlIik7CisgICAgICAgIGxldCBzdW07CisgICAgICAgIGlmICh2YWx1
ZXNbMV0gaW5zdGFuY2VvZiBBcnJheSkgeworICAgICAgICAgICAgc3VtID0gW107CisgICAgICAg
ICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlc1sxXS5sZW5ndGg7ICsraSkKKyAgICAgICAg
ICAgICAgICBzdW0ucHVzaCgwKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBzdW0gPSAw
OworICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGggLyAyOyArK2kpIHsK
KyAgICAgICAgICAgIGxldCB3ZWlnaHQgPSB2YWx1ZXNbMiAqIGldOworICAgICAgICAgICAgbGV0
IGNvbG9yID0gdmFsdWVzWzIgKiBpICsgMV07CisgICAgICAgICAgICBpZiAoY29sb3IgaW5zdGFu
Y2VvZiBBcnJheSkgeworICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sb3Iu
bGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgICAgIHN1bVtpXSArPSB3ZWlnaHQgKiBjb2xv
cltpXTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHN1bSArPSB3ZWlnaHQg
KiBjb2xvcjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3VtOworICAgIH0KKworICAgIGZ1
bmN0aW9uIGNvbXB1dGVUYXUobGV2ZWwpCisgICAgeworICAgICAgICBmdW5jdGlvbiBhY2Nlc3ND
b2xvcih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbCwgaSwgaiwgaykKKyAgICAgICAgeworICAgICAg
ICAgICAgZnVuY3Rpb24gc2hvdWxkQmVCb3JkZXIodmFsdWUsIG1heCkKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICBpZiAodmFsdWUgPCAtMSB8fCB2YWx1ZSA+IG1heCkKKyAgICAgICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJPdXQtb2YtYm91bmRzIHRleHR1cmUgcmVhZCIp
OworICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PSAtMSB8fCB2YWx1ZSA9PSBtYXg7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxldCBbd3JhcHBlZEksIHdyYXBwZWRKLCB3cmFw
cGVkS10gPSB3cmFwcGluZ09wZXJhdGlvbih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgYWRkcmVzc01v
ZGVVLCBhZGRyZXNzTW9kZVYsIGFkZHJlc3NNb2RlVywgaSwgaiwgaykKKyAgICAgICAgICAgIGlm
IChzaG91bGRCZUJvcmRlcih3cmFwcGVkSSwgd2lkdGgpIHx8IHNob3VsZEJlQm9yZGVyKHdyYXBw
ZWRKLCBoZWlnaHQpIHx8IHNob3VsZEJlQm9yZGVyKHdyYXBwZWRLLCBkZXB0aCkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHNhbXBsZXIuY2FsY3VsYXRlQm9yZGVyQ29sb3IodGV4dHVyZS5pbm5l
clR5cGUpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0dXJl
LmVsZW1lbnQobCwgbGV2ZWwsIHdyYXBwZWRLLCB3cmFwcGVkSiwgd3JhcHBlZEkpOworICAgICAg
ICB9CisKKyAgICAgICAgbGV0IFt1LCB2LCB3XSA9IHN0cnFhVG9VVldBVHJhbnNmb3JtYXRpb24o
cywgdCwgciwgdGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2
ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCkpOworICAgICAgICBpZiAoZmls
dGVyID09ICJuZWFyZXN0IikgeworICAgICAgICAgICAgbGV0IFtpLCBqLCBrLCBsXSA9IHV2d2FU
b0lKS0xOVHJhbnNmb3JtYXRpb25BbmRBcnJheUxheWVyU2VsZWN0aW9uKHRleHR1cmUubGF5ZXJD
b3VudCwgYmFzZUFycmF5TGF5ZXIsIGZpbHRlciwgdSwgdiwgdywgYSwgZGVsdGFJLCBkZWx0YUos
IGRlbHRhSyk7CisgICAgICAgICAgICByZXR1cm4gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0
TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRo
QXRMZXZlbChsZXZlbCksIGwsIGksIGosIGspOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgaWYgKGZpbHRlciAhPSAibGluZWFyIikKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIlVua25vd24gZmlsdGVyIik7CisgICAgICAgICAgICBsZXQgW2kwLCBpMSwgajAsIGoxLCBr
MCwgazEsIGwsIGFscGhhLCBiZXRhLCBnYW1tYV0gPSB1dndhVG9JSktMTlRyYW5zZm9ybWF0aW9u
QW5kQXJyYXlMYXllclNlbGVjdGlvbih0ZXh0dXJlLmxheWVyQ291bnQsIGJhc2VBcnJheUxheWVy
LCBmaWx0ZXIsIHUsIHYsIHcsIGEsIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUspOworICAgICAgICAg
ICAgbGV0IGNvbG9yMDAwID0gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwp
LCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZl
bCksIGwsIGkwLCBqMCwgazApOworICAgICAgICAgICAgbGV0IGNvbG9yMTAwID0gYWNjZXNzQ29s
b3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2
ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGkxLCBqMCwgazApOworICAgICAg
ICAgICAgbGV0IGNvbG9yMDEwID0gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2
ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChs
ZXZlbCksIGwsIGkwLCBqMSwgazApOworICAgICAgICAgICAgbGV0IGNvbG9yMTEwID0gYWNjZXNz
Q29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwo
bGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGkxLCBqMSwgazApOworICAg
ICAgICAgICAgbGV0IGNvbG9yMDAxID0gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwo
bGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZl
bChsZXZlbCksIGwsIGkwLCBqMCwgazEpOworICAgICAgICAgICAgbGV0IGNvbG9yMTAxID0gYWNj
ZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2
ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGkxLCBqMCwgazEpOwor
ICAgICAgICAgICAgbGV0IGNvbG9yMDExID0gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2
ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRM
ZXZlbChsZXZlbCksIGwsIGkwLCBqMSwgazEpOworICAgICAgICAgICAgbGV0IGNvbG9yMTExID0g
YWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0
TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGkxLCBqMSwgazEp
OworICAgICAgICAgICAgc3dpdGNoICh0ZXh0dXJlLmRpbWVuc2lvbikgeworICAgICAgICAgICAg
ICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMCA9IGNvbG9yMDExOwor
ICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IxID0gY29sb3IxMTE7CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiByZWR1Y2UoMSAtIGFscGhhLCBjb2xvcjAsIGFscGhhLCBjb2xvcjEpOwor
ICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMDAg
PSBjb2xvcjAwMTsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMTAgPSBjb2xvcjEwMTsK
KyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMDEgPSBjb2xvcjAxMTsKKyAgICAgICAgICAg
ICAgICAgICAgbGV0IGNvbG9yMTEgPSBjb2xvcjExMTsKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHJlZHVjZSgoMSAtIGFscGhhKSAqICgxIC0gYmV0YSksIGNvbG9yMDAsIGFscGhhICogKDEg
LSBiZXRhKSwgY29sb3IxMCwgKDEgLSBhbHBoYSkgKiBiZXRhLCBjb2xvcjAxLCBhbHBoYSAqIGJl
dGEsIGNvbG9yMTEpOworICAgICAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHJlZHVjZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICgxIC0gYWxwaGEpICog
KDEgLSBiZXRhKSAqICgxIC0gZ2FtbWEpLCBjb2xvcjAwMCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGFscGhhICogKDEgLSBiZXRhKSAqICgxIC0gZ2FtbWEpLCBjb2xvcjEwMCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICgxIC0gYWxwaGEpICogYmV0YSAqICgxIC0gZ2FtbWEpLCBjb2xvcjAx
MCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFscGhhICogYmV0YSAqICgxIC0gZ2FtbWEpLCBj
b2xvcjExMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICgxIC0gYWxwaGEpICogKDEgLSBiZXRh
KSAqIGdhbW1hLCBjb2xvcjAwMSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFscGhhICogKDEg
LSBiZXRhKSAqIGdhbW1hLCBjb2xvcjEwMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICgxIC0g
YWxwaGEpICogYmV0YSAqIGdhbW1hLCBjb2xvcjAxMSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGFscGhhICogYmV0YSAqIGdhbW1hLCBjb2xvcjExMSk7CisgICAgICAgICAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGRpbWVuc2lv
biIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHNhbXBsZXIu
bWlwbWFwRmlsdGVyID09ICJuZWFyZXN0IikgeworICAgICAgICBsZXQgaW1hZ2VMZXZlbCA9IGlt
YWdlTGV2ZWxTZWxlY3Rpb24oYmFzZU1pcExldmVsLCB0ZXh0dXJlLmxldmVsQ291bnQsIHNhbXBs
ZXIubWlwbWFwRmlsdGVyLCBsYW1iZGEpOworICAgICAgICByZXR1cm4gY29tcHV0ZVRhdShpbWFn
ZUxldmVsKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoc2FtcGxlci5taXBtYXBGaWx0ZXIg
IT0gImxpbmVhciIpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZmlsdGVy
Iik7CisgICAgICAgIGxldCBbZEhpLCBkTG93LCBkZWx0YV0gPSBpbWFnZUxldmVsU2VsZWN0aW9u
KGJhc2VNaXBMZXZlbCwgdGV4dHVyZS5sZXZlbENvdW50LCBzYW1wbGVyLm1pcG1hcEZpbHRlciwg
bGFtYmRhKTsKKyAgICAgICAgcmV0dXJuIHJlZHVjZSgxIC0gZGVsdGEsIGNvbXB1dGVUYXUoZEhp
KSwgZGVsdGEsIGNvbXB1dGVUYXUoZExvdykpOworICAgIH0KK30KKworZnVuY3Rpb24gY2FzdFRv
SW5uZXJUeXBlKHZhbHVlLCBpbm5lclR5cGUpCit7CisgICAgc3dpdGNoIChpbm5lclR5cGUpIHsK
KyAgICAgICAgY2FzZSAidWNoYXIiOgorICAgICAgICAgICAgcmV0dXJuIGNhc3RUb1VjaGFyKHZh
bHVlKTsKKyAgICAgICAgY2FzZSAidXNob3J0IjoKKyAgICAgICAgICAgIHJldHVybiBjYXN0VG9V
c2hvcnQodmFsdWUpOworICAgICAgICBjYXNlICJ1aW50IjoKKyAgICAgICAgICAgIHJldHVybiBj
YXN0VG9VaW50KHZhbHVlKTsKKyAgICAgICAgY2FzZSAiY2hhciI6CisgICAgICAgICAgICByZXR1
cm4gY2FzdFRvQ2hhcih2YWx1ZSk7CisgICAgICAgIGNhc2UgInNob3J0IjoKKyAgICAgICAgICAg
IHJldHVybiBjYXN0VG9TaG9ydCh2YWx1ZSk7CisgICAgICAgIGNhc2UgImludCI6CisgICAgICAg
ICAgICByZXR1cm4gY2FzdFRvSW50KHZhbHVlKTsKKyAgICAgICAgY2FzZSAiaGFsZiI6CisgICAg
ICAgICAgICByZXR1cm4gY2FzdFRvSGFsZih2YWx1ZSk7CisgICAgICAgIGNhc2UgImZsb2F0IjoK
KyAgICAgICAgICAgIHJldHVybiBjYXN0VG9GbG9hdCh2YWx1ZSk7CisgICAgICAgIAorICAgICAg
ICBjYXNlICJ1Y2hhcjIiOgorICAgICAgICBjYXNlICJ1Y2hhcjMiOgorICAgICAgICBjYXNlICJ1
Y2hhcjQiOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcChjYXN0VG9VY2hhcik7CisgICAg
ICAgIGNhc2UgInVzaG9ydDIiOgorICAgICAgICBjYXNlICJ1c2hvcnQzIjoKKyAgICAgICAgY2Fz
ZSAidXNob3J0NCI6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb1VzaG9ydCk7
CisgICAgICAgIGNhc2UgInVpbnQyIjoKKyAgICAgICAgY2FzZSAidWludDMiOgorICAgICAgICBj
YXNlICJ1aW50NCI6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb1VpbnQpOwor
ICAgICAgICBjYXNlICJjaGFyMiI6CisgICAgICAgIGNhc2UgImNoYXIzIjoKKyAgICAgICAgY2Fz
ZSAiY2hhcjQiOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcChjYXN0VG9DaGFyKTsKKyAg
ICAgICAgY2FzZSAic2hvcnQyIjoKKyAgICAgICAgY2FzZSAic2hvcnQzIjoKKyAgICAgICAgY2Fz
ZSAic2hvcnQ0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoY2FzdFRvU2hvcnQpOwor
ICAgICAgICBjYXNlICJpbnQyIjoKKyAgICAgICAgY2FzZSAiaW50MyI6CisgICAgICAgIGNhc2Ug
ImludDQiOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcChjYXN0VG9JbnQpOworICAgICAg
ICBjYXNlICJoYWxmMiI6CisgICAgICAgIGNhc2UgImhhbGYzIjoKKyAgICAgICAgY2FzZSAiaGFs
ZjQiOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcChjYXN0VG9IYWxmKTsKKyAgICAgICAg
Y2FzZSAiZmxvYXQyIjoKKyAgICAgICAgY2FzZSAiZmxvYXQzIjoKKyAgICAgICAgY2FzZSAiZmxv
YXQ0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoY2FzdFRvRmxvYXQpOworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHRleHR1cmUg
aW5uZXIgdHlwZSIpOworICAgIH0KK30KKworZnVuY3Rpb24gc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgZGVsdGEsIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLCBkZHgs
IGRkeSwgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwgZHJlZikKK3sKKyAgICBsZXQgcyA9IGxvY2F0
aW9uWzBdOworICAgIGxldCB0ID0gbG9jYXRpb25bMV07CisgICAgbGV0IHIgPSBsb2NhdGlvblsy
XTsKKyAgICBsZXQgcSA9IGxvY2F0aW9uWzNdOworICAgIGxldCBhID0gbG9jYXRpb25bNF07CisK
KyAgICBsZXQgZGVsdGFJID0gdW5kZWZpbmVkOworICAgIGxldCBkZWx0YUogPSB1bmRlZmluZWQ7
CisgICAgbGV0IGRlbHRhSyA9IHVuZGVmaW5lZDsKKyAgICBpZiAoZGVsdGEgIT0gdW5kZWZpbmVk
KSB7CisgICAgICAgIGRlbHRhSSA9IGRlbHRhWzBdOworICAgICAgICBkZWx0YUogPSBkZWx0YVsx
XTsKKyAgICAgICAgZGVsdGFLID0gZGVsdGFbMl07CisgICAgfQorCisgICAgW3MsIHQsIHIsIGRy
ZWZdID0gcHJvamVjdGlvbk9wZXJhdGlvbihzLCB0LCByLCBkcmVmLCBxKTsKKyAgICBsZXQgcmVz
dWx0ID0gdGV4ZWxGaWx0ZXJpbmcoCisgICAgICAgIE51bWJlci5NQVhfVkFMVUUsCisgICAgICAg
IE51bWJlci5NQVhfVkFMVUUsCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIHRleHR1
cmUsCisgICAgICAgIHNhbXBsZXIsCisgICAgICAgIDAsCisgICAgICAgIHMsIHQsIHIsIGEsCisg
ICAgICAgIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUssCisgICAgICAgIGxvZEZyb21GdW5jdGlvbk9w
ZXJhbmQsCisgICAgICAgIC1OdW1iZXIuTUFYX1ZBTFVFLAorICAgICAgICBiaWFzRnJvbUZ1bmN0
aW9uT3BlcmFuZCwKKyAgICAgICAgZGR4LCBkZHkpOworICAgIGlmIChkcmVmICE9IHVuZGVmaW5l
ZCkgeworICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgQXJyYXkpCisgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIkRlcHRoIGNvbXBhcmlzb24gbm90IHN1cHBvcnRlZCBvbiBtdWx0aWNo
YW5uZWwgdGV4dHVyZXMiKTsKKyAgICAgICAgcmVzdWx0ID0gZGVwdGhDb21wYXJlT3BlcmF0aW9u
KGRyZWYsIHJlc3VsdCwgc2FtcGxlci5jb21wYXJlRnVuY3Rpb24pOworICAgIH0KKyAgICByZXR1
cm4gY2FzdFRvSW5uZXJUeXBlKHJlc3VsdCwgdGV4dHVyZS5pbm5lclR5cGUpOworICAgIC8vIEZJ
WE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gZG8gd2l0aCBhbmlzb3Ryb3B5CisgICAgLy8gRklYTUU6
IEZpZ3VyZSBvdXQgaG93IHRvIGRvIG11bHRpc2FtcGxpbmcuCit9CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvaW5kZXguaHRtbAppbmRleCA2NWE4NjQxMWIzZTc3MGI1NTdiNDFhY2M3ZTQx
NGRlZjQyNDAzMDEzLi5lNmUxM2RmZThkZmE1YzUzMzJhZDllZjA0OWVjZWEzNTliN2UzYTQyIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCisrKyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKQEAgLTI4LDYgKzI4LDcg
QEAKIDxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9yU2V0dGVyLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJDYWxsRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2FsbEZ1
bmN0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDYXN0cy5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iQ2hlY2suanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNoZWNrTGl0ZXJh
bFR5cGVzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDaGVja0xvb3BzLmpzIj48L3Njcmlw
dD4KQEAgLTExNSw2ICsxMTYsNyBAQAogPHNjcmlwdCBzcmM9IlJldHVybi5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iUmV0dXJuQ2hlY2tlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
UmV0dXJuRXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJTYW1wbGVyLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTdGFuZGFyZExpYnJhcnkuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9IlN0YXRlbWVudENsb25lci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3Ry
dWN0TGF5b3V0QnVpbGRlci5qcyI+PC9zY3JpcHQ+CkBAIC0xMjcsNiArMTI5LDggQEAKIDxzY3Jp
cHQgc3JjPSJTeW50aGVzaXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IlN5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iVGVybmFyeUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9IlRleHR1cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlRleHR1cmVPcGVy
YXRpb25zLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUcmFwU3RhdGVtZW50LmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJU
eXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348791</attachid>
            <date>2018-09-03 15:23:56 -0700</date>
            <delta_ts>2018-09-03 17:06:13 -0700</delta_ts>
            <desc>Started gathering</desc>
            <filename>bug-188940-20180903152355.patch</filename>
            <type>text/plain</type>
            <size>444947</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTg5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWE0MzNhZWVmNTA2YjZmNDY1NTYwMTNiZmJiNDM2MWJm
MjE5YWMxYS4uNTlhODliMDY1MjFmMzdlYjI1MDk3OGJjZDI5MDM4MDk1NzUyNTU5NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
OSBAQAorMjAxOC0wOS0wMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRleHR1cmUgdHlwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNp
Y3MuanM6CisgICAgICAgIChJbnRyaW5zaWNzLik6CisgICAgICAgIChJbnRyaW5zaWNzLmNoZWNr
RmFsc2UpOgorICAgICAgICAoSW50cmluc2ljcy5ib3hWZWN0b3IpOgorICAgICAgICAoSW50cmlu
c2ljcy51bmJveFZlY3Rvcik6CisgICAgICAgIChJbnRyaW5zaWNzKToKKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qczoKKyAgICAgICAgKGxldC5zdGFuZGFyZExpYnJh
cnkpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAobWFrZVNhbXBs
ZXIpOgorICAgICAgICAobWFrZTFEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMURUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMkRUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTNEVGV4dHVyZSk6CisgICAgICAgIChtYWtlVGV4dHVyZUN1YmUp
OgorICAgICAgICAobWFrZVJXMURUZXh0dXJlKToKKyAgICAgICAgKG1ha2VSVzFEVGV4dHVyZUFy
cmF5KToKKyAgICAgICAgKG1ha2VSVzJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlUlcyRFRleHR1
cmVBcnJheSk6CisgICAgICAgIChtYWtlUlczRFRleHR1cmUpOgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1RleHR1cmUuanM6IEFkZGVkLgorICAgICAgICAoVGV4dHVyZSk6Cisg
ICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQgZGltZW5zaW9uKToKKyAgICAgICAgKFRleHR1
cmUucHJvdG90eXBlLmdldCB3aWR0aCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aGVpZ2h0KToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkZXB0aCk6CisgICAgICAg
IChUZXh0dXJlLnByb3RvdHlwZS5nZXQgbGV2ZWxDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnBy
b3RvdHlwZS5nZXQgbGF5ZXJDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aW5uZXJUeXBlKToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkYXRhKToKKyAgICAg
ICAgKFRleHR1cmUucHJvdG90eXBlLmVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUu
cHJvdG90eXBlLnNldEVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUxRCk6CisgICAg
ICAgIChUZXh0dXJlMUQucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJl
MUQucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlw
ZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlwZS5lbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUxRC5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0
dXJlMURBcnJheSk6CisgICAgICAgIChUZXh0dXJlMURBcnJheS5wcm90b3R5cGUud2lkdGhBdExl
dmVsKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToK
KyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTFEQXJyYXkucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTFE
QXJyYXkucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEKToKKyAgICAg
ICAgKFRleHR1cmUyRC5wcm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUy
RC5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBl
LmRlcHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBlLmVsZW1lbnQpOgor
ICAgICAgICAoVGV4dHVyZTJELnByb3RvdHlwZS5zZXRFbGVtZW50KToKKyAgICAgICAgKFRleHR1
cmUyREFycmF5KToKKyAgICAgICAgKFRleHR1cmUyREFycmF5LnByb3RvdHlwZS53aWR0aEF0TGV2
ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgor
ICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMkRBcnJheS5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMkRB
cnJheS5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlM0QpOgorICAgICAg
ICAoVGV4dHVyZTNELnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTNE
LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUuZWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0QucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVy
ZUN1YmUpOgorICAgICAgICAoVGV4dHVyZUN1YmUucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6Cisg
ICAgICAgIChUZXh0dXJlQ3ViZS5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlQ3ViZS5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmVDdWJl
LnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmVDdWJlLnByb3RvdHlwZS5zZXRF
bGVtZW50KToKKyAgICAgICAgKFRleHR1cmUxRFJXKToKKyAgICAgICAgKFRleHR1cmUxRFJXLnBy
b3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmhl
aWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmRlcHRoQXRMZXZl
bCk6CisgICAgICAgIChUZXh0dXJlMURSVy5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChU
ZXh0dXJlMURSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMURBcnJh
eVJXKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6
CisgICAgICAgIChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAg
ICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUx
REFycmF5UlcucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEUlcpOgor
ICAgICAgICAoVGV4dHVyZTJEUlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlMkRSVy5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkRS
Vy5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlw
ZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlwZS5zZXRFbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUyREFycmF5UlcpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5w
cm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90
eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90eXBlLmVsZW1l
bnQpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0RSVyk6CisgICAgICAgIChUZXh0dXJlM0RSVy5wcm90b3R5cGUud2lk
dGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVs
KToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTNEUlcucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTNEUlcu
cHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1RleHR1cmVPcGVyYXRpb25zLmpzOiBBZGRlZC4KKyAgICAgICAgKGRlcHRoQ29tcGFyZU9wZXJh
dGlvbik6CisgICAgICAgIChjb252ZXJzaW9uVG9SR0JBKToKKyAgICAgICAgKHByb2plY3Rpb25P
cGVyYXRpb24pOgorICAgICAgICAoY3ViZU1hcEZhY2VTZWxlY3Rpb24pOgorICAgICAgICAoY3Vi
ZU1hcENvb3JkaW5hdGVUcmFuc2Zvcm1hdGlvbik6CisgICAgICAgIChjdWJlTWFwRGVyaXZhdGl2
ZVRyYW5zZm9ybWF0aW9uKToKKyAgICAgICAgKHNjYWxlRmFjdG9yT3BlcmF0aW9uKToKKyAgICAg
ICAgKGxldmVsT2ZEZXRhaWxPcGVyYXRpb24pOgorICAgICAgICAobmVhcmVzdCk6CisgICAgICAg
IChpbWFnZUxldmVsU2VsZWN0aW9uKToKKyAgICAgICAgKHN0cnFhVG9VVldBVHJhbnNmb3JtYXRp
b24pOgorICAgICAgICAocm5lKToKKyAgICAgICAgKHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25B
bmRBcnJheUxheWVyU2VsZWN0aW9uKToKKyAgICAgICAgKGludGVnZXJUZXhlbENvb3JkaW5hdGVP
cGVyYXRpb25zKToKKyAgICAgICAgKG1pcnJvcik6CisgICAgICAgICh0cmFuc2Zvcm0pOgorICAg
ICAgICAod3JhcHBpbmdPcGVyYXRpb24pOgorICAgICAgICAodGV4ZWxHYXRoZXJpbmcpOgorICAg
ICAgICAoY29tcHV0ZVRhdS5yZWR1Y2UpOgorICAgICAgICAoY29tcHV0ZVRhdS5zaG91bGRCZUJv
cmRlcik6CisgICAgICAgIChjb21wdXRlVGF1LmFjY2Vzc0NvbG9yKToKKyAgICAgICAgKGNvbXB1
dGVUYXUpOgorICAgICAgICAodGV4ZWxGaWx0ZXJpbmcpOgorICAgICAgICAoc2FtcGxlVGV4dHVy
ZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAx
OC0wOS0wMSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW1dQRV0gMi4yMS45MSBmYWlscyB0byBidWlsZCB3aXRoIEVOQUJMRV9NSU5JQlJPV1NF
UgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCmluZGV4IDljMmEzNzE1MGMxZTk3NmI5
MjZjZmJlZTIzNDM3NTIwYThkZTRhNDcuLjkwZmM4NDEzYTY1MTIyNDQ2YmYwMWZkOTY3ZGQ2NTEz
OWEwZjg3ZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5q
cworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKQEAgLTUxLDYgKzUx
LDcgQEAgbG9hZCgiQnVpbHRpblZlY3RvckdldHRlci5qcyIpOwogbG9hZCgiQnVpbHRpblZlY3Rv
clNldHRlci5qcyIpOwogbG9hZCgiQ2FsbEV4cHJlc3Npb24uanMiKTsKIGxvYWQoIkNhbGxGdW5j
dGlvbi5qcyIpOworbG9hZCgiQ2FzdHMuanMiKTsKIGxvYWQoIkNoZWNrLmpzIik7CiBsb2FkKCJD
aGVja0xpdGVyYWxUeXBlcy5qcyIpOwogbG9hZCgiQ2hlY2tMb29wcy5qcyIpOwpAQCAtMTM4LDYg
KzEzOSw3IEBAIGxvYWQoIlJlc29sdmVUeXBlRGVmcy5qcyIpOwogbG9hZCgiUmV0dXJuLmpzIik7
CiBsb2FkKCJSZXR1cm5DaGVja2VyLmpzIik7CiBsb2FkKCJSZXR1cm5FeGNlcHRpb24uanMiKTsK
K2xvYWQoIlNhbXBsZXIuanMiKTsKIGxvYWQoIlN0YW5kYXJkTGlicmFyeS5qcyIpOwogbG9hZCgi
U3RhdGVtZW50Q2xvbmVyLmpzIik7CiBsb2FkKCJTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIik7CkBA
IC0xNTAsNiArMTUyLDggQEAgbG9hZCgiU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyIpOwog
bG9hZCgiU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIik7CiBsb2FkKCJTeW50
aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiKTsKIGxvYWQoIlRlcm5hcnlFeHBy
ZXNzaW9uLmpzIik7Citsb2FkKCJUZXh0dXJlLmpzIik7Citsb2FkKCJUZXh0dXJlT3BlcmF0aW9u
cy5qcyIpOwogbG9hZCgiVHJhcFN0YXRlbWVudC5qcyIpOwogbG9hZCgiVHlwZURlZi5qcyIpOwog
bG9hZCgiVHlwZURlZlJlc29sdmVyLmpzIik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9DYXN0cy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Nh
c3RzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFjYmIyZWEwMjg1MzViNDY3MDQyMzA5N2Y3YTViNTdjYWY2Yjhi
MWMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYXN0
cy5qcwpAQCAtMCwwICsxLDExNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworInVzZSBzdHJpY3QiOworCitmdW5jdGlvbiBjYXN0KHR5cGVkQXJyYXlDb25z
dHJ1Y3RvciwgbnVtYmVyKQoreworICAgIHZhciBhcnJheSA9IG5ldyB0eXBlZEFycmF5Q29uc3Ry
dWN0b3IoMSk7CisgICAgYXJyYXlbMF0gPSBudW1iZXI7CisgICAgcmV0dXJuIGFycmF5WzBdOwor
fQorCitmdW5jdGlvbiBiaXR3aXNlQ2FzdCh0eXBlZEFycmF5Q29uc3RydWN0b3IxLCB0eXBlZEFy
cmF5Q29uc3RydWN0b3IyLCB2YWx1ZSkKK3sKKyAgICBsZXQgdHlwZWRBcnJheTEgPSBuZXcgdHlw
ZWRBcnJheUNvbnN0cnVjdG9yMSgxKTsKKyAgICBsZXQgdHlwZWRBcnJheTIgPSBuZXcgdHlwZWRB
cnJheUNvbnN0cnVjdG9yMih0eXBlZEFycmF5MS5idWZmZXIpOworICAgIHR5cGVkQXJyYXkxWzBd
ID0gdmFsdWU7CisgICAgcmV0dXJuIHR5cGVkQXJyYXkyWzBdOworfQorCitmdW5jdGlvbiBjYXN0
VG9VY2hhcihudW1iZXIpCit7CisgICAgcmV0dXJuIG51bWJlciAmIDB4RkY7Cit9CisKK2Z1bmN0
aW9uIGNhc3RUb1VzaG9ydChudW1iZXIpCit7CisgICAgcmV0dXJuIG51bWJlciAmIDB4RkZGRjsK
K30KKworZnVuY3Rpb24gY2FzdFRvVWludChudW1iZXIpCit7CisgICAgcmV0dXJuIG51bWJlciA+
Pj4gMDsKK30KKworZnVuY3Rpb24gY2FzdFRvQ2hhcihudW1iZXIpCit7CisgICAgcmV0dXJuIGNh
c3QoSW50OEFycmF5LCBudW1iZXIpOworfQorCitmdW5jdGlvbiBjYXN0VG9TaG9ydChudW1iZXIp
Cit7CisgICAgcmV0dXJuIGNhc3QoSW50MTZBcnJheSwgbnVtYmVyKTsKK30KKworZnVuY3Rpb24g
Y2FzdFRvSW50KG51bWJlcikKK3sKKyAgICByZXR1cm4gbnVtYmVyIHwgMDsKK30KKworZnVuY3Rp
b24gY2FzdFRvSGFsZihudW1iZXIpCit7CisgICAgLy8gRklYTUU6IE1ha2UgdGhpcyBtYXRoIG9i
ZXkgSUVFRSA3NTQuCisgICAgaWYgKE51bWJlci5pc05hTihudW1iZXIpKQorICAgICAgIHJldHVy
biBudW1iZXIKKyAgICBpZiAobnVtYmVyID4gNjU1MDQpCisgICAgICAgIHJldHVybiBOdW1iZXIu
UE9TSVRJVkVfSU5GSU5JVFk7CisgICAgaWYgKG51bWJlciA8IC02NTUwNCkKKyAgICAgICAgcmV0
dXJuIE51bWJlci5ORUdBVElWRV9JTkZJTklUWTsKKyAgICBpZiAobnVtYmVyID4gMCAmJiBudW1i
ZXIgPCBNYXRoLnBvdygyLCAtMjQpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAobnVtYmVy
IDwgMCAmJiBudW1iZXIgPiAtTWF0aC5wb3coMiwgLTI0KSkKKyAgICAgICAgcmV0dXJuIC0wOwor
ICAgIGxldCBkb3VibGVBcnJheSA9IG5ldyBGbG9hdDY0QXJyYXkoMSk7CisgICAgbGV0IHVpbnRB
cnJheSA9IG5ldyBVaW50OEFycmF5KGRvdWJsZUFycmF5LmJ1ZmZlcik7CisgICAgZG91YmxlQXJy
YXlbMF0gPSBudW1iZXI7CisgICAgbGV0IHNpZ24gPSB1aW50QXJyYXlbN10gJiAweDgwOworICAg
IGxldCBleHBvbmVudCA9ICgodWludEFycmF5WzddICYgMHg3ZikgPDwgNCkgfCAoKHVpbnRBcnJh
eVs2XSAmIDB4ZjApID4+PiA0KTsKKyAgICBsZXQgc2lnbmlmaWNhbmQgPSAoKHVpbnRBcnJheVs2
XSAmIDB4MGYpIDw8IDYpIHwgKCh1aW50QXJyYXlbNV0gJiAweGZjKSA+Pj4gMik7CisKKyAgICBp
ZiAoKGV4cG9uZW50IC0gMTAyMykgPCAtMTQpIHsKKyAgICAgICAgZXhwb25lbnQgPSAwOworICAg
ICAgICBzaWduaWZpY2FuZCA9IChNYXRoLmFicyhudW1iZXIpICogTWF0aC5wb3coMiwgMjQpKSA+
Pj4gMDsKKyAgICAgICAgbGV0IHZhbHVlID0gTWF0aC5wb3coMiwgLTE0KSAqIHNpZ25pZmljYW5k
IC8gMTAyNDsKKyAgICAgICAgaWYgKHNpZ24gIT0gMCkKKyAgICAgICAgICAgIHZhbHVlICo9IC0x
OworICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorCisgICAgZG91YmxlQXJyYXlbMF0gPSAw
OworCisgICAgdWludEFycmF5WzddIHw9IHNpZ247CisgICAgdWludEFycmF5WzddIHw9IChleHBv
bmVudCA+Pj4gNCk7CisgICAgdWludEFycmF5WzZdIHw9ICgoZXhwb25lbnQgPDwgNCkgJiAweGYw
KTsKKyAgICB1aW50QXJyYXlbNl0gfD0gKHNpZ25pZmljYW5kID4+PiA2KTsKKyAgICB1aW50QXJy
YXlbNV0gfD0gKChzaWduaWZpY2FuZCA8PCAyKSAmIDB4ZmMpOworCisgICAgcmV0dXJuIGRvdWJs
ZUFycmF5WzBdOworfQorCitmdW5jdGlvbiBjYXN0VG9GbG9hdChudW1iZXIpCit7CisgICAgcmV0
dXJuIE1hdGguZnJvdW5kKG51bWJlcik7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvSW50cmluc2ljcy5qcwppbmRleCBiMDA0MDY3ZjVlYmZiM2E4YjRiZDk4ZTQzN2E4YzA3Njhi
ZTI2ZjFlLi4xNTVjZTM0NDA1ODM0YWQ3NmQ5YmM5ZWQ4NzUxYjY3ODQwYjNiOWJjIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCisrKyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMKQEAgLTQ4LDYxICs0OCw2
IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KIAotICAgICAgICBmdW5jdGlvbiBjYXN0KHR5cGVkQXJyYXlDb25zdHJ1Y3RvciwgbnVtYmVy
KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgYXJyYXkgPSBuZXcgdHlwZWRBcnJheUNvbnN0
cnVjdG9yKDEpOwotICAgICAgICAgICAgYXJyYXlbMF0gPSBudW1iZXI7Ci0gICAgICAgICAgICBy
ZXR1cm4gYXJyYXlbMF07Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBiaXR3aXNlQ2Fz
dCh0eXBlZEFycmF5Q29uc3RydWN0b3IxLCB0eXBlZEFycmF5Q29uc3RydWN0b3IyLCB2YWx1ZSkK
LSAgICAgICAgewotICAgICAgICAgICAgbGV0IHR5cGVkQXJyYXkxID0gbmV3IHR5cGVkQXJyYXlD
b25zdHJ1Y3RvcjEoMSk7Ci0gICAgICAgICAgICBsZXQgdHlwZWRBcnJheTIgPSBuZXcgdHlwZWRB
cnJheUNvbnN0cnVjdG9yMih0eXBlZEFycmF5MS5idWZmZXIpOwotICAgICAgICAgICAgdHlwZWRB
cnJheTFbMF0gPSB2YWx1ZTsKLSAgICAgICAgICAgIHJldHVybiB0eXBlZEFycmF5MlswXTsKLSAg
ICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIGNhc3RUb0hhbGYobnVtYmVyKQotICAgICAgICB7
Ci0gICAgICAgICAgICAvLyBGSVhNRTogTWFrZSB0aGlzIG1hdGggb2JleSBJRUVFIDc1NC4KLSAg
ICAgICAgICAgIGlmIChOdW1iZXIuaXNOYU4obnVtYmVyKSkKLSAgICAgICAgICAgICAgIHJldHVy
biBudW1iZXIKLSAgICAgICAgICAgIGlmIChudW1iZXIgPiA2NTUwNCkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOwotICAgICAgICAgICAgaWYgKG51bWJl
ciA8IC02NTUwNCkKLSAgICAgICAgICAgICAgICByZXR1cm4gTnVtYmVyLk5FR0FUSVZFX0lORklO
SVRZOwotICAgICAgICAgICAgaWYgKG51bWJlciA+IDAgJiYgbnVtYmVyIDwgTWF0aC5wb3coMiwg
LTI0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIGlmIChudW1iZXIg
PCAwICYmIG51bWJlciA+IC1NYXRoLnBvdygyLCAtMjQpKQotICAgICAgICAgICAgICAgIHJldHVy
biAtMDsKLSAgICAgICAgICAgIGxldCBkb3VibGVBcnJheSA9IG5ldyBGbG9hdDY0QXJyYXkoMSk7
Ci0gICAgICAgICAgICBsZXQgdWludEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoZG91YmxlQXJyYXku
YnVmZmVyKTsKLSAgICAgICAgICAgIGRvdWJsZUFycmF5WzBdID0gbnVtYmVyOwotICAgICAgICAg
ICAgbGV0IHNpZ24gPSB1aW50QXJyYXlbN10gJiAweDgwOwotICAgICAgICAgICAgbGV0IGV4cG9u
ZW50ID0gKCh1aW50QXJyYXlbN10gJiAweDdmKSA8PCA0KSB8ICgodWludEFycmF5WzZdICYgMHhm
MCkgPj4+IDQpOwotICAgICAgICAgICAgbGV0IHNpZ25pZmljYW5kID0gKCh1aW50QXJyYXlbNl0g
JiAweDBmKSA8PCA2KSB8ICgodWludEFycmF5WzVdICYgMHhmYykgPj4+IDIpOwotCi0gICAgICAg
ICAgICBpZiAoKGV4cG9uZW50IC0gMTAyMykgPCAtMTQpIHsKLSAgICAgICAgICAgICAgICBleHBv
bmVudCA9IDA7Ci0gICAgICAgICAgICAgICAgc2lnbmlmaWNhbmQgPSAoTWF0aC5hYnMobnVtYmVy
KSAqIE1hdGgucG93KDIsIDI0KSkgPj4+IDA7Ci0gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0g
TWF0aC5wb3coMiwgLTE0KSAqIHNpZ25pZmljYW5kIC8gMTAyNDsKLSAgICAgICAgICAgICAgICBp
ZiAoc2lnbiAhPSAwKQotICAgICAgICAgICAgICAgICAgICB2YWx1ZSAqPSAtMTsKLSAgICAgICAg
ICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGRvdWJs
ZUFycmF5WzBdID0gMDsKLQotICAgICAgICAgICAgdWludEFycmF5WzddIHw9IHNpZ247Ci0gICAg
ICAgICAgICB1aW50QXJyYXlbN10gfD0gKGV4cG9uZW50ID4+PiA0KTsKLSAgICAgICAgICAgIHVp
bnRBcnJheVs2XSB8PSAoKGV4cG9uZW50IDw8IDQpICYgMHhmMCk7Ci0gICAgICAgICAgICB1aW50
QXJyYXlbNl0gfD0gKHNpZ25pZmljYW5kID4+PiA2KTsKLSAgICAgICAgICAgIHVpbnRBcnJheVs1
XSB8PSAoKHNpZ25pZmljYW5kIDw8IDIpICYgMHhmYyk7Ci0KLSAgICAgICAgICAgIHJldHVybiBk
b3VibGVBcnJheVswXTsKLSAgICAgICAgfQotCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAg
ICAgICAgICAibmF0aXZlIHR5cGVkZWYgdm9pZCIsCiAgICAgICAgICAgICB0eXBlID0+IHsKQEAg
LTEyOCwxNSArNzMsMTUgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgdHlw
ZS5pc0ludCA9IHRydWU7CiAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHR5
cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudCh2YWx1ZSAmIDB4
ZmYsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+
IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvVWNoYXIodmFsdWUpLCB2YWx1ZSk7CiAgICAgICAg
ICAgICAgICAgdHlwZS5zaXplID0gMTsKICAgICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1
ZSA9IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFs
dWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2YWx1ZSAmIDB4ZmYsIHR5cGUpOwot
ICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiAodmFsdWUgKyAx
KSAmIDB4ZmY7CisgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwg
dmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBjYXN0VG9VY2hhcih2YWx1ZSks
IHR5cGUpOworICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBj
YXN0VG9VY2hhcih2YWx1ZSArIDEpOwogICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwg
PSAoYSwgYikgPT4gYSA9PT0gYjsKICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVs
dFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7Ci0gICAg
ICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFs
dWUgJiAweGZmOwotICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVy
YWwgPSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmY7CisgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRW
YWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvVWNoYXIodmFsdWUpOworICAgICAg
ICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0
VG9VY2hhcih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlv
biooKSB7CiAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmY7ICsr
aSkKICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogaSwgbmFtZTogaX07CkBA
IC0xNTIsMTUgKzk3LDE1IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICB0
eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7
CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAg
ICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVl
ICYgMHhmZmZmLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0g
dmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0VG9Vc2hvcnQodmFsdWUpLCB2YWx1ZSk7
CiAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAgICAgIHR5cGUu
ZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0g
KG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2YWx1ZSAmIDB4
ZmZmZiwgdHlwZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1
ZSA9PiAodmFsdWUgKyAxKSAmIDB4ZmZmZjsKKyAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVM
aXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBj
YXN0VG9Vc2hvcnQodmFsdWUpLCB0eXBlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNz
b3JWYWx1ZSA9IHZhbHVlID0+IGNhc3RUb1VzaG9ydCh2YWx1ZSArIDEpOwogICAgICAgICAgICAg
ICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7CiAgICAgICAgICAgICAg
ICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZl
ci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21J
bnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAweGZmZmY7Ci0gICAgICAgICAgICAgICAgIHR5
cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmZmZjsK
KyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUg
PT4gY2FzdFRvVXNob3J0KHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1
ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb1VzaG9ydCh2YWx1ZSk7CiAgICAgICAg
ICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVuY3Rpb24qKCkgewogICAgICAgICAgICAgICAg
ICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhmZmZmOyArK2kpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgeWllbGQge3ZhbHVlOiBpLCBuYW1lOiBpfTsKQEAgLTE3NSwxNSArMTIwLDE1IEBA
IGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsK
ICAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAgICAgICAg
IHR5cGUuaXNTaWduZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNl
bnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVlID4+PiAwLCB2YWx1ZSk7Cisg
ICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1
aXZhbGVudChjYXN0VG9VaW50KHZhbHVlKSwgdmFsdWUpOwogICAgICAgICAgICAgICAgICB0eXBl
LnNpemUgPSAxOwogICAgICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAg
ICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRM
aXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgdmFsdWUgPj4+IDAsIHR5cGUpOwotICAgICAgICAgICAg
ICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gKHZhbHVlICsgMSkgPj4+IDA7Cisg
ICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJ
bnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2FzdFRvVWludCh2YWx1ZSksIHR5cGUpOworICAg
ICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdFRvVWludCh2
YWx1ZSArIDEpOwogICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+
IGEgPT09IGI7CiAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAo
YnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAg
ICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgPj4+IDA7
Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1
ZSA9PiB2YWx1ZSA+Pj4gMDsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21J
bnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvVWludCh2YWx1ZSk7CisgICAgICAgICAgICAgICAg
IHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9VaW50KHZh
bHVlKTsKICAgICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7CiAg
ICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSAweGZmZmZmZmZmOyArK2kp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVlOiBpLCBuYW1lOiBpfTsKQEAg
LTE5OCwxOCArMTQzLDE4IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICB0
eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7
CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSB0cnVlOwotICAgICAgICAgICAgICAg
ICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdChJ
bnQ4QXJyYXksIHZhbHVlKSwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJl
c2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvQ2hhcih2YWx1ZSksIHZh
bHVlKTsKICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKICAgICAgICAgICAgICAgICAg
dHlwZS5kZWZhdWx0VmFsdWUgPSAwOwotICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVy
YWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3Qo
SW50OEFycmF5LCB2YWx1ZSksIHR5cGUpOwotICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3Nv
clZhbHVlID0gdmFsdWUgPT4gY2FzdChJbnQ4QXJyYXksIHZhbHVlICsgMSk7CisgICAgICAgICAg
ICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFs
LndpdGhUeXBlKG9yaWdpbiwgY2FzdFRvQ2hhcih2YWx1ZSksIHR5cGUpOworICAgICAgICAgICAg
ICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdFRvQ2hhcih2YWx1ZSArIDEp
OwogICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7
CiAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBv
ZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5m
b3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdChJbnQ4QXJyYXksIHZhbHVl
KTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZh
bHVlID0+IGNhc3QoSW50OEFycmF5LCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9y
bWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb0NoYXIodmFsdWUpOworICAg
ICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4g
Y2FzdFRvQ2hhcih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVu
Y3Rpb24qKCkgewogICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhm
ZjsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gY2FzdChJbnQ4
QXJyYXksIGkpOworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGNhc3RUb0No
YXIoaSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVlOiB2YWx1ZSwgbmFt
ZTogdmFsdWV9OwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9OwpA
QCAtMjIzLDE4ICsxNjgsMTggQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAg
IHR5cGUuaXNJbnQgPSB0cnVlOwogICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1
ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IHRydWU7Ci0gICAgICAgICAgICAg
ICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0
KEludDE2QXJyYXksIHZhbHVlKSwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJl
cHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvU2hvcnQodmFsdWUp
LCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAg
ICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVM
aXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBj
YXN0KEludDE2QXJyYXksIHZhbHVlKSwgdHlwZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuc3Vj
Y2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0KEludDE2QXJyYXksIHZhbHVlICsgMSk7CisgICAg
ICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRM
aXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2FzdFRvU2hvcnQodmFsdWUpLCB0eXBlKTsKKyAgICAg
ICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+IGNhc3RUb1Nob3J0KHZh
bHVlICsgMSk7CiAgICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4g
YSA9PT0gYjsKICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChi
dWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOwotICAgICAgICAgICAgICAg
ICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0KEludDE2QXJy
YXksIHZhbHVlKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0
ZXJhbCA9IHZhbHVlID0+IGNhc3QoSW50MTZBcnJheSwgdmFsdWUpOworICAgICAgICAgICAgICAg
ICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9TaG9ydCh2
YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwg
PSB2YWx1ZSA9PiBjYXN0VG9TaG9ydCh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuYWxs
VmFsdWVzID0gZnVuY3Rpb24qKCkgewogICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9
IDA7IGkgPD0gMHhmZmZmOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFs
dWUgPSBjYXN0KEludDE2QXJyYXksIGkpOworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2
YWx1ZSA9IGNhc3RUb1Nob3J0KGkpOwogICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2
YWx1ZTogdmFsdWUsIG5hbWU6IHZhbHVlfTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgfTsKQEAgLTI0OCwxOCArMTkzLDE4IEBAIGNsYXNzIEludHJpbnNpY3Mgewog
ICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlw
ZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSB0cnVl
OwotICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lz
ZUVxdWl2YWxlbnQodmFsdWUgfCAwLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuY2Fu
UmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0VG9JbnQodmFsdWUp
LCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAg
ICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVM
aXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2
YWx1ZSB8IDAsIHR5cGUpOwotICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0g
dmFsdWUgPT4gKHZhbHVlICsgMSkgfCAwOworICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxp
dGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNh
c3RUb0ludCh2YWx1ZSksIHR5cGUpOworICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZh
bHVlID0gdmFsdWUgPT4gY2FzdFRvSW50KHZhbHVlICsgMSk7CiAgICAgICAgICAgICAgICAgIHR5
cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKICAgICAgICAgICAgICAgICAgdHlw
ZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChv
ZmZzZXQsIDApOwotICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVy
YWwgPSB2YWx1ZSA9PiB2YWx1ZSB8IDA7Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFs
dWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSB8IDA7CisgICAgICAgICAgICAgICAg
IHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb0ludCh2YWx1
ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2
YWx1ZSA9PiBjYXN0VG9JbnQodmFsdWUpOwogICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVl
cyA9IGZ1bmN0aW9uKigpIHsKICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBp
IDw9IDB4ZmZmZmZmZmY7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1
ZSA9IGkgfCAwOworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGNhc3RUb0lu
dChpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IHZhbHVlLCBuYW1l
OiB2YWx1ZX07CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH07CkBA
IC0yOTIsNyArMjM3LDcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgIHR5
cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQo
b2Zmc2V0LCAwKTsKICAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRl
cmFsID0gdmFsdWUgPT4gdmFsdWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVG
cm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5m
b3JtYXRWYWx1ZUZyb21GbG9hdExpdGVyYWwgPSB2YWx1ZSA9PiBNYXRoLmZyb3VuZCh2YWx1ZSk7
CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tRmxvYXRMaXRlcmFsID0gdmFs
dWUgPT4gY2FzdFRvRmxvYXQodmFsdWUpOwogICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCkBAIC0zMzAsNyArMjc1LDggQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAg
ICAgICAgICAibmF0aXZlIHR5cGVkZWYgc2FtcGxlciIsCiAgICAgICAgICAgICB0eXBlID0+IHsK
ICAgICAgICAgICAgICAgICB0aGlzLnNhbXBsZXIgPSB0eXBlOwotICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gcHV0IGhlcmUuCisgICAgICAgICAgICAgICAgdHlw
ZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0g
KGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAg
fSk7CiAKICAgICAgICAgZm9yIChsZXQgdGV4dHVyZVR5cGUgb2YgWyJUZXh0dXJlMUQiLCAiUldU
ZXh0dXJlMUQiLCAiVGV4dHVyZTFEQXJyYXkiLCAiUldUZXh0dXJlMURBcnJheSIsICJUZXh0dXJl
MkQiLCAiUldUZXh0dXJlMkQiLCAiVGV4dHVyZTJEQXJyYXkiLCAiUldUZXh0dXJlMkRBcnJheSIs
ICJUZXh0dXJlM0QiLCAiUldUZXh0dXJlM0QiLCAiVGV4dHVyZUN1YmUiXSkgewpAQCAtMzM5LDEy
ICsyODUsMTYgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgdHlwZWRlZiAke3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YCwKICAgICAgICAgICAg
ICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1
cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAg
ICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVE
ZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCB7fSk7
CiAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAy
OyBpIDw9IDQ7ICsraSkgewogICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAg
ICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlw
ZUFyZ3VtZW50fSR7aX0+YCwKICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3Vt
ZW50fSR7aX0+YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUuc2l6
ZSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRW
YWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIHt9KTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
QEAgLTM1Niw2ICszMDYsOCBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gLAogICAg
ICAgICAgICAgICAgICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNb
YCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gXSA9IHR5cGU7CisgICAgICAgICAgICAg
ICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5w
b3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZz
ZXQsIHt9KTsKICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KQEAgLTM2NCw3ICszMTYsNyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCiAgICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciB1Y2hhcigke3By
aW1pdGl2ZVR5cGV9KWAsCiAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUu
bG9hZFZhbHVlKCkgJiAweGZmKTsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9VY2hhcih2YWx1ZS5sb2FkVmFsdWUo
KSkpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKQEAgLTM3Miw3ICszMjQsNyBA
QCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciB1c2hvcnQoJHtwcmltaXRpdmVUeXBlfSlgLAogICAg
ICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpICYgMHhmZmZm
KTsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PiBFUHRyLmJveChjYXN0VG9Vc2hvcnQodmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfQogCkBAIC0zODAsNyArMzMyLDcgQEAgY2xhc3MgSW50cmluc2lj
cyB7CiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgICAgIGBuYXRpdmUg
b3BlcmF0b3IgdWludCgke3ByaW1pdGl2ZVR5cGV9KWAsCiAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkg
PT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgPj4+IDApOworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb1VpbnQo
dmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgfQogCkBA
IC0zODgsNyArMzQwLDcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAogICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgY2hhcigke3ByaW1pdGl2
ZVR5cGV9KWAsCiAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdChJbnQ4QXJy
YXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdFRvQ2hhcih2YWx1ZS5sb2FkVmFs
dWUoKSkpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKQEAgLTM5Niw3ICszNDgs
NyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciBzaG9ydCgke3ByaW1pdGl2ZVR5cGV9KWAsCiAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdChJbnQxNkFycmF5LCB2YWx1ZS5s
b2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb1Nob3J0KHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KIApAQCAtNDIwLDcgKzM3Miw3IEBAIGNsYXNz
IEludHJpbnNpY3MgewogICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICAg
ICBgbmF0aXZlIG9wZXJhdG9yIGZsb2F0KCR7cHJpbWl0aXZlVHlwZX0pYCwKICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PiBFUHRyLmJveChNYXRoLmZyb3VuZCh2YWx1ZS5sb2FkVmFsdWUoKSkpOwor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQ
dHIuYm94KGNhc3RUb0Zsb2F0KHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0KIApAQCAtNDg0LDI5MiArNDM2LDI5MiBAQCBjbGFzcyBJbnRyaW5zaWNz
IHsKICAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yLShpbnQpIiwKICAgICAgICAgICAg
IGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVl
XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKC12YWx1ZS5sb2FkVmFsdWUoKSkg
fCAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KC12YWx1ZS5sb2Fk
VmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAg
ICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3ItKGZsb2F0KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0p
ID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKC12YWx1ZS5sb2Fk
VmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdCgtdmFs
dWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcisoaW50LGludCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
bGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2Fk
VmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAg
Im5hdGl2ZSBpbnQgb3BlcmF0b3ItKGludCxpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewog
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5s
b2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50
KGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7
CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJh
dG9yKihpbnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgp
ICogcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMu
X21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvci8oaW50LGludCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVm
dC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAg
ICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1
ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAg
ICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yKyh1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1
bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJp
Z2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkg
KyByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChjYXN0VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFsdWUoKSkpOwogICAg
ICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRp
dmUgdWludCBvcGVyYXRvci0odWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0g
ICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9h
ZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWlu
dChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3Bl
cmF0b3IqKHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+
Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2Fk
VmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yLyh1aW50
LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgLyBy
aWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFw
LnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3IrKGZsb2F0LGZsb2F0KSIs
CiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1h
dGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFsdWUoKSkpOworICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChsZWZ0LmxvYWRWYWx1ZSgpICsgcmln
aHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yLShmbG9hdCxmbG9hdCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRo
LmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQobGVmdC5sb2FkVmFsdWUoKSAtIHJpZ2h0
LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0
KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvciooZmxvYXQsZmxvYXQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5s
b2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgK
ICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3IvKGZsb2F0LGZsb2F0KSIsCiAgICAg
ICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJv
dW5kKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChsZWZ0LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9h
ZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAg
ICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvciYoaW50LGludCkiLAogICAgICAgICAgICAg
ZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwg
cmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUo
KSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAg
ICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2
ZSBpbnQgb3BlcmF0b3J8KGludCxpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgfCByaWdodC5sb2FkVmFs
dWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQu
bG9hZFZhbHVlKCkgfCByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yXihp
bnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmln
aHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcn4oaW50KSIsCiAgICAgICAgICAg
ICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1
ZV0pID0+IEVQdHIuYm94KCh+dmFsdWUubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9JbnQo
fnZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9t
YXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3I8PChpbnQsdWludCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVm
dC5sb2FkVmFsdWUoKSA8PCByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZh
bHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAg
ICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcj4+KGludCx1aW50KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCBy
aWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgp
ID4+IHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSA+PiByaWdodC5sb2FkVmFsdWUoKSkpOwogICAg
ICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRp
dmUgdWludCBvcGVyYXRvciYodWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0g
ICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICYgcmlnaHQubG9h
ZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWlu
dChsZWZ0LmxvYWRWYWx1ZSgpICYgcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3Bl
cmF0b3J8KHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSB8IHJpZ2h0LmxvYWRWYWx1ZSgpKSA+
Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2Fk
VmFsdWUoKSB8IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yXih1aW50
LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgXiByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgXiBy
aWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFw
LnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcn4odWludCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
dmFsdWVdKSA9PiBFUHRyLmJveCgofnZhbHVlLmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0
VG9VaW50KH52YWx1ZS5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAg
dGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcjw8KHVpbnQs
dWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRy
LmJveCgobGVmdC5sb2FkVmFsdWUoKSA8PCByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgPDwg
cmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21h
cC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3I+Pih1aW50LHVpbnQpIiwK
ICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxl
ZnQubG9hZFZhbHVlKCkgPj4+IHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSA+Pj4gcmlnaHQu
bG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQo
CiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNvcyhmbG9hdCkiLAogICAgICAgICAgICAgZnVu
YyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmNvcyh2YWx1
ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxv
YXQoTWF0aC5jb3ModmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAg
ICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBzaW4oZmxvYXQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQoTWF0aC5zaW4odmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguc2luKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAg
ICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRp
dmUgZmxvYXQgdGFuKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgudGFuKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLnRhbih2YWx1ZS5s
b2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQo
CiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGFjb3MoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1
bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5hY29zKHZh
bHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9G
bG9hdChNYXRoLmFjb3ModmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAog
ICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBhc2luKGZs
b2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1h
dGguZnJvdW5kKE1hdGguYXNpbih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5hc2luKHZhbHVlLmxvYWRWYWx1ZSgpKSkp
OwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAg
ICJuYXRpdmUgZmxvYXQgYXRhbihmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmF0YW4odmFsdWUubG9hZFZhbHVl
KCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguYXRh
bih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMu
X21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNvc2goZmxvYXQpIiwKICAgICAg
ICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0
aC5jb3NoKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChjYXN0VG9GbG9hdChNYXRoLmNvc2godmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAg
ICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9h
dCBzaW5oKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KE1hdGguZnJvdW5kKE1hdGguc2luaCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5zaW5oKHZhbHVlLmxvYWRW
YWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAg
ICAgICAgICAgICJuYXRpdmUgZmxvYXQgdGFuaChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9
PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9Pgot
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnRhbmgodmFsdWUu
bG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0
KE1hdGgudGFuaCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNlaWwoZmxvYXQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQoTWF0aC5jZWlsKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLmNlaWwodmFsdWUubG9hZFZhbHVlKCkpKSk7CiAg
ICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5h
dGl2ZSBmbG9hdCBleHAoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5leHAodmFsdWUubG9hZFZhbHVlKCkpKSk7
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguZXhwKHZhbHVl
LmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgZmxvb3IoZmxvYXQpIiwKICAgICAgICAgICAg
IGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVl
XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5mbG9v
cih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2Fz
dFRvRmxvYXQoTWF0aC5mbG9vcih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGxv
ZyhmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChNYXRoLmZyb3VuZChNYXRoLmxvZyh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5sb2codmFsdWUubG9hZFZhbHVlKCkp
KSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAg
ICAgIm5hdGl2ZSBmbG9hdCByb3VuZChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnJvdW5kKHZhbHVlLmxvYWRW
YWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRo
LnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAg
dGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgc3FydChmbG9hdCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3Vu
ZChNYXRoLnNxcnQodmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguc3FydCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAg
ICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZl
IGZsb2F0IHRydW5jKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgudHJ1bmModmFsdWUubG9hZFZhbHVlKCkpKSk7
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgudHJ1bmModmFs
dWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAu
c2V0KApAQCAtNzg4LDcgKzc0MCw3IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAg
Im5hdGl2ZSBmbG9hdCBwb3coZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewog
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5wb3cobGVmdC5s
b2FkVmFsdWUoKSwgcmlnaHQubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgucG93KGxlZnQubG9hZFZhbHVlKCksIHJpZ2h0LmxvYWRW
YWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKQEAg
LTgzMiw3ICs3ODQsNyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICJuYXRpdmUg
ZmxvYXQgYXRhbjIoZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5hdGFuMihsZWZ0LmxvYWRW
YWx1ZSgpLCByaWdodC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goY2FzdFRvRmxvYXQoTWF0aC5hdGFuMihsZWZ0LmxvYWRWYWx1ZSgpLCByaWdodC5sb2FkVmFs
dWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCkBAIC05
MTQsNiArODY2LDEzODggQEAgY2xhc3MgSW50cmluc2ljcyB7CiAKICAgICAgICAgZm9yIChsZXQg
c2V0dGVyIG9mIEJ1aWx0aW5NYXRyaXhTZXR0ZXIuZnVuY3Rpb25zKCkpCiAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KHNldHRlci50b1N0cmluZygpLCBmdW5jID0+IHNldHRlci5pbnN0YW50aWF0
ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsKKworICAgICAgICBmdW5jdGlvbiBjaGVja1VuZGVmaW5l
ZChvcmlnaW4sIGV4cGxhbmF0aW9uLCB2YWx1ZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYg
KHZhbHVlID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJv
cigiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIik7CisgICAgICAgICAgICBy
ZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja0ZhbHNlKG9y
aWdpbiwgZXhwbGFuYXRpb24sIHZhbHVlKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAodmFs
dWUgPT0gZmFsc2UpCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltTdG9y
ZV0iLCAiVGV4dHVyZSBzdG9yZSBvdXQgb2YgYm91bmRzIik7CisgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiBib3hWZWN0b3IoYSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGEgaW5z
dGFuY2VvZiBBcnJheSkgeworICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgRVB0cihu
ZXcgRUJ1ZmZlcihhLmxlbmd0aCksIDApOworICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAw
OyBpIDwgYS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNldChpLCBh
W2ldKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KGEpOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gdW5ib3hWZWN0b3IoYSwgbGVuZ3RoKQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAobGVuZ3RoICE9ICIiKSB7CisgICAgICAgICAgICAgICAgbGVuZ3RoID0gTnVtYmVyLnBh
cnNlSW50KGxlbmd0aCk7CisgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IFtdOworICAgICAg
ICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdC5wdXNoKGEuZ2V0KGkpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIGEubG9hZFZh
bHVlKCk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFsidWNoYXIiLCAi
dXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9ydCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJd
KSB7CisgICAgICAgICAgICBmb3IgKHZhciBsZW5ndGhWYXJpYWJsZSBvZiBbYGAsIGAyYCwgYDNg
LCBgNGBdKSB7CisgICAgICAgICAgICAgICAgbGV0IGxlbmd0aCA9IGxlbmd0aFZhcmlhYmxlOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmxvYWRWYWx1ZSgpLCAwLCAwLCAxLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxRDwke3R5cGV9JHts
ZW5ndGh9PixzYW1wbGVyLGZsb2F0IGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24ubG9hZFZhbHVlKCksIDAsIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5sb2FkVmFsdWUoKSwgMCwgMF07CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUu
bG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJy
YXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixpbnQy
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihj
aGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4
dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAs
IGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTFEPCR7dHlw
ZX0ke2xlbmd0aH0+LGludDIgbG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRd
IiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVt
ZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSArIG9m
ZnNldC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPCR7dHlwZX0k
e2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBO
dW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
bWlwbGV2ZWwsIHdpZHRoLCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9u
c10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
bGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxREFycmF5
PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQo
MCksIDAsIDAsIDEsIGxvY2F0aW9uLmdldCgxKV07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IFNhbXBsZShUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0
MiBsb2NhdGlvbixpbnQgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgMCwgMCwgMSwg
bG9jYXRpb24uZ2V0KDEpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFB
cnJheSA9IFtvZmZzZXQubG9hZFZhbHVlKCksIDAsIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gTG9hZChUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1Vu
ZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5s
b2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMCwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJl
MURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRl
ZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9h
ZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSks
IDAsIDAsIGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERp
bWVuc2lvbnMoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1
aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEVsZW1lbnRzLHVpbnQqIHRocmVhZCBOdW1i
ZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlw
bGV2ZWwsIHdpZHRoLCBlbGVtZW50cywgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERp
bWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVy
ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxl
dmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2Ft
cGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTJEPCR7
dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
b2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5
ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZz
ZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVj
dG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUo
KSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJpYXMo
VGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0
IEJpYXMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJE
PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMsaW50
MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSks
IDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0g
W29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxv
YWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSlgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCks
IGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hW
ZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1
ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFy
cmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlR3JhZChU
ZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQy
IEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5n
ZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0
KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtv
ZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwg
c2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVk
LCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVu
Z3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDIgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0
KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVj
dG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUo
KSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxl
TGV2ZWwoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9u
LGZsb2F0IExPRCxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0XSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9j
YXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
ZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVy
ZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFB
cnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1
bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
MCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcih0
ZXhlbEdhdGhlcmluZyh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBs
b2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyRDwke3R5
cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAg
ICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9m
ZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9
IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0
LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rv
cih0ZXhlbEdhdGhlcmluZyh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJl
MkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdl
dCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKHRleGVsR2F0aGVyaW5nKHRleHR1cmUubG9hZFZhbHVlKCks
IHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJSZWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxv
Y2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0
KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJh
eSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHRleGVsR2F0aGVyaW5nKHRleHR1cmUubG9hZFZh
bHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjIiIHx8IGxlbmd0aCA9PSAiMyIgfHwgbGVuZ3Ro
ID09ICI0IikgeworICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkQ8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0
aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcih0ZXhlbEdhdGhlcmluZyh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAx
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9
JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRp
b25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5n
ZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKHRleGVsR2F0aGVyaW5nKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAxKSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjMiIHx8IGxlbmd0aCA9PSAiNCIpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyRDwke3R5cGV9JHts
ZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcih0ZXhlbEdhdGhlcmluZyh0
ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCAyKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJCbHVlKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlv
bixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5n
ZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0
KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hW
ZWN0b3IodGV4ZWxHYXRoZXJpbmcodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFs
dWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDIpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiNCIpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Pixz
YW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkg
PSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IodGV4ZWxHYXRo
ZXJpbmcodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgMykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9
PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcih0ZXhlbEdh
dGhlcmluZyh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlv
bkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgMykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4saW50MyBs
b2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0
aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hl
Y2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1
cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDIpLCAwLCBsb2Nh
dGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4
dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LGludDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRl
ZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9h
ZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDIpLCAwLCBsb2NhdGlvbi5n
ZXQoMSkgKyBvZmZzZXQuZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZzZXQuZ2V0KDApKSkp
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
IHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sdWludCBNaXBM
ZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQg
TnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0
RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0
dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHRBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRl
eC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291
bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMkRBcnJheTwke3R5cGV9
JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2Nh
dGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEp
LCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBs
ZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRp
b25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJE
QXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlh
cylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9u
QXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9u
LmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihz
YW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxv
Y2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgYmlhcy5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVCaWFz
KFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
LGZsb2F0IEJpYXMsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBs
b2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgx
KSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1w
bGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0
aW9uQXJyYXksIGRlbHRhQXJyYXksIGJpYXMubG9hZFZhbHVlKCksIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlR3JhZChU
ZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixm
bG9hdDIgRERYLGZsb2F0MiBERFkpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeV0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9u
LmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQo
MSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2Ft
cGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlR3JhZChUZXh0dXJlMkRB
cnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdDIgRERY
LGZsb2F0MiBERFksaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeSwgb2Zmc2V0XSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5LmdldCgw
KSwgZGR5LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRh
QXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9h
ZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXks
IHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0ke2xlbmd0aH0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3Ro
fT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxvZC5sb2FkVmFsdWUoKSwgdW5kZWZp
bmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkRBcnJheTwke3R5cGV9
JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QsaW50MiBvZmZzZXQp
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uLCBsb2QsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9j
YXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9j
YXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJh
eSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFs
dWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAx
LCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
b3hWZWN0b3IodGV4ZWxHYXRoZXJpbmcodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0
dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQy
IG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwg
bG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFB
cnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHRleGVsR2F0aGVyaW5nKHRleHR1cmUubG9h
ZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXks
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAw
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
MCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm94VmVjdG9yKHRleGVsR2F0aGVyaW5nKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIu
bG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJS
ZWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSks
IDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcih0ZXhlbEdhdGhlcmluZyh0ZXh0
dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0
YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgMCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09ICIyIiB8fCBsZW5ndGggPT0gIjMi
IHx8IGxlbmd0aCA9PSAiNCIpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4
dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlv
bkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlv
bi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVj
dG9yKHRleGVsR2F0aGVyaW5nKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVl
KCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDEpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0
KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9m
ZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ym94VmVjdG9yKHRleGVsR2F0aGVyaW5nKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9h
ZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAxKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgICAgIGlmIChsZW5ndGggPT0gIjMiIHx8IGxlbmd0aCA9PSAiNCIpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0
aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IodGV4ZWxH
YXRoZXJpbmcodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRp
b25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgMikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJh
eSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0
KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5
ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcih0ZXhlbEdhdGhlcmluZyh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFy
cmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgMikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09
ICI0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEo
VGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHRleGVsR2F0aGVyaW5nKHRleHR1cmUubG9h
ZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDMp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJBbHBoYShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9m
ZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9j
YXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9j
YXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHRleGVs
R2F0aGVyaW5nKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0
aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCA0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+
LGludDQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVj
dG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMi
LCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgzKSwgbG9j
YXRpb24uZ2V0KDIpLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4saW50NCBs
b2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBv
dXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlv
bi5nZXQoMyksIGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0Lmdl
dCgxKSwgbG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lv
bnMoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1aW50KiB0
aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRWxlbWVudHMsdWlu
dCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHMsIG51bWJlck9mTGV2
ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxv
YWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxl
dmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+
PSB0ZXgubGV2ZWxDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cg
bmV3IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3Rh
bnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
ZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlw
SUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJl
ck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwg
MSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
CisgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0g
U2FtcGxlKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bixpbnQzIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
bG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
ZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCBvZmZzZXQuZ2V0KDIp
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTNEPCR7dHlwZX0k
e2xlbmd0aH0+LGludDQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24g
KFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBv
ZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0aW9u
LmdldCgzKSwgbG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgw
KSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LGlu
dDQgbG9jYXRpb24saW50MyBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24g
KFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJl
YWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwg
bG9jYXRpb24uZ2V0KDMpLCBsb2NhdGlvbi5nZXQoMikgKyBvZmZzZXQuZ2V0KDIpLCBsb2NhdGlv
bi5nZXQoMSkgKyBvZmZzZXQuZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZzZXQuZ2V0KDAp
KSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sdWludCBN
aXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJl
YWQgRGVwdGgsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIG51
bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0
ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJ
RCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChtaXBJRCA+PSB0ZXgubGV2ZWxDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20g
bm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkZXB0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguZGVwdGhBdExl
dmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRl
eC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZUN1YmU8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVCaWFzKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQs
IGJpYXMubG9hZFZhbHVlKCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlR3JhZChUZXh0dXJlQ3ViZTwke3R5cGV9JHts
ZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdDMgRERYLGZsb2F0MyBERFkpYCwK
KyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBkZHgsIGRkeV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25B
cnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIp
LCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4
LmdldCgwKSwgZGR4LmdldCgxKSwgZGR4LmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIGRkeS5nZXQoMild
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4
dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFy
cmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQs
IHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlTGV2ZWwoVGV4dHVyZUN1YmU8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9k
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVy
ZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxvZC5sb2FkVmFs
dWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xl
bmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9u
LmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKHRleGVsR2F0aGVyaW5nKHRleHR1cmUubG9hZFZhbHVlKCks
IHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJSZWQoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlv
bkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQo
MiksIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Io
dGV4ZWxHYXRoZXJpbmcodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwg
bG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09ICIy
IiB8fCBsZW5ndGggPT0gIjMiIHx8IGxlbmd0aCA9PSAiNCIpIHsKKyAgICAgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyR3JlZW4oVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEp
LCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKHRleGVsR2F0aGVyaW5nKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDEpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMyIgfHwgbGVuZ3RoID09ICI0IikgeworICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZUN1YmU8JHt0eXBlfSR7
bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBd
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcih0
ZXhlbEdhdGhlcmluZyh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBs
b2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAyKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9j
YXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcih0
ZXhlbEdhdGhlcmluZyh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBs
b2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAzKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBu
YXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHVp
bnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCog
dGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVl
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sYXllckNvdW50ICE9IDYp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ3ViZSB0
ZXh0dXJlIGRvZXNuJ3QgaGF2ZSA2IGZhY2VzIik7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcg
ZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVp
Z2h0QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0
aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSks
IDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1l
bnNpb25zKFJXVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQqIHRocmVhZCBXaWR0aClg
LAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGhdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4dHVyZS5sb2FkVmFsdWUoKS53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1Rl
eHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixmbG9hdCogdGhyZWFkIFdpZHRoKWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aF0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVyZTFE
PCR7dHlwZX0ke2xlbmd0aH0+LGludCBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJl
YWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwg
MCwgMCwgMCwgbG9jYXRpb24ubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUxRDwk
e3R5cGV9JHtsZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0dXJl
IHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVj
a2VkKDAsIDAsIDAsIDAsIGxvY2F0aW9uLmxvYWRWYWx1ZSgpLCB1bmJveFZlY3Rvcih2YWx1ZSwg
bGVuZ3RoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUxREFycmF5PCR7dHlwZX0k
e2xlbmd0aH0+LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBlbGVtZW50c10pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5
RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEp
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
IHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGZs
b2F0KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgZWxlbWVudHNdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0
aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHts
ZW5ndGh9IExvYWQoUldUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQyIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1Vu
ZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5s
b2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMSksIDAsIDAsIDAsIGxvY2F0
aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3Ro
fT4sJHt0eXBlfSR7bGVuZ3RofSx1aW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjaGVja0ZhbHNlKCJbU3RvcmVdIiwgIlRleHR1cmUgd3JpdGUgb3V0IG9m
IGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQobG9jYXRpb24u
Z2V0KDEpLCAwLCAwLCAwLCBsb2NhdGlvbi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVlLCBsZW5n
dGgpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0p
OworCisgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+
LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0KWAsCisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0XSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0
ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25z
KFJXVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LGZsb2F0KiB0aHJlYWQgV2lkdGgsZmxvYXQq
IHRocmVhZCBIZWlnaHQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHdpZHRoLCBoZWlnaHRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9
IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0
ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoUldUZXh0dXJlMkQ8JHt0eXBlfSR7
bGVuZ3RofT4saW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9m
IGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgMCwgMCwgbG9j
YXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUyRDwk
e3R5cGV9JHtsZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQyIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVy
ZSB3cml0ZSBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hl
Y2tlZCgwLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0
b3IodmFsdWUsIGxlbmd0aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkRBcnJh
eTwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdo
dCx1aW50KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5s
YXllckNvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lk
dGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAg
YG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5n
dGh9PixmbG9hdCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0LGZsb2F0KiB0aHJl
YWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdp
ZHRoLCBoZWlnaHQsIGVsZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwg
MSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9JHtsZW5ndGh9IExvYWQoUldUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQz
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihj
aGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4
dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMiksIDAsIDAsIGxv
Y2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMkRB
cnJheTwke3R5cGV9JHtsZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQzIGxvY2F0aW9uKWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9u
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAi
VGV4dHVyZSB3cml0ZSBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVt
ZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMiksIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRp
b24uZ2V0KDApLCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5z
aW9ucyhSV1RleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWlu
dCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRGVwdGgpYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGRlcHRoXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRlcHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KHRleC5kZXB0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lndp
ZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+
LGZsb2F0KiB0aHJlYWQgV2lkdGgsZmxvYXQqIHRocmVhZCBIZWlnaHQsZmxvYXQqIHRocmVhZCBE
ZXB0aClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhl
aWdodCwgZGVwdGhdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRl
eHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGgubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmRlcHRoKSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5o
ZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUo
KS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQo
UldUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIs
ICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVu
dENoZWNrZWQoMCwgMCwgbG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9u
LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCR7dHlw
ZX0ke2xlbmd0aH0sdWludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0dXJlIHdyaXRlIG91dCBvZiBib3VuZHMi
LCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKDAsIDAsIGxvY2F0aW9uLmdl
dCgyKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVl
LCBsZW5ndGgpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgdHlw
ZSBvZiBbImhhbGYiLCAiZmxvYXQiXSkgeworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEPCR7dHlw
ZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEs
IDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0
dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJy
YXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0
aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9j
YXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDAp
LCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hW
ZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1
ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDIgbG9jYXRpb24sJHt0eXBlfSBDb21wYXJlVmFsdWUpYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZV0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9u
LmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBz
YW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgp
KSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZUNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbiwke3R5
cGV9IENvbXBhcmVWYWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCks
IGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
ZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1
ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24sJHt0eXBlfSBDb21wYXJlVmFsdWUpYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZV0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8o
VGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sJHt0eXBlfSBD
b21wYXJlVmFsdWUsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZSwgb2Zmc2V0XSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzCisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZURlcHRoMkQ8
JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgQmlhcylgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwg
bG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxv
YWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIGJpYXMubG9hZFZhbHVlKCksIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0
aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMsaW50MiBvZmZz
ZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24s
IGJpYXMsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFy
cmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNl
dC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihz
YW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxv
Y2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIGJpYXMubG9hZFZhbHVlKCksIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSlgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5n
ZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07CisgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5LmdldCgwKSwgZGR5LmdldCgxKSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUo
dGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIGRkeEFycmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0g
U2FtcGxlR3JhZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlv
bixmbG9hdDIgRERYLGZsb2F0MiBERFksaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5LCBvZmZzZXRdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQo
MCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07CisgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5LmdldCgwKSwgZGR5LmdldCgxKSwgMF07Cisg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBv
ZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIGRkeEFycmF5LCBkZHlBcnJh
eSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2RdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNh
bXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9j
YXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBs
b2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Pixz
YW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBMT0QsaW50MiBvZmZzZXQpYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24u
Z2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07Cisg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVs
dGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgp
LCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlcihUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0
aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3IodGV4ZWxHYXRoZXJpbmcodGV4dHVyZS5sb2FkVmFsdWUo
KSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZz
ZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IodGV4ZWxHYXRoZXJp
bmcodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IodGV4ZWxHYXRoZXJpbmcodGV4dHVyZS5sb2Fk
VmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkp
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
UmVkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJh
eSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQu
Z2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IodGV4
ZWxHYXRoZXJpbmcodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9j
YXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQo
MCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKHRleGVsR2F0aGVyaW5nKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBs
ZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCksIDAp
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9h
dCBjb21wYXJlX3ZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwg
bG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBk
ZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcih0ZXhlbEdhdGhlcmluZyh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1
ZS5sb2FkVmFsdWUoKSwgMCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQyIGxvY2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFsdWUpYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZV0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwg
bG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3IodGV4ZWxHYXRoZXJpbmcodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5s
b2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSwgMCkpOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21w
UmVkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0
IGNvbXBhcmVfdmFsdWUsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZSwgb2Zmc2V0XSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBs
b2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRl
bHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHRleGVsR2F0aGVyaW5nKHRleHR1cmUubG9h
ZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXks
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZhbHVl
LmxvYWRWYWx1ZSgpLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4saW50MyBsb2NhdGlvbilgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJU
ZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENo
ZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDIpLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdl
dCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0g
TG9hZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixpbnQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJb
TG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgp
LmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpICsg
b2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0LmdldCgwKSkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0
dXJlRGVwdGgyRDwke3R5cGV9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50
KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgbnVtYmVyT2ZM
ZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2Fk
VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxv
YWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZl
bENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9y
KCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBv
ZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
d2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVy
T2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAx
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxl
KFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQo
MCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0
dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zm
c2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9
IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIp
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQo
MCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlKWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJl
VmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFts
b2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0
ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29t
cGFyZVZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNh
bXBsZXIsZmxvYXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlLGludDIgb2Zmc2V0KWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21w
YXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlv
bkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlv
bi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zm
c2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCkpKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21w
TGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9j
YXRpb24sJHt0eXBlfSBDb21wYXJlVmFsdWUpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZV0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRo
MkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVW
YWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyREFycmF5PCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIGJpYXMubG9h
ZFZhbHVlKCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFz
KFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxv
YXQgQmlhcyxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgYmlhcywgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSks
IDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVs
dGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCBi
aWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlR3JhZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0
aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBk
ZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkp
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVH
cmFkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24s
ZmxvYXQyIEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeSwgb2Zmc2V0XSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDAp
LCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07Cisg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5LmdldCgwKSwgZGR5Lmdl
dCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZz
ZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVy
LmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIGRkeEFy
cmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZh
bHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQp
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxl
TGV2ZWwoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bixmbG9hdCBMT0QsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQo
MSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
ZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVm
aW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IodGV4ZWxHYXRoZXJpbmcodGV4dHVy
ZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgMCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2Nh
dGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBb
b2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKHRleGVsR2F0aGVyaW5nKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVy
ZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9j
YXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3Rvcih0ZXhlbEdhdGhlcmluZyh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4
dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9m
ZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkg
PSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgy
KV07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0
KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
b3hWZWN0b3IodGV4ZWxHYXRoZXJpbmcodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyREFy
cmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFsdWUp
YCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNv
bXBhcmVWYWx1ZV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5
ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQo
MildOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcih0ZXhlbEdhdGhl
cmluZyh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFy
cmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkRBcnJheTwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlLGludDIg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAx
LCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJy
YXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm94VmVjdG9yKHRleGVsR2F0aGVyaW5nKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZhbHVlLmxvYWRW
YWx1ZSgpLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3IodGV4ZWxHYXRoZXJpbmcodGV4dHVyZS5sb2FkVmFsdWUo
KSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFs
dWUoKSwgMCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBv
ZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFts
b2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCks
IG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3Rvcih0ZXhlbEdhdGhlcmluZyh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1
ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSwgMCkpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmVEZXB0
aDJEQXJyYXk8JHt0eXBlfT4saW50NCBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24g
KFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
b3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJv
dW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDMp
LCBsb2NhdGlvbi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkp
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRl
eHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4saW50NCBsb2NhdGlvbixpbnQyIG9mZnNldClgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xv
YWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5l
bGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMyksIGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRp
b24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0LmdldCgw
KSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGlt
ZW5zaW9ucyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHVpbnQgTWlwTGV2ZWwsdWludCog
dGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIEVsZW1lbnRzLHVp
bnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHMsIG51bWJlck9mTGV2ZWxzXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3VudCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERp
bWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVy
ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9t
KEVQdHIuYm94KHRleC5oZWlnaHRBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAg
ICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRM
ZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5
ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEs
IDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0
dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJy
YXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24sJHt0eXBlfSBDb21wYXJlVmFsdWUpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZV0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRp
b24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCkp
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxl
Q21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9j
YXRpb24sJHt0eXBlfSBDb21wYXJlVmFsdWUpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZV0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0aEN1YmU8JHt0
eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlhcylgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9j
YXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCks
IHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgYmlhcy5sb2Fk
VmFsdWUoKSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQo
VGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdDMg
RERYLGZsb2F0MyBERFkpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxv
Y2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9u
LmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBb
ZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgZGR4LmdldCgyKV07CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5LmdldCgwKSwgZGR5LmdldCgxKSwgZGR5LmdldCgyKV07
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUo
dGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIGRkeEFycmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0g
U2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb24sIGxvZF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlv
bkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQo
MiksIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1w
bGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0
aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9k
LmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBs
ZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9u
QXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgy
KSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHRleGVs
R2F0aGVyaW5nKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0
aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBs
ZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9u
QXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgy
KSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHRleGVs
R2F0aGVyaW5nKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0
aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBs
ZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFsdWUpYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZV0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOworICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcih0ZXhlbEdhdGhlcmluZyh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZhbHVlLmxv
YWRWYWx1ZSgpLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3IodGV4ZWxHYXRoZXJpbmcodGV4dHVyZS5sb2FkVmFsdWUo
KSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFs
dWUoKSwgMCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBH
ZXREaW1lbnNpb25zKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sdWludCBNaXBMZXZlbCx1aW50
KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgTnVtYmVyT2ZM
ZXZlbHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRo
LCBoZWlnaHQsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICh0ZXgubGF5ZXJDb3VudCAhPSA2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiQ3ViZSB0ZXh0dXJlIGRvZXNuJ3QgaGF2ZSA2IGZhY2VzIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIs
ICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0
ZXguaGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdp
ZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQp
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUo
KS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgd2lkdGgsIGhlaWdodF0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAg
ICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5o
ZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhyZWFkIEhlaWdodClgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0XSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCks
IDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9IExvYWQoUldUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixpbnQyIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xv
YWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5l
bGVtZW50Q2hlY2tlZCgwLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkp
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldU
ZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwke3R5cGV9LHVpbnQyIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBvdXQgb2Yg
Ym91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tlZCgwLCAwLCAwLCBs
b2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0b3IodmFsdWUsIGxlbmd0
aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGlt
ZW5zaW9ucyhSV1RleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sdWludCogdGhyZWFkIFdpZHRo
LHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRzXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0
ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCks
IDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1l
bnNpb25zKFJXVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixmbG9hdCogdGhyZWFkIFdpZHRo
LGZsb2F0KiB0aHJlYWQgSGVpZ2h0LGZsb2F0KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHNdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KHRleC5sYXllckNvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRo
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExv
YWQoUldUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LGludDMgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVy
ZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2Vk
KGxvY2F0aW9uLmdldCgyKSwgMCwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkp
KSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJX
VGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwke3R5cGV9LHVpbnQzIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBv
dXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tlZChsb2Nh
dGlvbi5nZXQoMiksIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApLCB1bmJv
eFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBhZGQodGhpbmcpCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbAppbmRleCA3OGQwMDhmODM1ZjllOWMyMzRl
ZjJkZjZkNmRlZWEzZjc0MjZjZTY1Li4xYjI2Y2YyYjJlNjUxNTI3YTE1MmVlOGQ5MmZmMjViZWRh
NjFkMzM5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5o
dG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKQEAgLTM0
LDYgKzM0LDcgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9yU2V0dGVyLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ2FsbEV4cHJlc3Npb24uanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJDYWxsRnVuY3Rpb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSJDYXN0cy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNoZWNrLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ2hlY2tMaXRlcmFsVHlwZXMuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJDaGVja0xvb3BzLmpzIj48L3NjcmlwdD4KQEAgLTEyMSw2ICsx
MjIsNyBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IlJldHVybi5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9IlJldHVybkNoZWNrZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJSZXR1cm5FeGNlcHRpb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJTYW1wbGVy
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3RhbmRhcmRMaWJyYXJ5LmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3RhdGVtZW50Q2xvbmVyLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iU3RydWN0TGF5b3V0QnVpbGRlci5qcyI+PC9zY3JpcHQ+CkBAIC0xMzMs
NiArMTM1LDggQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplQ29weUNvbnN0cnVj
dG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRGVm
YXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJU
ZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlRleHR1cmUu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJUZXh0dXJlT3BlcmF0aW9ucy5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVHlw
ZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1NhbXBsZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
YW1wbGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlNzcxM2RmYzgxZjgzYzU4NDczNjIxMjE3NTY0ZjM5NTcy
YjE0YjgKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
YW1wbGVyLmpzCkBAIC0wLDAgKzEsMTYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKyJ1c2Ugc3RyaWN0IjsKKworY2xhc3MgU2FtcGxlciB7CisgICAgY29u
c3RydWN0b3Iob3B0aW9ucykKKyAgICB7CisgICAgICAgIGlmIChvcHRpb25zLnJBZGRyZXNzTW9k
ZSA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9yQWRkcmVzc01vZGUgPSAiY2xhbXBU
b0VkZ2UiOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9yQWRkcmVzc01vZGUgPSBv
cHRpb25zLnJBZGRyZXNzTW9kZTsKKyAgICAgICAgaWYgKG9wdGlvbnMuc0FkZHJlc3NNb2RlID09
IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX3NBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRn
ZSI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX3NBZGRyZXNzTW9kZSA9IG9wdGlv
bnMuc0FkZHJlc3NNb2RlOworICAgICAgICBpZiAob3B0aW9ucy50QWRkcmVzc01vZGUgPT0gdW5k
ZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fdEFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fdEFkZHJlc3NNb2RlID0gb3B0aW9ucy50
QWRkcmVzc01vZGU7CisgICAgICAgIGlmIChvcHRpb25zLm1pbkZpbHRlciA9PSB1bmRlZmluZWQp
CisgICAgICAgICAgICB0aGlzLl9taW5GaWx0ZXIgPSAibmVhcmVzdCI7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHRoaXMuX21pbkZpbHRlciA9IG9wdGlvbnMubWluRmlsdGVyOworICAgICAg
ICBpZiAob3B0aW9ucy5tYWdGaWx0ZXIgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5f
bWFnRmlsdGVyID0gIm5lYXJlc3QiOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9t
YWdGaWx0ZXIgPSBvcHRpb25zLm1hZ0ZpbHRlcjsKKyAgICAgICAgaWYgKG9wdGlvbnMubWlwbWFw
RmlsdGVyID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX21pcG1hcEZpbHRlciA9ICJu
ZWFyZXN0IjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fbWlwbWFwRmlsdGVyID0g
b3B0aW9ucy5taXBtYXBGaWx0ZXI7CisgICAgICAgIGlmIChvcHRpb25zLmxvZE1pbkNsYW1wID09
IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX2xvZE1pbkNsYW1wID0gLU51bWJlci5NQVhf
VkFMVUU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX2xvZE1pbkNsYW1wID0gb3B0
aW9ucy5sb2RNaW5DbGFtcDsKKyAgICAgICAgaWYgKG9wdGlvbnMubG9kTWF4Q2xhbXAgPT0gdW5k
ZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fbG9kTWF4Q2xhbXAgPSBOdW1iZXIuTUFYX1ZBTFVF
OworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9sb2RNYXhDbGFtcCA9IG9wdGlvbnMu
bG9kTWF4Q2xhbXA7CisgICAgICAgIGlmIChvcHRpb25zLm1heEFuaXNvdHJvcHkgPT0gdW5kZWZp
bmVkKQorICAgICAgICAgICAgdGhpcy5fbWF4QW5pc290cm9weSA9IDE7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHRoaXMuX21heEFuaXNvdHJvcHkgPSBvcHRpb25zLm1heEFuaXNvdHJvcHk7
CisgICAgICAgIGlmIChvcHRpb25zLmNvbXBhcmVGdW5jdGlvbiA9PSB1bmRlZmluZWQpCisgICAg
ICAgICAgICB0aGlzLl9jb21wYXJlRnVuY3Rpb24gPSAibmV2ZXIiOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICB0aGlzLl9jb21wYXJlRnVuY3Rpb24gPSBvcHRpb25zLmNvbXBhcmVGdW5jdGlv
bjsKKyAgICAgICAgaWYgKG9wdGlvbnMuYm9yZGVyQ29sb3IgPT0gdW5kZWZpbmVkKQorICAgICAg
ICAgICAgdGhpcy5fYm9yZGVyQ29sb3IgPSAidHJhbnNwYXJlbnRCbGFjayI7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHRoaXMuX2JvcmRlckNvbG9yID0gb3B0aW9ucy5ib3JkZXJDb2xvcjsK
KyAgICB9CisgICAgCisgICAgZ2V0IHJBZGRyZXNzTW9kZSgpIHsgcmV0dXJuIHRoaXMuX3JBZGRy
ZXNzTW9kZTsgfQorICAgIGdldCBzQWRkcmVzc01vZGUoKSB7IHJldHVybiB0aGlzLl9zQWRkcmVz
c01vZGU7IH0KKyAgICBnZXQgdEFkZHJlc3NNb2RlKCkgeyByZXR1cm4gdGhpcy5fdEFkZHJlc3NN
b2RlOyB9CisgICAgZ2V0IG1pbkZpbHRlcigpIHsgcmV0dXJuIHRoaXMuX21pbkZpbHRlcjsgfQor
ICAgIGdldCBtYWdGaWx0ZXIoKSB7IHJldHVybiB0aGlzLl9tYWdGaWx0ZXI7IH0KKyAgICBnZXQg
bWlwbWFwRmlsdGVyKCkgeyByZXR1cm4gdGhpcy5fbWlwbWFwRmlsdGVyOyB9CisgICAgZ2V0IGxv
ZE1pbkNsYW1wKCkgeyByZXR1cm4gdGhpcy5fbG9kTWluQ2xhbXA7IH0KKyAgICBnZXQgbG9kTWF4
Q2xhbXAoKSB7IHJldHVybiB0aGlzLl9sb2RNYXhDbGFtcDsgfQorICAgIGdldCBtYXhBbmlzb3Ry
b3B5KCkgeyByZXR1cm4gdGhpcy5fbWF4QW5pc290cm9weTsgfQorICAgIGdldCBjb21wYXJlRnVu
Y3Rpb24oKSB7IHJldHVybiB0aGlzLl9jb21wYXJlRnVuY3Rpb247IH0KKyAgICBnZXQgYm9yZGVy
Q29sb3IoKSB7IHJldHVybiB0aGlzLl9ib3JkZXJDb2xvcjsgfQorCisgICAgY2FsY3VsYXRlQm9y
ZGVyQ29sb3IoaW5uZXJUeXBlKQorICAgIHsKKyAgICAgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0
aW9uIDE1LjMuMworICAgICAgICBmdW5jdGlvbiBjb21wdXRlVmFsdWVzKCkgeworICAgICAgICAg
ICAgc3dpdGNoIChpbm5lclR5cGUpIHsKKyAgICAgICAgICAgICAgICBjYXNlICJ1Y2hhciI6Cisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxh
Y2s6IDAsIG9wYXF1ZVdoaXRlOiAweEZGfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1c2hvcnQi
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1
ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMHhGRkZGfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1
aW50IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAwLCBv
cGFxdWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDB4RkZGRkZGRkZ9OworICAgICAgICAgICAgICAg
IGNhc2UgImNoYXIiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50Qmxh
Y2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMHg3Rn07CisgICAgICAgICAgICAg
ICAgY2FzZSAic2hvcnQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50
QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMHg3RkZGfTsKKyAgICAgICAg
ICAgICAgICBjYXNlICJpbnQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFy
ZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMHg3RkZGRkZGRn07Cisg
ICAgICAgICAgICAgICAgY2FzZSAiaGFsZiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7
dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdoaXRlOiAxfTsKKyAg
ICAgICAgICAgICAgICBjYXNlICJmbG9hdCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7
dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdoaXRlOiAxfTsKKyAg
ICAgICAgICAgICAgICBjYXNlICJ1Y2hhcjIiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
e3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwXSwgb3BhcXVlV2hp
dGU6IFsweEZGLCAweEZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAidXNob3J0MiI6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVC
bGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4RkZGRiwgMHhGRkZGXX07CisgICAgICAgICAg
ICAgICAgY2FzZSAidWludDIiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFy
ZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsweEZG
RkZGRkZGLCAweEZGRkZGRkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAiY2hhcjIiOgorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVl
QmxhY2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsweDdGLCAweDdGXX07CisgICAgICAgICAgICAg
ICAgY2FzZSAic2hvcnQyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVu
dEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHg3RkZG
LCAweDdGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJpbnQyIjoKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwg
MF0sIG9wYXF1ZVdoaXRlOiBbMHg3RkZGRkZGRiwgMHg3RkZGRkZGRl19OworICAgICAgICAgICAg
ICAgIGNhc2UgImhhbGYyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVu
dEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMSwgMV19
OworICAgICAgICAgICAgICAgIGNhc2UgImZsb2F0MiI6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFx
dWVXaGl0ZTogWzEsIDFdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1Y2hhcjMiOgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVl
QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsweEZGLCAweEZGLCAweEZGXX07CisgICAg
ICAgICAgICAgICAgY2FzZSAidXNob3J0MyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7
dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFx
dWVXaGl0ZTogWzB4RkZGRiwgMHhGRkZGLCAweEZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNl
ICJ1aW50MyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazog
WzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4RkZGRkZG
RkYsIDB4RkZGRkZGRkYsIDB4RkZGRkZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJjaGFy
MyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAs
IDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4N0YsIDB4N0YsIDB4
N0ZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJzaG9ydDMiOgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAw
LCAwXSwgb3BhcXVlV2hpdGU6IFsweDdGRkYsIDB4N0ZGRiwgMHg3RkZGXX07CisgICAgICAgICAg
ICAgICAgY2FzZSAiaW50MyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJl
bnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTog
WzB4N0ZGRkZGRkYsIDB4N0ZGRkZGRkYsIDB4N0ZGRkZGRkZdfTsKKyAgICAgICAgICAgICAgICBj
YXNlICJoYWxmMyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFj
azogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzEsIDEs
IDFdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJmbG9hdDMiOgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAw
LCAwXSwgb3BhcXVlV2hpdGU6IFsxLCAxLCAxXX07CisgICAgICAgICAgICAgICAgY2FzZSAidWNo
YXI0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwg
MCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMHhGRl0sIG9wYXF1ZVdoaXRlOiBbMHhG
RiwgMHhGRiwgMHhGRiwgMHhGRl19OworICAgICAgICAgICAgICAgIGNhc2UgInVzaG9ydDQiOgor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwLCAw
XSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAweEZGRkZdLCBvcGFxdWVXaGl0ZTogWzB4RkZGRiwg
MHhGRkZGLCAweEZGRkYsIDB4RkZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgInVpbnQ0IjoK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwg
MF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMHhGRkZGRkZGRl0sIG9wYXF1ZVdoaXRlOiBbMHhG
RkZGRkZGRiwgMHhGRkZGRkZGRiwgMHhGRkZGRkZGRiwgMHhGRkZGRkZGRl19OworICAgICAgICAg
ICAgICAgIGNhc2UgImNoYXI0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3Bh
cmVudEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMHg3Rl0sIG9w
YXF1ZVdoaXRlOiBbMHg3RiwgMHg3RiwgMHg3RiwgMHg3Rl19OworICAgICAgICAgICAgICAgIGNh
c2UgInNob3J0NCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFj
azogWzAsIDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDAsIDB4N0ZGRl0sIG9wYXF1ZVdo
aXRlOiBbMHg3RkZGLCAweDdGRkYsIDB4N0ZGRiwgMHg3RkZGXX07CisgICAgICAgICAgICAgICAg
Y2FzZSAiaW50NCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFj
azogWzAsIDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDAsIDB4N0ZGRkZGRkZdLCBvcGFx
dWVXaGl0ZTogWzB4N0ZGRkZGRkYsIDB4N0ZGRkZGRkYsIDB4N0ZGRkZGRkYsIDB4N0ZGRkZGRkZd
fTsKKyAgICAgICAgICAgICAgICBjYXNlICJoYWxmNCI6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAs
IDAsIDFdLCBvcGFxdWVXaGl0ZTogWzEsIDEsIDEsIDFdfTsKKyAgICAgICAgICAgICAgICBjYXNl
ICJmbG9hdDQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6
IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAxXSwgb3BhcXVlV2hpdGU6IFsx
LCAxLCAxLCAxXX07CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHRleHR1cmUgaW5uZXIgdHlwZSIpOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjb21wdXRlVmFsdWVzKClbdGhpcy5i
b3JkZXJDb2xvcl07CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvU3RhbmRhcmRMaWJyYXJ5LmpzCmluZGV4IDNkZDRmZWUxODYwMGQ1Y2QyYTg5NWFkNWE0Nzk3
MjFkYTc3ODhjYzEuLjgxODE2ZGYxYzVlYTg2ZGU1NmZjM2FhNGNkMGRiNWQ2N2QwZmNiZGEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5q
cworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMK
QEAgLTU3LDcgKzU3LDcgQEAgbGV0IHN0YW5kYXJkTGlicmFyeSA9IChmdW5jdGlvbigpIHsKICAg
ICAgICAgfQogICAgICAgICBwcmludChgbmF0aXZlIHR5cGVkZWYgc2FtcGxlcjtgKTsKICAgICAg
ICAgZm9yICh2YXIgdHlwZSBvZiBbYFRleHR1cmUxRGAsIGBSV1RleHR1cmUxRGAsIGBUZXh0dXJl
MURBcnJheWAsIGBSV1RleHR1cmUxREFycmF5YCwgYFRleHR1cmUyRGAsIGBSV1RleHR1cmUyRGAs
IGBUZXh0dXJlMkRBcnJheWAsIGBSV1RleHR1cmUyREFycmF5YCwgYFRleHR1cmUzRGAsIGBSV1Rl
eHR1cmUzRGAsIGBUZXh0dXJlQ3ViZWBdKSB7Ci0gICAgICAgICAgICBmb3IgKHZhciB0eXBlQXJn
dW1lbnRCYXNlIG9mIFtgYm9vbGAsIGB1Y2hhcmAsIGB1c2hvcnRgLCBgdWludGAsIGBjaGFyYCwg
YHNob3J0YCwgYGludGAsIGBoYWxmYCwgYGZsb2F0YF0pIHsKKyAgICAgICAgICAgIGZvciAodmFy
IHR5cGVBcmd1bWVudEJhc2Ugb2YgW2B1Y2hhcmAsIGB1c2hvcnRgLCBgdWludGAsIGBjaGFyYCwg
YHNob3J0YCwgYGludGAsIGBoYWxmYCwgYGZsb2F0YF0pIHsKICAgICAgICAgICAgICAgICBmb3Ig
KHZhciBzaXplIG9mIFtgYCwgYDJgLCBgM2AsIGA0YF0pIHsKICAgICAgICAgICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSB0eXBlZGVmICR7dHlwZX08JHt0eXBlQXJndW1lbnRCYXNlfSR7c2l6ZX0+
O2ApOwogICAgICAgICAgICAgICAgIH0KQEAgLTE4OTcsNyArMTg5Nyw4IEBAIGxldCBzdGFuZGFy
ZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlIHZvaWQg
SW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UodGhyZWFkIGF0b21pY18ke3R5cGV9KiwgJHt0eXBl
fSwgJHt0eXBlfSwgdGhyZWFkICR7dHlwZX0qKTtgKTsKICAgICAgICAgfQogICAgICAgICBwcmlu
dCgpOwotICAgICAgICAKKyAgICAgICAgKi8KKwogICAgICAgICBmb3IgKHZhciB0eXBlIG9mIFtg
dWNoYXJgLCBgdXNob3J0YCwgYHVpbnRgLCBgY2hhcmAsIGBzaG9ydGAsIGBpbnRgLCBgaGFsZmAs
IGBmbG9hdGBdKSB7CiAgICAgICAgICAgICBmb3IgKHZhciBsZW5ndGggb2YgW2BgLCBgMmAsIGAz
YCwgYDRgXSkgewogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3Ro
fSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdCBsb2Nh
dGlvbik7YCk7CkBAIC0xOTI0LDEyICsxOTI1LDE4IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAo
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXIoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24s
IGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00
IEdhdGhlclJlZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MiBs
b2NhdGlvbik7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJSZWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRp
b24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX00IEdhdGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxv
YXQyIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00
IEdhdGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQy
IGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxl
ciwgZmxvYXQyIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBm
bG9hdDIgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwg
c2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwgc2Ft
cGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICAgICAg
aWYgKGxlbmd0aCA9PSAiMiIgfHwgbGVuZ3RoID09ICIzIiB8fCBsZW5ndGggPT0gIjQiKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4
dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwor
ICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRl
eHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQy
IG9mZnNldCk7YCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjMiIHx8IGxl
bmd0aCA9PSAiNCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZs
b2F0MiBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVy
LCBmbG9hdDIgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3Ro
fT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkQ8JHt0eXBl
fSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3Ro
fSBMb2FkKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PiwgaW50MyBsb2NhdGlvbik7YCk7CiAg
ICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVy
ZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCBpbnQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CiAg
ICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTJE
PCR7dHlwZX0ke2xlbmd0aH0+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRo
cmVhZCB1aW50KiBIZWlnaHQsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7YCk7CkBAIC0x
OTQ2LDI4ICsxOTUzLDI0IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAg
ICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEQXJy
YXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZz
ZXQpO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVk
KFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRp
b24pO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVk
KFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRp
b24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX00IEdhdGhlckdyZWVuKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVy
LCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBs
ZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHts
ZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7
bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAg
ICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJE
QXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0g
ICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJl
MkRBcnJheTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQy
IG9mZnNldCk7YCk7CisgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMiIgfHwgbGVuZ3Ro
ID09ICIzIiB8fCBsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3Ro
fT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7
bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAg
ICAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09ICIzIiB8fCBsZW5ndGggPT0gIjQiKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUo
VGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlv
bik7YCk7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdh
dGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0
MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KGxlbmd0aCA9PSAiNCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+
LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8JHt0
eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2Ap
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVu
Z3RofSBMb2FkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBpbnQ0IGxvY2F0aW9u
KTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9h
ZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PiwgaW50NCBsb2NhdGlvbiwgaW50MiBv
ZmZzZXQpO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBHZXREaW1lbnNp
b25zKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCB1aW50IE1pcExldmVsLCB0aHJl
YWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBIZWlnaHQsIHRocmVhZCB1aW50KiBFbGVtZW50
cywgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTtgKTsKICAgICAgICAgICAgICAgICBwcmlu
dCgpOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1w
bGUoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24p
O2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1w
bGUoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24s
IGludDMgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00
IEdhdGhlcihUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2Nh
dGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIo
VGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGlu
dDMgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdh
dGhlclJlZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2Nh
dGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJS
ZWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24s
IGludDMgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00
IEdhdGhlckdyZWVuKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdh
dGhlckdyZWVuKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxv
Y2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwg
ZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX00IEdhdGhlckJsdWUoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9h
dDMgbG9jYXRpb24sIGludDMgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2Ft
cGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxl
ciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7CiAgICAgICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0
aH0+LCBpbnQ0IGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIGludDQgbG9j
YXRpb24sIGludDMgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlIHZv
aWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHVpbnQgTWlwTGV2
ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIEhlaWdodCwgdGhyZWFkIHVpbnQq
IERlcHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpO2ApOwpAQCAtMTk3OCw5ICsxOTgx
LDE0IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUxldmVsKFRleHR1cmVDdWJl
PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IExPRCk7
YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVy
ZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CiAg
ICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZUN1
YmU8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAg
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlQ3Vi
ZTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZUN1YmU8
JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlQ3ViZTwk
e3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAg
ICAgICAgICBpZiAobGVuZ3RoID09ICIyIiB8fCBsZW5ndGggPT0gIjMiIHx8IGxlbmd0aCA9PSAi
NCIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJH
cmVlbihUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0
aW9uKTtgKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMyIgfHwgbGVuZ3Ro
ID09ICI0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJCbHVlKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9h
dDMgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAi
NCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJBbHBoYShUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJl
Q3ViZTwke3R5cGV9JHtsZW5ndGh9PiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRo
LCB0aHJlYWQgdWludCogSGVpZ2h0LCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpO2ApOwog
ICAgICAgICAgICAgICAgIHByaW50KCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2
b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sIHRocmVhZCB1
aW50KiBXaWR0aCk7YCk7CkBAIC0yMDEwLDk3ICsyMDE4LDY2IEBAIGxldCBzdGFuZGFyZExpYnJh
cnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICBmb3IgKHZhciB0eXBlIG9mIFtgaGFs
ZmAsIGBmbG9hdGBdKSB7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxl
KFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwog
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyRDwk
e3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAg
ICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEPCR7
dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IENv
bXBhcmVWYWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxl
Q21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9h
dDIgbG9jYXRpb24sIGZsb2F0IENvbXBhcmVWYWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVw
dGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBm
bG9hdCBDb21wYXJlVmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBh
cmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUsIGludDIgb2Zm
c2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4
dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgJHt0eXBlfSBD
b21wYXJlVmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZUNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCAk
e3R5cGV9IENvbXBhcmVWYWx1ZSwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1ZSk7YCk7Cisg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sICR7dHlwZX0gQ29t
cGFyZVZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQy
IGxvY2F0aW9uLCBmbG9hdCBCaWFzKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIg
bG9jYXRpb24sIGZsb2F0IEJpYXMsIGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0MiBERFgsIGZsb2F0MiBERFkpO2ApOwogICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoMkQ8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQyIEREWCwgZmxvYXQyIEREWSwg
aW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZUxldmVsKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24s
IGZsb2F0IExPRCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxl
TGV2ZWwoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwg
ZmxvYXQgTE9ELCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gR2F0aGVyKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9j
YXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlcihUZXh0
dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNl
dCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyUmVkKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwotICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyRDwke3R5
cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoMkQ8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX0gR2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBs
ZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9IEdhdGhlckJsdWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBs
ZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX0gR2F0aGVyQmx1ZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxv
Y2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX0gR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBs
b2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQWxw
aGEoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50
MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNt
cChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQy
IGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfSBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJD
b21wYXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50
MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNt
cFJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxv
YXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIFNh
bXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1
ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdh
dGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0
YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJEPCR7
dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNv
bXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfSBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29t
cGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwot
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEJsdWUoVGV4dHVyZURl
cHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwg
ZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBT
YW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFs
dWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEFscGhh
KFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIg
bG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+
LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0
MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0
MiBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhl
clJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBp
bnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBm
bG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9j
YXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aDJEPCR7dHlw
ZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwor
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURl
cHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92
YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
IExvYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIGludDMgbG9jYXRpb24pO2ApOwogICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4s
IGludDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCB1aW50IE1pcExl
dmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBIZWlnaHQsIHRocmVhZCB1aW50
KiBOdW1iZXJPZkxldmVscyk7YCk7CiAgICAgICAgICAgICBwcmludCgpOwogICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+
LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBm
bG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxl
ckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUpO2Ap
OwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVw
dGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRp
b24sIGZsb2F0IENvbXBhcmVWYWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyREFycmF5
PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0
IENvbXBhcmVWYWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21w
YXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgQ29tcGFyZVZhbHVlLCBpbnQyIG9m
ZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRl
eHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgJHt0
eXBlfSBDb21wYXJlVmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMg
bG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0
aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgJHt0eXBlfSBDb21w
YXJlVmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNt
cExldmVsWmVybyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMg
bG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyREFycmF5
PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IEJpYXMpO2ApOwogICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBCaWFzLCBpbnQy
IG9mZnNldCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3Jh
ZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24s
IGZsb2F0MiBERFgsIGZsb2F0MiBERFkpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwg
ZmxvYXQzIGxvY2F0aW9uLCBmbG9hdDIgRERYLCBmbG9hdDIgRERZLCBpbnQyIG9mZnNldCk7YCk7
CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURl
cHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBMT0Qp
O2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQg
TE9ELCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0g
R2F0aGVyKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2Nh
dGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBv
ZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlclJlZChU
ZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2Ap
OwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlclJlZChUZXh0dXJlRGVw
dGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0
KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJHcmVlbihUZXh0
dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwot
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckdyZWVuKFRleHR1cmVEZXB0
aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQp
O2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckJsdWUoVGV4dHVy
ZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJCbHVlKFRleHR1cmVEZXB0aDJE
QXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2Ap
OwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckFscGhhKFRleHR1cmVE
ZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAg
ICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7
Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wKFRleHR1cmVEZXB0
aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlv
biwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21w
YXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBv
ZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcFJl
ZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBm
bG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlw
ZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBh
cmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfSBHYXRoZXJDbXBHcmVlbihUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVy
Q29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2Ap
OwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEdyZWVuKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBs
b2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRoMkRBcnJh
eTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9h
dCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBH
YXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJp
c29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZz
ZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEFscGhh
KFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZs
b2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wQWxwaGEoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5
cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21w
YXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX00IEdhdGhlcihUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9h
dDMgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXIoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9u
LCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdh
dGhlclJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9j
YXRpb24pO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQo
VGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBp
bnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRp
b24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwg
ZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7Cisg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcFJlZChUZXh0dXJlRGVw
dGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBh
cmVfdmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJD
bXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0
aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBp
bnQ0IGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBMb2Fk
KFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIGludDQgbG9jYXRpb24sIGludDIgb2Zmc2V0
KTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0
aCwgdGhyZWFkIHVpbnQqIEhlaWdodCwgdGhyZWFkIHVpbnQqIEVsZW1lbnRzLCB0aHJlYWQgdWlu
dCogTnVtYmVyT2ZMZXZlbHMpO2ApOwogICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwg
c2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxlckNvbXBh
cmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUpO2ApOwotICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJl
RGVwdGhDdWJlPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRp
b24sIGZsb2F0IENvbXBhcmVWYWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0
MyBsb2NhdGlvbiwgJHt0eXBlfSBDb21wYXJlVmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGhDdWJlPCR7dHlw
ZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlKTtgKTsK
ICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0
aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgQmlhcyk7YCk7
Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlRGVw
dGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0MiBERFgsIGZs
b2F0MiBERFkpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdy
YWQoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBm
bG9hdDMgRERYLCBmbG9hdDMgRERZKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9h
dDMgbG9jYXRpb24sIGZsb2F0IExPRCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gR2F0aGVyKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBs
b2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyUmVk
KFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7
Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyR3JlZW4oVGV4dHVyZURl
cHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJCbHVlKFRleHR1cmVEZXB0aEN1YmU8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX0gR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2Ft
cGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfSBHYXRoZXJDbXAoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlz
b25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoQ3Vi
ZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9h
dCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBH
YXRoZXJDbXBHcmVlbihUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNv
blN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRoQ3Vi
ZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9h
dCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBH
YXRoZXJDbXBBbHBoYShUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNv
blN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9
PiwgaW50NCBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00
IEdhdGhlcihUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRp
b24pO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4
dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aEN1
YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1
ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcFJlZChU
ZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0
IGNvbXBhcmVfdmFsdWUpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEdldERp
bWVuc2lvbnMoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgdWludCBNaXBMZXZlbCwgdGhyZWFk
IHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogSGVpZ2h0LCB0aHJlYWQgdWludCogTnVtYmVyT2ZM
ZXZlbHMpO2ApOwogICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHRocmVhZCB1
aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIEhlaWdodCk7YCk7CkBAIC0yMTE0LDcgKzIwOTEsNiBA
QCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgJHt0eXBl
fSwgdWludDMgbG9jYXRpb24pO2ApOwogICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgfQot
ICAgICAgICAqLwogICAgIH0pKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0pKCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKaW5kZXggNjA3YTY5NTMyNTNkYTcyN2IxZGUz
NzY3OGVjMzg4YjRmYTI0MDQwNS4uZTc4Y2NhYzFhMDI1NGNiYzkyM2I5ZGQ2YzE4NWFlZTc4Yzcy
YTgxNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1s
CisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbApAQCAtMjgsNiAr
MjgsNyBAQAogPHNjcmlwdCBzcmM9IkJ1aWx0aW5WZWN0b3JTZXR0ZXIuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IkNhbGxFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJD
YWxsRnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNhc3RzLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJDaGVjay5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2hlY2tM
aXRlcmFsVHlwZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNoZWNrTG9vcHMuanMiPjwv
c2NyaXB0PgpAQCAtMTE1LDYgKzExNiw3IEBACiA8c2NyaXB0IHNyYz0iUmV0dXJuLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJSZXR1cm5DaGVja2VyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJSZXR1cm5FeGNlcHRpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlNhbXBsZXIu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN0YW5kYXJkTGlicmFyeS5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iU3RhdGVtZW50Q2xvbmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIj48L3NjcmlwdD4KQEAgLTEyNyw2ICsxMjksOCBAQAog
PHNjcmlwdCBzcmM9IlN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iVGV4dHVyZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVy
ZU9wZXJhdGlvbnMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CkBAIC0xNTIsNyArMTU2LDcgQEAKIDxz
Y3JpcHQ+CiBmdW5jdGlvbiBkb1Rlc3RJbkJyb3dzZXIoKQogewotICAgIHZhciB0ZXN0ZXIgPSBk
b1Rlc3QoLy4qLyk7CisgICAgdmFyIHRlc3RlciA9IGRvVGVzdCgvdGV4dHVyZS8pOwogICAgIHZh
ciBsYXN0VGltZTsKICAgICBmdW5jdGlvbiBuZXh0KCkKICAgICB7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVGVzdC5qcwppbmRleCA0YTExYzE4NTg1OTk3NzhmZjM5MWIwNGYyNjM1YzViNzEw
MDVkZjdmLi4zNTk2NzdiZTY4ZTUwMzdlZWIzNGQxN2NkYzg4MjI1YTA5YTBiMTY4IDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKQEAgLTk0LDYgKzk0LDEzMyBAQCBmdW5jdGlv
biBtYWtlRW51bShwcm9ncmFtLCBlbnVtTmFtZSwgdmFsdWUpCiAgICAgcmV0dXJuIFR5cGVkVmFs
dWUuYm94KGVudW1UeXBlLCBlbnVtTWVtYmVyLnZhbHVlLnVuaWZ5Tm9kZS52YWx1ZUZvclNlbGVj
dGVkVHlwZSk7CiB9CiAKK2Z1bmN0aW9uIG1ha2VTYW1wbGVyKHByb2dyYW0sIG9wdGlvbnMpCit7
CisgICAgLy8gZW51bSBXZWJHUFVBZGRyZXNzTW9kZSB7CisgICAgLy8gICAgICJjbGFtcFRvRWRn
ZSIsCisgICAgLy8gICAgICJyZXBlYXQiLAorICAgIC8vICAgICAibWlycm9yUmVwZWF0IiwKKyAg
ICAvLyAgICAgImNsYW1wVG9Cb3JkZXJDb2xvciIKKyAgICAvLyB9CisgICAgLy8KKyAgICAvLyBl
bnVtIFdlYkdQVUZpbHRlck1vZGUgeworICAgIC8vICAgICAibmVhcmVzdCIsCisgICAgLy8gICAg
ICJsaW5lYXIiCisgICAgLy8gfQorICAgIC8vCisgICAgLy8gZW51bSBXZWJHUFVDb21wYXJlRnVu
Y3Rpb24geworICAgIC8vICAgICAibmV2ZXIiLAorICAgIC8vICAgICAibGVzcyIsCisgICAgLy8g
ICAgICJlcXVhbCIsCisgICAgLy8gICAgICJsZXNzRXF1YWwiLAorICAgIC8vICAgICAiZ3JlYXRl
ciIsCisgICAgLy8gICAgICJub3RFcXVhbCIsCisgICAgLy8gICAgICJncmVhdGVyRXF1YWwiLAor
ICAgIC8vICAgICAiYWx3YXlzIgorICAgIC8vIH0KKyAgICAvLworICAgIC8vIGVudW0gV2ViR1BV
Qm9yZGVyQ29sb3IgeworICAgIC8vICAgICAidHJhbnNwYXJlbnRCbGFjayIsCisgICAgLy8gICAg
ICJvcGFxdWVCbGFjayIsCisgICAgLy8gICAgICJvcGFxdWVXaGl0ZSIKKyAgICAvLyB9CisgICAg
Ly8KKyAgICAvLyBkaWN0aW9uYXJ5IFdlYkdQVVNhbXBsZXJEZXNjcmlwdG9yIHsKKyAgICAvLyAg
ICAgV2ViR1BVZGRyZXNzTW9kZSByQWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgIC8v
ICAgICBXZWJHUFVkZHJlc3NNb2RlIHNBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAg
Ly8gICAgIFdlYkdQVWRkcmVzc01vZGUgdEFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAg
ICAvLyAgICAgV2ViR1BVRmlsdGVyTW9kZUVudW0gbWFnRmlsdGVyID0gIm5lYXJlc3QiOworICAg
IC8vICAgICBXZWJHUFVGaWx0ZXJNb2RlRW51bSBtaW5GaWx0ZXIgPSAibmVhcmVzdCI7CisgICAg
Ly8gICAgIFdlYkdQVUZpbHRlck1vZGVFbnVtIG1pcG1hcEZpbHRlciA9ICJuZWFyZXN0IjsKKyAg
ICAvLyAgICAgZmxvYXQgbG9kTWluQ2xhbXAgPSAwOworICAgIC8vICAgICBmbG9hdCBsb2RNYXhD
bGFtcCA9IE51bWJlci5NQVhfVkFMVUU7CisgICAgLy8gICAgIHVuc2lnbmVkIGxvbmcgbWF4QW5p
c290cm9weSA9IDE7CisgICAgLy8gICAgIFdlYkdQVUNvbXBhcmVGdW5jdGlvbiBjb21wYXJlRnVu
Y3Rpb24gPSAibmV2ZXIiOworICAgIC8vICAgICBXZWJHUFVCb3JkZXJDb2xvciBib3JkZXJDb2xv
ciA9ICJ0cmFuc3BhcmVudEJsYWNrIjsKKyAgICAvLyB9OworICAgIHJldHVybiBUeXBlZFZhbHVl
LmJveChwcm9ncmFtLmludHJpbnNpY3Muc2FtcGxlciwgbmV3IFNhbXBsZXIob3B0aW9ucykpOwor
fQorCitmdW5jdGlvbiBtYWtlMURUZXh0dXJlKHByb2dyYW0sIG1pcG1hcHMsIGVsZW1lbnRUeXBl
KQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1
cmUxRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUxRChlbGVtZW50VHlwZSwgbWlwbWFw
cykpOworfQorCitmdW5jdGlvbiBtYWtlMURUZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVs
ZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNp
Y3NbYFRleHR1cmUxREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTFEQXJyYXko
ZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UyRFRleHR1cmUocHJvZ3Jh
bSwgbWlwbWFwcywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHBy
b2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZTJEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVy
ZTJEKGVsZW1lbnRUeXBlLCBtaXBtYXBzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UyRFRleHR1cmVB
cnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFs
dWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZTJEQXJyYXk8JHtlbGVtZW50VHlwZX0+
YF0sIG5ldyBUZXh0dXJlMkRBcnJheShlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rp
b24gbWFrZTNEVGV4dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50VHlwZSkKK3sKKyAgICBy
ZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlM0Q8JHtlbGVt
ZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlM0QoZWxlbWVudFR5cGUsIG1pcG1hcHMpKTsKK30KKwor
ZnVuY3Rpb24gbWFrZVRleHR1cmVDdWJlKHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sK
KyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlQ3Vi
ZTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmVDdWJlKGVsZW1lbnRUeXBlLCBhcnJheSkp
OworfQorCitmdW5jdGlvbiBtYWtlUlcxRFRleHR1cmUocHJvZ3JhbSwgZWxlbWVudHMsIGVsZW1l
bnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3Nb
YFJXVGV4dHVyZTFEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTFEUlcoZWxlbWVudFR5
cGUsIGVsZW1lbnRzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzFEVGV4dHVyZUFycmF5KHByb2dy
YW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJv
Z3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUxREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcg
VGV4dHVyZTFEQXJyYXlSVyhlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24gbWFr
ZVJXMkRUZXh0dXJlKHByb2dyYW0sIHJvd3MsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBU
eXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTJEPCR7ZWxlbWVudFR5
cGV9PmBdLCBuZXcgVGV4dHVyZTJEUlcoZWxlbWVudFR5cGUsIHJvd3MpKTsKK30KKworZnVuY3Rp
b24gbWFrZVJXMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQorewor
ICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTJE
QXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlMkRBcnJheVJXKGVsZW1lbnRUeXBl
LCBhcnJheSkpOworfQorCitmdW5jdGlvbiBtYWtlUlczRFRleHR1cmUocHJvZ3JhbSwgZGVwdGhT
bGljZXMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFt
LmludHJpbnNpY3NbYFJXVGV4dHVyZTNEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTNE
UlcoZWxlbWVudFR5cGUsIGRlcHRoU2xpY2VzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UyRERlcHRo
VGV4dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlw
ZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlRGVwdGgyRDwke2VsZW1lbnRU
eXBlfT5gXSwgbmV3IFRleHR1cmVEZXB0aDJEKGVsZW1lbnRUeXBlLCBtaXBtYXBzKSk7Cit9CisK
K2Z1bmN0aW9uIG1ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50
VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BU
ZXh0dXJlRGVwdGgyREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZURlcHRoMkRB
cnJheShlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24gbWFrZURlcHRoVGV4dHVy
ZUN1YmUocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZh
bHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmVEZXB0aEN1YmU8JHtlbGVtZW50VHlw
ZX0+YF0sIG5ldyBUZXh0dXJlRGVwdGhDdWJlKGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQorCitm
dW5jdGlvbiBtYWtlUlcyRERlcHRoVGV4dHVyZShwcm9ncmFtLCByb3dzLCBlbGVtZW50VHlwZSkK
K3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1
cmVEZXB0aDJEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZURlcHRoMkRSVyhlbGVtZW50
VHlwZSwgcm93cykpOworfQorCitmdW5jdGlvbiBtYWtlUlcyRERlcHRoVGV4dHVyZUFycmF5KHBy
b2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3go
cHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmVEZXB0aDJEQXJyYXk8JHtlbGVtZW50VHlwZX0+
YF0sIG5ldyBUZXh0dXJlRGVwdGgyREFycmF5UlcoZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9CisK
IGZ1bmN0aW9uIGNoZWNrTnVtYmVyKHByb2dyYW0sIHJlc3VsdCwgZXhwZWN0ZWQpCiB7CiAgICAg
aWYgKCFyZXN1bHQudHlwZS51bmlmeU5vZGUuaXNOdW1iZXIpCkBAIC01NTgyLDcgKzU3MDksMTY4
MiBAQCB0ZXN0cy5hcnJheUluZGV4ID0gZnVuY3Rpb24oKSB7CiAgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMikgXSksIDMpOwogICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApIF0pLCA0KTsKICAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBbIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSBdKSwgNSk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMikgXSksIDYpOyAgICAKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBbIG1ha2VV
aW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAyKSBdKSwgNik7Cit9CisKK2Z1bmN0
aW9uIGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9ncmFtKQoreworICAgIGxldCB0ZXh0dXJl
MUQgPSBtYWtlMURUZXh0dXJlKHByb2dyYW0sIFtbMSwgNywgMTQsIDc5XSwgWzEzLCAxNl0sIFsx
NV1dLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZTFEQXJyYXkgPSBtYWtlMURUZXh0dXJlQXJy
YXkocHJvZ3JhbSwgW1tbMSwgNywgMTQsIDc5XSwgWzEzLCAxNl0sIFsxNV1dLCBbWzE2LCAxNywg
MTgsIDE5XSwgWzIwLCAyMV0sIFsyMl1dXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmUyRCA9
IG1ha2UyRFRleHR1cmUocHJvZ3JhbSwgWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcs
IDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBb
MTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4
LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2XSwKKyAgICAgICAg
WzM3LCAzOCwgMzksIDQwXV0sCisgICAgICAgIFtbNDEsIDQyXV0KKyAgICBdLCAiZmxvYXQiKTsK
KyAgICBsZXQgdGV4dHVyZTJEQXJyYXkgPSBtYWtlMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1sK
KyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwg
MTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIz
LCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAg
ICAgW1szMywgMzQsIDM1LCAzNl0sCisgICAgICAgIFszNywgMzgsIDM5LCA0MF1dLAorICAgICAg
ICBbWzQxLCA0Ml1dCisgICAgXSwgWworICAgICAgICBbWzQzLCA0NCwgNDUsIDQ2LCA0NywgNDgs
IDQ5LCA1MF0sCisgICAgICAgIFs1MSwgNTIsIDUzLCA1NCwgNTUsIDU2LCA1NywgNThdLAorICAg
ICAgICBbNTksIDYwLCA2MSwgNjIsIDYzLCA2NCwgNjUsIDY2XSwKKyAgICAgICAgWzY3LCA2OCwg
NjksIDcwLCA3MSwgNzIsIDczLCA3NF1dLAorICAgICAgICBbWzc1LCA3NiwgNzcsIDc4XSwKKyAg
ICAgICAgWzc5LCA4MCwgODEsIDgyXV0sCisgICAgICAgIFtbODMsIDg0XV0KKyAgICBdXSwgImZs
b2F0Iik7CisgICAgbGV0IHRleHR1cmUzRCA9IG1ha2UzRFRleHR1cmUocHJvZ3JhbSwgWworICAg
ICAgICBbW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIs
IDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAy
NF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAg
W1szMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDBdLAorICAgICAgICBbNDEsIDQyLCA0Mywg
NDQsIDQ1LCA0NiwgNDcsIDQ4XSwKKyAgICAgICAgWzQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1
LCA1Nl0sCisgICAgICAgIFs1NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2MywgNjRdXV0sCisgICAg
ICAgIFtbWzY1LCA2NiwgNjcsIDY4XSwKKyAgICAgICAgWzY5LCA3MCwgNzEsIDcyXV1dCisgICAg
XSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmVDdWJlID0gbWFrZVRleHR1cmVDdWJlKHByb2dy
YW0sIFtbCisgICAgICAgIFtbMSwgMl0sCisgICAgICAgIFszLCA0XSwKKyAgICAgICAgWzUsIDZd
LAorICAgICAgICBbNywgOF1dLAorICAgICAgICBbWzldLAorICAgICAgICBbMTBdXSwKKyAgICBd
LCBbCisgICAgICAgIFtbMTEsIDEyXSwKKyAgICAgICAgWzEzLCAxNF0sCisgICAgICAgIFsxNSwg
MTZdLAorICAgICAgICBbMTcsIDE4XV0sCisgICAgICAgIFtbMTldLAorICAgICAgICBbMjBdXSwK
KyAgICBdLCBbCisgICAgICAgIFtbMjEsIDIyXSwKKyAgICAgICAgWzIzLCAyNF0sCisgICAgICAg
IFsyNSwgMjZdLAorICAgICAgICBbMjcsIDI4XV0sCisgICAgICAgIFtbMjldLAorICAgICAgICBb
MzBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbMzEsIDMyXSwKKyAgICAgICAgWzMzLCAzNF0sCisg
ICAgICAgIFszNSwgMzZdLAorICAgICAgICBbMzcsIDM4XV0sCisgICAgICAgIFtbMzldLAorICAg
ICAgICBbNDBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbNDEsIDQyXSwKKyAgICAgICAgWzQzLCA0
NF0sCisgICAgICAgIFs0NSwgNDZdLAorICAgICAgICBbNDcsIDQ4XV0sCisgICAgICAgIFtbNDld
LAorICAgICAgICBbNTBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbNTEsIDUyXSwKKyAgICAgICAg
WzUzLCA1NF0sCisgICAgICAgIFs1NSwgNTZdLAorICAgICAgICBbNTcsIDU4XV0sCisgICAgICAg
IFtbNTldLAorICAgICAgICBbNjBdXSwKKyAgICBdXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4
dHVyZTFEID0gbWFrZVJXMURUZXh0dXJlKHByb2dyYW0sIFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4
XSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4dHVyZTFEQXJyYXkgPSBtYWtlUlcxRFRleHR1cmVB
cnJheShwcm9ncmFtLCBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLCBbOSwgMTAsIDExLCAxMiwg
MTMsIDE0LCAxNSwgMTZdLCBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XV0sICJmbG9h
dCIpOworICAgIGxldCByd1RleHR1cmUyRCA9IG1ha2VSVzJEVGV4dHVyZShwcm9ncmFtLCBbCisg
ICAgICAgIFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIs
IDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAy
NF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwgImZsb2F0Iik7
CisgICAgbGV0IHJ3VGV4dHVyZTJEQXJyYXkgPSBtYWtlUlcyRFRleHR1cmVBcnJheShwcm9ncmFt
LCBbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwg
MTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIy
LCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisg
ICAgICAgIFtbMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwXSwKKyAgICAgICAgWzQxLCA0
MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OF0sCisgICAgICAgIFs0OSwgNTAsIDUxLCA1MiwgNTMs
IDU0LCA1NSwgNTZdLAorICAgICAgICBbNTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjMsIDY0XV1d
LCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlM0QgPSBtYWtlUlczRFRleHR1cmUocHJvZ3Jh
bSwgWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAs
IDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAy
MiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAor
ICAgICAgICBbWzMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MF0sCisgICAgICAgIFs0MSwg
NDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDhdLAorICAgICAgICBbNDksIDUwLCA1MSwgNTIsIDUz
LCA1NCwgNTUsIDU2XSwKKyAgICAgICAgWzU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLCA2NF1d
XSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmVEZXB0aDJEID0gbWFrZTJERGVwdGhUZXh0dXJl
KHByb2dyYW0sIFsKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAg
WzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIw
LCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwg
MzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNl0sCisgICAgICAgIFszNywgMzgsIDM5LCA0
MF1dLAorICAgICAgICBbWzQxLCA0Ml1dCisgICAgXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1
cmVEZXB0aDJEQXJyYXkgPSBtYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbWworICAg
ICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwg
MTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0
XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBb
WzMzLCAzNCwgMzUsIDM2XSwKKyAgICAgICAgWzM3LCAzOCwgMzksIDQwXV0sCisgICAgICAgIFtb
NDEsIDQyXV0KKyAgICBdLCBbCisgICAgICAgIFtbNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwgNDks
IDUwXSwKKyAgICAgICAgWzUxLCA1MiwgNTMsIDU0LCA1NSwgNTYsIDU3LCA1OF0sCisgICAgICAg
IFs1OSwgNjAsIDYxLCA2MiwgNjMsIDY0LCA2NSwgNjZdLAorICAgICAgICBbNjcsIDY4LCA2OSwg
NzAsIDcxLCA3MiwgNzMsIDc0XV0sCisgICAgICAgIFtbNzUsIDc2LCA3NywgNzhdLAorICAgICAg
ICBbNzksIDgwLCA4MSwgODJdXSwKKyAgICAgICAgW1s4MywgODRdXQorICAgIF1dLCAiZmxvYXQi
KTsKKyAgICBsZXQgdGV4dHVyZURlcHRoQ3ViZSA9IG1ha2VEZXB0aFRleHR1cmVDdWJlKHByb2dy
YW0sIFtbCisgICAgICAgIFtbMSwgMl0sCisgICAgICAgIFszLCA0XSwKKyAgICAgICAgWzUsIDZd
LAorICAgICAgICBbNywgOF1dLAorICAgICAgICBbWzldLAorICAgICAgICBbMTBdXSwKKyAgICBd
LCBbCisgICAgICAgIFtbMTEsIDEyXSwKKyAgICAgICAgWzEzLCAxNF0sCisgICAgICAgIFsxNSwg
MTZdLAorICAgICAgICBbMTcsIDE4XV0sCisgICAgICAgIFtbMTldLAorICAgICAgICBbMjBdXSwK
KyAgICBdLCBbCisgICAgICAgIFtbMjEsIDIyXSwKKyAgICAgICAgWzIzLCAyNF0sCisgICAgICAg
IFsyNSwgMjZdLAorICAgICAgICBbMjcsIDI4XV0sCisgICAgICAgIFtbMjldLAorICAgICAgICBb
MzBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbMzEsIDMyXSwKKyAgICAgICAgWzMzLCAzNF0sCisg
ICAgICAgIFszNSwgMzZdLAorICAgICAgICBbMzcsIDM4XV0sCisgICAgICAgIFtbMzldLAorICAg
ICAgICBbNDBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbNDEsIDQyXSwKKyAgICAgICAgWzQzLCA0
NF0sCisgICAgICAgIFs0NSwgNDZdLAorICAgICAgICBbNDcsIDQ4XV0sCisgICAgICAgIFtbNDld
LAorICAgICAgICBbNTBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbNTEsIDUyXSwKKyAgICAgICAg
WzUzLCA1NF0sCisgICAgICAgIFs1NSwgNTZdLAorICAgICAgICBbNTcsIDU4XV0sCisgICAgICAg
IFtbNTldLAorICAgICAgICBbNjBdXSwKKyAgICBdXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4
dHVyZURlcHRoMkQgPSBtYWtlUlcyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAgIFsx
LCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwg
MTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAg
ICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwgImZsb2F0Iik7CisgICAgbGV0
IHJ3VGV4dHVyZURlcHRoMkRBcnJheSA9IG1ha2VSVzJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3Jh
bSwgWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAs
IDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAy
MiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAor
ICAgICAgICBbWzMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MF0sCisgICAgICAgIFs0MSwg
NDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDhdLAorICAgICAgICBbNDksIDUwLCA1MSwgNTIsIDUz
LCA1NCwgNTUsIDU2XSwKKyAgICAgICAgWzU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLCA2NF1d
XSwgImZsb2F0Iik7CisgICAgcmV0dXJuIFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0ZXh0
dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1cmUx
RCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3VGV4
dHVyZTNELCB0ZXh0dXJlRGVwdGgyRCwgdGV4dHVyZURlcHRoMkRBcnJheSwgdGV4dHVyZURlcHRo
Q3ViZSwgcndUZXh0dXJlRGVwdGgyRCwgcndUZXh0dXJlRGVwdGgyREFycmF5XTsKK30KKwordGVz
dHMudGV4dHVyZURpbWVuc2lvbnMgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcChgCisgICAgICAgIHVpbnQgZm9vMShUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAg
ICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZudW1iZXJPZkxl
dmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWlu
dCBmb28yKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0
aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1l
bnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAg
IHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzMoVGV4
dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7Cisg
ICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVs
czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmZWxlbWVu
dHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAg
IH0KKyAgICAgICAgdWludCBmb280KFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7Cisg
ICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAg
ICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRl
eHR1cmUsIDAsICZ3aWR0aCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAg
ICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNShUZXh0dXJl
MURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAg
ICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZlbGVtZW50cywg
Jm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAg
ICAgICAgfQorICAgICAgICB1aW50IGZvbzYoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7Cisg
ICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAg
ICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0
dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICBy
ZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb283KFRleHR1cmUyRDxmbG9h
dD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQg
aGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdl
dERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMp
OworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZv
bzgoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOwor
ICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxz
OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQs
ICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7Cisg
ICAgICAgIH0KKyAgICAgICAgdWludCBmb285KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJl
KSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7Cisg
ICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVs
czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0
LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7
CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xMChUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4
dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0
OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZM
ZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhl
aWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGhl
aWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzExKFRleHR1cmUyREFycmF5PGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1i
ZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRo
LCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1
cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xMihUZXh0dXJlMkRBcnJh
eTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAg
IHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVp
bnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAs
ICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAg
ICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTMo
VGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAg
ICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAg
ICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAg
ICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xNChUZXh0dXJl
M0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAg
ICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICB1aW50
IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAm
d2lkdGgsICZoZWlnaHQsICZkZXB0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJl
dHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xNShUZXh0dXJlM0Q8Zmxv
YXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50
IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICB1aW50IG51bWJl
ck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgs
ICZoZWlnaHQsICZkZXB0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBk
ZXB0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE2KFRleHR1cmUzRDxmbG9hdD4gdGV4
dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0
OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZl
bHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdo
dCwgJmRlcHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9m
TGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTcoVGV4dHVyZUN1YmU8ZmxvYXQ+
IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhl
aWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXRE
aW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsK
KyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE4
KFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOwor
ICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxz
OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQs
ICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9
CisgICAgICAgIHVpbnQgZm9vMTkoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAg
ICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAg
IHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUs
IDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVy
biBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIwKFJXVGV4dHVy
ZTFEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAg
ICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgpOworICAgICAgICAgICAgcmV0dXJuIHdp
ZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjEoUldUZXh0dXJlMURBcnJheTxmbG9h
dD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQg
ZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmVs
ZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1
aW50IGZvbzIyKFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAg
IHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0
RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1
cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yMyhSV1RleHR1cmUyRDxm
bG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVp
bnQgaGVpZ2h0OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZo
ZWlnaHQpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVp
bnQgZm9vMjQoUldUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQg
d2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7
CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yNShSV1RleHR1cmUyREFycmF5PGZsb2F0PiB0
ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWln
aHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9u
cyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1
cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yNihSV1RleHR1cmUyREFycmF5
PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAg
dWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0
RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cyk7CisgICAgICAg
ICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjcoUldUZXh0
dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAg
ICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAg
ICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMp
OworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAgICB9CisgICAgICAgIHVpbnQg
Zm9vMjgoUldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lk
dGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7Cisg
ICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRo
KTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZv
bzI5KFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRo
OworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAg
ICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCk7
CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9v
MzAoUldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7
CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAg
ICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoKTsK
KyAgICAgICAgICAgIHJldHVybiBkZXB0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzMx
KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRo
OworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2
ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWln
aHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAg
IH0KKyAgICAgICAgdWludCBmb28zMihUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSkgewor
ICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAg
ICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4
dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAg
cmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzMzKFRleHR1cmVEZXB0
aDJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAg
ICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAg
ICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJP
ZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0K
KyAgICAgICAgdWludCBmb28zNChUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7
CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAg
ICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsK
KyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAm
ZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7Cisg
ICAgICAgIH0KKyAgICAgICAgdWludCBmb28zNShUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0
ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWln
aHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJP
ZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAm
aGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4g
aGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMzYoVGV4dHVyZURlcHRoMkRBcnJh
eTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAg
IHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVp
bnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAs
ICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAg
ICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMzcoVGV4dHVy
ZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsK
KyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAg
ICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25z
KHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMp
OworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAg
IHVpbnQgZm9vMzgoVGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAg
ICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWlu
dCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwg
JndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdp
ZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMzkoVGV4dHVyZURlcHRoQ3ViZTxmbG9h
dD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQg
aGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdl
dERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMp
OworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZv
bzQwKFRleHR1cmVEZXB0aEN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQg
d2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVy
T2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwg
JmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxl
dmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzQxKFJXVGV4dHVyZURlcHRoMkQ8Zmxv
YXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50
IGhlaWdodDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVp
Z2h0KTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50
IGZvbzQyKFJXVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVp
bnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIEdldERpbWVu
c2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICAgICAgICAgIHJldHVybiBoZWln
aHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb280MyhSV1RleHR1cmVEZXB0aDJEQXJyYXk8
ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1
aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXRE
aW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAgICAg
ICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzQ0KFJXVGV4dHVy
ZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsK
KyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAg
ICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVu
dHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50
IGZvbzQ1KFJXVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAg
ICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWlu
dCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAm
aGVpZ2h0LCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAg
ICB9CisgICAgYCk7CisgICAgbGV0IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0ZXh0dXJl
MkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1cmUxRCwg
cndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3VGV4dHVy
ZTNELCB0ZXh0dXJlRGVwdGgyRCwgdGV4dHVyZURlcHRoMkRBcnJheSwgdGV4dHVyZURlcHRoQ3Vi
ZSwgcndUZXh0dXJlRGVwdGgyRCwgcndUZXh0dXJlRGVwdGgyREFycmF5XSA9IGNyZWF0ZVRleHR1
cmVzRm9yVGVzdGluZyhwcm9ncmFtKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRF0pLCAzKTsKKyAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1
cmUxREFycmF5XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXldKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMURBcnJheV0pLCAzKTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3Rl
eHR1cmUyRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb283IiwgW3RleHR1cmUyRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyRF0pLCAzKTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUyREFycmF5
XSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEwIiwgW3RleHR1cmUyREFycmF5XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3RleHR1cmUyREFycmF5XSksIDIpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1cmUy
REFycmF5XSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEzIiwgW3RleHR1cmUzRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlM0RdKSwgNCk7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTNEXSks
IDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2
IiwgW3RleHR1cmUzRF0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlQ3ViZV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlQ3ViZV0pLCA0KTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0
ZXh0dXJlQ3ViZV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmUxRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmUxREFycmF5XSksIDgp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwg
W3J3VGV4dHVyZTFEQXJyYXldKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbcndUZXh0dXJlMkRdKSwgOCk7CisgICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjQiLCBbcndUZXh0dXJlMkRdKSwg
NCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjUi
LCBbcndUZXh0dXJlMkRBcnJheV0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yNiIsIFtyd1RleHR1cmUyREFycmF5XSksIDQpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI3IiwgW3J3VGV4dHVy
ZTJEQXJyYXldKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjgiLCBbcndUZXh0dXJlM0RdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjkiLCBbcndUZXh0dXJlM0RdKSwgNCk7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzAiLCBbcndUZXh0
dXJlM0RdKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMzEiLCBbdGV4dHVyZURlcHRoMkRdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzIiLCBbdGV4dHVyZURlcHRoMkRdKSwgNCk7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzMiLCBbdGV4
dHVyZURlcHRoMkRdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMzQiLCBbdGV4dHVyZURlcHRoMkRBcnJheV0pLCA4KTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNSIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJEQXJyYXldKSwgMik7CisgICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzciLCBbdGV4dHVyZURlcHRoMkRBcnJh
eV0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zOCIsIFt0ZXh0dXJlRGVwdGhDdWJlXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM5IiwgW3RleHR1cmVEZXB0aEN1YmVdKSwgNCk7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDAiLCBbdGV4
dHVyZURlcHRoQ3ViZV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280MSIsIFtyd1RleHR1cmVEZXB0aDJEXSksIDgpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3J3VGV4dHVyZURlcHRo
MkRdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNDMiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5XSksIDgpOworICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJh
eV0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280NSIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXldKSwgMik7Cit9CisKK3Rlc3RzLnRleHR1cmVM
b2FkID0gZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICBm
bG9hdCBmb28xKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQgbWlw
bWFwKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGxvY2F0aW9uLCBt
aXBtYXApKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28yKFRleHR1cmUxRDxmbG9hdD4g
dGV4dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQgbWlwbWFwLCBpbnQgb2Zmc2V0KSB7CisgICAgICAg
ICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGxvY2F0aW9uLCBtaXBtYXApLCBvZmZzZXQp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzMoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRl
eHR1cmUsIGludCBsb2NhdGlvbiwgaW50IG1pcG1hcCwgaW50IGxheWVyKSB7CisgICAgICAgICAg
ICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKGxvY2F0aW9uLCBtaXBtYXAsIGxheWVyKSk7Cisg
ICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNChUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVy
ZSwgaW50IGxvY2F0aW9uLCBpbnQgbWlwbWFwLCBpbnQgbGF5ZXIsIGludCBvZmZzZXQpIHsKKyAg
ICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMobG9jYXRpb24sIG1pcG1hcCwgbGF5
ZXIpLCBvZmZzZXQpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzUoVGV4dHVyZTJEPGZs
b2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXApIHsKKyAgICAgICAgICAgIHJl
dHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgbWlwbWFwKSk7CisgICAgICAgIH0KKyAgICAg
ICAgZmxvYXQgZm9vNihUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50
IG1pcG1hcCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4g
TG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIG1pcG1hcCksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzcoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRl
eHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCwgaW50IGxheWVyKSB7CisgICAgICAgICAg
ICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgsIHksIG1pcG1hcCwgbGF5ZXIpKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb284KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBp
bnQgeCwgaW50IHksIGludCBtaXBtYXAsIGludCBsYXllciwgaW50IG9mZnNldFgsIGludCBvZmZz
ZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgsIHksIG1pcG1h
cCwgbGF5ZXIpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdCBmb285KFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgeiwg
aW50IG1pcG1hcCkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50NCh4LCB5
LCB6LCBtaXBtYXApKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xMChUZXh0dXJlM0Q8
ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IHosIGludCBtaXBtYXAsIGludCBvZmZz
ZXRYLCBpbnQgb2Zmc2V0WSwgaW50IG9mZnNldFopIHsKKyAgICAgICAgICAgIHJldHVybiBMb2Fk
KHRleHR1cmUsIGludDQoeCwgeSwgeiwgbWlwbWFwKSwgaW50MyhvZmZzZXRYLCBvZmZzZXRZLCBv
ZmZzZXRaKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTEoUldUZXh0dXJlMUQ8Zmxv
YXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4
dHVyZSwgbG9jYXRpb24pOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzEyKFJXVGV4dHVy
ZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50IGxheWVyKSB7CisgICAg
ICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGxvY2F0aW9uLCBsYXllcikpOworICAg
ICAgICB9CisgICAgICAgIGZsb2F0IGZvbzEzKFJXVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBp
bnQgeCwgaW50IHkpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIoeCwg
eSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE0KFJXVGV4dHVyZTJEQXJyYXk8Zmxv
YXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IGxheWVyKSB7CisgICAgICAgICAgICByZXR1
cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAg
ZmxvYXQgZm9vMTUoUldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50
IHopIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgeikpOwor
ICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE2KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0
dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXApIHsKKyAgICAgICAgICAgIHJldHVybiBMb2Fk
KHRleHR1cmUsIGludDMoeCwgeSwgbWlwbWFwKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQg
Zm9vMTcoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1p
cG1hcCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gTG9h
ZCh0ZXh0dXJlLCBpbnQzKHgsIHksIG1pcG1hcCksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOwor
ICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE4KFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+
IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCwgaW50IGxheWVyKSB7CisgICAgICAg
ICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgsIHksIG1pcG1hcCwgbGF5ZXIpKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb28xOShUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0
ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXAsIGludCBsYXllciwgaW50IG9mZnNldFgs
IGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgs
IHksIG1pcG1hcCwgbGF5ZXIpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQor
ICAgICAgICBmbG9hdCBmb28yMChSV1RleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBpbnQg
eCwgaW50IHkpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIoeCwgeSkp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzIxKFJXVGV4dHVyZURlcHRoMkRBcnJheTxm
bG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbGF5ZXIpIHsKKyAgICAgICAgICAgIHJl
dHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgbGF5ZXIpKTsKKyAgICAgICAgfQorICAgIGAp
OworICAgIGxldCBbdGV4dHVyZTFELCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0ZXh0dXJl
MkRBcnJheSwgdGV4dHVyZTNELCB0ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVyZTFE
QXJyYXksIHJ3VGV4dHVyZTJELCByd1RleHR1cmUyREFycmF5LCByd1RleHR1cmUzRCwgdGV4dHVy
ZURlcHRoMkQsIHRleHR1cmVEZXB0aDJEQXJyYXksIHRleHR1cmVEZXB0aEN1YmUsIHJ3VGV4dHVy
ZURlcHRoMkQsIHJ3VGV4dHVyZURlcHRoMkRBcnJheV0gPSBjcmVhdGVUZXh0dXJlc0ZvclRlc3Rp
bmcocHJvZ3JhbSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDcpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRCwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSld
KSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEzKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0
dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJl
MURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTYpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUx
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNyk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgMjApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDIxKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURB
cnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIC0xKV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAxNik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBb
dGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMjEpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUx
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAyMCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVy
ZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzgpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1
cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIs
IFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxOCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJl
MkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE3
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIs
IFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzNyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM4KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDM0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0
dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dy
YW0sIC0xKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgMzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0Myk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDUxKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgNzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDc2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCA3OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgODApOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAxMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAxMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzOCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDM5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgLTEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzOSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDM1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCA0NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTIpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDQ1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1Myk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDYwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA1Myk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgNjEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDc2KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCA4MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
NzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDgxKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCA4MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDc2KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCA4MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSks
IDc3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNE
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzMyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVy
ZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCA0Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDY1KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0
ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNjYpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA2OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDcwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEw
IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3Rl
eHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNE
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDQxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQyKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBb
dGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVy
ZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQxKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDQyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIC0xKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDQyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDQ5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCA5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAi
LCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQzKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4
dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUwKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNE
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAxMCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2Nik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCA2Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA3MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCA3MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgNjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNzEp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIs
IFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDY2KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndU
ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAz
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEi
LCBbcndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBt
YWtlSW50KHByb2dyYW0sIDQpXSksIDUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCA1
KV0pLCA2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgNildKSwgNyk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVy
ZTFELCBtYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1
cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIs
IFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDUp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDgpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUx
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFty
d1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAxMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMyks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwg
bWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVy
ZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTUp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIs
IFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAyKV0pLCAxNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4
dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwg
MjEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dy
YW0sIDIpXSksIDIyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFr
ZUludChwcm9ncmFtLCAyKV0pLCAyMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBt
YWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0
dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3
VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDYp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIs
IFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFt
LCA0KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHBy
b2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTUpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwg
bWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVy
ZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE3KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndU
ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTgp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIs
IFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAyKV0p
LCAxOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0s
IDIpXSksIDIwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJv
Z3JhbSwgMildKSwgMjEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUlu
dChwcm9ncmFtLCAyKV0pLCAyMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBt
YWtlSW50KHByb2dyYW0sIDIpXSksIDIzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
NyksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyNSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI2KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjcpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyOCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4
dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBb
cndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwg
MzApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAz
KV0pLCAzMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dy
YW0sIDMpXSksIDMyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJl
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1Rl
eHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0MSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0Iiwg
W3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBb
cndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1
cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0Qs
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0MSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDQyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzcpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVy
ZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJl
RGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMzKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVy
ZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzcpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0
dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwg
LTEpXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgi
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4Iiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzMpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4
dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzgpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQzKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURl
cHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0NCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTEpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDUyKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3NSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNzYpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDc5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA4MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTApOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAx
MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTgpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAxOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAzNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAtMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDM5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMzUpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQ0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCA1Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDUpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDUzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA1Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNjAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUzKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCA2MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgNzYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDgwKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURl
cHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgODEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDgwKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4
dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgNzYpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDgxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwg
NzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0s
IDIpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50
KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJE
LCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1
cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDYp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIs
IFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwg
bWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVy
ZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTIp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIs
IFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwg
NiksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50
KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgy
RCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxNyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4
dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwg
MTgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dy
YW0sIDIpXSksIDE5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFr
ZUludChwcm9ncmFtLCAyKV0pLCAyMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtl
SW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVw
dGgyRCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3
VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMild
KSwgMjQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDMpXSksIDI1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAzKV0pLCAyNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJv
Z3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjcpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBt
YWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI4KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJl
RGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyOSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwg
W3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwg
MyldKSwgMzApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50
KHByb2dyYW0sIDMpXSksIDMxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA3
KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAzMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjEiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwg
W3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0MSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4
dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0Mik7Cit9CisKK3Rlc3RzLnRleHR1cmVTdG9yZSA9
IGZ1bmN0aW9uKCkgeworICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKKyAgICAgICAgZmxvYXQg
Zm9vMShSV1RleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSwgdWludCBsb2NhdGlvbiwgZmxvYXQgdmFs
dWUpIHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1cmUsIHZhbHVlLCBsb2NhdGlvbik7CisgICAg
ICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQobG9jYXRpb24pKTsKKyAgICAgICAgfQor
ICAgICAgICBmbG9hdCBmb28yKFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHVpbnQg
bG9jYXRpb24sIHVpbnQgbGF5ZXIsIGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICBTdG9yZSh0
ZXh0dXJlLCB2YWx1ZSwgdWludDIobG9jYXRpb24sIGxheWVyKSk7CisgICAgICAgICAgICByZXR1
cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGludChsb2NhdGlvbiksIGludChsYXllcikpKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb28zKFJXVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCB1aW50
IHgsIHVpbnQgeSwgZmxvYXQgdmFsdWUpIHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1cmUsIHZh
bHVlLCB1aW50Mih4LCB5KSk7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQy
KGludCh4KSwgaW50KHkpKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNChSV1RleHR1
cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCB1aW50IHgsIHVpbnQgeSwgdWludCBsYXllciwgZmxv
YXQgdmFsdWUpIHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1cmUsIHZhbHVlLCB1aW50Myh4LCB5
LCBsYXllcikpOworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MyhpbnQoeCks
IGludCh5KSwgaW50KGxheWVyKSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzUoUldU
ZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIHVpbnQgeCwgdWludCB5LCB1aW50IHosIGZsb2F0IHZh
bHVlKSB7CisgICAgICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDMoeCwgeSwgeikp
OworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MyhpbnQoeCksIGludCh5KSwg
aW50KHopKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNihSV1RleHR1cmVEZXB0aDJE
PGZsb2F0PiB0ZXh0dXJlLCB1aW50IHgsIHVpbnQgeSwgZmxvYXQgdmFsdWUpIHsKKyAgICAgICAg
ICAgIFN0b3JlKHRleHR1cmUsIHZhbHVlLCB1aW50Mih4LCB5KSk7CisgICAgICAgICAgICByZXR1
cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGludCh4KSwgaW50KHkpKSk7CisgICAgICAgIH0KKyAgICAg
ICAgZmxvYXQgZm9vNyhSV1RleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHVpbnQg
eCwgdWludCB5LCB1aW50IGxheWVyLCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUo
dGV4dHVyZSwgdmFsdWUsIHVpbnQzKHgsIHksIGxheWVyKSk7CisgICAgICAgICAgICByZXR1cm4g
TG9hZCh0ZXh0dXJlLCBpbnQzKGludCh4KSwgaW50KHkpLCBpbnQobGF5ZXIpKSk7CisgICAgICAg
IH0KKyAgICBgKTsKKyAgICBsZXQgW3RleHR1cmUxRCwgdGV4dHVyZTFEQXJyYXksIHRleHR1cmUy
RCwgdGV4dHVyZTJEQXJyYXksIHRleHR1cmUzRCwgdGV4dHVyZUN1YmUsIHJ3VGV4dHVyZTFELCBy
d1RleHR1cmUxREFycmF5LCByd1RleHR1cmUyRCwgcndUZXh0dXJlMkRBcnJheSwgcndUZXh0dXJl
M0QsIHRleHR1cmVEZXB0aDJELCB0ZXh0dXJlRGVwdGgyREFycmF5LCB0ZXh0dXJlRGVwdGhDdWJl
LCByd1RleHR1cmVEZXB0aDJELCByd1RleHR1cmVEZXB0aDJEQXJyYXldID0gY3JlYXRlVGV4dHVy
ZXNGb3JUZXN0aW5nKHByb2dyYW0pOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1h
a2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4
dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCA2
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgNyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURB
cnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dy
YW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJh
eSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0s
IDQpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIs
IFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwg
bWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDcp
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFty
d1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1Rl
eHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVp
bnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1
cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQo
cHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWlu
dChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUx
REFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJv
Z3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChw
cm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFy
cmF5LCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3Jh
bSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
IiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9n
cmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5
LCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDApLCBt
YWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1Rl
eHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFt
LCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMi
LCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1h
a2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVy
ZTJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDEp
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFty
d1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9n
cmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVp
bnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQs
IG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4
dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0s
IDIpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIs
IFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDIp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChw
cm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9n
cmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFr
ZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVp
bnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJl
MkQsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3
VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dy
YW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0s
IDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWlu
dChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChw
cm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwg
bWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFt
LCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dy
YW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50
KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVp
bnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1h
a2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VV
aW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50
KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJl
RGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHBy
b2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVw
dGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dy
YW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgy
RCwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIs
IFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwg
bWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDMp
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFty
d1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFr
ZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1Rl
eHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
VWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1
cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWlu
dChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVE
ZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJv
Z3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChw
cm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0
aDJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282
IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9n
cmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJE
LCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwg
NCksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282Iiwg
W3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFt
LCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBt
YWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNyks
IG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3J3
VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWlu
dChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzciLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb283IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VVaW50
KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3J3VGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtyd1RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cit9
CisKK3Rlc3RzLnRleHR1cmVTYW1wbGUgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3JhbSA9
IGRvUHJlcChgCisgICAgICAgIGZsb2F0IGZvbzEoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCBz
YW1wbGVyIHMsIGZsb2F0IGxvY2F0aW9uKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRl
eHR1cmUsIHMsIGxvY2F0aW9uKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28yKFRleHR1
cmUxRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNl
dCkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBsb2NhdGlvbiwgb2Zm
c2V0KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28zKFRleHR1cmUxREFycmF5PGZsb2F0
PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IGxheWVyKSB7CisgICAgICAgICAg
ICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Mih4LCBsYXllcikpOworICAgICAgICB9
CisgICAgICAgIGZsb2F0IGZvbzQoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBs
ZXIgcywgZmxvYXQgeCwgZmxvYXQgbGF5ZXIsIGludCBvZmZzZXQpIHsKKyAgICAgICAgICAgIHJl
dHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQyKHgsIGxheWVyKSwgb2Zmc2V0KTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb281KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxl
ciBzLCBmbG9hdCB4LCBmbG9hdCB5KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1
cmUsIHMsIGZsb2F0Mih4LCB5KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNihUZXh0
dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgaW50IG9m
ZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUs
IHMsIGZsb2F0Mih4LCB5KSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAg
ICAgICAgZmxvYXQgZm9vNyhUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBz
LCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIFNh
bXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpKTsKKyAgICAgICAgfQorICAgICAg
ICBmbG9hdCBmb284KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZs
b2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsK
KyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVy
KSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9v
OShUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgeikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMo
eCwgeSwgeikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzEwKFRleHR1cmUzRDxmbG9h
dD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBpbnQgb2Zm
c2V0WCwgaW50IG9mZnNldFksIGludCBvZmZzZXRaKSB7CisgICAgICAgICAgICByZXR1cm4gU2Ft
cGxlKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSwgaW50MyhvZmZzZXRYLCBvZmZzZXRZLCBv
ZmZzZXRaKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTEoVGV4dHVyZUN1YmU8Zmxv
YXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeikgeworICAg
ICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeikpOworICAg
ICAgICB9CisgICAgICAgIGZsb2F0IGZvbzEyKFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2Ft
cGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBCaWFzKSB7CisgICAgICAgICAgICByZXR1
cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIEJpYXMpOworICAgICAgICB9
CisgICAgICAgIGZsb2F0IGZvbzEzKFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBz
LCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBCaWFzLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkp
IHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5
KSwgQmlhcywgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxv
YXQgZm9vMTQoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZs
b2F0IHksIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEpIHsK
KyAgICAgICAgICAgIHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwg
ZmxvYXQyKGRkeDAsIGRkeDEpLCBmbG9hdDIoZGR5MCwgZGR5MSkpOworICAgICAgICB9CisgICAg
ICAgIGZsb2F0IGZvbzE1KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9h
dCB4LCBmbG9hdCB5LCBmbG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHkwLCBmbG9hdCBk
ZHkxLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1w
bGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgZmxvYXQyKGRkeDAsIGRkeDEpLCBmbG9h
dDIoZGR5MCwgZGR5MSksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAg
ICAgIGZsb2F0IGZvbzE2KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9h
dCB4LCBmbG9hdCB5LCBmbG9hdCBMT0QpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZl
bCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIExPRCk7CisgICAgICAgIH0KKyAgICAgICAgZmxv
YXQgZm9vMTcoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZs
b2F0IHksIGZsb2F0IExPRCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAg
ICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBMT0QsIGludDIo
b2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE4KFRleHR1
cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZs
b2F0IGxheWVyLCBmbG9hdCBCaWFzKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQmlhcyh0
ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBCaWFzKTsKKyAgICAgICAgfQorICAgICAg
ICBmbG9hdCBmb28xOShUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBm
bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgQmlhcywgaW50IG9mZnNldFgsIGlu
dCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBm
bG9hdDMoeCwgeSwgbGF5ZXIpLCBCaWFzLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb28yMChUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwg
c2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgZGR4MCwgZmxv
YXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSkgeworICAgICAgICAgICAgcmV0dXJuIFNh
bXBsZUdyYWQodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgZmxvYXQyKGRkeDAsIGRk
eDEpLCBmbG9hdDIoZGR5MCwgZGR5MSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzIx
KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0
IHksIGZsb2F0IGxheWVyLCBmbG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHkwLCBmbG9h
dCBkZHkxLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBT
YW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGZsb2F0MihkZHgwLCBk
ZHgxKSwgZmxvYXQyKGRkeTAsIGRkeTEpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb28yMihUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwg
c2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgTE9EKSB7Cisg
ICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxh
eWVyKSwgTE9EKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28yMyhUZXh0dXJlMkRBcnJh
eTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXll
ciwgZmxvYXQgTE9ELCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJl
dHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBMT0QsIGlu
dDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGludCBmb28yNChUZXh0
dXJlMUQ8aW50ND4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCBsb2NhdGlvbikgeworICAgICAg
ICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBsb2NhdGlvbikueDsKKyAgICAgICAgfQor
ICAgICAgICBpbnQgZm9vMjUoVGV4dHVyZTFEPGludDQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxv
YXQgbG9jYXRpb24pIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgbG9j
YXRpb24pLnk7CisgICAgICAgIH0KKyAgICAgICAgaW50IGZvbzI2KFRleHR1cmUxRDxpbnQ0PiB0
ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IGxvY2F0aW9uKSB7CisgICAgICAgICAgICByZXR1cm4g
U2FtcGxlKHRleHR1cmUsIHMsIGxvY2F0aW9uKS56OworICAgICAgICB9CisgICAgICAgIGludCBm
b28yNyhUZXh0dXJlMUQ8aW50ND4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCBsb2NhdGlvbikg
eworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBsb2NhdGlvbikudzsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb28yOChUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVy
ZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5KSB7CisgICAgICAgICAgICByZXR1cm4gU2Ft
cGxlKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQg
Zm9vMjkoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwg
ZmxvYXQgeSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4g
U2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7
CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMzAoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9h
dD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllcikgewor
ICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIp
KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28zMShUZXh0dXJlRGVwdGgyREFycmF5PGZs
b2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBp
bnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4
dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7Cisg
ICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMzIoVGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4gdGV4
dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KSB7CisgICAgICAgICAg
ICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSk7CisgICAgICAgIH0K
KyAgICAgICAgZmxvYXQgZm9vMzMoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBs
ZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgQmlhcykgeworICAgICAgICAgICAgcmV0dXJu
IFNhbXBsZUJpYXModGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBCaWFzKTsKKyAgICAgICAgfQor
ICAgICAgICBmbG9hdCBmb28zNChUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxl
ciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBCaWFzLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNl
dFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0Mih4
LCB5KSwgQmlhcywgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAg
ZmxvYXQgZm9vMzUoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxv
YXQgeCwgZmxvYXQgeSwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxvYXQg
ZGR5MSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxvYXQy
KHgsIHkpLCBmbG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0MihkZHkwLCBkZHkxKSk7CisgICAgICAg
IH0KKyAgICAgICAgZmxvYXQgZm9vMzYoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNh
bXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQg
ZGR5MCwgZmxvYXQgZGR5MSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAg
ICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGZsb2F0MihkZHgw
LCBkZHgxKSwgZmxvYXQyKGRkeTAsIGRkeTEpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb28zNyhUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVy
ZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBMT0QpIHsKKyAgICAgICAgICAg
IHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIExPRCk7CisgICAg
ICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMzgoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUs
IHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgTE9ELCBpbnQgb2Zmc2V0WCwgaW50
IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBm
bG9hdDIoeCwgeSksIExPRCwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAg
ICAgICAgZmxvYXQgZm9vMzkoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2Ft
cGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgQmlhcykgeworICAg
ICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVy
KSwgQmlhcyk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDAoVGV4dHVyZURlcHRoMkRB
cnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBs
YXllciwgZmxvYXQgQmlhcywgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAg
ICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBCaWFz
LCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb280
MShUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgs
IGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHkw
LCBmbG9hdCBkZHkxKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJlLCBz
LCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBmbG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0MihkZHkwLCBk
ZHkxKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDIoVGV4dHVyZURlcHRoMkRBcnJh
eTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXll
ciwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSwgaW50IG9m
ZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0
dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBmbG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0Mihk
ZHkwLCBkZHkxKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAg
ZmxvYXQgZm9vNDMoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBz
LCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgTE9EKSB7CisgICAgICAgICAg
ICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgTE9E
KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb280NChUZXh0dXJlRGVwdGgyREFycmF5PGZs
b2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBm
bG9hdCBMT0QsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJu
IFNhbXBsZUxldmVsKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIExPRCwgaW50Mihv
ZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDUoVGV4dHVy
ZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxv
YXQgY29tcGFyZVZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQ21wKHRleHR1cmUs
IHMsIGZsb2F0Mih4LCB5KSwgY29tcGFyZVZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb280NihUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4
LCBmbG9hdCB5LCBmbG9hdCBjb21wYXJlVmFsdWUsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkg
eworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUNtcCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSks
IGNvbXBhcmVWYWx1ZSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAg
ICAgZmxvYXQgZm9vNDcoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxl
ciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgY29tcGFyZVZhbHVlKSB7
CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQ21wKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBs
YXllciksIGNvbXBhcmVWYWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDgoVGV4
dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9h
dCB5LCBmbG9hdCBsYXllciwgZmxvYXQgY29tcGFyZVZhbHVlLCBpbnQgb2Zmc2V0WCwgaW50IG9m
ZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVDbXAodGV4dHVyZSwgcywgZmxvYXQz
KHgsIHksIGxheWVyKSwgY29tcGFyZVZhbHVlLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb280OShUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSwg
c2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBmbG9hdCBiaWFzKSB7CisgICAg
ICAgICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeiksIGJp
YXMpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzUwKFRleHR1cmVDdWJlPGZsb2F0PiB0
ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IGRkeDAs
IGZsb2F0IGRkeDEsIGZsb2F0IGRkeDIsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEsIGZsb2F0IGRk
eTIpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Myh4
LCB5LCB6KSwgZmxvYXQzKGRkeDAsIGRkeDEsIGRkeDIpLCBmbG9hdDMoZGR5MCwgZGR5MSwgZGR5
MikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzUxKFRleHR1cmVDdWJlPGZsb2F0PiB0
ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IGxvZCkg
eworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUxldmVsKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5
LCB6KSwgbG9kKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb281MihUZXh0dXJlRGVwdGhD
dWJlPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHos
IGZsb2F0IGJpYXMpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMs
IGZsb2F0Myh4LCB5LCB6KSwgYmlhcyk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNTMo
VGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9h
dCB5LCBmbG9hdCB6LCBmbG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHgyLCBmbG9hdCBk
ZHkwLCBmbG9hdCBkZHkxLCBmbG9hdCBkZHkyKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxl
R3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeiksIGZsb2F0MyhkZHgwLCBkZHgxLCBkZHgy
KSwgZmxvYXQzKGRkeTAsIGRkeTEsIGRkeTIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBm
b281NChUZXh0dXJlRGVwdGhDdWJlPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgs
IGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IGxvZCkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBs
ZUxldmVsKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSwgbG9kKTsKKyAgICAgICAgfQorICAg
IGApOworICAgIGxldCBbdGV4dHVyZTFELCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0ZXh0
dXJlMkRBcnJheSwgdGV4dHVyZTNELCB0ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVy
ZTFEQXJyYXksIHJ3VGV4dHVyZTJELCByd1RleHR1cmUyREFycmF5LCByd1RleHR1cmUzRCwgdGV4
dHVyZURlcHRoMkQsIHRleHR1cmVEZXB0aDJEQXJyYXksIHRleHR1cmVEZXB0aEN1YmUsIHJ3VGV4
dHVyZURlcHRoMkQsIHJ3VGV4dHVyZURlcHRoMkRBcnJheV0gPSBjcmVhdGVUZXh0dXJlc0ZvclRl
c3RpbmcocHJvZ3JhbSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7fSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjM3NSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjQzNzUpXSksIDcpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge30pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41NjI1KV0pLCAxNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4
dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjYy
NSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuMzc1KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjQzNzUpXSksICgzICogNyArIDEgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
XSksICg3ICsgMTQpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41NjI1KV0pLCAoMSAqIDcgKyAz
ICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC42MjUpXSksIDE0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJj
bGFtcFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjM3NSldKSwgNyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4
dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJl
c3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC40Mzc1
KV0pLCAoMyAqIDcgKyAxICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9y
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoNyArIDE0KSAvIDIpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTog
ImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNTYyNSldKSwgKDEg
KiA3ICsgMyAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNjI1KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSArIDAuMzc1KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxICsgMC40Mzc1KV0pLCAoMyAqIDcgKyAxICogMTQpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4
dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJl
c3NNb2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuNSldKSwgKDcgKyAx
NCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC41
NjI1KV0pLCAoMSAqIDcgKyAzICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSArIDAuNjI1KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuMzc1KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC40Mzc1KV0pLCAoMyAqIDcgKyAxICogMTQpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBb
dGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFk
ZHJlc3NNb2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuNSldKSwgKDcg
KyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsg
MC41NjI1KV0pLCAoMSAqIDcgKyAzICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuNjI1KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVw
ZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuNjI1KV0pLCA3KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJt
aXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC41NjI1KV0pLCAoMyAqIDcg
KyAxICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSArIDAuNSldKSwgKDcgKyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC40Mzc1KV0pLCAoMSAqIDcgKyAzICogMTQpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEi
LCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwg
ckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSArIDAu
Mzc1KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMiArIDAuMzc1KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAyICsgMC40Mzc1KV0pLCAoMyAqIDcgKyAxICogMTQpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2Rl
OiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuNSldKSwgKDcgKyAx
NCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAy
ICsgMC41NjI1KV0pLCAoMSAqIDcgKyAzICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVw
ZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuNjI1KV0pLCAxNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgLTAuMzc1KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxLjM3NSldKSwgNzkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1
cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNz
TW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0wLjM3NSld
KSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
IiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMS4zNzUpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciIsIGJvcmRlckNv
bG9yOiAib3BhcXVlQmxhY2sifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMC4zNzUpXSksIDApOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3Rl
eHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRy
ZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciIsIGJvcmRlckNvbG9yOiAib3BhcXVlQmxhY2si
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAxLjM3NSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0Jv
cmRlckNvbG9yIiwgYm9yZGVyQ29sb3I6ICJvcGFxdWVXaGl0ZSJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIC0wLjM3NSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIiwgYm9yZGVy
Q29sb3I6ICJvcGFxdWVXaGl0ZSJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEuMzc1KV0pLCAxKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0
ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRk
cmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IiLCBib3JkZXJDb2xvcjogIm9wYXF1ZVdoaXRl
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDc5ICsgMSkgLyAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBsb2RNaW5DbGFtcDogMX0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTMgKyAxNikgLyAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJlMUQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgxNCArIDc5KSAvIDIpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUx
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg3ICsgMTQpIC8g
Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMi
LCBbdGV4dHVyZTFEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwg
KDE3ICsgMTgpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDE0ICsgNzkpIC8gMik7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgKDE4ICsgMTkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTMgKyAxNCArIDIxICsg
MjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4
KV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNTQgKyA1
NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
KDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksICg2MiArIDYzICsgNzAgKyA3MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEyICsg
MTMgKyAyMCArIDIxICsgNDQgKyA0NSArIDUyICsgNTMpIC8gOCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KV0pLCAoMTMgKyAxNCArIDIxICsgMjIgKyA0NSArIDQ2ICsgNTMgKyA1NCkgLyA4KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJl
M0QsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KV0pLCAoMjAgKyAyMSArIDI4ICsgMjkgKyA1MiArIDUzICsgNjAgKyA2MSkgLyA4
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIs
IFt0ZXh0dXJlM0QsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDUgLyA4KV0pLCAoMTIgKyAxMyArIDIwICsgMjEgKyAoNDQgKyA0NSArIDUy
ICsgNTMpICogMykgLyAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIx
ICsgMjIgKyA0NSArIDQ2ICsgNTMgKyA1NCkgLyA4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICgyMCArIDIxICsgMjggKyAyOSArIDUyICsgNTMgKyA2MCArIDYxKSAvIDgpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0Qs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuMjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksICg0NCArIDQ1ICsgNTIgKyA1MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZUN1YmUsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDMgKyA0ICsgNSArIDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzExIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDE1ICsgMTYp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzExIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApXSksICgyMyArIDI0ICsgMjUgKyAyNikgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZUN1
YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApXSksICgzMyArIDM0ICsgMzUgKyAzNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDQzICsgNDQg
KyA0NSArIDQ2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSldKSwgKDUzICsgNTQgKyA1NSArIDU2KSAvIDQp
OworICAgIC8vIFVuZm9ydHVuYXRlbHksIHdlIGNhbid0IGFjdHVhbGx5IHRlc3QgdGhlICJCaWFz
IiBhcmd1bWVudCwgYmVjYXVzZSBpdCBpcyBzdXBwb3NlZCB0byBiZSBhcHBsaWVkCisgICAgLy8g
dG8gdGhlIHVuY2xhbXBlZCBMT0QsIHdoaWNoIGZvciB1cyBpcyAtSW5maW5pdHkgKGJlY2F1c2Ug
b3VyIGRlcml2YXRpdmVzIGFyZSBhbGwgMCkKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIw
ICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEyIiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIi
LCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZTJE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAx
NCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEzIiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlMkQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVyZTJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
IC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJl
MkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBb
dGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgzNCArIDM1ICsgMzgg
KyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTQiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRy
LmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0
ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBt
YXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0
dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAv
IHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKCgoMTIgKyAxMyArIDIwICsg
MjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFt0ZXh0dXJlMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsg
MjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE1IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRo
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE1IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMzUgKyAzNiArIDM5ICsgNDApIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1
IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFs
dWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
d2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFs
dWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICgoKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpICsgKCgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KSkg
LyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTYiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUy
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEy
ICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSldKSwgKCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5
KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMzQgKyAzNSArIDM4
ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE3IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmUyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4
ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlMkQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNSArIDM2
ICsgMzkgKyA0MCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZTJE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksICgoKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpICsgKCgzNSArIDM2
ICsgMzkgKyA0MCkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgyMCArIDIxICsg
MjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8g
MTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg2MiArIDYzICsgNzAgKyA3MSkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTkiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
OSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTki
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDYyICsgNjMgKyA3MCArIDcxKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0p
LCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDEyICsgMTMgKyAyMCAr
IDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0
dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgxMiArIDEzICsgMjAgKyAy
MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjAiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1
ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9h
ZFZhbHVlKCkuaGVpZ2h0KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAz
NSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRW
YWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVp
Z2h0KV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDc2ICsgNzcg
KyA4MCArIDgxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21p
bkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCBN
YXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdo
dCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAu
NSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgoKDU0ICsgNTUgKyA2
MiArIDYzKSAvIDQpICsgKCg3NiArIDc3ICsgODAgKyA4MSkgLyA0KSkgLyAyKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIx
ICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0
ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5l
UHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNSArIDM2ICsgMzkgKyA0MCkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwg
MC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5w
b3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgp
LndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZh
bHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAoKCgxMyArIDE0ICsgMjEgKyAyMikgLyA0KSArICgoMzUgKyAzNiArIDM5ICsgNDApIC8gNCkp
IC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NCArIDU1
ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
aGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNzcg
KyA3OCArIDgxICsgODIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
aGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUg
KyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQu
ZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1
cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgKCgoNTUgKyA1NiArIDYzICsgNjQpIC8gNCkgKyAoKDc3ICsgNzgg
KyA4MSArIDgyKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3RleHR1cmUyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsg
MjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIyIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVy
OiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0
ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3RleHR1cmUyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg3NiArIDc3ICsgODAgKyA4MSkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoNTQgKyA1NSAr
IDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIyIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWlu
RmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKCgoNTQgKyA1NSArIDYyICsgNjMpIC8gNCkg
KyAoKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTIgKyAxMyArIDIwICsgMjEpIC8g
NCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsgMjIp
IC8gNCkgKyAoKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICg3NiArIDc3ICsgODAgKyA4MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoNTQgKyA1NSArIDYyICsg
NjMpIC8gNCkgKyAoKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksICg3NyArIDc4ICsgODEgKyA4MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoNTUgKyA1NiArIDYz
ICsgNjQpIC8gNCkgKyAoKDc3ICsgNzggKyA4MSArIDgyKSAvIDQpKSAvIDIpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlMkQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBsb2RNaW5DbGFtcDog
MSwgbG9kTWF4Q2xhbXA6IDF9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMildKSwgKDM0ICsgMzUgKyAzOCArIDM5
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIiLCBsb2RNaW5DbGFtcDogMSwgbG9kTWF4Q2xhbXA6IDF9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRl
eHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
NCIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
LCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIiLCBtYXhBbmlzb3Ryb3B5OiAyfSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDQgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDQvMykgLyB0
ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgzNCArIDM1ICsgMzggKyAzOSkg
LyA0KTsKKyAgICBsZXQgdGV4dHVyZTFESW50NCA9IG1ha2UxRFRleHR1cmUocHJvZ3JhbSwgW1tb
MSwgMiwgMywgNF0sIFsxMDAsIDIwMCwgMzAwLCA0MDBdLCBbMTAxLCAyMDIsIDMwMSwgNDAxXSwg
WzEzLCAxNCwgMTUsIDE2XV0sIFtbMTcsIDE4LCAxOSwgMjBdLCBbMjEsIDIyLCAyMywgMjRdXSwg
W1syNSwgMjYsIDI3LCAyOF1dXSwgImludDQiKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI0IiwgW3RleHR1cmUxREludDQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSks
IDEwMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
NSIsIFt0ZXh0dXJlMURJbnQ0LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAyMDEpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjYiLCBbdGV4dHVyZTFESW50NCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSldKSwgMzAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzI3IiwgW3RleHR1cmUxREludDQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksIDQwMCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4IiwgW3RleHR1
cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEyICsg
MTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4IiwgW3RleHR1cmVE
ZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KV0pLCAoMjAgKyAy
MSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzI5IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzAiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEg
KyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMzEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMSIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICg2MiArIDYzICsgNzAg
KyA3MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMzIiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMyArIDQgKyA1ICsgNikgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzIiLCBbdGV4
dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAxNSArIDE2KSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMiIsIFt0ZXh0dXJlRGVwdGhD
dWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApXSksICgyMyArIDI0ICsgMjUgKyAyNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzIiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMz
ICsgMzQgKyAzNSArIDM2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zMiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg0MyArIDQ0ICsgNDUg
KyA0NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMzIiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSldKSwgKDUzICsgNTQgKyA1NSArIDU2KSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOCIs
IFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSks
ICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMjgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOCIsIFt0
ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCldKSwg
KDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yOSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjkiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMwIiwgW3RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzAiLCBbdGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAx
NCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBb
dGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoNjIgKyA2
MyArIDcwICsgNzEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzMzIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsg
MjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMzIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28z
MyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8g
OCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM0IiwgW3Rl
eHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM0IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzM1IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsg
MjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzM1IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
d2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSks
ICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMzUiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQu
ZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRW
YWx1ZSgpLmhlaWdodCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNSIsIFt0ZXh0dXJlRGVwdGgy
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5o
ZWlnaHQpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzUiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2Fk
VmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRy
LmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0
ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMg
KyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28z
NiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRo
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzM2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lk
dGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNSArIDM2ICsgMzkgKyA0
MCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMzYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQ
dHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQ
dHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJl
MkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksICgoKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpICsgKCgzNSArIDM2ICsg
MzkgKyA0MCkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMzciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAg
KyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMzciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzci
LCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNyIsIFt0ZXh0
dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1p
cG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoKCgxMiArIDEzICsg
MjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1cmVE
ZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
MTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4Iiwg
W3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCAr
IDM5KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOCIsIFt0ZXh0dXJl
RGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
KDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4
IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGlu
ZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDEzICsgMTQgKyAyMSArIDIy
KSAvIDQpICsgKCgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzkiLCBbdGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM5
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSks
ICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzkiLCBbdGV4dHVyZURl
cHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsg
NjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzM5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg2MiArIDYzICsgNzAgKyA3MSkgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDAiLCBbdGV4
dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQwIiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
MCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2
NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNDAiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoNjIgKyA2MyArIDcw
ICsgNzEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MSIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFs
dWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdo
dCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM0ICsg
MzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280MSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lk
dGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkuaGVpZ2h0KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5w
b3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBN
YXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAo
KCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8g
Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQx
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0
aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDU0
ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280MSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDc2ICsgNzcgKyA4MCAr
IDgxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280MSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWlu
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1h
dGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0
KV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41
KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygy
LCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoKCg1NCArIDU1
ICsgNjIgKyA2MykgLyA0KSArICgoNzYgKyA3NyArIDgwICsgODEpIC8gNCkpIC8gMik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCAr
IDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBb
dGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJE
LmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2Fk
VmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksICgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRW
YWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRy
LmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIs
IDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5w
b3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsgMjIp
IC8gNCkgKyAoKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBb
dGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiAr
IDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRW
YWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVp
Z2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNzcgKyA3
OCArIDgxICsgODIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0
aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUo
KS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1
NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpICsgKCg3
NyArIDc4ICsgODEgKyA4MikgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDM0ICsgMzUgKyAzOCAr
IDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280MyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWlu
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKCgoMTIg
KyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAvIDIpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MyIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1NCArIDU1
ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKV0pLCAoNzYgKyA3NyArIDgwICsgODEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KV0pLCAoKCg1NCArIDU1ICsgNjIgKyA2MykgLyA0KSArICgoNzYgKyA3
NyArIDgwICsgODEpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDEyICsgMTMgKyAy
MCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURl
cHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVy
OiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAzOSArIDQw
KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NCArIDU1
ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNzYg
KyA3NyArIDgwICsgODEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCg1NCArIDU1ICsgNjIgKyA2MykgLyA0
KSArICgoNzYgKyA3NyArIDgwICsgODEpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksICg3NyArIDc4ICsgODEgKyA4MikgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIs
IG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgo
KDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpICsgKCg3NyArIDc4ICsgODEgKyA4MikgLyA0KSkgLyAy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUi
LCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5ldmVyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
MSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0Iiks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMTcpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJm
bG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3
XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxl
c3MifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0s
IFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlv
bjogImxlc3MifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHBy
b2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVG
dW5jdGlvbjogImxlc3MifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0
dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2Nv
bXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERl
cHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHtjb21wYXJlRnVuY3Rpb246ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDEpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFtt
YWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0p
LCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJm
bG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFs
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBb
W1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246
ICJsZXNzRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJl
KHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBh
cmVGdW5jdGlvbjogImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAwKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVw
dGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAwKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBb
bWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIz
KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5vdEVxdWFsIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwg
ImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJub3RFcXVh
bCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwg
W1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9u
OiAibm90RXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJl
KHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBh
cmVGdW5jdGlvbjogImdyZWF0ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDApOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtl
MkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
NyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0Iiks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDIzKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3
XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImFs
d2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3Jh
bSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0
aW9uOiAiYWx3YXlzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVy
ZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21w
YXJlRnVuY3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAxKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVw
dGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dy
YW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1
bmN0aW9uOiAibmV2ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcp
XSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxv
YXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5ldmVyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhU
ZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDExKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwg
W1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rp
b246ICJsZXNzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAw
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDci
LCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0Iiks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNzIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJl
QXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHtjb21wYXJlRnVuY3Rpb246ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAxMSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sx
N11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAi
ZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDEpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFtt
YWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJy
YXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtj
b21wYXJlRnVuY3Rpb246ICJsZXNzRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tb
MTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjog
Imxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwg
MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3
IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIp
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhU
ZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDExKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3Jh
bSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVu
Y3Rpb246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3
KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZs
b2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAxKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVw
dGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHBy
b2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFy
ZUZ1bmN0aW9uOiAibm90RXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMTcpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1d
LCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5vdEVx
dWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAxKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFr
ZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDApOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1
cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dy
YW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1
bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDIzKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1d
XSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJhbHdh
eXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtl
MkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5
KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29t
cGFyZUZ1bmN0aW9uOiAiYWx3YXlzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDIzKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNDkiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMyAr
IDQgKyA1ICsgNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDkiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDEzICsgMTQgKyAxNSArIDE2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280OSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApXSksICgyMyArIDI0ICsgMjUgKyAyNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDkiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCldKSwgKDMzICsgMzQgKyAzNSArIDM2KSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280OSIsIFt0ZXh0dXJlQ3ViZSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApXSksICg0MyArIDQ0ICsgNDUgKyA0NikgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDkiLCBbdGV4dHVyZUN1
YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
LTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDUzICsgNTQgKyA1NSArIDU2KSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MCIsIFt0
ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMyArIDQgKyA1ICsgNikgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTAi
LCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMTUg
KyAxNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNTAiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIzICsg
MjQgKyAyNSArIDI2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgKDMzICsgMzQgKyAzNSArIDM2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKV0pLCAoNDMgKyA0NCArIDQ1ICsgNDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKV0pLCAoNTMgKyA1NCArIDU1ICsgNTYpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJl
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIC00IC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC00IC8gdGV4dHVyZUN1YmUuZVB0
ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDkgKyAxMCkg
LyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NTAiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAsIDAsIDQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxv
YWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgLTQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKV0pLCAoMTkgKyAyMCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTAiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCA0IC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDQgLyB0ZXh0dXJlQ3Vi
ZS5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDI5ICsgMzApIC8gMik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJl
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLndp
ZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgLTQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM5ICsgNDAp
IC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNCAvIHRleHR1cmVDdWJlLmVQ
dHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTQg
LyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKV0pLCAoNDkgKyA1MCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNTAiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
LTQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIC00IC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDU5ICsgNjApIC8gMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUxIiwgW3RleHR1cmVDdWJlLCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMgKyA0ICsgNSArIDYpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUxIiwgW3RleHR1cmVDdWJl
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMTUgKyAxNikgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTEiLCBbdGV4
dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMjMgKyAyNCArIDI1ICsgMjYpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUx
IiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzMyArIDM0ICsgMzUg
KyAzNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNDMgKyA0
NCArIDQ1ICsgNDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzUxIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSks
ICg1MyArIDU0ICsgNTUgKyA1NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKV0pLCAoOSArIDEwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KV0pLCAoMTkgKyAyMCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0p
LCAoMjkgKyAzMCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwg
KDM5ICsgNDApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzUxIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDQ5
ICsgNTApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUxIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg1OSAr
IDYwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb281MiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMg
KyA0ICsgNSArIDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzUyIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCldKSwgKDEzICsgMTQgKyAxNSArIDE2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCldKSwgKDIzICsgMjQgKyAyNSArIDI2KSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MiIsIFt0ZXh0dXJlRGVwdGhD
dWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzMyArIDM0ICsgMzUgKyAzNikgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTIiLCBb
dGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg0MyArIDQ0ICsgNDUg
KyA0NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNTIiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAo
NTMgKyA1NCArIDU1ICsgNTYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCldKSwgKDMgKyA0ICsgNSArIDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMTUgKyAxNikgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURl
cHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMjMgKyAyNCArIDI1ICsgMjYpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUz
IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzMyArIDM0
ICsgMzUgKyAzNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KV0pLCAoNDMgKyA0NCArIDQ1ICsgNDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApXSksICg1MyArIDU0ICsgNTUgKyA1NikgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURlcHRo
Q3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAtNCAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtNCAvIHRleHR1cmVDdWJl
LmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg5ICsg
MTApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAsIDAsIDQgLyB0ZXh0dXJlRGVw
dGhDdWJlLmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAtNCAvIHRleHR1cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS5o
ZWlnaHQpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDE5ICsgMjApIC8gMik7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUzIiwgW3RleHR1cmVE
ZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA0IC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRyLmxv
YWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgNCAvIHRleHR1cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWln
aHQpXSksICgyOSArIDMwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb281MyIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDQgLyB0ZXh0dXJlRGVwdGhDdWJlLmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtNCAvIHRleHR1
cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgzOSArIDQwKSAvIDIpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MyIsIFt0
ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNCAvIHRleHR1cmVEZXB0aEN1YmUu
ZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAt
NCAvIHRleHR1cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCldKSwgKDQ5ICsgNTApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgLTQgLyB0ZXh0dXJlRGVwdGhDdWJlLmVQdHIubG9hZFZhbHVlKCkud2lkdGgp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTQgLyB0ZXh0dXJlRGVwdGhDdWJlLmVQ
dHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1OSArIDYw
KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMgKyA0
ICsgNSArIDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgKDEzICsgMTQgKyAxNSArIDE2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCldKSwgKDIzICsgMjQgKyAyNSArIDI2KSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJl
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzMyArIDM0ICsgMzUgKyAzNikgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4
dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg0MyArIDQ0ICsgNDUgKyA0
NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTMg
KyA1NCArIDU1ICsgNTYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKV0pLCAoOSArIDEwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpXSksICgxOSArIDIwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSldKSwgKDI5ICsgMzApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSldKSwgKDM5ICsgNDApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKV0pLCAoNDkgKyA1MCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKV0pLCAoNTkgKyA2MCkgLyAyKTsKIH0KIAogb2tUb1Rlc3QgPSB0cnVl
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZS5qcyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1cmUuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA3
Njk0ZmFjMjY3YTc3ODM2NWI5NGE2OGMwMjEzNzAyNTRjYTUwZgotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1cmUuanMKQEAgLTAsMCArMSw1NDQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworInVzZSBzdHJp
Y3QiOworCitjbGFzcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3RvcihkaW1lbnNpb24sIHdpZHRo
LCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEp
CisgICAgeworICAgICAgICB0aGlzLl9kaW1lbnNpb24gPSBkaW1lbnNpb247CisgICAgICAgIHRo
aXMuX3dpZHRoID0gd2lkdGg7CisgICAgICAgIHRoaXMuX2hlaWdodCA9IGhlaWdodDsKKyAgICAg
ICAgdGhpcy5fZGVwdGggPSBkZXB0aDsKKyAgICAgICAgdGhpcy5fbGV2ZWxDb3VudCA9IGxldmVs
Q291bnQ7CisgICAgICAgIHRoaXMuX2xheWVyQ291bnQgPSBsYXllckNvdW50OworICAgICAgICB0
aGlzLl9pbm5lclR5cGUgPSBpbm5lclR5cGU7CisgICAgICAgIHRoaXMuX2RhdGEgPSBkYXRhOwor
ICAgIH0KKworICAgIGdldCBkaW1lbnNpb24oKSB7IHJldHVybiB0aGlzLl9kaW1lbnNpb247IH0K
KyAgICBnZXQgd2lkdGgoKSB7IHJldHVybiB0aGlzLl93aWR0aDsgfQorICAgIGdldCBoZWlnaHQo
KSB7IHJldHVybiB0aGlzLl9oZWlnaHQ7IH0KKyAgICBnZXQgZGVwdGgoKSB7IHJldHVybiB0aGlz
Ll9kZXB0aDsgfQorICAgIGdldCBsZXZlbENvdW50KCkgeyByZXR1cm4gdGhpcy5fbGV2ZWxDb3Vu
dDsgfQorICAgIGdldCBsYXllckNvdW50KCkgeyByZXR1cm4gdGhpcy5fbGF5ZXJDb3VudDsgfQor
ICAgIGdldCBpbm5lclR5cGUoKSB7IHJldHVybiB0aGlzLl9pbm5lclR5cGU7IH0KKyAgICBnZXQg
ZGF0YSgpIHsgcmV0dXJuIHRoaXMuX2RhdGE7IH0KKworICAgIGVsZW1lbnRDaGVja2VkKGxheWVy
LCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIGlmIChsYXllciA8IDAgfHwgbGF5ZXIg
Pj0gdGhpcy5sYXllckNvdW50CisgICAgICAgICAgICB8fCBsZXZlbCA8IDAgfHwgbGV2ZWwgPj0g
dGhpcy5sZXZlbENvdW50CisgICAgICAgICAgICB8fCBrIDwgMCB8fCBrID49IHRoaXMuZGVwdGgK
KyAgICAgICAgICAgIHx8IGogPCAwIHx8IGogPj0gdGhpcy5oZWlnaHQKKyAgICAgICAgICAgIHx8
IGkgPCAwIHx8IGkgPj0gdGhpcy53aWR0aCkKKyAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7
CisgICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKTsKKyAg
ICB9CisKKyAgICBzZXRFbGVtZW50Q2hlY2tlZChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVl
KQorICAgIHsKKyAgICAgICAgaWYgKGxheWVyIDwgMCB8fCBsYXllciA+PSB0aGlzLmxheWVyQ291
bnQKKyAgICAgICAgICAgIHx8IGxldmVsIDwgMCB8fCBsZXZlbCA+PSB0aGlzLmxldmVsQ291bnQK
KyAgICAgICAgICAgIHx8IGsgPCAwIHx8IGsgPj0gdGhpcy5kZXB0aAorICAgICAgICAgICAgfHwg
aiA8IDAgfHwgaiA+PSB0aGlzLmhlaWdodAorICAgICAgICAgICAgfHwgaSA8IDAgfHwgaSA+PSB0
aGlzLndpZHRoKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB0aGlzLnNldEVs
ZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTFEIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29u
c3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFu
IGFycmF5IG9mIG1pcG1hcHMuCisgICAgICAgIC8vIFRoZSBmaXJzdCBtaXBtYXAgaXMgYW4gYXJy
YXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2FsYXIg
b3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCBtdXN0IGJl
IGEgcG93ZXItb2YtdHdvLgorICAgICAgICAvLyBFYWNoIG1pcG1hcCBpcyBoYWxmLXNpemUgb2Yg
dGhlIHByZXZpb3VzIHNpemUuCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDE7CisgICAgICAg
IGxldCB3aWR0aCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gMTsKKyAg
ICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSBkYXRhLmxlbmd0
aDsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSAxOworICAgICAgICBzdXBlcihkaW1lbnNpb24s
IHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUs
IGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExl
dmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZGVwdGhB
dExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxl
bWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5k
YXRhW2xldmVsXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywg
aiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbbGV2ZWxdW2ldID0gdmFsdWU7
CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlMURBcnJheSBleHRlbmRzIFRleHR1cmUgeworICAg
IGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBp
cyBhbiBhcnJheSBvZiAxRCB0ZXh0dXJlcy4KKyAgICAgICAgLy8gQWxsIHRleHR1cmVzIG11c3Qg
aGF2ZSB0aGUgc2FtZSB3aWR0aCBhbmQgbnVtYmVyIG9mIG1pcG1hcHMuCisKKyAgICAgICAgbGV0
IGRpbWVuc2lvbiA9IDE7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF0ubGVuZ3RoOwor
ICAgICAgICBsZXQgaGVpZ2h0ID0gMTsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAg
bGV0IGxldmVsQ291bnQgPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGxheWVyQ291bnQg
PSBkYXRhLmxlbmd0aDsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBk
ZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisK
KyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRh
WzBdW2xldmVsXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAg
ICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkK
KyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxl
dmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsYXllcl1bbGV2
ZWxdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2
YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2ldID0gdmFsdWU7
CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlMkQgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25z
dHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4g
YXJyYXkgb2YgbWlwbWFwcy4KKyAgICAgICAgLy8gVGhlIGZpcnN0IG1pcG1hcCBpcyBhIHJlY3Rh
bmd1bGFyIGFycmF5IG9mIHJvd3MsIHdoZXJlIGVhY2ggcm93IGlzIGFuIGFycmF5IG9mIGVsZW1l
bnRzLgorICAgICAgICAvLyBFYWNoIGVsZW1lbnQgbWF5IGJlIGEgc2NhbGFyIG9yIGFuIGFycmF5
IG9mIDItNCBzY2FsYXJzLgorICAgICAgICAvLyBUaGUgd2lkdGggYW5kIGhlaWdodCBtdXN0IGJl
IHBvd2Vycy1vZi10d28uCisgICAgICAgIC8vIEVhY2ggbWlwbWFwIGlzIGhhbGYtd2lkdGggYW5k
IGhhbGYtaGVpZ2h0IG9mIHRoZSBwcmV2aW91cyBzaXplLgorCisgICAgICAgIGxldCBkaW1lbnNp
b24gPSAyOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAg
bGV0IGhlaWdodCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAg
ICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgbGF5ZXJDb3Vu
dCA9IDE7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxl
dmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lk
dGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1b
MF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhB
dExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxl
bWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5k
YXRhW2xldmVsXVtqXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwg
aywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbbGV2ZWxdW2pdW2ldID0g
dmFsdWU7CisgICAgfQorfQorCitsZXQgVGV4dHVyZURlcHRoMkQgPSBUZXh0dXJlMkQ7CisKK2Ns
YXNzIFRleHR1cmUyREFycmF5IGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5u
ZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIDJE
IHRleHR1cmVzLgorICAgICAgICAvLyBBbGwgdGV4dHVyZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHdp
ZHRoLCBoZWlnaHQgYW5kIG51bWJlciBvZiBtaXBtYXBzLgorCisgICAgICAgIGxldCBkaW1lbnNp
b24gPSAyOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdWzBdLmxlbmd0aDsKKyAgICAg
ICAgbGV0IGhlaWdodCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSAx
OworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQg
bGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRo
LCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEp
OworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVy
biB0aGlzLmRhdGFbMF1bbGV2ZWxdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExl
dmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF0ubGVu
Z3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJl
dHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2pdW2ldOworICAgIH0K
KworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7Cisg
ICAgICAgIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2pdW2ldID0gdmFsdWU7CisgICAgfQorfQor
CitsZXQgVGV4dHVyZURlcHRoMkRBcnJheSA9IFRleHR1cmUyREFycmF5OworCitjbGFzcyBUZXh0
dXJlM0QgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEp
CisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgbWlwbWFwcy4KKyAgICAg
ICAgLy8gVGhlIGZpcnN0IG1pcG1hcCBpcyBhbiBhcnJheSBvZiBkZXB0aCBzbGljZXMsIGVhY2gg
ZGVwdGggc2xpY2UgaXMgYW4gYXJyYXkgb2Ygcm93cywgYW5kIGVhY2ggcm93IGlzIGFuIGFycmF5
IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBFYWNoIGVsZW1lbnQgbWF5IGJlIGEgc2NhbGFyIG9y
IGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgorICAgICAgICAvLyBUaGUgd2lkdGgsIGhlaWdodCwg
YW5kIGRlcHRoIG11c3QgYmUgcG93ZXJzLW9mLXR3by4KKyAgICAgICAgLy8gRWFjaCBtaXBtYXAg
aXMgaGFsZi13aWR0aCwgaGFsZi1oZWlnaHQsIGFuZCBoYWxmLWRlcHRoIG9mIHRoZSBwcmV2aW91
cyBzaXplLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAzOworICAgICAgICBsZXQgd2lkdGgg
PSBkYXRhWzBdWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRhdGFbMF1bMF0u
bGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0
IGxldmVsQ291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSAxOwor
ICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50
LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZl
bChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdWzBdWzBdLmxl
bmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1bMF0ubGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRM
ZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdLmxlbmd0
aDsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdW2tdW2pdW2ldOworICAgIH0KKworICAgIHNl
dEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRo
aXMuZGF0YVtsZXZlbF1ba11bal1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1
cmVDdWJlIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRh
KQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIDYgMkQgdGV4dHVyZXMu
CisgICAgICAgIC8vIEFsbCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNhbWUgd2lkdGgsIGhlaWdo
dCwgZGVwdGgsIGFuZCBudW1iZXIgb2YgbWlwbWFwcy4KKworICAgICAgICBsZXQgZGltZW5zaW9u
ID0gMjsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXVswXS5sZW5ndGg7CisgICAgICAg
IGxldCBoZWlnaHQgPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsK
KyAgICAgICAgbGV0IGxldmVsQ291bnQgPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGxh
eWVyQ291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwg
aGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsK
KyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5kYXRhWzBdW2xldmVsXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZl
bChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bbGV2ZWxdLmxlbmd0
aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1
cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtqXVtpXTsKKyAgICB9CisK
KyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAg
ICAgICB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30KKwor
bGV0IFRleHR1cmVEZXB0aEN1YmUgPSBUZXh0dXJlQ3ViZTsKKworY2xhc3MgVGV4dHVyZTFEUlcg
ZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAg
eworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8v
IEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2FsYXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMu
CisgICAgICAgIC8vIFRoZSB3aWR0aCBtdXN0IGJlIGEgcG93ZXItb2YtdHdvLgorCisgICAgICAg
IGxldCBkaW1lbnNpb24gPSAxOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhLmxlbmd0aDsKKyAg
ICAgICAgbGV0IGhlaWdodCA9IDE7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxl
dCBsZXZlbENvdW50ID0gMTsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSAxOworICAgICAgICBz
dXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNv
dW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGEubGVuZ3RoOworICAgIH0KKworICAgIGhl
aWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAg
ICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisK
KyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVy
biB0aGlzLmRhdGFbaV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGss
IGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2ldID0gdmFsdWU7CisgICAg
fQorfQorCitjbGFzcyBUZXh0dXJlMURBcnJheVJXIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29u
c3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFu
IGFycmF5IG9mIDFEIFJXIHRleHR1cmVzLgorICAgICAgICAvLyBBbGwgdGV4dHVyZXMgbXVzdCBo
YXZlIHRoZSBzYW1lIHNpemUuCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDE7CisgICAgICAg
IGxldCB3aWR0aCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gMTsKKyAg
ICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSAxOworICAgICAg
ICBsZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBzdXBlcihkaW1lbnNpb24s
IHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUs
IGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLmRhdGFbMF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwo
bGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2
ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50
KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFb
bGF5ZXJdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBp
LCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsYXllcl1baV0gPSB2YWx1ZTsKKyAg
ICB9Cit9CisKK2NsYXNzIFRleHR1cmUyRFJXIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3Ry
dWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGEgcmVj
dGFuZ3VsYXIgYXJyYXkgb2Ygcm93cywgd2hlcmUgZWFjaCByb3cgaXMgYW4gYXJyYXkgb2YgZWxl
bWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2FsYXIgb3IgYW4gYXJy
YXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IG11c3Qg
YmUgcG93ZXJzLW9mLXR3by4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMjsKKyAgICAgICAg
bGV0IHdpZHRoID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRhLmxl
bmd0aDsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSAx
OworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IDE7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwg
d2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwg
ZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuZGF0YVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChs
ZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGEubGVuZ3RoOworICAgIH0KKwor
ICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0K
KworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHRoaXMuZGF0YVtqXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZl
bCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbal1baV0gPSB2YWx1
ZTsKKyAgICB9Cit9CisKK2xldCBUZXh0dXJlRGVwdGgyRFJXID0gVGV4dHVyZTJEUlc7CisKK2Ns
YXNzIFRleHR1cmUyREFycmF5UlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihp
bm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2Yg
MkQgUlcgdGV4dHVyZXMuCisgICAgICAgIC8vIEFsbCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNh
bWUgd2lkdGggYW5kIGhlaWdodC4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMjsKKyAgICAg
ICAgbGV0IHdpZHRoID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSBk
YXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVs
Q291bnQgPSAxOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAg
ICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXll
ckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZl
bCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bMF0ubGVuZ3RoOworICAgIH0K
KworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5k
YXRhWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgewor
ICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywg
aiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGF5ZXJdW2pdW2ldOworICAg
IH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7
CisgICAgICAgIHRoaXMuZGF0YVtsYXllcl1bal1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2xl
dCBUZXh0dXJlRGVwdGgyREFycmF5UlcgPSBUZXh0dXJlMkRBcnJheVJXCisKK2NsYXNzIFRleHR1
cmUzRFJXIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRh
KQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIGRlcHRoIHNsaWNlcywg
ZWFjaCBkZXB0aCBzbGljZSBpcyBhbiBhcnJheSBvZiByb3dzLCBhbmQgZWFjaCByb3cgaXMgYW4g
YXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2Fs
YXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCwgaGVp
Z2h0LCBhbmQgZGVwdGggbXVzdCBiZSBwb3dlcnMtb2YtdHdvLgorCisgICAgICAgIGxldCBkaW1l
bnNpb24gPSAzOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAg
ICAgbGV0IGhlaWdodCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSBkYXRh
Lmxlbmd0aDsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSAxOworICAgICAgICBsZXQgbGF5ZXJD
b3VudCA9IDE7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgs
IGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAg
d2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVsw
XS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0aGlzLmRhdGFbMF0ubGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZl
bChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGEubGVuZ3RoOworICAgIH0K
KworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHRoaXMuZGF0YVtrXVtqXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBs
ZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFba11bal1baV0g
PSB2YWx1ZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9UZXh0dXJlT3BlcmF0aW9ucy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1RleHR1cmVPcGVyYXRpb25zLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5ZDA0ZTJjMDVjMDcxY2RmNjFlY2M0
ZTE5Zjk0ZjhhMjhhNDU0MGEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UZXh0dXJlT3BlcmF0aW9ucy5qcwpAQCAtMCwwICsxLDY5NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisidXNlIHN0cmljdCI7CisKK2Z1
bmN0aW9uIGRlcHRoQ29tcGFyZU9wZXJhdGlvbihkcmVmLCBkLCBjb21wYXJlRnVuY3Rpb24pCit7
CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjMuNAorICAgIHN3aXRjaCAoY29tcGFy
ZUZ1bmN0aW9uKSB7CisgICAgICAgIGNhc2UgIm5ldmVyIjoKKyAgICAgICAgICAgIHJldHVybiAw
OworICAgICAgICBjYXNlICJsZXNzIjoKKyAgICAgICAgICAgIHJldHVybiBkcmVmIDwgZCA/IDEg
OiAwOworICAgICAgICBjYXNlICJlcXVhbCI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiA9PSBk
ID8gMSA6IDA7CisgICAgICAgIGNhc2UgImxlc3NFcXVhbCI6CisgICAgICAgICAgICByZXR1cm4g
ZHJlZiA8PSBkID8gMSA6IDA7CisgICAgICAgIGNhc2UgImdyZWF0ZXIiOgorICAgICAgICAgICAg
cmV0dXJuIGRyZWYgPiBkID8gMSA6IDA7CisgICAgICAgIGNhc2UgIm5vdEVxdWFsIjoKKyAgICAg
ICAgICAgIHJldHVybiBkcmVmICE9IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAiZ3JlYXRlckVx
dWFsIjoKKyAgICAgICAgICAgIHJldHVybiBkcmVmID49IGQgPyAxIDogMDsKKyAgICAgICAgY2Fz
ZSAiYWx3YXlzIjoKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGRlcHRoIGNvbXBhcmlzb24gZnVuY3Rp
b24iKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGNvbnZlcnNpb25Ub1JHQkEodmFsdWUpCit7Cisg
ICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjMuNQorICAgIGlmICh2YWx1ZSBpbnN0YW5j
ZW9mIEFycmF5KSB7CisgICAgICAgIGxldCByZXN1bHQgPSBbXTsKKyAgICAgICAgZm9yIChsZXQg
aSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHJlc3VsdC5wdXNoKHZh
bHVlW2ldKTsKKyAgICAgICAgd2hpbGUgKHJlc3VsdC5sZW5ndGggIT0gNCkKKyAgICAgICAgICAg
IHJlc3VsdC5wdXNoKHJlc3VsdC5sZW5ndGggPT0gMyA/IDEgOiAwKTsKKyAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICB9IGVsc2UKKyAgICAgICAgcmV0dXJuIFt2YWx1ZSwgMCwgMCwgMV07Cit9
CisKK2Z1bmN0aW9uIHByb2plY3Rpb25PcGVyYXRpb24ocywgdCwgciwgZHJlZiwgcSkKK3sKKyAg
ICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi4xCisgICAgcmV0dXJuIFtzIC8gcSwgdCAv
IHEsIHIgLyBxLCBkcmVmICE9IHVuZGVmaW5lZCA/IGRyZWYgLyBxIDogdW5kZWZpbmVkXTsKK30K
KworZnVuY3Rpb24gY3ViZU1hcEZhY2VTZWxlY3Rpb24ocywgdCwgciwgcGFydGlhbFJ4V2l0aFJl
c3BlY3RUb1gsIHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUnlXaXRoUmVzcGVjdFRv
WCwgcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSeldpdGhSZXNwZWN0VG9YLCBwYXJ0
aWFsUnpXaXRoUmVzcGVjdFRvWSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUu
Ni40CisgICAgbGV0IHJ4ID0gczsKKyAgICBsZXQgcnkgPSB0OworICAgIGxldCByeiA9IHI7Cisg
ICAgbGV0IHdpbm5lciA9IDA7CisgICAgaWYgKE1hdGguYWJzKHJ6KSA+PSBNYXRoLmFicyhyeSkg
JiYgTWF0aC5hYnMocnopID49IE1hdGguYWJzKHJ4KSkKKyAgICAgICAgd2lubmVyID0gMjsKKyAg
ICBlbHNlIGlmIChNYXRoLmFicyhyeSkgPj0gTWF0aC5hYnMocngpICYmIE1hdGguYWJzKHJ5KSA+
PSBNYXRoLmFicyhyeikpCisgICAgICAgIHdpbm5lciA9IDE7CisKKyAgICBsZXQgbGF5ZXJOdW1i
ZXI7CisgICAgbGV0IHNjOworICAgIGxldCB0YzsKKyAgICBsZXQgcmM7CisgICAgbGV0IHBhcnRp
YWxTY1dpdGhSZXNwZWN0VG9YOworICAgIGxldCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWTsKKyAg
ICBsZXQgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1g7CisgICAgbGV0IHBhcnRpYWxUY1dpdGhSZXNw
ZWN0VG9ZOworICAgIGxldCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWDsKKyAgICBsZXQgcGFydGlh
bFJjV2l0aFJlc3BlY3RUb1k7CisgICAgaWYgKHdpbm5lciA9PSAwICYmIHJ4ID49IDApIHsKKyAg
ICAgICAgbGF5ZXJOdW1iZXIgPSAwOworICAgICAgICBzYyA9IC1yejsKKyAgICAgICAgdGMgPSAt
cnk7CisgICAgICAgIHJjID0gcng7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0g
LXBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRv
WSA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3Bl
Y3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhS
ZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNX
aXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFs
UmNXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxzZSBp
ZiAod2lubmVyID09IDApIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSAxOworICAgICAgICBzYyA9
IHJ6OworICAgICAgICB0YyA9IC1yeTsKKyAgICAgICAgcmMgPSByeDsKKyAgICAgICAgcGFydGlh
bFNjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFy
dGlhbFNjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAg
cGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAg
ICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOwor
ICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnhXaXRoUmVzcGVjdFRv
WDsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ4V2l0aFJlc3Bl
Y3RUb1k7CisgICAgfSBlbHNlIGlmICh3aW5uZXIgPT0gMSAmJiByeSA+PSAwKSB7CisgICAgICAg
IGxheWVyTnVtYmVyID0gMjsKKyAgICAgICAgc2MgPSByeDsKKyAgICAgICAgdGMgPSAtcno7Cisg
ICAgICAgIHJjID0gcnk7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gcGFydGlh
bFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0gcGFy
dGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0g
cGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9Z
ID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0
VG9YID0gcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNw
ZWN0VG9ZID0gcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgfSBlbHNlIGlmICh3aW5uZXIg
PT0gMSkgeworICAgICAgICBsYXllck51bWJlciA9IDM7CisgICAgICAgIHNjID0gcng7CisgICAg
ICAgIHRjID0gLXJ6OworICAgICAgICByYyA9IHJ5OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVz
cGVjdFRvWCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRo
UmVzcGVjdFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNX
aXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlh
bFRjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBh
cnRpYWxSY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAg
ICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAg
ICB9IGVsc2UgaWYgKHdpbm5lciA9PSAyICYmIHJ6ID49IDApIHsKKyAgICAgICAgbGF5ZXJOdW1i
ZXIgPSA0OworICAgICAgICBzYyA9IHJ4OworICAgICAgICB0YyA9IC1yeTsKKyAgICAgICAgcmMg
PSByejsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnhXaXRoUmVz
cGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnhXaXRo
UmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5
V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRp
YWxSeVdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IHBh
cnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9
IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxzZSB7CisgICAgICAgIGxheWVyTnVt
YmVyID0gNTsKKyAgICAgICAgc2MgPSAtcng7CisgICAgICAgIHRjID0gLXJ5OworICAgICAgICBy
YyA9IHJ6OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnhXaXRo
UmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ4
V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRp
YWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1w
YXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gg
PSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0
VG9ZID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgIH0KKyAgICByZXR1cm4gW2xheWVy
TnVtYmVyLCBzYywgdGMsIHJjLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNjV2l0
aFJlc3BlY3RUb1ksIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVGNXaXRoUmVzcGVj
dFRvWSwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZXQor
fQorCitmdW5jdGlvbiBjdWJlTWFwQ29vcmRpbmF0ZVRyYW5zZm9ybWF0aW9uKHNjLCB0YywgcmMp
Cit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuNQorICAgIGxldCBzRmFjZSA9
ICgxIC8gMikgKiBzYyAvIE1hdGguYWJzKHJjKSArICgxIC8gMik7CisgICAgbGV0IHRGYWNlID0g
KDEgLyAyKSAqIHRjIC8gTWF0aC5hYnMocmMpICsgKDEgLyAyKTsKKyAgICByZXR1cm4gW3NGYWNl
LCB0RmFjZV07Cit9CisKK2Z1bmN0aW9uIGN1YmVNYXBEZXJpdmF0aXZlVHJhbnNmb3JtYXRpb24o
c2MsIHRjLCByYywgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTY1dpdGhSZXNwZWN0
VG9ZLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ksIHBh
cnRpYWxSY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSkKK3sKKyAgICAv
LyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi42CisgICAgbGV0IHBhcnRpYWxTRmFjZVdpdGhS
ZXNwZWN0VG9YID0gKDEgLyAyKSAqICgoTWF0aC5hYnMocmMpICogcGFydGlhbFNjV2l0aFJlc3Bl
Y3RUb1ggLSBzYyAqIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YKSAvIE1hdGgucG93KHJjLCAyKSk7
CisgICAgbGV0IHBhcnRpYWxTRmFjZVdpdGhSZXNwZWN0VG9ZID0gKDEgLyAyKSAqICgoTWF0aC5h
YnMocmMpICogcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgLSBzYyAqIHBhcnRpYWxSY1dpdGhSZXNw
ZWN0VG9ZKSAvIE1hdGgucG93KHJjLCAyKSk7CisgICAgbGV0IHBhcnRpYWxURmFjZVdpdGhSZXNw
ZWN0VG9YID0gKDEgLyAyKSAqICgoTWF0aC5hYnMocmMpICogcGFydGlhbFRjV2l0aFJlc3BlY3RU
b1ggLSB0YyAqIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YKSAvIE1hdGgucG93KHJjLCAyKSk7Cisg
ICAgbGV0IHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0VG9ZID0gKDEgLyAyKSAqICgoTWF0aC5hYnMo
cmMpICogcGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgLSB0YyAqIHBhcnRpYWxSY1dpdGhSZXNwZWN0
VG9ZKSAvIE1hdGgucG93KHJjLCAyKSk7CisgICAgcmV0dXJuIFtwYXJ0aWFsU0ZhY2VXaXRoUmVz
cGVjdFRvWCwgcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxURmFjZVdpdGhSZXNw
ZWN0VG9YLCBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRvWV07Cit9CisKK2Z1bmN0aW9uIHNjYWxl
RmFjdG9yT3BlcmF0aW9uKGRldmljZU1heEFuaXNvdHJvcHksIHdpZHRoLCBoZWlnaHQsIGRlcHRo
LCBzYW1wbGVyTWF4QW5pc290cm9weSwgcGFydGlhbFNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRX
aXRoUmVzcGVjdFRvWCwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNXaXRoUmVzcGVj
dFRvWSwgcGFydGlhbFRXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWSkKK3sK
KyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi43CisgICAgbGV0IG11eCA9IE1hdGgu
YWJzKHBhcnRpYWxTV2l0aFJlc3BlY3RUb1gpICogd2lkdGg7CisgICAgbGV0IG12eCA9IE1hdGgu
YWJzKHBhcnRpYWxUV2l0aFJlc3BlY3RUb1gpICogaGVpZ2h0OworICAgIGxldCBtd3ggPSBNYXRo
LmFicyhwYXJ0aWFsUldpdGhSZXNwZWN0VG9YKSAqIGRlcHRoOworICAgIGxldCBtdXkgPSBNYXRo
LmFicyhwYXJ0aWFsU1dpdGhSZXNwZWN0VG9ZKSAqIHdpZHRoOworICAgIGxldCBtdnkgPSBNYXRo
LmFicyhwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZKSAqIGhlaWdodDsKKyAgICBsZXQgbXd5ID0gTWF0
aC5hYnMocGFydGlhbFJXaXRoUmVzcGVjdFRvWSkgKiBkZXB0aDsKKworICAgIC8vIEkgbWFkZSB0
aGlzIHVwLiBUaGUgZm9ybXVsYSBpc24ndCBsaXN0ZWQgaW4gdGhlIHNwZWMuCisgICAgbGV0IGZ4
ID0gTWF0aC5zcXJ0KG11eCAqIG11eCArIG12eCAqIG12eCArIG13eCAqIG13eCk7CisgICAgbGV0
IGZ5ID0gTWF0aC5zcXJ0KG11eSAqIG11eSArIG12eSAqIG12eSArIG13eSAqIG13eSk7CisKKyAg
ICBsZXQgcmhvWCA9IGZ4OworICAgIGxldCByaG9ZID0gZnk7CisgICAgbGV0IHJob01heCA9IE1h
dGgubWF4KHJob1gsIHJob1kpOworICAgIGxldCByaG9NaW4gPSBNYXRoLm1pbihyaG9YLCByaG9Z
KTsKKworICAgIGxldCBtYXhBbmlzbyA9IE1hdGgubWluKHNhbXBsZXJNYXhBbmlzb3Ryb3B5LCBk
ZXZpY2VNYXhBbmlzb3Ryb3B5KTsKKworICAgIGxldCBldGE7CisgICAgaWYgKHJob01heCA9PSAw
ICYmIHJob01pbiA9PSAwKQorICAgICAgICBldGEgPSAxOworICAgIGVsc2UgaWYgKHJob01pbiA9
PSAwKQorICAgICAgICBldGEgPSBtYXhBbmlzbzsKKyAgICBlbHNlCisgICAgICAgIGV0YSA9IE1h
dGgubWluKHJob01heCAvIHJob01pbiwgbWF4QW5pc28pOworCisgICAgbGV0IE4gPSBNYXRoLmNl
aWwoZXRhKTsKKyAgICByZXR1cm4gW3Job01heCwgcmhvTWluLCBldGEsIE5dOworfQorCitmdW5j
dGlvbiBsZXZlbE9mRGV0YWlsT3BlcmF0aW9uKGRldmljZU1heFNhbXBsZXJMb2RCaWFzLCBsb2RG
cm9tRnVuY3Rpb25PcGVyYW5kLCBsb2RNaW5Gcm9tRnVuY3Rpb25PcGVyYW5kLCBiaWFzRnJvbUZ1
bmN0aW9uT3BlcmFuZCwgc2FtcGxlckJpYXMsIHNhbXBsZXJMb2RNaW4sIHNhbXBsZXJMb2RNYXgs
IHJob01heCwgZXRhKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjcKKyAg
ICBpZiAoYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQgPT0gdW5kZWZpbmVkKQorICAgICAgICBiaWFz
RnJvbUZ1bmN0aW9uT3BlcmFuZCA9IDA7CisKKyAgICBsZXQgbGFtYmRhQmFzZSA9IGxvZEZyb21G
dW5jdGlvbk9wZXJhbmQgIT0gdW5kZWZpbmVkID8gbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCA6IE1h
dGgubG9nMihyaG9NYXggLyBldGEpOworICAgIGxldCBsYW1iZGFQcmltZSA9IGxhbWJkYUJhc2Ug
KyBNYXRoLm1pbihNYXRoLm1heChzYW1wbGVyQmlhcyArIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5k
LCAtZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMpLCBkZXZpY2VNYXhTYW1wbGVyTG9kQmlhcyk7Cisg
ICAgbGV0IGxvZE1pbiA9IE1hdGgubWF4KHNhbXBsZXJMb2RNaW4sIGxvZE1pbkZyb21GdW5jdGlv
bk9wZXJhbmQpOworICAgIGxldCBsb2RNYXggPSBzYW1wbGVyTG9kTWF4OworICAgIGxldCBsYW1i
ZGE7CisgICAgaWYgKGxhbWJkYVByaW1lID4gbG9kTWF4KQorICAgICAgICBsYW1iZGEgPSBsb2RN
YXg7CisgICAgZWxzZSBpZiAobG9kTWluIDw9IGxhbWJkYVByaW1lICYmIGxhbWJkYVByaW1lIDw9
IGxvZE1heCkKKyAgICAgICAgbGFtYmRhID0gbGFtYmRhUHJpbWU7CisgICAgZWxzZSBpZiAobGFt
YmRhUHJpbWUgPCBsb2RNaW4pCisgICAgICAgIGxhbWJkYSA9IGxvZE1pbjsKKyAgICBlbHNlCisg
ICAgICAgIHRocm93IG5ldyBFcnJvcigibG9kTWluID49IGxvZE1heCIpOworICAgIHJldHVybiBs
YW1iZGE7Cit9CisKK2Z1bmN0aW9uIGltYWdlTGV2ZWxTZWxlY3Rpb24oYmFzZU1pcExldmVsLCBs
ZXZlbENvdW50LCBtaXBtYXBNb2RlLCBsYW1iZGEpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBz
ZWN0aW9uIDE1LjYuNworICAgIGZ1bmN0aW9uIG5lYXJlc3QoZFByaW1lKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIE1hdGguY2VpbChkUHJpbWUgKyAwLjUpIC0gMTsKKyAgICB9CisKKyAgICBsZXQg
cSA9IGxldmVsQ291bnQgLSAxOworICAgIGxldCBkUHJpbWUgPSBiYXNlTWlwTGV2ZWwgKyBNYXRo
Lm1pbihNYXRoLm1heChsYW1iZGEsIDApLCBxKTsKKyAgICBsZXQgZGw7CisgICAgaWYgKG1pcG1h
cE1vZGUgPT0gIm5lYXJlc3QiKQorICAgICAgICBkbCA9IG5lYXJlc3QoZFByaW1lKTsKKyAgICBl
bHNlCisgICAgICAgIGRsID0gZFByaW1lOworICAgIGlmIChtaXBtYXBNb2RlID09ICJuZWFyZXN0
IikKKyAgICAgICAgcmV0dXJuIGRsOworICAgIGVsc2UgeworICAgICAgICBsZXQgZEhpID0gTWF0
aC5mbG9vcihkbCk7CisgICAgICAgIGxldCBkTG93ID0gTWF0aC5taW4oZEhpICsgMSwgcSk7Cisg
ICAgICAgIGxldCBkZWx0YSA9IGRsIC0gZEhpOworICAgICAgICByZXR1cm4gW2RIaSwgZExvdywg
ZGVsdGFdOworICAgIH0KK30KKworZnVuY3Rpb24gc3RycWFUb1VWV0FUcmFuc2Zvcm1hdGlvbihz
LCB0LCByLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNl
Y3Rpb24gMTUuNi44CisgICAgbGV0IHUgPSBzICogd2lkdGg7CisgICAgbGV0IHYgPSB0ICogaGVp
Z2h0OworICAgIGxldCB3ID0gciAqIGRlcHRoOworICAgIHJldHVybiBbdSwgdiwgd107Cit9CisK
K2Z1bmN0aW9uIHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25BbmRBcnJheUxheWVyU2VsZWN0aW9u
KGxheWVyQ291bnQsIGJhc2VBcnJheUxheWVyLCBmaWx0ZXIsIHUsIHYsIHcsIGEsIGRlbHRhSSwg
ZGVsdGFKLCBkZWx0YUspCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjcuMQor
CisgICAgaWYgKGRlbHRhSSA9PSB1bmRlZmluZWQpCisgICAgICAgIGRlbHRhSSA9IDA7CisgICAg
aWYgKGRlbHRhSiA9PSB1bmRlZmluZWQpCisgICAgICAgIGRlbHRhSiA9IDA7CisgICAgaWYgKGRl
bHRhSyA9PSB1bmRlZmluZWQpCisgICAgICAgIGRlbHRhSyA9IDA7CisKKyAgICBmdW5jdGlvbiBy
bmUoYSkKKyAgICB7CisgICAgICAgIHJldHVybiBNYXRoLmZsb29yKGEgKyAwLjUpOworICAgIH0K
KyAgICBsZXQgbCA9IE1hdGgubWluKE1hdGgubWF4KHJuZShhKSwgMCksIGxheWVyQ291bnQgLSAx
KSArIGJhc2VBcnJheUxheWVyOworICAgIGxldCBpOworICAgIGxldCBqOworICAgIGxldCBrOwor
ICAgIGlmIChmaWx0ZXIgPT0gIm5lYXJlc3QiKSB7CisgICAgICAgIGkgPSBNYXRoLmZsb29yKHUp
OworICAgICAgICBqID0gTWF0aC5mbG9vcih2KTsKKyAgICAgICAgayA9IE1hdGguZmxvb3Iodyk7
CisgICAgICAgIAorICAgICAgICBpICs9IGRlbHRhSTsKKyAgICAgICAgaiArPSBkZWx0YUo7Cisg
ICAgICAgIGsgKz0gZGVsdGFLOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIFtpLCBqLCBrLCBs
XTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoZmlsdGVyICE9ICJsaW5lYXIiKQorICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGZpbHRlciIpOworICAgICAgICBsZXQgaTAg
PSBNYXRoLmZsb29yKHUgLSAwLjUpOworICAgICAgICBsZXQgaTEgPSBpMCArIDE7CisgICAgICAg
IGxldCBqMCA9IE1hdGguZmxvb3IodiAtIDAuNSk7CisgICAgICAgIGxldCBqMSA9IGowICsgMTsK
KyAgICAgICAgbGV0IGswID0gTWF0aC5mbG9vcih3IC0gMC41KTsKKyAgICAgICAgbGV0IGsxID0g
azAgKyAxOworICAgICAgICBsZXQgYWxwaGEgPSAodSAtIDAuNSkgLSBpMDsKKyAgICAgICAgbGV0
IGJldGEgPSAodiAtIDAuNSkgLSBqMDsKKyAgICAgICAgbGV0IGdhbW1hID0gKHcgLSAwLjUpIC0g
azA7CisgICAgICAgIAorICAgICAgICBpMCArPSBkZWx0YUk7CisgICAgICAgIGkxICs9IGRlbHRh
STsKKyAgICAgICAgajAgKz0gZGVsdGFKOworICAgICAgICBqMSArPSBkZWx0YUo7CisgICAgICAg
IGswICs9IGRlbHRhSzsKKyAgICAgICAgazEgKz0gZGVsdGFLOworICAgICAgICAKKyAgICAgICAg
cmV0dXJuIFtpMCwgaTEsIGowLCBqMSwgazAsIGsxLCBsLCBhbHBoYSwgYmV0YSwgZ2FtbWFdOwor
ICAgIH0KK30KKworZnVuY3Rpb24gaW50ZWdlclRleGVsQ29vcmRpbmF0ZU9wZXJhdGlvbnMoYmFz
ZU1pcExldmVsLCBsZXZlbENvdW50LCBsZXZlbEJhc2UsIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQp
Cit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjgKKyAgICBsZXQgZCA9IGxldmVs
QmFzZSArIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQ7CisgICAgaWYgKGQgPCBiYXNlTWlwTGV2ZWwg
fHwgZCA+PSBiYXNlTWlwTGV2ZWwgKyBsZXZlbENvdW50KQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIlNlbGVjdGVkIGxldmVsIGRvZXMgbm90IGxpZSBpbnNpZGUgdGhlIGltYWdlIik7CisgICAg
cmV0dXJuIGQ7Cit9CisKK2Z1bmN0aW9uIHdyYXBwaW5nT3BlcmF0aW9uKHdpZHRoLCBoZWlnaHQs
IGRlcHRoLCBhZGRyZXNzTW9kZVUsIGFkZHJlc3NNb2RlViwgYWRkcmVzc01vZGVXLCBpLCBqLCBr
KQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS45LjEKKyAgICAvLyBGSVhNRTog
IkN1YmUgaW1hZ2VzIGlnbm9yZSB0aGUgd3JhcCBtb2RlcyBzcGVjaWZpZWQgaW4gdGhlIHNhbXBs
ZXIuIEluc3RlYWQsIGlmIFZLX0ZJTFRFUl9ORUFSRVNUIGlzIHVzZWQgd2l0aGluIGEgbWlwIGxl
dmVsIHRoZW4gVktfU0FNUExFUl9BRERSRVNTX01PREVfQ0xBTVBfVE9fRURHRSBpcyB1c2VkLCBh
bmQgaWYgVktfRklMVEVSX0xJTkVBUiBpcyB1c2VkIHdpdGhpbiBhIG1pcCBsZXZlbCB0aGVuIHNh
bXBsaW5nIGF0IHRoZSBlZGdlcyBpcyBwZXJmb3JtZWQgYXMgZGVzY3JpYmVkIGVhcmxpZXIgaW4g
dGhlIEN1YmUgbWFwIGVkZ2UgaGFuZGxpbmcgc2VjdGlvbi4iCisgICAgZnVuY3Rpb24gdHJhbnNm
b3JtKGFkZHJlc3NNb2RlLCBzaXplLCBpKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gbWlycm9y
KG4pIHsKKyAgICAgICAgICAgIGlmIChuID49IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIG47
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIC0oMSArIG4pOworICAg
ICAgICB9CisgICAgICAgIHN3aXRjaCAoYWRkcmVzc01vZGUpIHsKKyAgICAgICAgICAgIGNhc2Ug
ImNsYW1wVG9FZGdlIjoKKyAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgo
aSwgMCksIHNpemUgLSAxKTsKKyAgICAgICAgICAgIGNhc2UgInJlcGVhdCI6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIGkgJSBzaXplOworICAgICAgICAgICAgY2FzZSAibWlycm9yUmVwZWF0IjoK
KyAgICAgICAgICAgICAgICByZXR1cm4gKHNpemUgLSAxKSAtIG1pcnJvcigoaSAlICgyICogc2l6
ZSkpIC0gc2l6ZSk7CisgICAgICAgICAgICBjYXNlICJjbGFtcFRvQm9yZGVyQ29sb3IiOgorICAg
ICAgICAgICAgICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1heChpLCAtMSksIHNpemUpOworICAg
ICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25v
d24gYWRkcmVzcyBtb2RlIik7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFt0cmFuc2Zv
cm0oYWRkcmVzc01vZGVVLCB3aWR0aCwgaSksIHRyYW5zZm9ybShhZGRyZXNzTW9kZVYsIGhlaWdo
dCwgaiksIHRyYW5zZm9ybShhZGRyZXNzTW9kZVcsIGRlcHRoLCBrKV07Cit9CisKK2Z1bmN0aW9u
IGNhbGN1bGF0ZUxhbWJkYShkZXZpY2VNYXhBbmlzb3Ryb3B5LCBkZXZpY2VNYXhTYW1wbGVyTG9k
QmlhcywgdGV4dHVyZSwgc2FtcGxlciwgc2FtcGxlckJpYXMsIHMsIHQsIHIsIGEsIGxvZEZyb21G
dW5jdGlvbk9wZXJhbmQsIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQsIGJpYXNGcm9tRnVuY3Rp
b25PcGVyYW5kLCBkZHgsIGRkeSkKK3sKKyAgICBsZXQgcGFydGlhbFNXaXRoUmVzcGVjdFRvWCA9
IDA7CisgICAgbGV0IHBhcnRpYWxUV2l0aFJlc3BlY3RUb1ggPSAwOworICAgIGxldCBwYXJ0aWFs
UldpdGhSZXNwZWN0VG9YID0gMDsKKyAgICBpZiAoZGR4ICE9IHVuZGVmaW5lZCkgeworICAgICAg
ICBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9YID0gZGR4WzBdOworICAgICAgICBwYXJ0aWFsVFdpdGhS
ZXNwZWN0VG9YID0gZGR4WzFdOworICAgICAgICBwYXJ0aWFsUldpdGhSZXNwZWN0VG9YID0gZGR4
WzJdOworICAgIH0KKyAgICBsZXQgcGFydGlhbFNXaXRoUmVzcGVjdFRvWSA9IDA7CisgICAgbGV0
IHBhcnRpYWxUV2l0aFJlc3BlY3RUb1kgPSAwOworICAgIGxldCBwYXJ0aWFsUldpdGhSZXNwZWN0
VG9ZID0gMDsKKyAgICBpZiAoZGR5ICE9IHVuZGVmaW5lZCkgeworICAgICAgICBwYXJ0aWFsU1dp
dGhSZXNwZWN0VG9ZID0gZGR5WzBdOworICAgICAgICBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZID0g
ZGR5WzFdOworICAgICAgICBwYXJ0aWFsUldpdGhSZXNwZWN0VG9ZID0gZGR5WzJdOworICAgIH0K
KworICAgIGlmICh0ZXh0dXJlIGluc3RhbmNlb2YgVGV4dHVyZUN1YmUpIHsKKyAgICAgICAgLy8g
RklYTUU6IEhhbmRsZSBjdWJlbWFwIGVkZ2UvY29ybmVycyBjb3JyZWN0bHkKKyAgICAgICAgbGV0
IFtsYXllck51bWJlciwgc2MsIHRjLCByYywgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1gsIHBhcnRp
YWxTY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRjV2l0
aFJlc3BlY3RUb1ksIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUmNXaXRoUmVzcGVj
dFRvWV0gPSBjdWJlTWFwRmFjZVNlbGVjdGlvbihzLCB0LCByLCBwYXJ0aWFsU1dpdGhSZXNwZWN0
VG9YLCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YLCBwYXJ0
aWFsVFdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUldpdGhS
ZXNwZWN0VG9ZKQorICAgICAgICBsZXQgW3NGYWNlLCB0RmFjZV0gPSBjdWJlTWFwQ29vcmRpbmF0
ZVRyYW5zZm9ybWF0aW9uKHNjLCB0YywgcmMpCisgICAgICAgIGxldCBbcGFydGlhbFNGYWNlV2l0
aFJlc3BlY3RUb1gsIHBhcnRpYWxTRmFjZVdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVEZhY2VXaXRo
UmVzcGVjdFRvWCwgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1ldID0gY3ViZU1hcERlcml2YXRp
dmVUcmFuc2Zvcm1hdGlvbihzYywgdGMsIHJjLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCwgcGFy
dGlhbFNjV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVGNX
aXRoUmVzcGVjdFRvWSwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSY1dpdGhSZXNw
ZWN0VG9ZKQorICAgICAgICBzID0gc0ZhY2U7CisgICAgICAgIHQgPSB0RmFjZTsKKyAgICAgICAg
ciA9IDA7CisgICAgICAgIGEgPSBsYXllck51bWJlcjsKKyAgICAgICAgcGFydGlhbFNXaXRoUmVz
cGVjdFRvWCA9IHBhcnRpYWxTRmFjZVdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU1dp
dGhSZXNwZWN0VG9ZID0gcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRp
YWxUV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAg
cGFydGlhbFRXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0VG9ZOworICAg
ICAgICBwYXJ0aWFsUldpdGhSZXNwZWN0VG9YID0gMDsKKyAgICAgICAgcGFydGlhbFJXaXRoUmVz
cGVjdFRvWSA9IDA7CisgICAgfQorCisgICAgbGV0IFtyaG9NYXgsIHJob01pbiwgZXRhLCBOXSA9
IHNjYWxlRmFjdG9yT3BlcmF0aW9uKGRldmljZU1heEFuaXNvdHJvcHksIHRleHR1cmUud2lkdGgs
IHRleHR1cmUuaGVpZ2h0LCB0ZXh0dXJlLmRlcHRoLCBzYW1wbGVyLm1heEFuaXNvdHJvcHksIHBh
cnRpYWxTV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSV2l0
aFJlc3BlY3RUb1gsIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxUV2l0aFJlc3BlY3RU
b1ksIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kpOworICAgIGxldCBsYW1iZGEgPSBsZXZlbE9mRGV0
YWlsT3BlcmF0aW9uKGRldmljZU1heFNhbXBsZXJMb2RCaWFzLCBsb2RGcm9tRnVuY3Rpb25PcGVy
YW5kLCBsb2RNaW5Gcm9tRnVuY3Rpb25PcGVyYW5kLCBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwg
c2FtcGxlckJpYXMsIHNhbXBsZXIubG9kTWluQ2xhbXAsIHNhbXBsZXIubG9kTWF4Q2xhbXAsIHJo
b01heCwgZXRhKTsKKyAgICByZXR1cm4gW3MsIHQsIHIsIGEsIGxhbWJkYV07Cit9CisKK2Z1bmN0
aW9uIGNvbXB1dGVUYXUobGV2ZWwsIGJhc2VBcnJheUxheWVyLCB0ZXh0dXJlLCBzYW1wbGVyLCBh
ZGRyZXNzTW9kZVUsIGFkZHJlc3NNb2RlViwgYWRkcmVzc01vZGVXLCBmaWx0ZXIsIHMsIHQsIHIs
IGEsIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUspCit7CisgICAgZnVuY3Rpb24gYWNjZXNzQ29sb3Io
d2lkdGgsIGhlaWdodCwgZGVwdGgsIGwsIGksIGosIGspCisgICAgeworICAgICAgICBmdW5jdGlv
biBzaG91bGRCZUJvcmRlcih2YWx1ZSwgbWF4KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAo
dmFsdWUgPCAtMSB8fCB2YWx1ZSA+IG1heCkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIk91dC1vZi1ib3VuZHMgdGV4dHVyZSByZWFkIik7CisgICAgICAgICAgICByZXR1cm4gdmFs
dWUgPT0gLTEgfHwgdmFsdWUgPT0gbWF4OworICAgICAgICB9CisKKyAgICAgICAgbGV0IFt3cmFw
cGVkSSwgd3JhcHBlZEosIHdyYXBwZWRLXSA9IHdyYXBwaW5nT3BlcmF0aW9uKHdpZHRoLCBoZWln
aHQsIGRlcHRoLCBhZGRyZXNzTW9kZVUsIGFkZHJlc3NNb2RlViwgYWRkcmVzc01vZGVXLCBpLCBq
LCBrKQorICAgICAgICBpZiAoc2hvdWxkQmVCb3JkZXIod3JhcHBlZEksIHdpZHRoKSB8fCBzaG91
bGRCZUJvcmRlcih3cmFwcGVkSiwgaGVpZ2h0KSB8fCBzaG91bGRCZUJvcmRlcih3cmFwcGVkSywg
ZGVwdGgpKQorICAgICAgICAgICAgcmV0dXJuIHNhbXBsZXIuY2FsY3VsYXRlQm9yZGVyQ29sb3Io
dGV4dHVyZS5pbm5lclR5cGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gdGV4
dHVyZS5lbGVtZW50KGwsIGxldmVsLCB3cmFwcGVkSywgd3JhcHBlZEosIHdyYXBwZWRJKTsKKyAg
ICB9CisKKyAgICBsZXQgW3UsIHYsIHddID0gc3RycWFUb1VWV0FUcmFuc2Zvcm1hdGlvbihzLCB0
LCByLCB0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChs
ZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSk7CisgICAgaWYgKGZpbHRlciA9PSAi
bmVhcmVzdCIpIHsKKyAgICAgICAgbGV0IFtpLCBqLCBrLCBsXSA9IHV2d2FUb0lKS0xOVHJhbnNm
b3JtYXRpb25BbmRBcnJheUxheWVyU2VsZWN0aW9uKHRleHR1cmUubGF5ZXJDb3VudCwgYmFzZUFy
cmF5TGF5ZXIsIGZpbHRlciwgdSwgdiwgdywgYSwgZGVsdGFJLCBkZWx0YUosIGRlbHRhSyk7Cisg
ICAgICAgIHJldHVybiBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRl
eHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwg
bCwgaSwgaiwgayk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGZpbHRlciAhPSAibGluZWFy
IikKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBmaWx0ZXIiKTsKKyAgICAg
ICAgbGV0IFtpMCwgaTEsIGowLCBqMSwgazAsIGsxLCBsLCBhbHBoYSwgYmV0YSwgZ2FtbWFdID0g
dXZ3YVRvSUpLTE5UcmFuc2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJTZWxlY3Rpb24odGV4dHVyZS5s
YXllckNvdW50LCBiYXNlQXJyYXlMYXllciwgZmlsdGVyLCB1LCB2LCB3LCBhLCBkZWx0YUksIGRl
bHRhSiwgZGVsdGFLKTsKKyAgICAgICAgbGV0IGNvbG9yMDAwID0gYWNjZXNzQ29sb3IodGV4dHVy
ZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0
dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGkwLCBqMCwgazApOworICAgICAgICBsZXQgY29s
b3IxMDAgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUu
aGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTEs
IGowLCBrMCk7CisgICAgICAgIGxldCBjb2xvcjAxMCA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lk
dGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5k
ZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMCwgajEsIGswKTsKKyAgICAgICAgbGV0IGNvbG9yMTEw
ID0gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdo
dEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGkxLCBqMSwg
azApOworICAgICAgICBsZXQgY29sb3IwMDEgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRM
ZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhB
dExldmVsKGxldmVsKSwgbCwgaTAsIGowLCBrMSk7CisgICAgICAgIGxldCBjb2xvcjEwMSA9IGFj
Y2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExl
dmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMSwgajAsIGsxKTsK
KyAgICAgICAgbGV0IGNvbG9yMDExID0gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwo
bGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZl
bChsZXZlbCksIGwsIGkwLCBqMSwgazEpOworICAgICAgICBsZXQgY29sb3IxMTEgPSBhY2Nlc3ND
b2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChs
ZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTEsIGoxLCBrMSk7CisgICAg
ICAgIHJldHVybiBbY29sb3IwMDAsIGNvbG9yMTAwLCBjb2xvcjAxMCwgY29sb3IxMTAsIGNvbG9y
MDAxLCBjb2xvcjEwMSwgY29sb3IwMTEsIGNvbG9yMTExLCBhbHBoYSwgYmV0YSwgZ2FtbWFdOwor
ICAgIH0KK30KKworZnVuY3Rpb24gcmVkdWNlKC4uLnZhbHVlcykKK3sKKyAgICBpZiAodmFsdWVz
Lmxlbmd0aCAlIDIgIT0gMCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJEb24ndCBoYXZlIGEg
d2VpZ2h0IGNvcnJlc3BvbmRpbmcgdG8gZWFjaCB2YWx1ZSIpOworICAgIGlmICh2YWx1ZXMubGVu
Z3RoIDwgMikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJEb24ndCBoYXZlIGVub3VnaCB0aGlu
Z3MgdG8gY2FsY3VsYXRlIGFuIGF2ZXJhZ2UiKTsKKyAgICBsZXQgc3VtOworICAgIGlmICh2YWx1
ZXNbMV0gaW5zdGFuY2VvZiBBcnJheSkgeworICAgICAgICBzdW0gPSBbXTsKKyAgICAgICAgZm9y
IChsZXQgaSA9IDA7IGkgPCB2YWx1ZXNbMV0ubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBzdW0u
cHVzaCgwKTsKKyAgICB9IGVsc2UKKyAgICAgICAgc3VtID0gMDsKKyAgICBmb3IgKGxldCBpID0g
MDsgaSA8IHZhbHVlcy5sZW5ndGggLyAyOyArK2kpIHsKKyAgICAgICAgbGV0IHdlaWdodCA9IHZh
bHVlc1syICogaV07CisgICAgICAgIGxldCBjb2xvciA9IHZhbHVlc1syICogaSArIDFdOworICAg
ICAgICBpZiAoY29sb3IgaW5zdGFuY2VvZiBBcnJheSkgeworICAgICAgICAgICAgZm9yIChsZXQg
aSA9IDA7IGkgPCBjb2xvci5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICBzdW1baV0gKz0g
d2VpZ2h0ICogY29sb3JbaV07CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgc3VtICs9IHdl
aWdodCAqIGNvbG9yOworICAgIH0KKyAgICByZXR1cm4gc3VtOworfQorCitmdW5jdGlvbiB0ZXhl
bEdhdGhlcmluZygKKyAgICBkZXZpY2VNYXhBbmlzb3Ryb3B5LAorICAgIGRldmljZU1heFNhbXBs
ZXJMb2RCaWFzLAorICAgIGJhc2VNaXBMZXZlbCwKKyAgICBiYXNlQXJyYXlMYXllciwKKyAgICB0
ZXh0dXJlLAorICAgIHNhbXBsZXIsCisgICAgc2FtcGxlckJpYXMsCisgICAgcywgdCwgciwgYSwK
KyAgICBkZWx0YUksIGRlbHRhSiwgZGVsdGFLLAorICAgIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQs
CisgICAgbG9kTWluRnJvbUZ1bmN0aW9uT3BlcmFuZCwKKyAgICBiaWFzRnJvbUZ1bmN0aW9uT3Bl
cmFuZCwKKyAgICBkZHgsIGRkeSwKKyAgICBjaGFubmVsKQoreworICAgIC8vIFZ1bGthbiAxLjEu
ODMgc2VjdGlvbiAxNS45LjIKKworICAgIC8vIFRoZSBzcGVjIHVzZXMgZGlmZmVyZW50IG5hbWVz
IHRoYW4gV2ViR1BVIGRvZXMuCisgICAgbGV0IGFkZHJlc3NNb2RlVSA9IHNhbXBsZXIuckFkZHJl
c3NNb2RlOworICAgIGxldCBhZGRyZXNzTW9kZVYgPSBzYW1wbGVyLnNBZGRyZXNzTW9kZTsKKyAg
ICBsZXQgYWRkcmVzc01vZGVXID0gc2FtcGxlci50QWRkcmVzc01vZGU7CisKKyAgICBsZXQgbGFt
YmRhOworICAgIFtzLCB0LCByLCBhLCBsYW1iZGFdID0gY2FsY3VsYXRlTGFtYmRhKGRldmljZU1h
eEFuaXNvdHJvcHksIGRldmljZU1heFNhbXBsZXJMb2RCaWFzLCB0ZXh0dXJlLCBzYW1wbGVyLCBz
YW1wbGVyQmlhcywgcywgdCwgciwgYSwgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwgbG9kTWluRnJv
bUZ1bmN0aW9uT3BlcmFuZCwgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIGRkeCwgZGR5KTsKKwor
ICAgIGxldCBmaWx0ZXIgPSAibGluZWFyIjsKKworICAgIGxldCBpbWFnZUxldmVsID0gaW1hZ2VM
ZXZlbFNlbGVjdGlvbihiYXNlTWlwTGV2ZWwsIHRleHR1cmUubGV2ZWxDb3VudCwgc2FtcGxlci5t
aXBtYXBGaWx0ZXIsIGxhbWJkYSk7CisKKyAgICBsZXQgW2NvbG9yMDAwLCBjb2xvcjEwMCwgY29s
b3IwMTAsIGNvbG9yMTEwLCBjb2xvcjAwMSwgY29sb3IxMDEsIGNvbG9yMDExLCBjb2xvcjExMSwg
YWxwaGEsIGJldGEsIGdhbW1hXSA9IGNvbXB1dGVUYXUoaW1hZ2VMZXZlbCwgYmFzZUFycmF5TGF5
ZXIsIHRleHR1cmUsIHNhbXBsZXIsIGFkZHJlc3NNb2RlVSwgYWRkcmVzc01vZGVWLCBhZGRyZXNz
TW9kZVcsIGZpbHRlciwgcywgdCwgciwgYSwgZGVsdGFJLCBkZWx0YUosIGRlbHRhSyk7CisKKyAg
ICBpZiAodGV4dHVyZS5kaW1lbnNpb24gIT0gMikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJD
YW5ub3QgZ2F0aGVyIGZyb20gYSBub24tMkQgaW1hZ2UiKTsKKworICAgIGxldCBjb2xvcjAwID0g
Y29sb3IwMDE7CisgICAgbGV0IGNvbG9yMTAgPSBjb2xvcjEwMTsKKyAgICBsZXQgY29sb3IwMSA9
IGNvbG9yMDExOworICAgIGxldCBjb2xvcjExID0gY29sb3IxMTE7CisKKyAgICBzd2l0Y2ggKGNo
YW5uZWwpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgaWYgKGNvbG9yMDAgaW5zdGFu
Y2VvZiBBcnJheSkKKyAgICAgICAgICAgICAgICByZXR1cm4gW2NvbG9yMDFbMF0sIGNvbG9yMTFb
MF0sIGNvbG9yMTBbMF0sIGNvbG9yMDBbMF1dOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIHJldHVybiBbY29sb3IwMSwgY29sb3IxMSwgY29sb3IxMCwgY29sb3IwMF07CisgICAg
ICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiBbY29sb3IwMVsxXSwgY29sb3IxMVsxXSwg
Y29sb3IxMFsxXSwgY29sb3IwMFsxXV07CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJl
dHVybiBbY29sb3IwMVsyXSwgY29sb3IxMVsyXSwgY29sb3IxMFsyXSwgY29sb3IwMFsyXV07Cisg
ICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHJldHVybiBbY29sb3IwMVszXSwgY29sb3IxMVsz
XSwgY29sb3IxMFszXSwgY29sb3IwMFszXV07CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gY2hhbm5lbCB0byBnYXRoZXIgZnJvbSIpOworICAg
IH0KK30KKworZnVuY3Rpb24gdGV4ZWxGaWx0ZXJpbmcoCisgICAgZGV2aWNlTWF4QW5pc290cm9w
eSwKKyAgICBkZXZpY2VNYXhTYW1wbGVyTG9kQmlhcywKKyAgICBiYXNlTWlwTGV2ZWwsCisgICAg
YmFzZUFycmF5TGF5ZXIsCisgICAgdGV4dHVyZSwKKyAgICBzYW1wbGVyLAorICAgIHNhbXBsZXJC
aWFzLAorICAgIHMsIHQsIHIsIGEsCisgICAgZGVsdGFJLCBkZWx0YUosIGRlbHRhSywKKyAgICBs
b2RGcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQsCisg
ICAgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgZGR4LCBkZHkpCit7CisgICAgLy8gVnVs
a2FuIDEuMS44MyBzZWN0aW9uIDE1LjkuMworCisgICAgLy8gVGhlIHNwZWMgdXNlcyBkaWZmZXJl
bnQgbmFtZXMgdGhhbiBXZWJHUFUgZG9lcy4KKyAgICBsZXQgYWRkcmVzc01vZGVVID0gc2FtcGxl
ci5yQWRkcmVzc01vZGU7CisgICAgbGV0IGFkZHJlc3NNb2RlViA9IHNhbXBsZXIuc0FkZHJlc3NN
b2RlOworICAgIGxldCBhZGRyZXNzTW9kZVcgPSBzYW1wbGVyLnRBZGRyZXNzTW9kZTsKKworICAg
IGxldCBsYW1iZGE7CisgICAgW3MsIHQsIHIsIGEsIGxhbWJkYV0gPSBjYWxjdWxhdGVMYW1iZGEo
ZGV2aWNlTWF4QW5pc290cm9weSwgZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMsIHRleHR1cmUsIHNh
bXBsZXIsIHNhbXBsZXJCaWFzLCBzLCB0LCByLCBhLCBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLCBs
b2RNaW5Gcm9tRnVuY3Rpb25PcGVyYW5kLCBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwgZGR4LCBk
ZHkpOworCisgICAgbGV0IGZpbHRlcjsKKyAgICBpZiAobGFtYmRhIDw9IDApCisgICAgICAgIGZp
bHRlciA9IHNhbXBsZXIubWFnRmlsdGVyOworICAgIGVsc2UKKyAgICAgICAgZmlsdGVyID0gc2Ft
cGxlci5taW5GaWx0ZXI7CisKKyAgICBmdW5jdGlvbiBjb21wdXRlQ29sb3JGcm9tTGV2ZWwobGV2
ZWwpCisgICAgeworICAgICAgICBpZiAoZmlsdGVyID09ICJuZWFyZXN0IikgeworICAgICAgICAg
ICAgcmV0dXJuIGNvbXB1dGVUYXUobGV2ZWwsIGJhc2VBcnJheUxheWVyLCB0ZXh0dXJlLCBzYW1w
bGVyLCBhZGRyZXNzTW9kZVUsIGFkZHJlc3NNb2RlViwgYWRkcmVzc01vZGVXLCBmaWx0ZXIsIHMs
IHQsIHIsIGEsIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUspOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgaWYgKGZpbHRlciAhPSAibGluZWFyIikKKyAgICAgICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIlVua25vd24gZmlsdGVyIik7CisgICAgICAgICAgICBsZXQgW2NvbG9yMDAwLCBj
b2xvcjEwMCwgY29sb3IwMTAsIGNvbG9yMTEwLCBjb2xvcjAwMSwgY29sb3IxMDEsIGNvbG9yMDEx
LCBjb2xvcjExMSwgYWxwaGEsIGJldGEsIGdhbW1hXSA9IGNvbXB1dGVUYXUobGV2ZWwsIGJhc2VB
cnJheUxheWVyLCB0ZXh0dXJlLCBzYW1wbGVyLCBhZGRyZXNzTW9kZVUsIGFkZHJlc3NNb2RlViwg
YWRkcmVzc01vZGVXLCBmaWx0ZXIsIHMsIHQsIHIsIGEsIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUsp
OworICAgICAgICAgICAgc3dpdGNoICh0ZXh0dXJlLmRpbWVuc2lvbikgeworICAgICAgICAgICAg
ICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMCA9IGNvbG9yMDExOwor
ICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IxID0gY29sb3IxMTE7CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiByZWR1Y2UoMSAtIGFscGhhLCBjb2xvcjAsIGFscGhhLCBjb2xvcjEpOwor
ICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMDAg
PSBjb2xvcjAwMTsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMTAgPSBjb2xvcjEwMTsK
KyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMDEgPSBjb2xvcjAxMTsKKyAgICAgICAgICAg
ICAgICAgICAgbGV0IGNvbG9yMTEgPSBjb2xvcjExMTsKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHJlZHVjZSgoMSAtIGFscGhhKSAqICgxIC0gYmV0YSksIGNvbG9yMDAsIGFscGhhICogKDEg
LSBiZXRhKSwgY29sb3IxMCwgKDEgLSBhbHBoYSkgKiBiZXRhLCBjb2xvcjAxLCBhbHBoYSAqIGJl
dGEsIGNvbG9yMTEpOworICAgICAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHJlZHVjZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICgxIC0gYWxwaGEpICog
KDEgLSBiZXRhKSAqICgxIC0gZ2FtbWEpLCBjb2xvcjAwMCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGFscGhhICogKDEgLSBiZXRhKSAqICgxIC0gZ2FtbWEpLCBjb2xvcjEwMCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICgxIC0gYWxwaGEpICogYmV0YSAqICgxIC0gZ2FtbWEpLCBjb2xvcjAx
MCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFscGhhICogYmV0YSAqICgxIC0gZ2FtbWEpLCBj
b2xvcjExMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICgxIC0gYWxwaGEpICogKDEgLSBiZXRh
KSAqIGdhbW1hLCBjb2xvcjAwMSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFscGhhICogKDEg
LSBiZXRhKSAqIGdhbW1hLCBjb2xvcjEwMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICgxIC0g
YWxwaGEpICogYmV0YSAqIGdhbW1hLCBjb2xvcjAxMSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGFscGhhICogYmV0YSAqIGdhbW1hLCBjb2xvcjExMSk7CisgICAgICAgICAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGRpbWVuc2lv
biIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHNhbXBsZXIu
bWlwbWFwRmlsdGVyID09ICJuZWFyZXN0IikgeworICAgICAgICBsZXQgaW1hZ2VMZXZlbCA9IGlt
YWdlTGV2ZWxTZWxlY3Rpb24oYmFzZU1pcExldmVsLCB0ZXh0dXJlLmxldmVsQ291bnQsIHNhbXBs
ZXIubWlwbWFwRmlsdGVyLCBsYW1iZGEpOworICAgICAgICByZXR1cm4gY29tcHV0ZUNvbG9yRnJv
bUxldmVsKGltYWdlTGV2ZWwpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChzYW1wbGVyLm1p
cG1hcEZpbHRlciAhPSAibGluZWFyIikKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5r
bm93biBmaWx0ZXIiKTsKKyAgICAgICAgbGV0IFtkSGksIGRMb3csIGRlbHRhXSA9IGltYWdlTGV2
ZWxTZWxlY3Rpb24oYmFzZU1pcExldmVsLCB0ZXh0dXJlLmxldmVsQ291bnQsIHNhbXBsZXIubWlw
bWFwRmlsdGVyLCBsYW1iZGEpOworICAgICAgICByZXR1cm4gcmVkdWNlKDEgLSBkZWx0YSwgY29t
cHV0ZUNvbG9yRnJvbUxldmVsKGRIaSksIGRlbHRhLCBjb21wdXRlQ29sb3JGcm9tTGV2ZWwoZExv
dykpOworICAgIH0KK30KKworZnVuY3Rpb24gY2FzdFRvSW5uZXJUeXBlKHZhbHVlLCBpbm5lclR5
cGUpCit7CisgICAgc3dpdGNoIChpbm5lclR5cGUpIHsKKyAgICAgICAgY2FzZSAidWNoYXIiOgor
ICAgICAgICAgICAgcmV0dXJuIGNhc3RUb1VjaGFyKHZhbHVlKTsKKyAgICAgICAgY2FzZSAidXNo
b3J0IjoKKyAgICAgICAgICAgIHJldHVybiBjYXN0VG9Vc2hvcnQodmFsdWUpOworICAgICAgICBj
YXNlICJ1aW50IjoKKyAgICAgICAgICAgIHJldHVybiBjYXN0VG9VaW50KHZhbHVlKTsKKyAgICAg
ICAgY2FzZSAiY2hhciI6CisgICAgICAgICAgICByZXR1cm4gY2FzdFRvQ2hhcih2YWx1ZSk7Cisg
ICAgICAgIGNhc2UgInNob3J0IjoKKyAgICAgICAgICAgIHJldHVybiBjYXN0VG9TaG9ydCh2YWx1
ZSk7CisgICAgICAgIGNhc2UgImludCI6CisgICAgICAgICAgICByZXR1cm4gY2FzdFRvSW50KHZh
bHVlKTsKKyAgICAgICAgY2FzZSAiaGFsZiI6CisgICAgICAgICAgICByZXR1cm4gY2FzdFRvSGFs
Zih2YWx1ZSk7CisgICAgICAgIGNhc2UgImZsb2F0IjoKKyAgICAgICAgICAgIHJldHVybiBjYXN0
VG9GbG9hdCh2YWx1ZSk7CisgICAgICAgIAorICAgICAgICBjYXNlICJ1Y2hhcjIiOgorICAgICAg
ICBjYXNlICJ1Y2hhcjMiOgorICAgICAgICBjYXNlICJ1Y2hhcjQiOgorICAgICAgICAgICAgcmV0
dXJuIHZhbHVlLm1hcChjYXN0VG9VY2hhcik7CisgICAgICAgIGNhc2UgInVzaG9ydDIiOgorICAg
ICAgICBjYXNlICJ1c2hvcnQzIjoKKyAgICAgICAgY2FzZSAidXNob3J0NCI6CisgICAgICAgICAg
ICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb1VzaG9ydCk7CisgICAgICAgIGNhc2UgInVpbnQyIjoK
KyAgICAgICAgY2FzZSAidWludDMiOgorICAgICAgICBjYXNlICJ1aW50NCI6CisgICAgICAgICAg
ICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb1VpbnQpOworICAgICAgICBjYXNlICJjaGFyMiI6Cisg
ICAgICAgIGNhc2UgImNoYXIzIjoKKyAgICAgICAgY2FzZSAiY2hhcjQiOgorICAgICAgICAgICAg
cmV0dXJuIHZhbHVlLm1hcChjYXN0VG9DaGFyKTsKKyAgICAgICAgY2FzZSAic2hvcnQyIjoKKyAg
ICAgICAgY2FzZSAic2hvcnQzIjoKKyAgICAgICAgY2FzZSAic2hvcnQ0IjoKKyAgICAgICAgICAg
IHJldHVybiB2YWx1ZS5tYXAoY2FzdFRvU2hvcnQpOworICAgICAgICBjYXNlICJpbnQyIjoKKyAg
ICAgICAgY2FzZSAiaW50MyI6CisgICAgICAgIGNhc2UgImludDQiOgorICAgICAgICAgICAgcmV0
dXJuIHZhbHVlLm1hcChjYXN0VG9JbnQpOworICAgICAgICBjYXNlICJoYWxmMiI6CisgICAgICAg
IGNhc2UgImhhbGYzIjoKKyAgICAgICAgY2FzZSAiaGFsZjQiOgorICAgICAgICAgICAgcmV0dXJu
IHZhbHVlLm1hcChjYXN0VG9IYWxmKTsKKyAgICAgICAgY2FzZSAiZmxvYXQyIjoKKyAgICAgICAg
Y2FzZSAiZmxvYXQzIjoKKyAgICAgICAgY2FzZSAiZmxvYXQ0IjoKKyAgICAgICAgICAgIHJldHVy
biB2YWx1ZS5tYXAoY2FzdFRvRmxvYXQpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHRleHR1cmUgaW5uZXIgdHlwZSIpOworICAgIH0KK30K
KworZnVuY3Rpb24gc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGVs
dGEsIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLCBkZHgsIGRkeSwgbG9kRnJvbUZ1bmN0aW9uT3Bl
cmFuZCwgZHJlZikKK3sKKyAgICBsZXQgcyA9IGxvY2F0aW9uWzBdOworICAgIGxldCB0ID0gbG9j
YXRpb25bMV07CisgICAgbGV0IHIgPSBsb2NhdGlvblsyXTsKKyAgICBsZXQgcSA9IGxvY2F0aW9u
WzNdOworICAgIGxldCBhID0gbG9jYXRpb25bNF07CisKKyAgICBsZXQgZGVsdGFJID0gdW5kZWZp
bmVkOworICAgIGxldCBkZWx0YUogPSB1bmRlZmluZWQ7CisgICAgbGV0IGRlbHRhSyA9IHVuZGVm
aW5lZDsKKyAgICBpZiAoZGVsdGEgIT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGRlbHRhSSA9IGRl
bHRhWzBdOworICAgICAgICBkZWx0YUogPSBkZWx0YVsxXTsKKyAgICAgICAgZGVsdGFLID0gZGVs
dGFbMl07CisgICAgfQorCisgICAgW3MsIHQsIHIsIGRyZWZdID0gcHJvamVjdGlvbk9wZXJhdGlv
bihzLCB0LCByLCBkcmVmLCBxKTsKKyAgICBsZXQgcmVzdWx0ID0gdGV4ZWxGaWx0ZXJpbmcoCisg
ICAgICAgIE51bWJlci5NQVhfVkFMVUUsCisgICAgICAgIE51bWJlci5NQVhfVkFMVUUsCisgICAg
ICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIHRleHR1cmUsCisgICAgICAgIHNhbXBsZXIsCisg
ICAgICAgIDAsCisgICAgICAgIHMsIHQsIHIsIGEsCisgICAgICAgIGRlbHRhSSwgZGVsdGFKLCBk
ZWx0YUssCisgICAgICAgIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgICAgIC1OdW1iZXIu
TUFYX1ZBTFVFLAorICAgICAgICBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwKKyAgICAgICAgZGR4
LCBkZHkpOworICAgIGlmIChkcmVmICE9IHVuZGVmaW5lZCkgeworICAgICAgICBpZiAocmVzdWx0
IGluc3RhbmNlb2YgQXJyYXkpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkRlcHRoIGNv
bXBhcmlzb24gbm90IHN1cHBvcnRlZCBvbiBtdWx0aWNoYW5uZWwgdGV4dHVyZXMiKTsKKyAgICAg
ICAgcmVzdWx0ID0gZGVwdGhDb21wYXJlT3BlcmF0aW9uKGRyZWYsIHJlc3VsdCwgc2FtcGxlci5j
b21wYXJlRnVuY3Rpb24pOworICAgIH0KKyAgICByZXR1cm4gY2FzdFRvSW5uZXJUeXBlKHJlc3Vs
dCwgdGV4dHVyZS5pbm5lclR5cGUpOworICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8g
ZG8gd2l0aCBhbmlzb3Ryb3B5CisgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgaG93IHRvIGRvIG11
bHRpc2FtcGxpbmcuCit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9pbmRleC5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbApp
bmRleCA2NWE4NjQxMWIzZTc3MGI1NTdiNDFhY2M3ZTQxNGRlZjQyNDAzMDEzLi5lNmUxM2RmZThk
ZmE1YzUzMzJhZDllZjA0OWVjZWEzNTliN2UzYTQyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL2luZGV4Lmh0bWwKQEAgLTI4LDYgKzI4LDcgQEAKIDxzY3JpcHQgc3JjPSJCdWlsdGlu
VmVjdG9yU2V0dGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDYWxsRXhwcmVzc2lvbi5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2FsbEZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJDYXN0cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2hlY2suanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IkNoZWNrTGl0ZXJhbFR5cGVzLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJDaGVja0xvb3BzLmpzIj48L3NjcmlwdD4KQEAgLTExNSw2ICsxMTYsNyBAQAog
PHNjcmlwdCBzcmM9IlJldHVybi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUmV0dXJuQ2hl
Y2tlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUmV0dXJuRXhjZXB0aW9uLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJTYW1wbGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJT
dGFuZGFyZExpYnJhcnkuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN0YXRlbWVudENsb25l
ci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3RydWN0TGF5b3V0QnVpbGRlci5qcyI+PC9z
Y3JpcHQ+CkBAIC0xMjcsNiArMTI5LDggQEAKIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplQ29weUNv
bnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVE
ZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVGVy
bmFyeUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlRleHR1cmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9IlRleHR1cmVPcGVyYXRpb25zLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJUcmFwU3RhdGVtZW50LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBl
RGVmLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2Ny
aXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348797</attachid>
            <date>2018-09-03 17:06:15 -0700</date>
            <delta_ts>2018-09-03 17:33:38 -0700</delta_ts>
            <desc>Test gathering</desc>
            <filename>bug-188940-20180903170614.patch</filename>
            <type>text/plain</type>
            <size>467423</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTg5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWE0MzNhZWVmNTA2YjZmNDY1NTYwMTNiZmJiNDM2MWJm
MjE5YWMxYS4uNTlhODliMDY1MjFmMzdlYjI1MDk3OGJjZDI5MDM4MDk1NzUyNTU5NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
OSBAQAorMjAxOC0wOS0wMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRleHR1cmUgdHlwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNp
Y3MuanM6CisgICAgICAgIChJbnRyaW5zaWNzLik6CisgICAgICAgIChJbnRyaW5zaWNzLmNoZWNr
RmFsc2UpOgorICAgICAgICAoSW50cmluc2ljcy5ib3hWZWN0b3IpOgorICAgICAgICAoSW50cmlu
c2ljcy51bmJveFZlY3Rvcik6CisgICAgICAgIChJbnRyaW5zaWNzKToKKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qczoKKyAgICAgICAgKGxldC5zdGFuZGFyZExpYnJh
cnkpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAobWFrZVNhbXBs
ZXIpOgorICAgICAgICAobWFrZTFEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMURUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlMkRUZXh0dXJlQXJy
YXkpOgorICAgICAgICAobWFrZTNEVGV4dHVyZSk6CisgICAgICAgIChtYWtlVGV4dHVyZUN1YmUp
OgorICAgICAgICAobWFrZVJXMURUZXh0dXJlKToKKyAgICAgICAgKG1ha2VSVzFEVGV4dHVyZUFy
cmF5KToKKyAgICAgICAgKG1ha2VSVzJEVGV4dHVyZSk6CisgICAgICAgIChtYWtlUlcyRFRleHR1
cmVBcnJheSk6CisgICAgICAgIChtYWtlUlczRFRleHR1cmUpOgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1RleHR1cmUuanM6IEFkZGVkLgorICAgICAgICAoVGV4dHVyZSk6Cisg
ICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQgZGltZW5zaW9uKToKKyAgICAgICAgKFRleHR1
cmUucHJvdG90eXBlLmdldCB3aWR0aCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aGVpZ2h0KToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkZXB0aCk6CisgICAgICAg
IChUZXh0dXJlLnByb3RvdHlwZS5nZXQgbGV2ZWxDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnBy
b3RvdHlwZS5nZXQgbGF5ZXJDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQg
aW5uZXJUeXBlKToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkYXRhKToKKyAgICAg
ICAgKFRleHR1cmUucHJvdG90eXBlLmVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUu
cHJvdG90eXBlLnNldEVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUxRCk6CisgICAg
ICAgIChUZXh0dXJlMUQucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJl
MUQucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlw
ZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlwZS5lbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUxRC5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0
dXJlMURBcnJheSk6CisgICAgICAgIChUZXh0dXJlMURBcnJheS5wcm90b3R5cGUud2lkdGhBdExl
dmVsKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToK
KyAgICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTFEQXJyYXkucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTFE
QXJyYXkucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEKToKKyAgICAg
ICAgKFRleHR1cmUyRC5wcm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUy
RC5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBl
LmRlcHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBlLmVsZW1lbnQpOgor
ICAgICAgICAoVGV4dHVyZTJELnByb3RvdHlwZS5zZXRFbGVtZW50KToKKyAgICAgICAgKFRleHR1
cmUyREFycmF5KToKKyAgICAgICAgKFRleHR1cmUyREFycmF5LnByb3RvdHlwZS53aWR0aEF0TGV2
ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgor
ICAgICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMkRBcnJheS5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMkRB
cnJheS5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlM0QpOgorICAgICAg
ICAoVGV4dHVyZTNELnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTNE
LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUuZWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0QucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVy
ZUN1YmUpOgorICAgICAgICAoVGV4dHVyZUN1YmUucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6Cisg
ICAgICAgIChUZXh0dXJlQ3ViZS5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlQ3ViZS5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmVDdWJl
LnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmVDdWJlLnByb3RvdHlwZS5zZXRF
bGVtZW50KToKKyAgICAgICAgKFRleHR1cmUxRFJXKToKKyAgICAgICAgKFRleHR1cmUxRFJXLnBy
b3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmhl
aWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmRlcHRoQXRMZXZl
bCk6CisgICAgICAgIChUZXh0dXJlMURSVy5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChU
ZXh0dXJlMURSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMURBcnJh
eVJXKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6
CisgICAgICAgIChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAg
ICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUx
REFycmF5UlcucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEUlcpOgor
ICAgICAgICAoVGV4dHVyZTJEUlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlMkRSVy5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkRS
Vy5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlw
ZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlwZS5zZXRFbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUyREFycmF5UlcpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5w
cm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90
eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90eXBlLmVsZW1l
bnQpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlM0RSVyk6CisgICAgICAgIChUZXh0dXJlM0RSVy5wcm90b3R5cGUud2lk
dGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVs
KToKKyAgICAgICAgKFRleHR1cmUzRFJXLnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTNEUlcucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTNEUlcu
cHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1RleHR1cmVPcGVyYXRpb25zLmpzOiBBZGRlZC4KKyAgICAgICAgKGRlcHRoQ29tcGFyZU9wZXJh
dGlvbik6CisgICAgICAgIChjb252ZXJzaW9uVG9SR0JBKToKKyAgICAgICAgKHByb2plY3Rpb25P
cGVyYXRpb24pOgorICAgICAgICAoY3ViZU1hcEZhY2VTZWxlY3Rpb24pOgorICAgICAgICAoY3Vi
ZU1hcENvb3JkaW5hdGVUcmFuc2Zvcm1hdGlvbik6CisgICAgICAgIChjdWJlTWFwRGVyaXZhdGl2
ZVRyYW5zZm9ybWF0aW9uKToKKyAgICAgICAgKHNjYWxlRmFjdG9yT3BlcmF0aW9uKToKKyAgICAg
ICAgKGxldmVsT2ZEZXRhaWxPcGVyYXRpb24pOgorICAgICAgICAobmVhcmVzdCk6CisgICAgICAg
IChpbWFnZUxldmVsU2VsZWN0aW9uKToKKyAgICAgICAgKHN0cnFhVG9VVldBVHJhbnNmb3JtYXRp
b24pOgorICAgICAgICAocm5lKToKKyAgICAgICAgKHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25B
bmRBcnJheUxheWVyU2VsZWN0aW9uKToKKyAgICAgICAgKGludGVnZXJUZXhlbENvb3JkaW5hdGVP
cGVyYXRpb25zKToKKyAgICAgICAgKG1pcnJvcik6CisgICAgICAgICh0cmFuc2Zvcm0pOgorICAg
ICAgICAod3JhcHBpbmdPcGVyYXRpb24pOgorICAgICAgICAodGV4ZWxHYXRoZXJpbmcpOgorICAg
ICAgICAoY29tcHV0ZVRhdS5yZWR1Y2UpOgorICAgICAgICAoY29tcHV0ZVRhdS5zaG91bGRCZUJv
cmRlcik6CisgICAgICAgIChjb21wdXRlVGF1LmFjY2Vzc0NvbG9yKToKKyAgICAgICAgKGNvbXB1
dGVUYXUpOgorICAgICAgICAodGV4ZWxGaWx0ZXJpbmcpOgorICAgICAgICAoc2FtcGxlVGV4dHVy
ZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAx
OC0wOS0wMSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW1dQRV0gMi4yMS45MSBmYWlscyB0byBidWlsZCB3aXRoIEVOQUJMRV9NSU5JQlJPV1NF
UgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCmluZGV4IDljMmEzNzE1MGMxZTk3NmI5
MjZjZmJlZTIzNDM3NTIwYThkZTRhNDcuLjkwZmM4NDEzYTY1MTIyNDQ2YmYwMWZkOTY3ZGQ2NTEz
OWEwZjg3ZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5q
cworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKQEAgLTUxLDYgKzUx
LDcgQEAgbG9hZCgiQnVpbHRpblZlY3RvckdldHRlci5qcyIpOwogbG9hZCgiQnVpbHRpblZlY3Rv
clNldHRlci5qcyIpOwogbG9hZCgiQ2FsbEV4cHJlc3Npb24uanMiKTsKIGxvYWQoIkNhbGxGdW5j
dGlvbi5qcyIpOworbG9hZCgiQ2FzdHMuanMiKTsKIGxvYWQoIkNoZWNrLmpzIik7CiBsb2FkKCJD
aGVja0xpdGVyYWxUeXBlcy5qcyIpOwogbG9hZCgiQ2hlY2tMb29wcy5qcyIpOwpAQCAtMTM4LDYg
KzEzOSw3IEBAIGxvYWQoIlJlc29sdmVUeXBlRGVmcy5qcyIpOwogbG9hZCgiUmV0dXJuLmpzIik7
CiBsb2FkKCJSZXR1cm5DaGVja2VyLmpzIik7CiBsb2FkKCJSZXR1cm5FeGNlcHRpb24uanMiKTsK
K2xvYWQoIlNhbXBsZXIuanMiKTsKIGxvYWQoIlN0YW5kYXJkTGlicmFyeS5qcyIpOwogbG9hZCgi
U3RhdGVtZW50Q2xvbmVyLmpzIik7CiBsb2FkKCJTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIik7CkBA
IC0xNTAsNiArMTUyLDggQEAgbG9hZCgiU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyIpOwog
bG9hZCgiU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIik7CiBsb2FkKCJTeW50
aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiKTsKIGxvYWQoIlRlcm5hcnlFeHBy
ZXNzaW9uLmpzIik7Citsb2FkKCJUZXh0dXJlLmpzIik7Citsb2FkKCJUZXh0dXJlT3BlcmF0aW9u
cy5qcyIpOwogbG9hZCgiVHJhcFN0YXRlbWVudC5qcyIpOwogbG9hZCgiVHlwZURlZi5qcyIpOwog
bG9hZCgiVHlwZURlZlJlc29sdmVyLmpzIik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9DYXN0cy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Nh
c3RzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFjYmIyZWEwMjg1MzViNDY3MDQyMzA5N2Y3YTViNTdjYWY2Yjhi
MWMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYXN0
cy5qcwpAQCAtMCwwICsxLDExNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworInVzZSBzdHJpY3QiOworCitmdW5jdGlvbiBjYXN0KHR5cGVkQXJyYXlDb25z
dHJ1Y3RvciwgbnVtYmVyKQoreworICAgIHZhciBhcnJheSA9IG5ldyB0eXBlZEFycmF5Q29uc3Ry
dWN0b3IoMSk7CisgICAgYXJyYXlbMF0gPSBudW1iZXI7CisgICAgcmV0dXJuIGFycmF5WzBdOwor
fQorCitmdW5jdGlvbiBiaXR3aXNlQ2FzdCh0eXBlZEFycmF5Q29uc3RydWN0b3IxLCB0eXBlZEFy
cmF5Q29uc3RydWN0b3IyLCB2YWx1ZSkKK3sKKyAgICBsZXQgdHlwZWRBcnJheTEgPSBuZXcgdHlw
ZWRBcnJheUNvbnN0cnVjdG9yMSgxKTsKKyAgICBsZXQgdHlwZWRBcnJheTIgPSBuZXcgdHlwZWRB
cnJheUNvbnN0cnVjdG9yMih0eXBlZEFycmF5MS5idWZmZXIpOworICAgIHR5cGVkQXJyYXkxWzBd
ID0gdmFsdWU7CisgICAgcmV0dXJuIHR5cGVkQXJyYXkyWzBdOworfQorCitmdW5jdGlvbiBjYXN0
VG9VY2hhcihudW1iZXIpCit7CisgICAgcmV0dXJuIG51bWJlciAmIDB4RkY7Cit9CisKK2Z1bmN0
aW9uIGNhc3RUb1VzaG9ydChudW1iZXIpCit7CisgICAgcmV0dXJuIG51bWJlciAmIDB4RkZGRjsK
K30KKworZnVuY3Rpb24gY2FzdFRvVWludChudW1iZXIpCit7CisgICAgcmV0dXJuIG51bWJlciA+
Pj4gMDsKK30KKworZnVuY3Rpb24gY2FzdFRvQ2hhcihudW1iZXIpCit7CisgICAgcmV0dXJuIGNh
c3QoSW50OEFycmF5LCBudW1iZXIpOworfQorCitmdW5jdGlvbiBjYXN0VG9TaG9ydChudW1iZXIp
Cit7CisgICAgcmV0dXJuIGNhc3QoSW50MTZBcnJheSwgbnVtYmVyKTsKK30KKworZnVuY3Rpb24g
Y2FzdFRvSW50KG51bWJlcikKK3sKKyAgICByZXR1cm4gbnVtYmVyIHwgMDsKK30KKworZnVuY3Rp
b24gY2FzdFRvSGFsZihudW1iZXIpCit7CisgICAgLy8gRklYTUU6IE1ha2UgdGhpcyBtYXRoIG9i
ZXkgSUVFRSA3NTQuCisgICAgaWYgKE51bWJlci5pc05hTihudW1iZXIpKQorICAgICAgIHJldHVy
biBudW1iZXIKKyAgICBpZiAobnVtYmVyID4gNjU1MDQpCisgICAgICAgIHJldHVybiBOdW1iZXIu
UE9TSVRJVkVfSU5GSU5JVFk7CisgICAgaWYgKG51bWJlciA8IC02NTUwNCkKKyAgICAgICAgcmV0
dXJuIE51bWJlci5ORUdBVElWRV9JTkZJTklUWTsKKyAgICBpZiAobnVtYmVyID4gMCAmJiBudW1i
ZXIgPCBNYXRoLnBvdygyLCAtMjQpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAobnVtYmVy
IDwgMCAmJiBudW1iZXIgPiAtTWF0aC5wb3coMiwgLTI0KSkKKyAgICAgICAgcmV0dXJuIC0wOwor
ICAgIGxldCBkb3VibGVBcnJheSA9IG5ldyBGbG9hdDY0QXJyYXkoMSk7CisgICAgbGV0IHVpbnRB
cnJheSA9IG5ldyBVaW50OEFycmF5KGRvdWJsZUFycmF5LmJ1ZmZlcik7CisgICAgZG91YmxlQXJy
YXlbMF0gPSBudW1iZXI7CisgICAgbGV0IHNpZ24gPSB1aW50QXJyYXlbN10gJiAweDgwOworICAg
IGxldCBleHBvbmVudCA9ICgodWludEFycmF5WzddICYgMHg3ZikgPDwgNCkgfCAoKHVpbnRBcnJh
eVs2XSAmIDB4ZjApID4+PiA0KTsKKyAgICBsZXQgc2lnbmlmaWNhbmQgPSAoKHVpbnRBcnJheVs2
XSAmIDB4MGYpIDw8IDYpIHwgKCh1aW50QXJyYXlbNV0gJiAweGZjKSA+Pj4gMik7CisKKyAgICBp
ZiAoKGV4cG9uZW50IC0gMTAyMykgPCAtMTQpIHsKKyAgICAgICAgZXhwb25lbnQgPSAwOworICAg
ICAgICBzaWduaWZpY2FuZCA9IChNYXRoLmFicyhudW1iZXIpICogTWF0aC5wb3coMiwgMjQpKSA+
Pj4gMDsKKyAgICAgICAgbGV0IHZhbHVlID0gTWF0aC5wb3coMiwgLTE0KSAqIHNpZ25pZmljYW5k
IC8gMTAyNDsKKyAgICAgICAgaWYgKHNpZ24gIT0gMCkKKyAgICAgICAgICAgIHZhbHVlICo9IC0x
OworICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorCisgICAgZG91YmxlQXJyYXlbMF0gPSAw
OworCisgICAgdWludEFycmF5WzddIHw9IHNpZ247CisgICAgdWludEFycmF5WzddIHw9IChleHBv
bmVudCA+Pj4gNCk7CisgICAgdWludEFycmF5WzZdIHw9ICgoZXhwb25lbnQgPDwgNCkgJiAweGYw
KTsKKyAgICB1aW50QXJyYXlbNl0gfD0gKHNpZ25pZmljYW5kID4+PiA2KTsKKyAgICB1aW50QXJy
YXlbNV0gfD0gKChzaWduaWZpY2FuZCA8PCAyKSAmIDB4ZmMpOworCisgICAgcmV0dXJuIGRvdWJs
ZUFycmF5WzBdOworfQorCitmdW5jdGlvbiBjYXN0VG9GbG9hdChudW1iZXIpCit7CisgICAgcmV0
dXJuIE1hdGguZnJvdW5kKG51bWJlcik7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvSW50cmluc2ljcy5qcwppbmRleCBiMDA0MDY3ZjVlYmZiM2E4YjRiZDk4ZTQzN2E4YzA3Njhi
ZTI2ZjFlLi5iYzBhNjg0ZWU3M2MzNjkyZjEzZmRjOTc4YWRiOGQ4YjY1ODczNmU5IDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCisrKyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMKQEAgLTQ4LDYxICs0OCw2
IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KIAotICAgICAgICBmdW5jdGlvbiBjYXN0KHR5cGVkQXJyYXlDb25zdHJ1Y3RvciwgbnVtYmVy
KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgYXJyYXkgPSBuZXcgdHlwZWRBcnJheUNvbnN0
cnVjdG9yKDEpOwotICAgICAgICAgICAgYXJyYXlbMF0gPSBudW1iZXI7Ci0gICAgICAgICAgICBy
ZXR1cm4gYXJyYXlbMF07Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBiaXR3aXNlQ2Fz
dCh0eXBlZEFycmF5Q29uc3RydWN0b3IxLCB0eXBlZEFycmF5Q29uc3RydWN0b3IyLCB2YWx1ZSkK
LSAgICAgICAgewotICAgICAgICAgICAgbGV0IHR5cGVkQXJyYXkxID0gbmV3IHR5cGVkQXJyYXlD
b25zdHJ1Y3RvcjEoMSk7Ci0gICAgICAgICAgICBsZXQgdHlwZWRBcnJheTIgPSBuZXcgdHlwZWRB
cnJheUNvbnN0cnVjdG9yMih0eXBlZEFycmF5MS5idWZmZXIpOwotICAgICAgICAgICAgdHlwZWRB
cnJheTFbMF0gPSB2YWx1ZTsKLSAgICAgICAgICAgIHJldHVybiB0eXBlZEFycmF5MlswXTsKLSAg
ICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIGNhc3RUb0hhbGYobnVtYmVyKQotICAgICAgICB7
Ci0gICAgICAgICAgICAvLyBGSVhNRTogTWFrZSB0aGlzIG1hdGggb2JleSBJRUVFIDc1NC4KLSAg
ICAgICAgICAgIGlmIChOdW1iZXIuaXNOYU4obnVtYmVyKSkKLSAgICAgICAgICAgICAgIHJldHVy
biBudW1iZXIKLSAgICAgICAgICAgIGlmIChudW1iZXIgPiA2NTUwNCkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOwotICAgICAgICAgICAgaWYgKG51bWJl
ciA8IC02NTUwNCkKLSAgICAgICAgICAgICAgICByZXR1cm4gTnVtYmVyLk5FR0FUSVZFX0lORklO
SVRZOwotICAgICAgICAgICAgaWYgKG51bWJlciA+IDAgJiYgbnVtYmVyIDwgTWF0aC5wb3coMiwg
LTI0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIGlmIChudW1iZXIg
PCAwICYmIG51bWJlciA+IC1NYXRoLnBvdygyLCAtMjQpKQotICAgICAgICAgICAgICAgIHJldHVy
biAtMDsKLSAgICAgICAgICAgIGxldCBkb3VibGVBcnJheSA9IG5ldyBGbG9hdDY0QXJyYXkoMSk7
Ci0gICAgICAgICAgICBsZXQgdWludEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoZG91YmxlQXJyYXku
YnVmZmVyKTsKLSAgICAgICAgICAgIGRvdWJsZUFycmF5WzBdID0gbnVtYmVyOwotICAgICAgICAg
ICAgbGV0IHNpZ24gPSB1aW50QXJyYXlbN10gJiAweDgwOwotICAgICAgICAgICAgbGV0IGV4cG9u
ZW50ID0gKCh1aW50QXJyYXlbN10gJiAweDdmKSA8PCA0KSB8ICgodWludEFycmF5WzZdICYgMHhm
MCkgPj4+IDQpOwotICAgICAgICAgICAgbGV0IHNpZ25pZmljYW5kID0gKCh1aW50QXJyYXlbNl0g
JiAweDBmKSA8PCA2KSB8ICgodWludEFycmF5WzVdICYgMHhmYykgPj4+IDIpOwotCi0gICAgICAg
ICAgICBpZiAoKGV4cG9uZW50IC0gMTAyMykgPCAtMTQpIHsKLSAgICAgICAgICAgICAgICBleHBv
bmVudCA9IDA7Ci0gICAgICAgICAgICAgICAgc2lnbmlmaWNhbmQgPSAoTWF0aC5hYnMobnVtYmVy
KSAqIE1hdGgucG93KDIsIDI0KSkgPj4+IDA7Ci0gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0g
TWF0aC5wb3coMiwgLTE0KSAqIHNpZ25pZmljYW5kIC8gMTAyNDsKLSAgICAgICAgICAgICAgICBp
ZiAoc2lnbiAhPSAwKQotICAgICAgICAgICAgICAgICAgICB2YWx1ZSAqPSAtMTsKLSAgICAgICAg
ICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGRvdWJs
ZUFycmF5WzBdID0gMDsKLQotICAgICAgICAgICAgdWludEFycmF5WzddIHw9IHNpZ247Ci0gICAg
ICAgICAgICB1aW50QXJyYXlbN10gfD0gKGV4cG9uZW50ID4+PiA0KTsKLSAgICAgICAgICAgIHVp
bnRBcnJheVs2XSB8PSAoKGV4cG9uZW50IDw8IDQpICYgMHhmMCk7Ci0gICAgICAgICAgICB1aW50
QXJyYXlbNl0gfD0gKHNpZ25pZmljYW5kID4+PiA2KTsKLSAgICAgICAgICAgIHVpbnRBcnJheVs1
XSB8PSAoKHNpZ25pZmljYW5kIDw8IDIpICYgMHhmYyk7Ci0KLSAgICAgICAgICAgIHJldHVybiBk
b3VibGVBcnJheVswXTsKLSAgICAgICAgfQotCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAg
ICAgICAgICAibmF0aXZlIHR5cGVkZWYgdm9pZCIsCiAgICAgICAgICAgICB0eXBlID0+IHsKQEAg
LTEyOCwxNSArNzMsMTUgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgdHlw
ZS5pc0ludCA9IHRydWU7CiAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHR5
cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudCh2YWx1ZSAmIDB4
ZmYsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+
IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvVWNoYXIodmFsdWUpLCB2YWx1ZSk7CiAgICAgICAg
ICAgICAgICAgdHlwZS5zaXplID0gMTsKICAgICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1
ZSA9IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFs
dWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2YWx1ZSAmIDB4ZmYsIHR5cGUpOwot
ICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiAodmFsdWUgKyAx
KSAmIDB4ZmY7CisgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwg
dmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBjYXN0VG9VY2hhcih2YWx1ZSks
IHR5cGUpOworICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBj
YXN0VG9VY2hhcih2YWx1ZSArIDEpOwogICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwg
PSAoYSwgYikgPT4gYSA9PT0gYjsKICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVs
dFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7Ci0gICAg
ICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFs
dWUgJiAweGZmOwotICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVy
YWwgPSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmY7CisgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRW
YWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvVWNoYXIodmFsdWUpOworICAgICAg
ICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0
VG9VY2hhcih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlv
biooKSB7CiAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmY7ICsr
aSkKICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogaSwgbmFtZTogaX07CkBA
IC0xNTIsMTUgKzk3LDE1IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICB0
eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7
CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAg
ICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVl
ICYgMHhmZmZmLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0g
dmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0VG9Vc2hvcnQodmFsdWUpLCB2YWx1ZSk7
CiAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAgICAgIHR5cGUu
ZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0g
KG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2YWx1ZSAmIDB4
ZmZmZiwgdHlwZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1
ZSA9PiAodmFsdWUgKyAxKSAmIDB4ZmZmZjsKKyAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVM
aXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBj
YXN0VG9Vc2hvcnQodmFsdWUpLCB0eXBlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNz
b3JWYWx1ZSA9IHZhbHVlID0+IGNhc3RUb1VzaG9ydCh2YWx1ZSArIDEpOwogICAgICAgICAgICAg
ICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7CiAgICAgICAgICAgICAg
ICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZl
ci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21J
bnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAweGZmZmY7Ci0gICAgICAgICAgICAgICAgIHR5
cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmZmZjsK
KyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUg
PT4gY2FzdFRvVXNob3J0KHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1
ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb1VzaG9ydCh2YWx1ZSk7CiAgICAgICAg
ICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVuY3Rpb24qKCkgewogICAgICAgICAgICAgICAg
ICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhmZmZmOyArK2kpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgeWllbGQge3ZhbHVlOiBpLCBuYW1lOiBpfTsKQEAgLTE3NSwxNSArMTIwLDE1IEBA
IGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsK
ICAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAgICAgICAg
IHR5cGUuaXNTaWduZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNl
bnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVlID4+PiAwLCB2YWx1ZSk7Cisg
ICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1
aXZhbGVudChjYXN0VG9VaW50KHZhbHVlKSwgdmFsdWUpOwogICAgICAgICAgICAgICAgICB0eXBl
LnNpemUgPSAxOwogICAgICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAg
ICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRM
aXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgdmFsdWUgPj4+IDAsIHR5cGUpOwotICAgICAgICAgICAg
ICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gKHZhbHVlICsgMSkgPj4+IDA7Cisg
ICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJ
bnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2FzdFRvVWludCh2YWx1ZSksIHR5cGUpOworICAg
ICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdFRvVWludCh2
YWx1ZSArIDEpOwogICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+
IGEgPT09IGI7CiAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAo
YnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAg
ICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgPj4+IDA7
Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1
ZSA9PiB2YWx1ZSA+Pj4gMDsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21J
bnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvVWludCh2YWx1ZSk7CisgICAgICAgICAgICAgICAg
IHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9VaW50KHZh
bHVlKTsKICAgICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7CiAg
ICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSAweGZmZmZmZmZmOyArK2kp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVlOiBpLCBuYW1lOiBpfTsKQEAg
LTE5OCwxOCArMTQzLDE4IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICB0
eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7
CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSB0cnVlOwotICAgICAgICAgICAgICAg
ICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdChJ
bnQ4QXJyYXksIHZhbHVlKSwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJl
c2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvQ2hhcih2YWx1ZSksIHZh
bHVlKTsKICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKICAgICAgICAgICAgICAgICAg
dHlwZS5kZWZhdWx0VmFsdWUgPSAwOwotICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVy
YWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3Qo
SW50OEFycmF5LCB2YWx1ZSksIHR5cGUpOwotICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3Nv
clZhbHVlID0gdmFsdWUgPT4gY2FzdChJbnQ4QXJyYXksIHZhbHVlICsgMSk7CisgICAgICAgICAg
ICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFs
LndpdGhUeXBlKG9yaWdpbiwgY2FzdFRvQ2hhcih2YWx1ZSksIHR5cGUpOworICAgICAgICAgICAg
ICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdFRvQ2hhcih2YWx1ZSArIDEp
OwogICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7
CiAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBv
ZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5m
b3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdChJbnQ4QXJyYXksIHZhbHVl
KTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZh
bHVlID0+IGNhc3QoSW50OEFycmF5LCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9y
bWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb0NoYXIodmFsdWUpOworICAg
ICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4g
Y2FzdFRvQ2hhcih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVu
Y3Rpb24qKCkgewogICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhm
ZjsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gY2FzdChJbnQ4
QXJyYXksIGkpOworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGNhc3RUb0No
YXIoaSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVlOiB2YWx1ZSwgbmFt
ZTogdmFsdWV9OwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9OwpA
QCAtMjIzLDE4ICsxNjgsMTggQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAg
IHR5cGUuaXNJbnQgPSB0cnVlOwogICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1
ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IHRydWU7Ci0gICAgICAgICAgICAg
ICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0
KEludDE2QXJyYXksIHZhbHVlKSwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJl
cHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvU2hvcnQodmFsdWUp
LCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAg
ICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVM
aXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBj
YXN0KEludDE2QXJyYXksIHZhbHVlKSwgdHlwZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuc3Vj
Y2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0KEludDE2QXJyYXksIHZhbHVlICsgMSk7CisgICAg
ICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRM
aXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2FzdFRvU2hvcnQodmFsdWUpLCB0eXBlKTsKKyAgICAg
ICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+IGNhc3RUb1Nob3J0KHZh
bHVlICsgMSk7CiAgICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4g
YSA9PT0gYjsKICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChi
dWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOwotICAgICAgICAgICAgICAg
ICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0KEludDE2QXJy
YXksIHZhbHVlKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0
ZXJhbCA9IHZhbHVlID0+IGNhc3QoSW50MTZBcnJheSwgdmFsdWUpOworICAgICAgICAgICAgICAg
ICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9TaG9ydCh2
YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwg
PSB2YWx1ZSA9PiBjYXN0VG9TaG9ydCh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuYWxs
VmFsdWVzID0gZnVuY3Rpb24qKCkgewogICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9
IDA7IGkgPD0gMHhmZmZmOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFs
dWUgPSBjYXN0KEludDE2QXJyYXksIGkpOworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2
YWx1ZSA9IGNhc3RUb1Nob3J0KGkpOwogICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2
YWx1ZTogdmFsdWUsIG5hbWU6IHZhbHVlfTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgfTsKQEAgLTI0OCwxOCArMTkzLDE4IEBAIGNsYXNzIEludHJpbnNpY3Mgewog
ICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlw
ZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSB0cnVl
OwotICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lz
ZUVxdWl2YWxlbnQodmFsdWUgfCAwLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuY2Fu
UmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0VG9JbnQodmFsdWUp
LCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAg
ICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVM
aXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2
YWx1ZSB8IDAsIHR5cGUpOwotICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0g
dmFsdWUgPT4gKHZhbHVlICsgMSkgfCAwOworICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxp
dGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNh
c3RUb0ludCh2YWx1ZSksIHR5cGUpOworICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZh
bHVlID0gdmFsdWUgPT4gY2FzdFRvSW50KHZhbHVlICsgMSk7CiAgICAgICAgICAgICAgICAgIHR5
cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKICAgICAgICAgICAgICAgICAgdHlw
ZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChv
ZmZzZXQsIDApOwotICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVy
YWwgPSB2YWx1ZSA9PiB2YWx1ZSB8IDA7Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFs
dWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSB8IDA7CisgICAgICAgICAgICAgICAg
IHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb0ludCh2YWx1
ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2
YWx1ZSA9PiBjYXN0VG9JbnQodmFsdWUpOwogICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVl
cyA9IGZ1bmN0aW9uKigpIHsKICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBp
IDw9IDB4ZmZmZmZmZmY7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1
ZSA9IGkgfCAwOworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGNhc3RUb0lu
dChpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IHZhbHVlLCBuYW1l
OiB2YWx1ZX07CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH07CkBA
IC0yOTIsNyArMjM3LDcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgIHR5
cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQo
b2Zmc2V0LCAwKTsKICAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRl
cmFsID0gdmFsdWUgPT4gdmFsdWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVG
cm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5m
b3JtYXRWYWx1ZUZyb21GbG9hdExpdGVyYWwgPSB2YWx1ZSA9PiBNYXRoLmZyb3VuZCh2YWx1ZSk7
CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tRmxvYXRMaXRlcmFsID0gdmFs
dWUgPT4gY2FzdFRvRmxvYXQodmFsdWUpOwogICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCkBAIC0zMzAsNyArMjc1LDggQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAg
ICAgICAgICAibmF0aXZlIHR5cGVkZWYgc2FtcGxlciIsCiAgICAgICAgICAgICB0eXBlID0+IHsK
ICAgICAgICAgICAgICAgICB0aGlzLnNhbXBsZXIgPSB0eXBlOwotICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gcHV0IGhlcmUuCisgICAgICAgICAgICAgICAgdHlw
ZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0g
KGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAg
fSk7CiAKICAgICAgICAgZm9yIChsZXQgdGV4dHVyZVR5cGUgb2YgWyJUZXh0dXJlMUQiLCAiUldU
ZXh0dXJlMUQiLCAiVGV4dHVyZTFEQXJyYXkiLCAiUldUZXh0dXJlMURBcnJheSIsICJUZXh0dXJl
MkQiLCAiUldUZXh0dXJlMkQiLCAiVGV4dHVyZTJEQXJyYXkiLCAiUldUZXh0dXJlMkRBcnJheSIs
ICJUZXh0dXJlM0QiLCAiUldUZXh0dXJlM0QiLCAiVGV4dHVyZUN1YmUiXSkgewpAQCAtMzM5LDEy
ICsyODUsMTYgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgdHlwZWRlZiAke3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YCwKICAgICAgICAgICAg
ICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1
cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAg
ICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVE
ZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCB7fSk7
CiAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAy
OyBpIDw9IDQ7ICsraSkgewogICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAg
ICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlw
ZUFyZ3VtZW50fSR7aX0+YCwKICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3Vt
ZW50fSR7aX0+YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUuc2l6
ZSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRW
YWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIHt9KTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
QEAgLTM1Niw2ICszMDYsOCBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gLAogICAg
ICAgICAgICAgICAgICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNb
YCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gXSA9IHR5cGU7CisgICAgICAgICAgICAg
ICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5w
b3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZz
ZXQsIHt9KTsKICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KQEAgLTM2NCw3ICszMTYsNyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCiAgICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciB1Y2hhcigke3By
aW1pdGl2ZVR5cGV9KWAsCiAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUu
bG9hZFZhbHVlKCkgJiAweGZmKTsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9VY2hhcih2YWx1ZS5sb2FkVmFsdWUo
KSkpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKQEAgLTM3Miw3ICszMjQsNyBA
QCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciB1c2hvcnQoJHtwcmltaXRpdmVUeXBlfSlgLAogICAg
ICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpICYgMHhmZmZm
KTsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PiBFUHRyLmJveChjYXN0VG9Vc2hvcnQodmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfQogCkBAIC0zODAsNyArMzMyLDcgQEAgY2xhc3MgSW50cmluc2lj
cyB7CiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgICAgIGBuYXRpdmUg
b3BlcmF0b3IgdWludCgke3ByaW1pdGl2ZVR5cGV9KWAsCiAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkg
PT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgPj4+IDApOworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb1VpbnQo
dmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgfQogCkBA
IC0zODgsNyArMzQwLDcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAogICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgY2hhcigke3ByaW1pdGl2
ZVR5cGV9KWAsCiAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdChJbnQ4QXJy
YXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdFRvQ2hhcih2YWx1ZS5sb2FkVmFs
dWUoKSkpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKQEAgLTM5Niw3ICszNDgs
NyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciBzaG9ydCgke3ByaW1pdGl2ZVR5cGV9KWAsCiAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdChJbnQxNkFycmF5LCB2YWx1ZS5s
b2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb1Nob3J0KHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KIApAQCAtNDIwLDcgKzM3Miw3IEBAIGNsYXNz
IEludHJpbnNpY3MgewogICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICAg
ICBgbmF0aXZlIG9wZXJhdG9yIGZsb2F0KCR7cHJpbWl0aXZlVHlwZX0pYCwKICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PiBFUHRyLmJveChNYXRoLmZyb3VuZCh2YWx1ZS5sb2FkVmFsdWUoKSkpOwor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQ
dHIuYm94KGNhc3RUb0Zsb2F0KHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0KIApAQCAtNDg0LDI5MiArNDM2LDI5MiBAQCBjbGFzcyBJbnRyaW5zaWNz
IHsKICAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yLShpbnQpIiwKICAgICAgICAgICAg
IGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVl
XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKC12YWx1ZS5sb2FkVmFsdWUoKSkg
fCAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KC12YWx1ZS5sb2Fk
VmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAg
ICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3ItKGZsb2F0KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0p
ID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKC12YWx1ZS5sb2Fk
VmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdCgtdmFs
dWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcisoaW50LGludCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
bGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2Fk
VmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAg
Im5hdGl2ZSBpbnQgb3BlcmF0b3ItKGludCxpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewog
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5s
b2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50
KGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7
CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJh
dG9yKihpbnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgp
ICogcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMu
X21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvci8oaW50LGludCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVm
dC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAg
ICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1
ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAg
ICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yKyh1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1
bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJp
Z2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkg
KyByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChjYXN0VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFsdWUoKSkpOwogICAg
ICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRp
dmUgdWludCBvcGVyYXRvci0odWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0g
ICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9h
ZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWlu
dChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3Bl
cmF0b3IqKHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+
Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2Fk
VmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yLyh1aW50
LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgLyBy
aWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFw
LnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3IrKGZsb2F0LGZsb2F0KSIs
CiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1h
dGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFsdWUoKSkpOworICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChsZWZ0LmxvYWRWYWx1ZSgpICsgcmln
aHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yLShmbG9hdCxmbG9hdCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRo
LmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQobGVmdC5sb2FkVmFsdWUoKSAtIHJpZ2h0
LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0
KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvciooZmxvYXQsZmxvYXQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5s
b2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgK
ICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3IvKGZsb2F0LGZsb2F0KSIsCiAgICAg
ICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJv
dW5kKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChsZWZ0LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9h
ZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAg
ICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvciYoaW50LGludCkiLAogICAgICAgICAgICAg
ZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwg
cmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUo
KSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAg
ICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2
ZSBpbnQgb3BlcmF0b3J8KGludCxpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgfCByaWdodC5sb2FkVmFs
dWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQu
bG9hZFZhbHVlKCkgfCByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yXihp
bnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmln
aHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcn4oaW50KSIsCiAgICAgICAgICAg
ICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1
ZV0pID0+IEVQdHIuYm94KCh+dmFsdWUubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9JbnQo
fnZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9t
YXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3I8PChpbnQsdWludCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVm
dC5sb2FkVmFsdWUoKSA8PCByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZh
bHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAg
ICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcj4+KGludCx1aW50KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCBy
aWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgp
ID4+IHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSA+PiByaWdodC5sb2FkVmFsdWUoKSkpOwogICAg
ICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRp
dmUgdWludCBvcGVyYXRvciYodWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0g
ICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICYgcmlnaHQubG9h
ZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWlu
dChsZWZ0LmxvYWRWYWx1ZSgpICYgcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3Bl
cmF0b3J8KHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSB8IHJpZ2h0LmxvYWRWYWx1ZSgpKSA+
Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2Fk
VmFsdWUoKSB8IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yXih1aW50
LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgXiByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgXiBy
aWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFw
LnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcn4odWludCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
dmFsdWVdKSA9PiBFUHRyLmJveCgofnZhbHVlLmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0
VG9VaW50KH52YWx1ZS5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAg
dGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcjw8KHVpbnQs
dWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRy
LmJveCgobGVmdC5sb2FkVmFsdWUoKSA8PCByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgPDwg
cmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21h
cC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3I+Pih1aW50LHVpbnQpIiwK
ICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxl
ZnQubG9hZFZhbHVlKCkgPj4+IHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSA+Pj4gcmlnaHQu
bG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQo
CiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNvcyhmbG9hdCkiLAogICAgICAgICAgICAgZnVu
YyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmNvcyh2YWx1
ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxv
YXQoTWF0aC5jb3ModmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAg
ICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBzaW4oZmxvYXQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQoTWF0aC5zaW4odmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguc2luKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAg
ICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRp
dmUgZmxvYXQgdGFuKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgudGFuKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLnRhbih2YWx1ZS5s
b2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQo
CiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGFjb3MoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1
bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5hY29zKHZh
bHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9G
bG9hdChNYXRoLmFjb3ModmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAog
ICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBhc2luKGZs
b2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1h
dGguZnJvdW5kKE1hdGguYXNpbih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5hc2luKHZhbHVlLmxvYWRWYWx1ZSgpKSkp
OwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAg
ICJuYXRpdmUgZmxvYXQgYXRhbihmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmF0YW4odmFsdWUubG9hZFZhbHVl
KCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguYXRh
bih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMu
X21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNvc2goZmxvYXQpIiwKICAgICAg
ICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0
aC5jb3NoKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChjYXN0VG9GbG9hdChNYXRoLmNvc2godmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAg
ICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9h
dCBzaW5oKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KE1hdGguZnJvdW5kKE1hdGguc2luaCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5zaW5oKHZhbHVlLmxvYWRW
YWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAg
ICAgICAgICAgICJuYXRpdmUgZmxvYXQgdGFuaChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9
PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9Pgot
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnRhbmgodmFsdWUu
bG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0
KE1hdGgudGFuaCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNlaWwoZmxvYXQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQoTWF0aC5jZWlsKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLmNlaWwodmFsdWUubG9hZFZhbHVlKCkpKSk7CiAg
ICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5h
dGl2ZSBmbG9hdCBleHAoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5leHAodmFsdWUubG9hZFZhbHVlKCkpKSk7
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguZXhwKHZhbHVl
LmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgZmxvb3IoZmxvYXQpIiwKICAgICAgICAgICAg
IGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVl
XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5mbG9v
cih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2Fz
dFRvRmxvYXQoTWF0aC5mbG9vcih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGxv
ZyhmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChNYXRoLmZyb3VuZChNYXRoLmxvZyh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5sb2codmFsdWUubG9hZFZhbHVlKCkp
KSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAg
ICAgIm5hdGl2ZSBmbG9hdCByb3VuZChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnJvdW5kKHZhbHVlLmxvYWRW
YWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRo
LnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAg
dGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgc3FydChmbG9hdCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3Vu
ZChNYXRoLnNxcnQodmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguc3FydCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAg
ICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZl
IGZsb2F0IHRydW5jKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgudHJ1bmModmFsdWUubG9hZFZhbHVlKCkpKSk7
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgudHJ1bmModmFs
dWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAu
c2V0KApAQCAtNzg4LDcgKzc0MCw3IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAg
Im5hdGl2ZSBmbG9hdCBwb3coZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewog
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5wb3cobGVmdC5s
b2FkVmFsdWUoKSwgcmlnaHQubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgucG93KGxlZnQubG9hZFZhbHVlKCksIHJpZ2h0LmxvYWRW
YWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKQEAg
LTgzMiw3ICs3ODQsNyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICJuYXRpdmUg
ZmxvYXQgYXRhbjIoZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5hdGFuMihsZWZ0LmxvYWRW
YWx1ZSgpLCByaWdodC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goY2FzdFRvRmxvYXQoTWF0aC5hdGFuMihsZWZ0LmxvYWRWYWx1ZSgpLCByaWdodC5sb2FkVmFs
dWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCkBAIC05
MTQsNiArODY2LDEzODggQEAgY2xhc3MgSW50cmluc2ljcyB7CiAKICAgICAgICAgZm9yIChsZXQg
c2V0dGVyIG9mIEJ1aWx0aW5NYXRyaXhTZXR0ZXIuZnVuY3Rpb25zKCkpCiAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KHNldHRlci50b1N0cmluZygpLCBmdW5jID0+IHNldHRlci5pbnN0YW50aWF0
ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsKKworICAgICAgICBmdW5jdGlvbiBjaGVja1VuZGVmaW5l
ZChvcmlnaW4sIGV4cGxhbmF0aW9uLCB2YWx1ZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYg
KHZhbHVlID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJv
cigiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIik7CisgICAgICAgICAgICBy
ZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja0ZhbHNlKG9y
aWdpbiwgZXhwbGFuYXRpb24sIHZhbHVlKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAodmFs
dWUgPT0gZmFsc2UpCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltTdG9y
ZV0iLCAiVGV4dHVyZSBzdG9yZSBvdXQgb2YgYm91bmRzIik7CisgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiBib3hWZWN0b3IoYSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGEgaW5z
dGFuY2VvZiBBcnJheSkgeworICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgRVB0cihu
ZXcgRUJ1ZmZlcihhLmxlbmd0aCksIDApOworICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAw
OyBpIDwgYS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNldChpLCBh
W2ldKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KGEpOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gdW5ib3hWZWN0b3IoYSwgbGVuZ3RoKQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAobGVuZ3RoICE9ICIiKSB7CisgICAgICAgICAgICAgICAgbGVuZ3RoID0gTnVtYmVyLnBh
cnNlSW50KGxlbmd0aCk7CisgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IFtdOworICAgICAg
ICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdC5wdXNoKGEuZ2V0KGkpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIGEubG9hZFZh
bHVlKCk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFsidWNoYXIiLCAi
dXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9ydCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJd
KSB7CisgICAgICAgICAgICBmb3IgKHZhciBsZW5ndGhWYXJpYWJsZSBvZiBbYGAsIGAyYCwgYDNg
LCBgNGBdKSB7CisgICAgICAgICAgICAgICAgbGV0IGxlbmd0aCA9IGxlbmd0aFZhcmlhYmxlOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmxvYWRWYWx1ZSgpLCAwLCAwLCAxLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxRDwke3R5cGV9JHts
ZW5ndGh9PixzYW1wbGVyLGZsb2F0IGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24ubG9hZFZhbHVlKCksIDAsIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5sb2FkVmFsdWUoKSwgMCwgMF07CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUu
bG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJy
YXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixpbnQy
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihj
aGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4
dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAs
IGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTFEPCR7dHlw
ZX0ke2xlbmd0aH0+LGludDIgbG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRd
IiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVt
ZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSArIG9m
ZnNldC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEPCR7dHlwZX0k
e2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBO
dW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
bWlwbGV2ZWwsIHdpZHRoLCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9u
c10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
bGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxREFycmF5
PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQo
MCksIDAsIDAsIDEsIGxvY2F0aW9uLmdldCgxKV07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IFNhbXBsZShUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0
MiBsb2NhdGlvbixpbnQgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgMCwgMCwgMSwg
bG9jYXRpb24uZ2V0KDEpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFB
cnJheSA9IFtvZmZzZXQubG9hZFZhbHVlKCksIDAsIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gTG9hZChUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1Vu
ZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5s
b2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMCwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJl
MURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRl
ZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9h
ZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSks
IDAsIDAsIGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERp
bWVuc2lvbnMoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1
aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEVsZW1lbnRzLHVpbnQqIHRocmVhZCBOdW1i
ZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlw
bGV2ZWwsIHdpZHRoLCBlbGVtZW50cywgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERp
bWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVy
ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxl
dmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2Ft
cGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTJEPCR7
dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
b2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5
ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZz
ZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVj
dG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUo
KSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJpYXMo
VGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0
IEJpYXMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJE
PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMsaW50
MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSks
IDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0g
W29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxv
YWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSlgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCks
IGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hW
ZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1
ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFy
cmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlR3JhZChU
ZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQy
IEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5n
ZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0
KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtv
ZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwg
c2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVk
LCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVu
Z3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDIgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0
KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVj
dG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUo
KSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxl
TGV2ZWwoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9u
LGZsb2F0IExPRCxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0XSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9j
YXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
ZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVy
ZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFB
cnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1
bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
MCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihn
YXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxv
Y2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7dHlw
ZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQu
Z2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9y
KGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwg
bG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJE
PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQo
MCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJSZWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0
aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEp
LCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9
IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUo
KSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMiIgfHwgbGVuZ3RoID09ICIzIiB8fCBsZW5ndGggPT0g
IjQiKSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9
JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24u
Z2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFs
dWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMSkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkQ8JHt0eXBlfSR7bGVu
Z3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9m
ZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJy
YXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDAp
LCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIu
bG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAxKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChsZW5ndGggPT0gIjMiIHx8IGxlbmd0aCA9PSAiNCIpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9
PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUu
bG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IDIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUo
VGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwg
bG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBd
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihn
YXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxv
Y2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAyKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixm
bG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0
aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgMykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24s
IG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwg
MF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJy
YXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRl
eHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRl
bHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCAzKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7
bGVuZ3RofSBMb2FkKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uKWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5l
ZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFs
dWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgx
KSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMkQ8JHt0
eXBlfSR7bGVuZ3RofT4saW50MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xv
YWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5l
bGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSArIG9m
ZnNldC5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5nZXQoMCkpKSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXRE
aW1lbnNpb25zKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Pix1aW50IE1pcExldmVsLHVpbnQq
IHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxl
dmVscylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWws
IHdpZHRoLCBoZWlnaHQsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3VudCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25z
XSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRM
ZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxl
dmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0g
U2FtcGxlKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0
KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0
ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBk
ZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlQmlhcyhUZXh0dXJlMkRBcnJheTwke3R5
cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlh
c10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFts
b2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJE
QXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlh
cyxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIGJpYXMsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdl
dCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUo
dGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwg
ZGVsdGFBcnJheSwgYmlhcy5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVHcmFkKFRleHR1cmUyREFy
cmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0MiBERFgs
ZmxvYXQyIEREWSlgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAw
LCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBk
ZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5LmdldCgwKSwgZGR5LmdldCgxKSwgMF07Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJl
KHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXks
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVHcmFkKFRleHR1cmUyREFycmF5PCR7dHlw
ZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIERE
WSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0
KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtv
ZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwg
c2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVk
LCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVu
Z3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2RdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCks
IHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9JHtsZW5ndGh9IFNhbXBsZUxldmVsKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IExPRCxpbnQyIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwg
b2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5
ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQo
MildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNl
dC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1w
bGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00
IEdhdGhlcihUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBs
b2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9u
QXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9u
LmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihn
YXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxv
Y2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEQXJyYXk8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwK
KyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJy
YXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdl
dCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zm
c2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyUmVkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRp
b25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRp
b24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9y
KGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwg
bG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkRB
cnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNl
dClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRp
b25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRp
b24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9
IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUo
KSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMiIgfHwgbGVuZ3RoID09ICIzIiB8fCBsZW5ndGggPT0g
IjQiKSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyREFycmF5PCR7
dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0
dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJy
YXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIDEpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4
dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50
MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBd
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhl
clRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRp
b25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIDEpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0
aCA9PSAiMyIgfHwgbGVuZ3RoID09ICI0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00
IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9j
YXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUu
bG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IDIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUo
VGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24s
aW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0
KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDAp
LCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1w
bGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMikpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09ICI0IikgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxv
Y2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxv
Y2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5s
b2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMykpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1
cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0
aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29m
ZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
NCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0g
TG9hZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQ0IGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgi
W0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUo
KS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMyksIGxvY2F0aW9uLmdldCgyKSwgMCwgbG9j
YXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRl
eHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGludDQgbG9jYXRpb24saW50MiBvZmZzZXQp
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hl
Y2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1
cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDMpLCBsb2NhdGlvbi5n
ZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSArIG9mZnNldC5nZXQoMSksIGxvY2F0aW9uLmdldCgw
KSArIG9mZnNldC5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUyREFycmF5PCR7
dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRo
cmVhZCBIZWlnaHQsdWludCogdGhyZWFkIEVsZW1lbnRzLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxl
dmVscylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWws
IHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRzLCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0
RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0
dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHRBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRl
eC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAx
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUo
KS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0
aH0gU2FtcGxlKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJy
YXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwg
MSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1w
bGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0
aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlM0Q8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MyBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBv
ZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkg
PSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwg
MF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0
LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgb2Zmc2V0LmdldCgyKV07CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZh
bHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PixpbnQ0IGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1Vu
ZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5s
b2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMyksIGxvY2F0aW9uLmdl
dCgyKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3Ro
fSBMb2FkKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PixpbnQ0IGxvY2F0aW9uLGludDMgb2Zm
c2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24s
IG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9y
KGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0
ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgzKSwgbG9j
YXRpb24uZ2V0KDIpICsgb2Zmc2V0LmdldCgyKSwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0Lmdl
dCgxKSwgbG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lv
bnMoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFk
IFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIERlcHRoLHVpbnQqIHRocmVh
ZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBudW1iZXJPZkxldmVsc10pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFs
dWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVs
Q291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVy
cm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZl
bCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGgubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmRlcHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRM
ZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxl
dmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
bG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5s
b2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2Ft
cGxlQmlhcyhUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
bG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5s
b2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgpLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IFNhbXBsZUdyYWQoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24sZmxvYXQzIEREWCxmbG9hdDMgRERZKWAsCisgICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0
KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCksIGRkeC5nZXQoMSks
IGRkeC5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9
IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCBkZHkuZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFs
dWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIGRkeEFycmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IFNhbXBsZUxldmVsKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBs
ZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IExPRClgLAorICAgICAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0
aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUo
KSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlcihUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0
aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdl
dCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rv
cihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCks
IGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZUN1
YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdl
dCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCAwKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjIiIHx8IGxlbmd0aCA9PSAiMyIgfHwg
bGVuZ3RoID09ICI0IikgeworICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJl
Q3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkg
PSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwg
MF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0
aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCAxKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChsZW5n
dGggPT0gIjMiIHx8IGxlbmd0aCA9PSAiNCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJCbHVlKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
bihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0
aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAy
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjQi
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0
dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9h
ZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDMp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMo
VGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQg
V2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwK
KyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwg
aGVpZ2h0LCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAodGV4LmxheWVyQ291bnQgIT0gNikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDdWJlIHRleHR1cmUgZG9lc24ndCBoYXZlIDYgZmFj
ZXMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVs
Q291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVy
cm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZl
bCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHRBdExldmVsKG1pcElEKSksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMUQ8JHt0eXBl
fSR7bGVuZ3RofT4sdWludCogdGhyZWFkIFdpZHRoKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3
aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLndp
ZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+
LGZsb2F0KiB0aHJlYWQgV2lkdGgpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHdpZHRoXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleHR1cmUubG9hZFZhbHVlKCkud2lkdGgpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9JHtsZW5ndGh9IExvYWQoUldUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4saW50IGxv
Y2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRp
b25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVj
a1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVy
ZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCAwLCAwLCAwLCBsb2NhdGlvbi5sb2FkVmFs
dWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAg
YG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0k
e2xlbmd0aH0sdWludCBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjaGVja0ZhbHNlKCJbU3RvcmVdIiwgIlRleHR1cmUgd3JpdGUgb3V0IG9mIGJvdW5kcyIsIHRl
eHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQoMCwgMCwgMCwgMCwgbG9jYXRpb24u
bG9hZFZhbHVlKCksIHVuYm94VmVjdG9yKHZhbHVlLCBsZW5ndGgpKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1l
bnNpb25zKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sdWludCogdGhyZWFkIFdp
ZHRoLHVpbnQqIHRocmVhZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
bihbdGV4dHVyZSwgd2lkdGgsIGVsZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNv
dW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4
dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sZmxvYXQqIHRocmVhZCBXaWR0aCx1aW50KiB0
aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHdpZHRoLCBlbGVtZW50c10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4
ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVt
ZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChSV1RleHR1cmUxREFy
cmF5PCR7dHlwZX0ke2xlbmd0aH0+LGludDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVy
ZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2Vk
KGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgMCwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUo
UldUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQy
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFs
dWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2Uo
IltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFs
dWUoKS5zZXRFbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMSksIDAsIDAsIDAsIGxvY2F0aW9u
LmdldCgwKSwgdW5ib3hWZWN0b3IodmFsdWUsIGxlbmd0aCkpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lv
bnMoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQq
IHRocmVhZCBIZWlnaHQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHdpZHRoLCBoZWlnaHRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9
IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0
ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVu
Z3RofT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhyZWFkIEhlaWdodClgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodF0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRo
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xl
bmd0aH0gTG9hZChSV1RleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixpbnQyIGxvY2F0aW9uKWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5l
ZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFs
dWUoKS5lbGVtZW50Q2hlY2tlZCgwLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdl
dCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAg
YG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0k
e2xlbmd0aH0sdWludDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24g
KFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0dXJlIHdyaXRlIG91dCBvZiBib3VuZHMiLCB0
ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKDAsIDAsIDAsIGxvY2F0aW9uLmdl
dCgxKSwgbG9jYXRpb24uZ2V0KDApLCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZv
aWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQq
IHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBFbGVtZW50cylg
LAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwg
ZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1
cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9u
cyhSV1RleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGZsb2F0KiB0aHJlYWQgV2lkdGgs
ZmxvYXQqIHRocmVhZCBIZWlnaHQsZmxvYXQqIHRocmVhZCBFbGVtZW50cylgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHNdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVl
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCks
IDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChSV1RleHR1
cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAi
VGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRD
aGVja2VkKGxvY2F0aW9uLmdldCgyKSwgMCwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5n
ZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCR7
dHlwZX0ke2xlbmd0aH0sdWludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0dXJlIHdyaXRlIG91dCBvZiBib3Vu
ZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgy
KSwgMCwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCksIHVuYm94VmVjdG9yKHZh
bHVlLCBsZW5ndGgpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTNEPCR7dHlwZX0k
e2xlbmd0aH0+LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRo
cmVhZCBEZXB0aClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lk
dGgsIGhlaWdodCwgZGVwdGhdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRl
eCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVw
dGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmRlcHRoKSwgMSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lv
bnMoUldUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9h
dCogdGhyZWFkIEhlaWdodCxmbG9hdCogdGhyZWFkIERlcHRoKWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aF0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkZXB0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXguZGVwdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53
aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChSV1RleHR1cmUzRDwke3R5cGV9JHtsZW5n
dGh9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91
bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCAwLCBsb2NhdGlvbi5n
ZXQoMiksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldU
ZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sJHt0eXBlfSR7bGVuZ3RofSx1aW50MyBsb2NhdGlv
bilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0ZhbHNlKCJbU3RvcmVd
IiwgIlRleHR1cmUgd3JpdGUgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuc2V0
RWxlbWVudENoZWNrZWQoMCwgMCwgbG9jYXRpb24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIGxv
Y2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0b3IodmFsdWUsIGxlbmd0aCkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCB0eXBlIG9mIFsiaGFsZiIsICJmbG9hdCJdKSB7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRp
b24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwg
c2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdl
dCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1
cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRh
QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNh
bXBsZUNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbiwk
e3R5cGV9IENvbXBhcmVWYWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSks
IDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1w
bGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0
aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEPCR7dHlw
ZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlLGludDIgb2Zm
c2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBs
b2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQo
MCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVy
byhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbiwke3R5cGV9
IENvbXBhcmVWYWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0aGlzCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9Pixz
YW1wbGVyLGZsb2F0MiBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSxpbnQyIG9mZnNldClg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29t
cGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog
SW1wbGVtZW50IHRoaXMKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBs
b2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxv
Y2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBd
OworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJl
KHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXks
IHVuZGVmaW5lZCwgYmlhcy5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9h
dDIgbG9jYXRpb24sZmxvYXQgQmlhcyxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhcywgb2Zmc2V0XSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBs
b2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRl
bHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2Fk
VmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwg
Ymlhcy5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNh
bXBsZUdyYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24s
ZmxvYXQyIEREWCxmbG9hdDIgRERZKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAw
LCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0
KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJh
eSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1w
bGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGR4
QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aDJE
PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSxp
bnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAx
LCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDAp
LCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9
IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUu
bG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJy
YXksIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkp
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVM
ZXZlbChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9h
dCBMT0QpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIGxvZF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxvZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVk
KSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZUxldmVsKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZs
b2F0IExPRCxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgbG9kLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
MCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZz
ZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVy
LmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVEZXB0
aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQo
MSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihn
YXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxv
Y2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVy
LGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQo
MSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBb
b2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJl
RGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24u
Z2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRp
b24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFy
cmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXAo
VGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgY29t
cGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxv
Y2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBd
OworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJl
KHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXks
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBj
b21wYXJlVmFsdWUubG9hZFZhbHVlKCksIDApKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Pixz
YW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlLGludDIgb2Zmc2V0KWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21w
YXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlv
bkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9m
ZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rv
cihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCks
IGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpLCAwKSk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVy
ZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92
YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9u
QXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1
cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJl
VmFsdWUubG9hZFZhbHVlKCksIDApKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX00IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlLGludDIgb2Zmc2V0KWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJl
VmFsdWUsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFy
cmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNl
dC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihn
YXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxv
Y2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpLCAwKSk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRoMkQ8JHt0
eXBlfT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hl
Y2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1
cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDIpLCAwLCBsb2Nh
dGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixpbnQz
IGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94
VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3Vu
ZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgy
KSwgMCwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApICsg
b2Zmc2V0LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
IHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9Pix1aW50IE1pcExldmVs
LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBOdW1i
ZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBtaXBsZXZlbCwg
d2lkdGgsIGhlaWdodCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9t
IG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2
ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUo
KS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRp
b25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRp
b24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2Ft
cGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBk
ZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9h
ZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXks
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNt
cChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLCR7
dHlwZX0gQ29tcGFyZVZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
MCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
b3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRW
YWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJl
RGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29t
cGFyZVZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRp
b24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07Cisg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVs
dGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21w
YXJlVmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0
eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sJHt0eXBlfSBDb21wYXJlVmFsdWUpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVW
YWx1ZV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhp
cworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVD
bXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBs
b2NhdGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZz
ZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlh
cyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZs
b2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJh
eSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0
KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4
dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFy
cmF5LCB1bmRlZmluZWQsIGJpYXMubG9hZFZhbHVlKCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlhcyxpbnQyIG9mZnNldClgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhcywgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24u
Z2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQu
Z2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2Ft
cGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlw
ZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSlgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHld
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEp
LCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDAp
LCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBk
ZHgsIGRkeSwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9u
QXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9u
LmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4Lmdl
dCgwKSwgZGR4LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJy
YXkgPSBbZGR5LmdldCgwKSwgZGR5LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0
dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0
YUFycmF5LCB1bmRlZmluZWQsIGRkeEFycmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlTGV2ZWwoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb24sIGxvZF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlv
bkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlv
bi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1w
bGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0
aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9k
LmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QsaW50MiBvZmZzZXQpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZz
ZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Io
c2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBs
b2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwg
bG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2Nh
dGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0
ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBk
ZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgMCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9
IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIp
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVy
ZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSks
IDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVs
dGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkp
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
Q21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24s
ZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSks
IDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ym94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSwgMCkpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRl
eHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQg
Y29tcGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBd
OworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJl
KHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXks
IGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
Y29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJl
VmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFts
b2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0
ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29t
cGFyZVZhbHVlLmxvYWRWYWx1ZSgpLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5
cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlLGludDIgb2Zm
c2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBs
b2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBs
b2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkg
PSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwg
c2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVl
KCksIDApKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0g
TG9hZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LGludDQgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVy
ZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2Vk
KGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIpLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxv
Y2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0gTG9hZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LGludDQgbG9jYXRpb24s
aW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24s
IG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hl
Y2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1
cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDMpLCBsb2NhdGlvbi5n
ZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSArIG9mZnNldC5nZXQoMSksIGxvY2F0aW9uLmdldCgw
KSArIG9mZnNldC5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Pix1aW50
IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRo
cmVhZCBFbGVtZW50cyx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRzLCBu
dW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0
dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0gbWlw
bGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0g
dGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdU
cmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlw
IGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIu
Ym94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCks
IDEpOworICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aEN1YmU8JHt0
eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9j
YXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hW
ZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1
ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZh
bHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNh
bXBsZXIsZmxvYXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlKWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0
dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMp
YCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJp
YXNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0
dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRl
ZmluZWQsIGJpYXMubG9hZFZhbHVlKCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24sZmxvYXQzIEREWCxmbG9hdDMgRERZKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeV0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24u
Z2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCksIGRkeC5nZXQoMSksIGRkeC5nZXQoMildOworICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQo
MSksIGRkeS5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rv
cihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCks
IGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXks
IHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2RdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxv
YWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIGxvZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRoQ3Vi
ZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEp
LCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9h
ZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGhDdWJl
PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSks
IGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ym94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aEN1YmU8
JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFy
ZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUo
dGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNv
bXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSwgMCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVl
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVy
ZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbXBhcmVW
YWx1ZS5sb2FkVmFsdWUoKSwgMCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sdWludCBN
aXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJl
YWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbWlw
bGV2ZWwsIHdpZHRoLCBoZWlnaHQsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICh0ZXgubGF5ZXJDb3VudCAhPSA2KQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiQ3ViZSB0ZXh0dXJlIGRvZXNuJ3QgaGF2ZSA2IGZhY2Vz
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXRE
aW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1
cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJv
bShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0
TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVs
cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJX
VGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBI
ZWlnaHQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgd2lkdGgsIGhlaWdodF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgp
OworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZURl
cHRoMkQ8JHt0eXBlfT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhyZWFkIEhlaWdodClg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0XSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3go
dGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoUldUZXh0dXJlRGVwdGgyRDwke3R5cGV9
PixpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0
aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1Vu
ZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5s
b2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0
aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZv
aWQgU3RvcmUoUldUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwke3R5cGV9LHVpbnQyIGxvY2F0aW9u
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3
cml0ZSBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tl
ZCgwLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0b3Io
dmFsdWUsIGxlbmd0aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
IHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sdWludCog
dGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIEVsZW1lbnRzKWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRz
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVl
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJv
bShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAg
aGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
dm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixmbG9hdCog
dGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0LGZsb2F0KiB0aHJlYWQgRWxlbWVudHMp
YCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZWxlbWVu
dHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFs
dWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlG
cm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9IExvYWQoUldUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LGludDMgbG9jYXRp
b24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9h
ZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVs
ZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgyKSwgMCwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2Nh
dGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2
b2lkIFN0b3JlKFJXVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwke3R5cGV9LHVpbnQzIGxv
Y2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4
dHVyZSB3cml0ZSBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50
Q2hlY2tlZChsb2NhdGlvbi5nZXQoMiksIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24u
Z2V0KDApLCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBhZGQodGhp
bmcpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1s
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbAppbmRleCA3OGQwMDhm
ODM1ZjllOWMyMzRlZjJkZjZkNmRlZWEzZjc0MjZjZTY1Li4xYjI2Y2YyYjJlNjUxNTI3YTE1MmVl
OGQ5MmZmMjViZWRhNjFkMzM5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9TUElSVi5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJW
Lmh0bWwKQEAgLTM0LDYgKzM0LDcgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJCdWlsdGluVmVj
dG9yU2V0dGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ2FsbEV4cHJlc3Npb24u
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDYWxsRnVuY3Rpb24uanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSJDYXN0cy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
IkNoZWNrLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ2hlY2tMaXRlcmFsVHlwZXMu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDaGVja0xvb3BzLmpzIj48L3NjcmlwdD4K
QEAgLTEyMSw2ICsxMjIsNyBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IlJldHVybi5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlJldHVybkNoZWNrZXIuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJSZXR1cm5FeGNlcHRpb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJTYW1wbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3RhbmRhcmRMaWJy
YXJ5LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3RhdGVtZW50Q2xvbmVyLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3RydWN0TGF5b3V0QnVpbGRlci5qcyI+PC9zY3Jp
cHQ+CkBAIC0xMzMsNiArMTM1LDggQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJTeW50aGVzaXpl
Q29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJT
eW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9IlRleHR1cmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJUZXh0dXJlT3BlcmF0
aW9ucy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NhbXBsZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TYW1wbGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlNzcxM2RmYzgxZjgzYzU4NDczNjIx
MjE3NTY0ZjM5NTcyYjE0YjgKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TYW1wbGVyLmpzCkBAIC0wLDAgKzEsMTYzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyJ1c2Ugc3RyaWN0IjsKKworY2xhc3MgU2FtcGxl
ciB7CisgICAgY29uc3RydWN0b3Iob3B0aW9ucykKKyAgICB7CisgICAgICAgIGlmIChvcHRpb25z
LnJBZGRyZXNzTW9kZSA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9yQWRkcmVzc01v
ZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9yQWRk
cmVzc01vZGUgPSBvcHRpb25zLnJBZGRyZXNzTW9kZTsKKyAgICAgICAgaWYgKG9wdGlvbnMuc0Fk
ZHJlc3NNb2RlID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX3NBZGRyZXNzTW9kZSA9
ICJjbGFtcFRvRWRnZSI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX3NBZGRyZXNz
TW9kZSA9IG9wdGlvbnMuc0FkZHJlc3NNb2RlOworICAgICAgICBpZiAob3B0aW9ucy50QWRkcmVz
c01vZGUgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fdEFkZHJlc3NNb2RlID0gImNs
YW1wVG9FZGdlIjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fdEFkZHJlc3NNb2Rl
ID0gb3B0aW9ucy50QWRkcmVzc01vZGU7CisgICAgICAgIGlmIChvcHRpb25zLm1pbkZpbHRlciA9
PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9taW5GaWx0ZXIgPSAibmVhcmVzdCI7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX21pbkZpbHRlciA9IG9wdGlvbnMubWluRmls
dGVyOworICAgICAgICBpZiAob3B0aW9ucy5tYWdGaWx0ZXIgPT0gdW5kZWZpbmVkKQorICAgICAg
ICAgICAgdGhpcy5fbWFnRmlsdGVyID0gIm5lYXJlc3QiOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB0aGlzLl9tYWdGaWx0ZXIgPSBvcHRpb25zLm1hZ0ZpbHRlcjsKKyAgICAgICAgaWYgKG9w
dGlvbnMubWlwbWFwRmlsdGVyID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX21pcG1h
cEZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fbWlw
bWFwRmlsdGVyID0gb3B0aW9ucy5taXBtYXBGaWx0ZXI7CisgICAgICAgIGlmIChvcHRpb25zLmxv
ZE1pbkNsYW1wID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX2xvZE1pbkNsYW1wID0g
LU51bWJlci5NQVhfVkFMVUU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX2xvZE1p
bkNsYW1wID0gb3B0aW9ucy5sb2RNaW5DbGFtcDsKKyAgICAgICAgaWYgKG9wdGlvbnMubG9kTWF4
Q2xhbXAgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fbG9kTWF4Q2xhbXAgPSBOdW1i
ZXIuTUFYX1ZBTFVFOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9sb2RNYXhDbGFt
cCA9IG9wdGlvbnMubG9kTWF4Q2xhbXA7CisgICAgICAgIGlmIChvcHRpb25zLm1heEFuaXNvdHJv
cHkgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fbWF4QW5pc290cm9weSA9IDE7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX21heEFuaXNvdHJvcHkgPSBvcHRpb25zLm1h
eEFuaXNvdHJvcHk7CisgICAgICAgIGlmIChvcHRpb25zLmNvbXBhcmVGdW5jdGlvbiA9PSB1bmRl
ZmluZWQpCisgICAgICAgICAgICB0aGlzLl9jb21wYXJlRnVuY3Rpb24gPSAibmV2ZXIiOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9jb21wYXJlRnVuY3Rpb24gPSBvcHRpb25zLmNv
bXBhcmVGdW5jdGlvbjsKKyAgICAgICAgaWYgKG9wdGlvbnMuYm9yZGVyQ29sb3IgPT0gdW5kZWZp
bmVkKQorICAgICAgICAgICAgdGhpcy5fYm9yZGVyQ29sb3IgPSAidHJhbnNwYXJlbnRCbGFjayI7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX2JvcmRlckNvbG9yID0gb3B0aW9ucy5i
b3JkZXJDb2xvcjsKKyAgICB9CisgICAgCisgICAgZ2V0IHJBZGRyZXNzTW9kZSgpIHsgcmV0dXJu
IHRoaXMuX3JBZGRyZXNzTW9kZTsgfQorICAgIGdldCBzQWRkcmVzc01vZGUoKSB7IHJldHVybiB0
aGlzLl9zQWRkcmVzc01vZGU7IH0KKyAgICBnZXQgdEFkZHJlc3NNb2RlKCkgeyByZXR1cm4gdGhp
cy5fdEFkZHJlc3NNb2RlOyB9CisgICAgZ2V0IG1pbkZpbHRlcigpIHsgcmV0dXJuIHRoaXMuX21p
bkZpbHRlcjsgfQorICAgIGdldCBtYWdGaWx0ZXIoKSB7IHJldHVybiB0aGlzLl9tYWdGaWx0ZXI7
IH0KKyAgICBnZXQgbWlwbWFwRmlsdGVyKCkgeyByZXR1cm4gdGhpcy5fbWlwbWFwRmlsdGVyOyB9
CisgICAgZ2V0IGxvZE1pbkNsYW1wKCkgeyByZXR1cm4gdGhpcy5fbG9kTWluQ2xhbXA7IH0KKyAg
ICBnZXQgbG9kTWF4Q2xhbXAoKSB7IHJldHVybiB0aGlzLl9sb2RNYXhDbGFtcDsgfQorICAgIGdl
dCBtYXhBbmlzb3Ryb3B5KCkgeyByZXR1cm4gdGhpcy5fbWF4QW5pc290cm9weTsgfQorICAgIGdl
dCBjb21wYXJlRnVuY3Rpb24oKSB7IHJldHVybiB0aGlzLl9jb21wYXJlRnVuY3Rpb247IH0KKyAg
ICBnZXQgYm9yZGVyQ29sb3IoKSB7IHJldHVybiB0aGlzLl9ib3JkZXJDb2xvcjsgfQorCisgICAg
Y2FsY3VsYXRlQm9yZGVyQ29sb3IoaW5uZXJUeXBlKQorICAgIHsKKyAgICAgICAgLy8gVnVsa2Fu
IDEuMS44MyBzZWN0aW9uIDE1LjMuMworICAgICAgICBmdW5jdGlvbiBjb21wdXRlVmFsdWVzKCkg
eworICAgICAgICAgICAgc3dpdGNoIChpbm5lclR5cGUpIHsKKyAgICAgICAgICAgICAgICBjYXNl
ICJ1Y2hhciI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazog
MCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdoaXRlOiAweEZGfTsKKyAgICAgICAgICAgICAgICBj
YXNlICJ1c2hvcnQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50Qmxh
Y2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMHhGRkZGfTsKKyAgICAgICAgICAg
ICAgICBjYXNlICJ1aW50IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVu
dEJsYWNrOiAwLCBvcGFxdWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDB4RkZGRkZGRkZ9OworICAg
ICAgICAgICAgICAgIGNhc2UgImNoYXIiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3Ry
YW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMHg3Rn07Cisg
ICAgICAgICAgICAgICAgY2FzZSAic2hvcnQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
e3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMHg3RkZG
fTsKKyAgICAgICAgICAgICAgICBjYXNlICJpbnQiOgorICAgICAgICAgICAgICAgICAgICByZXR1
cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMHg3
RkZGRkZGRn07CisgICAgICAgICAgICAgICAgY2FzZSAiaGFsZiI6CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdo
aXRlOiAxfTsKKyAgICAgICAgICAgICAgICBjYXNlICJmbG9hdCI6CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdo
aXRlOiAxfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1Y2hhcjIiOgorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAw
XSwgb3BhcXVlV2hpdGU6IFsweEZGLCAweEZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAidXNo
b3J0MiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAs
IDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4RkZGRiwgMHhGRkZGXX07
CisgICAgICAgICAgICAgICAgY2FzZSAidWludDIiOgorICAgICAgICAgICAgICAgICAgICByZXR1
cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwXSwgb3BhcXVl
V2hpdGU6IFsweEZGRkZGRkZGLCAweEZGRkZGRkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAi
Y2hhcjIiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFsw
LCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsweDdGLCAweDdGXX07Cisg
ICAgICAgICAgICAgICAgY2FzZSAic2hvcnQyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdo
aXRlOiBbMHg3RkZGLCAweDdGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJpbnQyIjoKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9wYXF1
ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHg3RkZGRkZGRiwgMHg3RkZGRkZGRl19Owor
ICAgICAgICAgICAgICAgIGNhc2UgImhhbGYyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdo
aXRlOiBbMSwgMV19OworICAgICAgICAgICAgICAgIGNhc2UgImZsb2F0MiI6CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazog
WzAsIDBdLCBvcGFxdWVXaGl0ZTogWzEsIDFdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1Y2hh
cjMiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAw
LCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsweEZGLCAweEZGLCAw
eEZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAidXNob3J0MyI6CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAs
IDAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4RkZGRiwgMHhGRkZGLCAweEZGRkZdfTsKKyAgICAgICAg
ICAgICAgICBjYXNlICJ1aW50MyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNw
YXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0
ZTogWzB4RkZGRkZGRkYsIDB4RkZGRkZGRkYsIDB4RkZGRkZGRkZdfTsKKyAgICAgICAgICAgICAg
ICBjYXNlICJjaGFyMyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRC
bGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4
N0YsIDB4N0YsIDB4N0ZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJzaG9ydDMiOgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVl
QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsweDdGRkYsIDB4N0ZGRiwgMHg3RkZGXX07
CisgICAgICAgICAgICAgICAgY2FzZSAiaW50MyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVy
biB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBv
cGFxdWVXaGl0ZTogWzB4N0ZGRkZGRkYsIDB4N0ZGRkZGRkYsIDB4N0ZGRkZGRkZdfTsKKyAgICAg
ICAgICAgICAgICBjYXNlICJoYWxmMyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJh
bnNwYXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVX
aGl0ZTogWzEsIDEsIDFdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJmbG9hdDMiOgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVl
QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsxLCAxLCAxXX07CisgICAgICAgICAgICAg
ICAgY2FzZSAidWNoYXI0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVu
dEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMHhGRl0sIG9wYXF1
ZVdoaXRlOiBbMHhGRiwgMHhGRiwgMHhGRiwgMHhGRl19OworICAgICAgICAgICAgICAgIGNhc2Ug
InVzaG9ydDQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6
IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAweEZGRkZdLCBvcGFxdWVXaGl0
ZTogWzB4RkZGRiwgMHhGRkZGLCAweEZGRkYsIDB4RkZGRl19OworICAgICAgICAgICAgICAgIGNh
c2UgInVpbnQ0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNr
OiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMHhGRkZGRkZGRl0sIG9wYXF1
ZVdoaXRlOiBbMHhGRkZGRkZGRiwgMHhGRkZGRkZGRiwgMHhGRkZGRkZGRiwgMHhGRkZGRkZGRl19
OworICAgICAgICAgICAgICAgIGNhc2UgImNoYXI0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwg
MCwgMHg3Rl0sIG9wYXF1ZVdoaXRlOiBbMHg3RiwgMHg3RiwgMHg3RiwgMHg3Rl19OworICAgICAg
ICAgICAgICAgIGNhc2UgInNob3J0NCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJh
bnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDAsIDB4N0ZG
Rl0sIG9wYXF1ZVdoaXRlOiBbMHg3RkZGLCAweDdGRkYsIDB4N0ZGRiwgMHg3RkZGXX07CisgICAg
ICAgICAgICAgICAgY2FzZSAiaW50NCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJh
bnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDAsIDB4N0ZG
RkZGRkZdLCBvcGFxdWVXaGl0ZTogWzB4N0ZGRkZGRkYsIDB4N0ZGRkZGRkYsIDB4N0ZGRkZGRkYs
IDB4N0ZGRkZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJoYWxmNCI6CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBvcGFxdWVC
bGFjazogWzAsIDAsIDAsIDFdLCBvcGFxdWVXaGl0ZTogWzEsIDEsIDEsIDFdfTsKKyAgICAgICAg
ICAgICAgICBjYXNlICJmbG9hdDQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5z
cGFyZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAxXSwgb3Bh
cXVlV2hpdGU6IFsxLCAxLCAxLCAxXX07CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHRleHR1cmUgaW5uZXIgdHlw
ZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjb21wdXRlVmFs
dWVzKClbdGhpcy5ib3JkZXJDb2xvcl07CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCmluZGV4IDNkZDRmZWUxODYwMGQ1Y2Qy
YTg5NWFkNWE0Nzk3MjFkYTc3ODhjYzEuLjgxODE2ZGYxYzVlYTg2ZGU1NmZjM2FhNGNkMGRiNWQ2
N2QwZmNiZGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5k
YXJkTGlicmFyeS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFy
ZExpYnJhcnkuanMKQEAgLTU3LDcgKzU3LDcgQEAgbGV0IHN0YW5kYXJkTGlicmFyeSA9IChmdW5j
dGlvbigpIHsKICAgICAgICAgfQogICAgICAgICBwcmludChgbmF0aXZlIHR5cGVkZWYgc2FtcGxl
cjtgKTsKICAgICAgICAgZm9yICh2YXIgdHlwZSBvZiBbYFRleHR1cmUxRGAsIGBSV1RleHR1cmUx
RGAsIGBUZXh0dXJlMURBcnJheWAsIGBSV1RleHR1cmUxREFycmF5YCwgYFRleHR1cmUyRGAsIGBS
V1RleHR1cmUyRGAsIGBUZXh0dXJlMkRBcnJheWAsIGBSV1RleHR1cmUyREFycmF5YCwgYFRleHR1
cmUzRGAsIGBSV1RleHR1cmUzRGAsIGBUZXh0dXJlQ3ViZWBdKSB7Ci0gICAgICAgICAgICBmb3Ig
KHZhciB0eXBlQXJndW1lbnRCYXNlIG9mIFtgYm9vbGAsIGB1Y2hhcmAsIGB1c2hvcnRgLCBgdWlu
dGAsIGBjaGFyYCwgYHNob3J0YCwgYGludGAsIGBoYWxmYCwgYGZsb2F0YF0pIHsKKyAgICAgICAg
ICAgIGZvciAodmFyIHR5cGVBcmd1bWVudEJhc2Ugb2YgW2B1Y2hhcmAsIGB1c2hvcnRgLCBgdWlu
dGAsIGBjaGFyYCwgYHNob3J0YCwgYGludGAsIGBoYWxmYCwgYGZsb2F0YF0pIHsKICAgICAgICAg
ICAgICAgICBmb3IgKHZhciBzaXplIG9mIFtgYCwgYDJgLCBgM2AsIGA0YF0pIHsKICAgICAgICAg
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB0eXBlZGVmICR7dHlwZX08JHt0eXBlQXJndW1lbnRC
YXNlfSR7c2l6ZX0+O2ApOwogICAgICAgICAgICAgICAgIH0KQEAgLTE4OTcsNyArMTg5Nyw4IEBA
IGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBwcmludChg
bmF0aXZlIHZvaWQgSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UodGhyZWFkIGF0b21pY18ke3R5
cGV9KiwgJHt0eXBlfSwgJHt0eXBlfSwgdGhyZWFkICR7dHlwZX0qKTtgKTsKICAgICAgICAgfQog
ICAgICAgICBwcmludCgpOwotICAgICAgICAKKyAgICAgICAgKi8KKwogICAgICAgICBmb3IgKHZh
ciB0eXBlIG9mIFtgdWNoYXJgLCBgdXNob3J0YCwgYHVpbnRgLCBgY2hhcmAsIGBzaG9ydGAsIGBp
bnRgLCBgaGFsZmAsIGBmbG9hdGBdKSB7CiAgICAgICAgICAgICBmb3IgKHZhciBsZW5ndGggb2Yg
W2BgLCBgMmAsIGAzYCwgYDRgXSkgewogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVy
LCBmbG9hdCBsb2NhdGlvbik7YCk7CkBAIC0xOTI0LDEyICsxOTI1LDE4IEBAIGxldCBzdGFuZGFy
ZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9h
dDIgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBs
ZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBm
bG9hdDIgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwg
c2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwgc2Ft
cGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyRDwke3R5cGV9JHtsZW5n
dGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+
LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9
JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9JHts
ZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAg
ICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMiIgfHwgbGVuZ3RoID09ICIzIiB8fCBsZW5ndGgg
PT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyR3JlZW4oVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDIgbG9j
YXRpb24pO2ApOworICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdh
dGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxv
Y2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGgg
PT0gIjMiIHx8IGxlbmd0aCA9PSAiNCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4s
IHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICAgICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0
aH0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkQ8JHt0
eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0
dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBv
ZmZzZXQpO2ApOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PiwgaW50MyBsb2Nh
dGlvbik7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9
IExvYWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCBpbnQzIGxvY2F0aW9uLCBpbnQyIG9m
ZnNldCk7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lv
bnMoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWlu
dCogV2lkdGgsIHRocmVhZCB1aW50KiBIZWlnaHQsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVs
cyk7YCk7CkBAIC0xOTQ2LDI4ICsxOTUzLDI0IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVu
Y3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIo
VGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlv
biwgaW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyUmVkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBm
bG9hdDMgbG9jYXRpb24pO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyUmVkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBm
bG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0
aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVu
Z3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRBcnJh
eTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJy
YXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZz
ZXQpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxw
aGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2Nh
dGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJB
bHBoYShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxv
Y2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAi
MiIgfHwgbGVuZ3RoID09ICIzIiB8fCBsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0
eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CisgICAgICAgICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJy
YXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZz
ZXQpO2ApOworICAgICAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09ICIzIiB8fCBsZW5ndGgg
PT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00
IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZs
b2F0MyBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKGxlbmd0aCA9PSAiNCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyREFycmF5PCR7dHlw
ZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVy
ZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50
MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBp
bnQ0IGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gTG9hZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PiwgaW50NCBsb2Nh
dGlvbiwgaW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9p
ZCBHZXREaW1lbnNpb25zKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCB1aW50IE1p
cExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBIZWlnaHQsIHRocmVhZCB1
aW50KiBFbGVtZW50cywgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTtgKTsKICAgICAgICAg
ICAgICAgICBwcmludCgpOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7
bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9h
dDMgbG9jYXRpb24pO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7
bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9h
dDMgbG9jYXRpb24sIGludDMgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIs
IGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXIoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMg
bG9jYXRpb24sIGludDMgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIs
IGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9h
dDMgbG9jYXRpb24sIGludDMgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2Ft
cGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxl
ciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBz
YW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDMgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUzRDwke3R5cGV9JHts
ZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUzRDwke3R5cGV9JHtsZW5n
dGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7CiAgICAgICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTNEPCR7
dHlwZX0ke2xlbmd0aH0+LCBpbnQ0IGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3Ro
fT4sIGludDQgbG9jYXRpb24sIGludDMgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgICAgICBwcmlu
dChgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4s
IHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIEhlaWdodCwg
dGhyZWFkIHVpbnQqIERlcHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpO2ApOwpAQCAt
MTk3OCw5ICsxOTgxLDE0IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAg
ICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUxldmVs
KFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24s
IGZsb2F0IExPRCk7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXIoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2Nh
dGlvbik7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJS
ZWQoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlv
bik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVl
bihUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9u
KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUo
VGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7
YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShU
ZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtg
KTsKKyAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09ICIyIiB8fCBsZW5ndGggPT0gIjMiIHx8
IGxlbmd0aCA9PSAiNCIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwg
ZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAi
MyIgfHwgbGVuZ3RoID09ICI0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LCBz
YW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KGxlbmd0aCA9PSAiNCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9Piwgc2Ft
cGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlIHZvaWQgR2V0RGltZW5z
aW9ucyhUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PiwgdWludCBNaXBMZXZlbCwgdGhyZWFk
IHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogSGVpZ2h0LCB0aHJlYWQgdWludCogTnVtYmVyT2ZM
ZXZlbHMpO2ApOwogICAgICAgICAgICAgICAgIHByaW50KCk7CiAgICAgICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3Ro
fT4sIHRocmVhZCB1aW50KiBXaWR0aCk7YCk7CkBAIC0yMDEwLDk3ICsyMDE4LDY2IEBAIGxldCBz
dGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgcHJpbnQoKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICBmb3IgKHZhciB0
eXBlIG9mIFtgaGFsZmAsIGBmbG9hdGBdKSB7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9j
YXRpb24pO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0
dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNl
dCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRp
b24sIGZsb2F0IENvbXBhcmVWYWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNv
blN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IENvbXBhcmVWYWx1ZSwgaW50MiBvZmZzZXQp
O2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVy
byhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQy
IGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwg
U2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFs
dWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBT
YW1wbGVDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlv
biwgJHt0eXBlfSBDb21wYXJlVmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQy
IGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1ZSwgaW50MiBvZmZzZXQpO2ApOworICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVw
dGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVW
YWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2
ZWxaZXJvKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24s
ICR7dHlwZX0gQ29tcGFyZVZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2Ft
cGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBCaWFzKTtgKTsKICAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IEJpYXMsIGludDIgb2Zmc2V0KTtgKTsKICAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aDJEPCR7
dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0MiBERFgsIGZsb2F0MiBERFkp
O2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVy
ZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQyIEREWCwg
ZmxvYXQyIEREWSwgaW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9h
dDIgbG9jYXRpb24sIGZsb2F0IExPRCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0
MiBsb2NhdGlvbiwgZmxvYXQgTE9ELCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0gR2F0aGVyKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVy
LCBmbG9hdDIgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
IEdhdGhlcihUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9u
LCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0
aGVyUmVkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24p
O2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlclJlZChUZXh0dXJl
RGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7
YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyR3JlZW4oVGV4dHVy
ZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7Ci0gICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoMkQ8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckJsdWUoVGV4dHVyZURlcHRoMkQ8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX0gR2F0aGVyQmx1ZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxl
ciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX0gR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBs
ZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX0gR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBs
b2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25T
dGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFy
ZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlz
b25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkQ8
JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQg
Y29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVy
Q29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2Ap
OwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEdyZWVuKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRp
b24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+
LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVf
dmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEJs
dWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0
MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJE
PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0
IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdh
dGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0
YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtg
KTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVEZXB0
aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOworICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNh
bXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNh
bXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQy
IGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQy
IGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVy
LCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsK
KyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wUmVkKFRleHR1cmVE
ZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVf
dmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBS
ZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxv
YXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIGludDMgbG9jYXRpb24p
O2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4sIGludDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+
LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBIZWlnaHQs
IHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7YCk7CiAgICAgICAgICAgICBwcmludCgpOwog
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyREFy
cmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwogICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+
LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5
cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBDb21w
YXJlVmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNt
cChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBm
bG9hdDMgbG9jYXRpb24sIGZsb2F0IENvbXBhcmVWYWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJl
RGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9j
YXRpb24sIGZsb2F0IENvbXBhcmVWYWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4s
IFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgQ29tcGFyZVZh
bHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0g
U2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBs
b2NhdGlvbiwgJHt0eXBlfSBDb21wYXJlVmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDMgbG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlLCBpbnQyIG9mZnNldCk7
YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJv
KFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwg
JHt0eXBlfSBDb21wYXJlVmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDMgbG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlLCBpbnQyIG9mZnNldCk7
YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJl
RGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IEJp
YXMpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4
dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9h
dCBCaWFzLCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX0gU2FtcGxlR3JhZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9h
dDMgbG9jYXRpb24sIGZsb2F0MiBERFgsIGZsb2F0MiBERFkpO2ApOwogICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdDIgRERYLCBmbG9hdDIgRERZLCBpbnQy
IG9mZnNldCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2
ZWwoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9u
LCBmbG9hdCBMT0QpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZUxldmVsKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2Nh
dGlvbiwgZmxvYXQgTE9ELCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX0gR2F0aGVyKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIs
IGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0g
R2F0aGVyKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2Nh
dGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMg
bG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlclJl
ZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24s
IGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRo
ZXJHcmVlbihUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9j
YXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckdyZWVu
KFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwg
aW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhl
ckJsdWUoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0
aW9uKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJCbHVlKFRl
eHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50
MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckFs
cGhhKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlv
bik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQWxwaGEoVGV4
dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQy
IG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21w
KFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZs
b2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4s
IFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92
YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFy
aXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgy
REFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24s
IGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBHcmVlbihUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlw
ZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBh
cmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNt
cEdyZWVuKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3Rh
dGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2Ap
OwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEJsdWUoVGV4dHVy
ZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxv
Y2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNh
bXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1
ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdh
dGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJp
c29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAg
ICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wQWxwaGEoVGV4dHVyZURlcHRo
MkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9u
LCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBz
YW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxv
YXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVy
LCBmbG9hdDMgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBm
bG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOworICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9m
ZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcFJl
ZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24s
IGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwg
ZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CiAg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlRGVwdGgyREFycmF5
PCR7dHlwZX0+LCBpbnQ0IGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfSBMb2FkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIGludDQgbG9jYXRpb24s
IGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBHZXREaW1l
bnNpb25zKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHVpbnQgTWlwTGV2ZWwsIHRocmVh
ZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIEhlaWdodCwgdGhyZWFkIHVpbnQqIEVsZW1lbnRz
LCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpO2ApOwogICAgICAgICAgICAgcHJpbnQoKTsK
ICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoQ3Vi
ZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwg
U2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFs
dWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVs
WmVybyhUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBm
bG9hdDMgbG9jYXRpb24sIGZsb2F0IENvbXBhcmVWYWx1ZSk7YCk7CisgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgJHt0eXBlfSBDb21wYXJlVmFsdWUpO2ApOworICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVw
dGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sICR7dHlwZX0gQ29tcGFy
ZVZhbHVlKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFz
KFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxv
YXQgQmlhcyk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3Jh
ZChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZs
b2F0MiBERFgsIGZsb2F0MiBERFkpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uLCBmbG9hdDMgRERYLCBmbG9hdDMgRERZKTtgKTsKICAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBz
YW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IExPRCk7YCk7Ci0gICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0gR2F0aGVyKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBs
ZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX0gR2F0aGVyUmVkKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBs
b2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyR3Jl
ZW4oVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtg
KTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJCbHVlKFRleHR1cmVE
ZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoQ3ViZTwk
e3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXAoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgU2Ft
cGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVl
KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBSZWQoVGV4
dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxv
Y2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBHYXRoZXJDbXBHcmVlbihUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBTYW1w
bGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUp
O2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEJsdWUoVGV4
dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxv
Y2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBHYXRoZXJDbXBBbHBoYShUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBTYW1w
bGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUp
O2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRo
Q3ViZTwke3R5cGV9PiwgaW50NCBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBm
bG9hdDMgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJSZWQoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0
aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRl
eHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQg
Y29tcGFyZV92YWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdh
dGhlckNtcFJlZChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9j
YXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgdWludCBNaXBM
ZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogSGVpZ2h0LCB0aHJlYWQgdWlu
dCogTnVtYmVyT2ZMZXZlbHMpO2ApOwogICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIEhlaWdodCk7YCk7CkBAIC0yMTE0
LDcgKzIwOTEsNiBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZURlcHRoMkRBcnJheTwke3R5
cGV9PiwgJHt0eXBlfSwgdWludDMgbG9jYXRpb24pO2ApOwogICAgICAgICAgICAgcHJpbnQoKTsK
ICAgICAgICAgfQotICAgICAgICAqLwogICAgIH0pKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0p
KCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKaW5kZXggNjA3YTY5NTMy
NTNkYTcyN2IxZGUzNzY3OGVjMzg4YjRmYTI0MDQwNS4uZTc4Y2NhYzFhMDI1NGNiYzkyM2I5ZGQ2
YzE4NWFlZTc4YzcyYTgxNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVGVzdC5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRt
bApAQCAtMjgsNiArMjgsNyBAQAogPHNjcmlwdCBzcmM9IkJ1aWx0aW5WZWN0b3JTZXR0ZXIuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNhbGxFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJDYWxsRnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNhc3Rz
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDaGVjay5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iQ2hlY2tMaXRlcmFsVHlwZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNoZWNr
TG9vcHMuanMiPjwvc2NyaXB0PgpAQCAtMTE1LDYgKzExNiw3IEBACiA8c2NyaXB0IHNyYz0iUmV0
dXJuLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZXR1cm5DaGVja2VyLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJSZXR1cm5FeGNlcHRpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9IlNhbXBsZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN0YW5kYXJkTGlicmFyeS5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3RhdGVtZW50Q2xvbmVyLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIj48L3NjcmlwdD4KQEAgLTEyNyw2
ICsxMjksOCBAQAogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRv
ci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rv
ck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRyYXBT
dGF0ZW1lbnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CkBAIC0xNTIsNyAr
MTU2LDcgQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiBkb1Rlc3RJbkJyb3dzZXIoKQogewotICAgIHZh
ciB0ZXN0ZXIgPSBkb1Rlc3QoLy4qLyk7CisgICAgdmFyIHRlc3RlciA9IGRvVGVzdCgvdGV4dHVy
ZS8pOwogICAgIHZhciBsYXN0VGltZTsKICAgICBmdW5jdGlvbiBuZXh0KCkKICAgICB7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwppbmRleCA0YTExYzE4NTg1OTk3NzhmZjM5MWIw
NGYyNjM1YzViNzEwMDVkZjdmLi41OWIwNGNhYTg4ZTgyYTA4ZGIzMGRlMDM4MDVmZWY0NTlhOWIw
YjI5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCisr
KyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKQEAgLTk0LDYgKzk0LDEz
MyBAQCBmdW5jdGlvbiBtYWtlRW51bShwcm9ncmFtLCBlbnVtTmFtZSwgdmFsdWUpCiAgICAgcmV0
dXJuIFR5cGVkVmFsdWUuYm94KGVudW1UeXBlLCBlbnVtTWVtYmVyLnZhbHVlLnVuaWZ5Tm9kZS52
YWx1ZUZvclNlbGVjdGVkVHlwZSk7CiB9CiAKK2Z1bmN0aW9uIG1ha2VTYW1wbGVyKHByb2dyYW0s
IG9wdGlvbnMpCit7CisgICAgLy8gZW51bSBXZWJHUFVBZGRyZXNzTW9kZSB7CisgICAgLy8gICAg
ICJjbGFtcFRvRWRnZSIsCisgICAgLy8gICAgICJyZXBlYXQiLAorICAgIC8vICAgICAibWlycm9y
UmVwZWF0IiwKKyAgICAvLyAgICAgImNsYW1wVG9Cb3JkZXJDb2xvciIKKyAgICAvLyB9CisgICAg
Ly8KKyAgICAvLyBlbnVtIFdlYkdQVUZpbHRlck1vZGUgeworICAgIC8vICAgICAibmVhcmVzdCIs
CisgICAgLy8gICAgICJsaW5lYXIiCisgICAgLy8gfQorICAgIC8vCisgICAgLy8gZW51bSBXZWJH
UFVDb21wYXJlRnVuY3Rpb24geworICAgIC8vICAgICAibmV2ZXIiLAorICAgIC8vICAgICAibGVz
cyIsCisgICAgLy8gICAgICJlcXVhbCIsCisgICAgLy8gICAgICJsZXNzRXF1YWwiLAorICAgIC8v
ICAgICAiZ3JlYXRlciIsCisgICAgLy8gICAgICJub3RFcXVhbCIsCisgICAgLy8gICAgICJncmVh
dGVyRXF1YWwiLAorICAgIC8vICAgICAiYWx3YXlzIgorICAgIC8vIH0KKyAgICAvLworICAgIC8v
IGVudW0gV2ViR1BVQm9yZGVyQ29sb3IgeworICAgIC8vICAgICAidHJhbnNwYXJlbnRCbGFjayIs
CisgICAgLy8gICAgICJvcGFxdWVCbGFjayIsCisgICAgLy8gICAgICJvcGFxdWVXaGl0ZSIKKyAg
ICAvLyB9CisgICAgLy8KKyAgICAvLyBkaWN0aW9uYXJ5IFdlYkdQVVNhbXBsZXJEZXNjcmlwdG9y
IHsKKyAgICAvLyAgICAgV2ViR1BVZGRyZXNzTW9kZSByQWRkcmVzc01vZGUgPSAiY2xhbXBUb0Vk
Z2UiOworICAgIC8vICAgICBXZWJHUFVkZHJlc3NNb2RlIHNBZGRyZXNzTW9kZSA9ICJjbGFtcFRv
RWRnZSI7CisgICAgLy8gICAgIFdlYkdQVWRkcmVzc01vZGUgdEFkZHJlc3NNb2RlID0gImNsYW1w
VG9FZGdlIjsKKyAgICAvLyAgICAgV2ViR1BVRmlsdGVyTW9kZUVudW0gbWFnRmlsdGVyID0gIm5l
YXJlc3QiOworICAgIC8vICAgICBXZWJHUFVGaWx0ZXJNb2RlRW51bSBtaW5GaWx0ZXIgPSAibmVh
cmVzdCI7CisgICAgLy8gICAgIFdlYkdQVUZpbHRlck1vZGVFbnVtIG1pcG1hcEZpbHRlciA9ICJu
ZWFyZXN0IjsKKyAgICAvLyAgICAgZmxvYXQgbG9kTWluQ2xhbXAgPSAwOworICAgIC8vICAgICBm
bG9hdCBsb2RNYXhDbGFtcCA9IE51bWJlci5NQVhfVkFMVUU7CisgICAgLy8gICAgIHVuc2lnbmVk
IGxvbmcgbWF4QW5pc290cm9weSA9IDE7CisgICAgLy8gICAgIFdlYkdQVUNvbXBhcmVGdW5jdGlv
biBjb21wYXJlRnVuY3Rpb24gPSAibmV2ZXIiOworICAgIC8vICAgICBXZWJHUFVCb3JkZXJDb2xv
ciBib3JkZXJDb2xvciA9ICJ0cmFuc3BhcmVudEJsYWNrIjsKKyAgICAvLyB9OworICAgIHJldHVy
biBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3Muc2FtcGxlciwgbmV3IFNhbXBsZXIo
b3B0aW9ucykpOworfQorCitmdW5jdGlvbiBtYWtlMURUZXh0dXJlKHByb2dyYW0sIG1pcG1hcHMs
IGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJp
bnNpY3NbYFRleHR1cmUxRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUxRChlbGVtZW50
VHlwZSwgbWlwbWFwcykpOworfQorCitmdW5jdGlvbiBtYWtlMURUZXh0dXJlQXJyYXkocHJvZ3Jh
bSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9n
cmFtLmludHJpbnNpY3NbYFRleHR1cmUxREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4
dHVyZTFEQXJyYXkoZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UyRFRl
eHR1cmUocHJvZ3JhbSwgbWlwbWFwcywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVk
VmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZTJEPCR7ZWxlbWVudFR5cGV9PmBd
LCBuZXcgVGV4dHVyZTJEKGVsZW1lbnRUeXBlLCBtaXBtYXBzKSk7Cit9CisKK2Z1bmN0aW9uIG1h
a2UyRFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0
dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZTJEQXJyYXk8JHtl
bGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlMkRBcnJheShlbGVtZW50VHlwZSwgYXJyYXkpKTsK
K30KKworZnVuY3Rpb24gbWFrZTNEVGV4dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50VHlw
ZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0
dXJlM0Q8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlM0QoZWxlbWVudFR5cGUsIG1pcG1h
cHMpKTsKK30KKworZnVuY3Rpb24gbWFrZVRleHR1cmVDdWJlKHByb2dyYW0sIGFycmF5LCBlbGVt
ZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNz
W2BUZXh0dXJlQ3ViZTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmVDdWJlKGVsZW1lbnRU
eXBlLCBhcnJheSkpOworfQorCitmdW5jdGlvbiBtYWtlUlcxRFRleHR1cmUocHJvZ3JhbSwgZWxl
bWVudHMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFt
LmludHJpbnNpY3NbYFJXVGV4dHVyZTFEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTFE
UlcoZWxlbWVudFR5cGUsIGVsZW1lbnRzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzFEVGV4dHVy
ZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRW
YWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUxREFycmF5PCR7ZWxlbWVudFR5
cGV9PmBdLCBuZXcgVGV4dHVyZTFEQXJyYXlSVyhlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKwor
ZnVuY3Rpb24gbWFrZVJXMkRUZXh0dXJlKHByb2dyYW0sIHJvd3MsIGVsZW1lbnRUeXBlKQorewor
ICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTJE
PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTJEUlcoZWxlbWVudFR5cGUsIHJvd3MpKTsK
K30KKworZnVuY3Rpb24gbWFrZVJXMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVsZW1l
bnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3Nb
YFJXVGV4dHVyZTJEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlMkRBcnJheVJX
KGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQorCitmdW5jdGlvbiBtYWtlUlczRFRleHR1cmUocHJv
Z3JhbSwgZGVwdGhTbGljZXMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVl
LmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTNEPCR7ZWxlbWVudFR5cGV9PmBdLCBu
ZXcgVGV4dHVyZTNEUlcoZWxlbWVudFR5cGUsIGRlcHRoU2xpY2VzKSk7Cit9CisKK2Z1bmN0aW9u
IG1ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50VHlwZSkKK3sKKyAg
ICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlRGVwdGgy
RDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmVEZXB0aDJEKGVsZW1lbnRUeXBlLCBtaXBt
YXBzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIGFy
cmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5p
bnRyaW5zaWNzW2BUZXh0dXJlRGVwdGgyREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4
dHVyZURlcHRoMkRBcnJheShlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24gbWFr
ZURlcHRoVGV4dHVyZUN1YmUocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJl
dHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmVEZXB0aEN1YmU8
JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlRGVwdGhDdWJlKGVsZW1lbnRUeXBlLCBhcnJh
eSkpOworfQorCitmdW5jdGlvbiBtYWtlUlcyRERlcHRoVGV4dHVyZShwcm9ncmFtLCByb3dzLCBl
bGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5z
aWNzW2BSV1RleHR1cmVEZXB0aDJEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZURlcHRo
MkRSVyhlbGVtZW50VHlwZSwgcm93cykpOworfQorCitmdW5jdGlvbiBtYWtlUlcyRERlcHRoVGV4
dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlw
ZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmVEZXB0aDJEQXJyYXk8JHtl
bGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlRGVwdGgyREFycmF5UlcoZWxlbWVudFR5cGUsIGFy
cmF5KSk7Cit9CisKIGZ1bmN0aW9uIGNoZWNrTnVtYmVyKHByb2dyYW0sIHJlc3VsdCwgZXhwZWN0
ZWQpCiB7CiAgICAgaWYgKCFyZXN1bHQudHlwZS51bmlmeU5vZGUuaXNOdW1iZXIpCkBAIC0xNTcs
NiArMjg0LDE0IEBAIGZ1bmN0aW9uIGNoZWNrSGFsZihwcm9ncmFtLCByZXN1bHQsIGV4cGVjdGVk
KQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJlc3VsdDogIiArIHJlc3VsdC52YWx1
ZSArICIgKGV4cGVjdGVkICIgKyBleHBlY3RlZCArICIpIik7CiB9CiAKK2Z1bmN0aW9uIGNoZWNr
RmxvYXQ0KHByb2dyYW0sIHJlc3VsdCwgZXhwZWN0ZWQpCit7CisgICAgaWYgKCFyZXN1bHQudHlw
ZS5lcXVhbHMocHJvZ3JhbS5pbnRyaW5zaWNzWyJ2ZWN0b3I8ZmxvYXQsIDQ+Il0pKQorICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJlc3VsdCB0eXBlOiAiICsgcmVzdWx0LnR5cGUpOwor
ICAgIGlmIChyZXN1bHQuZVB0ci5nZXQoMCkgIT0gZXhwZWN0ZWRbMF0gfHwgcmVzdWx0LmVQdHIu
Z2V0KDEpICE9IGV4cGVjdGVkWzFdIHx8IHJlc3VsdC5lUHRyLmdldCgyKSAhPSBleHBlY3RlZFsy
XSB8fCByZXN1bHQuZVB0ci5nZXQoMykgIT0gZXhwZWN0ZWRbM10pCisgICAgICAgIHRocm93IG5l
dyBFcnJvcigiV3JvbmcgcmVzdWx0OiBbIiArIHJlc3VsdC5lUHRyLmdldCgwKSArICIsICIgKyBy
ZXN1bHQuZVB0ci5nZXQoMSkgKyAiLCAiICsgcmVzdWx0LmVQdHIuZ2V0KDIpICsgIiwgIiArIHJl
c3VsdC5lUHRyLmdldCgzKSArICJdIChleHBlY3RlZCBbIiArIGV4cGVjdGVkWzBdICsgIiwgIiAr
IGV4cGVjdGVkWzFdICsgIiwgIiArIGV4cGVjdGVkWzJdICsgIiwgIiArIGV4cGVjdGVkWzNdICsg
Il0pIik7Cit9CisKIGZ1bmN0aW9uIGNoZWNrTGV4ZXJUb2tlbihyZXN1bHQsIGV4cGVjdGVkSW5k
ZXgsIGV4cGVjdGVkS2luZCwgZXhwZWN0ZWRUZXh0KQogewogICAgIGlmIChyZXN1bHQuX2luZGV4
ICE9IGV4cGVjdGVkSW5kZXgpCkBAIC01NTgyLDcgKzU3MTcsMTc5NyBAQCB0ZXN0cy5hcnJheUlu
ZGV4ID0gZnVuY3Rpb24oKSB7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMikgXSksIDMpOwogICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiYXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50
KHByb2dyYW0sIDApIF0pLCA0KTsKICAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWlu
dChwcm9ncmFtLCAxKSBdKSwgNSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMikgXSksIDYpOyAgICAKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlVWludChwcm9ncmFtLCAyKSBdKSwgNik7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZVRleHR1cmVz
Rm9yVGVzdGluZyhwcm9ncmFtKQoreworICAgIGxldCB0ZXh0dXJlMUQgPSBtYWtlMURUZXh0dXJl
KHByb2dyYW0sIFtbMSwgNywgMTQsIDc5XSwgWzEzLCAxNl0sIFsxNV1dLCAiZmxvYXQiKTsKKyAg
ICBsZXQgdGV4dHVyZTFEQXJyYXkgPSBtYWtlMURUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbMSwg
NywgMTQsIDc5XSwgWzEzLCAxNl0sIFsxNV1dLCBbWzE2LCAxNywgMTgsIDE5XSwgWzIwLCAyMV0s
IFsyMl1dXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmUyRCA9IG1ha2UyRFRleHR1cmUocHJv
Z3JhbSwgWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwg
MTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIx
LCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1d
LAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2XSwKKyAgICAgICAgWzM3LCAzOCwgMzksIDQwXV0s
CisgICAgICAgIFtbNDEsIDQyXV0KKyAgICBdLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZTJE
QXJyYXkgPSBtYWtlMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1sKKyAgICAgICAgW1sxLCAyLCAz
LCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2
XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsy
NSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAz
Nl0sCisgICAgICAgIFszNywgMzgsIDM5LCA0MF1dLAorICAgICAgICBbWzQxLCA0Ml1dCisgICAg
XSwgWworICAgICAgICBbWzQzLCA0NCwgNDUsIDQ2LCA0NywgNDgsIDQ5LCA1MF0sCisgICAgICAg
IFs1MSwgNTIsIDUzLCA1NCwgNTUsIDU2LCA1NywgNThdLAorICAgICAgICBbNTksIDYwLCA2MSwg
NjIsIDYzLCA2NCwgNjUsIDY2XSwKKyAgICAgICAgWzY3LCA2OCwgNjksIDcwLCA3MSwgNzIsIDcz
LCA3NF1dLAorICAgICAgICBbWzc1LCA3NiwgNzcsIDc4XSwKKyAgICAgICAgWzc5LCA4MCwgODEs
IDgyXV0sCisgICAgICAgIFtbODMsIDg0XV0KKyAgICBdXSwgImZsb2F0Iik7CisgICAgbGV0IHRl
eHR1cmUzRCA9IG1ha2UzRFRleHR1cmUocHJvZ3JhbSwgWworICAgICAgICBbW1sxLCAyLCAzLCA0
LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwK
KyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwg
MjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNiwg
MzcsIDM4LCAzOSwgNDBdLAorICAgICAgICBbNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4
XSwKKyAgICAgICAgWzQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1Nl0sCisgICAgICAgIFs1
NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2MywgNjRdXV0sCisgICAgICAgIFtbWzY1LCA2NiwgNjcs
IDY4XSwKKyAgICAgICAgWzY5LCA3MCwgNzEsIDcyXV1dCisgICAgXSwgImZsb2F0Iik7CisgICAg
bGV0IHRleHR1cmVDdWJlID0gbWFrZVRleHR1cmVDdWJlKHByb2dyYW0sIFtbCisgICAgICAgIFtb
MSwgMl0sCisgICAgICAgIFszLCA0XSwKKyAgICAgICAgWzUsIDZdLAorICAgICAgICBbNywgOF1d
LAorICAgICAgICBbWzldLAorICAgICAgICBbMTBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbMTEs
IDEyXSwKKyAgICAgICAgWzEzLCAxNF0sCisgICAgICAgIFsxNSwgMTZdLAorICAgICAgICBbMTcs
IDE4XV0sCisgICAgICAgIFtbMTldLAorICAgICAgICBbMjBdXSwKKyAgICBdLCBbCisgICAgICAg
IFtbMjEsIDIyXSwKKyAgICAgICAgWzIzLCAyNF0sCisgICAgICAgIFsyNSwgMjZdLAorICAgICAg
ICBbMjcsIDI4XV0sCisgICAgICAgIFtbMjldLAorICAgICAgICBbMzBdXSwKKyAgICBdLCBbCisg
ICAgICAgIFtbMzEsIDMyXSwKKyAgICAgICAgWzMzLCAzNF0sCisgICAgICAgIFszNSwgMzZdLAor
ICAgICAgICBbMzcsIDM4XV0sCisgICAgICAgIFtbMzldLAorICAgICAgICBbNDBdXSwKKyAgICBd
LCBbCisgICAgICAgIFtbNDEsIDQyXSwKKyAgICAgICAgWzQzLCA0NF0sCisgICAgICAgIFs0NSwg
NDZdLAorICAgICAgICBbNDcsIDQ4XV0sCisgICAgICAgIFtbNDldLAorICAgICAgICBbNTBdXSwK
KyAgICBdLCBbCisgICAgICAgIFtbNTEsIDUyXSwKKyAgICAgICAgWzUzLCA1NF0sCisgICAgICAg
IFs1NSwgNTZdLAorICAgICAgICBbNTcsIDU4XV0sCisgICAgICAgIFtbNTldLAorICAgICAgICBb
NjBdXSwKKyAgICBdXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4dHVyZTFEID0gbWFrZVJXMURU
ZXh0dXJlKHByb2dyYW0sIFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwgImZsb2F0Iik7CisgICAg
bGV0IHJ3VGV4dHVyZTFEQXJyYXkgPSBtYWtlUlcxRFRleHR1cmVBcnJheShwcm9ncmFtLCBbWzEs
IDIsIDMsIDQsIDUsIDYsIDcsIDhdLCBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLCBb
MTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XV0sICJmbG9hdCIpOworICAgIGxldCByd1Rl
eHR1cmUyRCA9IG1ha2VSVzJEVGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAgIFsxLCAyLCAzLCA0
LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwK
KyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwg
MjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4dHVy
ZTJEQXJyYXkgPSBtYWtlUlcyRFRleHR1cmVBcnJheShwcm9ncmFtLCBbCisgICAgICAgIFtbMSwg
MiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1
LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAg
ICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAz
NSwgMzYsIDM3LCAzOCwgMzksIDQwXSwKKyAgICAgICAgWzQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYs
IDQ3LCA0OF0sCisgICAgICAgIFs0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTZdLAorICAg
ICAgICBbNTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjMsIDY0XV1dLCAiZmxvYXQiKTsKKyAgICBs
ZXQgcndUZXh0dXJlM0QgPSBtYWtlUlczRFRleHR1cmUocHJvZ3JhbSwgWworICAgICAgICBbWzEs
IDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAx
NSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAg
ICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwg
MzUsIDM2LCAzNywgMzgsIDM5LCA0MF0sCisgICAgICAgIFs0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2
LCA0NywgNDhdLAorICAgICAgICBbNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2XSwKKyAg
ICAgICAgWzU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLCA2NF1dXSwgImZsb2F0Iik7CisgICAg
bGV0IHRleHR1cmVEZXB0aDJEID0gbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAg
ICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEz
LCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0s
CisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1sz
MywgMzQsIDM1LCAzNl0sCisgICAgICAgIFszNywgMzgsIDM5LCA0MF1dLAorICAgICAgICBbWzQx
LCA0Ml1dCisgICAgXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmVEZXB0aDJEQXJyYXkgPSBt
YWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbWworICAgICAgICBbWzEsIDIsIDMsIDQs
IDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAor
ICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAy
NiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2XSwK
KyAgICAgICAgWzM3LCAzOCwgMzksIDQwXV0sCisgICAgICAgIFtbNDEsIDQyXV0KKyAgICBdLCBb
CisgICAgICAgIFtbNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwgNDksIDUwXSwKKyAgICAgICAgWzUx
LCA1MiwgNTMsIDU0LCA1NSwgNTYsIDU3LCA1OF0sCisgICAgICAgIFs1OSwgNjAsIDYxLCA2Miwg
NjMsIDY0LCA2NSwgNjZdLAorICAgICAgICBbNjcsIDY4LCA2OSwgNzAsIDcxLCA3MiwgNzMsIDc0
XV0sCisgICAgICAgIFtbNzUsIDc2LCA3NywgNzhdLAorICAgICAgICBbNzksIDgwLCA4MSwgODJd
XSwKKyAgICAgICAgW1s4MywgODRdXQorICAgIF1dLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVy
ZURlcHRoQ3ViZSA9IG1ha2VEZXB0aFRleHR1cmVDdWJlKHByb2dyYW0sIFtbCisgICAgICAgIFtb
MSwgMl0sCisgICAgICAgIFszLCA0XSwKKyAgICAgICAgWzUsIDZdLAorICAgICAgICBbNywgOF1d
LAorICAgICAgICBbWzldLAorICAgICAgICBbMTBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbMTEs
IDEyXSwKKyAgICAgICAgWzEzLCAxNF0sCisgICAgICAgIFsxNSwgMTZdLAorICAgICAgICBbMTcs
IDE4XV0sCisgICAgICAgIFtbMTldLAorICAgICAgICBbMjBdXSwKKyAgICBdLCBbCisgICAgICAg
IFtbMjEsIDIyXSwKKyAgICAgICAgWzIzLCAyNF0sCisgICAgICAgIFsyNSwgMjZdLAorICAgICAg
ICBbMjcsIDI4XV0sCisgICAgICAgIFtbMjldLAorICAgICAgICBbMzBdXSwKKyAgICBdLCBbCisg
ICAgICAgIFtbMzEsIDMyXSwKKyAgICAgICAgWzMzLCAzNF0sCisgICAgICAgIFszNSwgMzZdLAor
ICAgICAgICBbMzcsIDM4XV0sCisgICAgICAgIFtbMzldLAorICAgICAgICBbNDBdXSwKKyAgICBd
LCBbCisgICAgICAgIFtbNDEsIDQyXSwKKyAgICAgICAgWzQzLCA0NF0sCisgICAgICAgIFs0NSwg
NDZdLAorICAgICAgICBbNDcsIDQ4XV0sCisgICAgICAgIFtbNDldLAorICAgICAgICBbNTBdXSwK
KyAgICBdLCBbCisgICAgICAgIFtbNTEsIDUyXSwKKyAgICAgICAgWzUzLCA1NF0sCisgICAgICAg
IFs1NSwgNTZdLAorICAgICAgICBbNTcsIDU4XV0sCisgICAgICAgIFtbNTldLAorICAgICAgICBb
NjBdXSwKKyAgICBdXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4dHVyZURlcHRoMkQgPSBtYWtl
UlcyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAgIFsxLCAyLCAzLCA0LCA1LCA2LCA3
LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAg
WzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAy
OCwgMjksIDMwLCAzMSwgMzJdXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4dHVyZURlcHRoMkRB
cnJheSA9IG1ha2VSVzJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgWworICAgICAgICBbWzEs
IDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAx
NSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAg
ICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwg
MzUsIDM2LCAzNywgMzgsIDM5LCA0MF0sCisgICAgICAgIFs0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2
LCA0NywgNDhdLAorICAgICAgICBbNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2XSwKKyAg
ICAgICAgWzU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLCA2NF1dXSwgImZsb2F0Iik7CisgICAg
cmV0dXJuIFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRleHR1cmUyREFy
cmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0dXJlMURBcnJh
eSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNELCB0ZXh0dXJlRGVw
dGgyRCwgdGV4dHVyZURlcHRoMkRBcnJheSwgdGV4dHVyZURlcHRoQ3ViZSwgcndUZXh0dXJlRGVw
dGgyRCwgcndUZXh0dXJlRGVwdGgyREFycmF5XTsKK30KKwordGVzdHMudGV4dHVyZURpbWVuc2lv
bnMgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCisgICAgICAgIHVp
bnQgZm9vMShUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lk
dGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGlt
ZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAg
ICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yKFRleHR1cmUxRDxm
bG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVp
bnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAs
ICZ3aWR0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxl
dmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzMoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+
IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVs
ZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdl
dERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVs
cyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBm
b280KFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdp
ZHRoOworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVy
T2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwg
JmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRz
OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNShUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4
dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVu
dHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGlt
ZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsK
KyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1
aW50IGZvbzYoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdp
ZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9m
TGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZo
ZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb283KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAg
ICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0
dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzgoVGV4dHVyZTJEPGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0
RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7
CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAg
dWludCBmb285KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1
aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVs
ZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdl
dERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1i
ZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAg
ICAgdWludCBmb28xMChUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAg
ICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWlu
dCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAg
ICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAm
bnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQor
ICAgICAgICB1aW50IGZvbzExKFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAg
ICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAg
ICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAg
ICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVu
dHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gZWxlbWVudHM7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb28xMihUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkg
eworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAg
ICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7
CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwg
JmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9m
TGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTMoVGV4dHVyZTNEPGZsb2F0PiB0
ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWln
aHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxl
dmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVp
Z2h0LCAmZGVwdGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7
CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xNChUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUp
IHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAg
ICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZk
ZXB0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb28xNShUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAg
ICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAg
ICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAg
ICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCwg
Jm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBkZXB0aDsKKyAgICAgICAgfQor
ICAgICAgICB1aW50IGZvbzE2KFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAg
ICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWlu
dCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBH
ZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoLCAmbnVtYmVy
T2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9
CisgICAgICAgIHVpbnQgZm9vMTcoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAg
ICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAg
IHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUs
IDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVy
biB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE4KFRleHR1cmVDdWJlPGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0
RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7
CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9v
MTkoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7
CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZl
bHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdo
dCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIwKFJXVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJl
KSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0
ZXh0dXJlLCAmd2lkdGgpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9Cisg
ICAgICAgIHVpbnQgZm9vMjEoUldUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAg
ICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmVsZW1lbnRzKTsKKyAgICAgICAg
ICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIyKFJXVGV4dHVy
ZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAg
ICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJl
LCAmd2lkdGgsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1cm4gZWxlbWVudHM7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb28yMyhSV1RleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgewor
ICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAg
ICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQpOworICAgICAgICAg
ICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjQoUldUZXh0dXJl
MkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAg
ICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRo
LCAmaGVpZ2h0KTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAg
ICAgdWludCBmb28yNShSV1RleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAg
ICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1
aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgs
ICZoZWlnaHQsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAg
IH0KKyAgICAgICAgdWludCBmb28yNihSV1RleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7
CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAg
ICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJl
LCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0
OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjcoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4g
dGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVp
Z2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0
dXJuIGVsZW1lbnRzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjgoUldUZXh0dXJlM0Q8
ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1
aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICBHZXREaW1l
bnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoKTsKKyAgICAgICAgICAgIHJl
dHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI5KFJXVGV4dHVyZTNEPGZs
b2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWlu
dCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgR2V0RGltZW5z
aW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCk7CisgICAgICAgICAgICByZXR1
cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMzAoUldUZXh0dXJlM0Q8Zmxv
YXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50
IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICBHZXREaW1lbnNp
b25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoKTsKKyAgICAgICAgICAgIHJldHVy
biBkZXB0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzMxKFRleHR1cmVEZXB0aDJEPGZs
b2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWlu
dCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAg
R2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVs
cyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBm
b28zMihUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3
aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJP
ZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAm
aGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAg
ICAgICAgfQorICAgICAgICB1aW50IGZvbzMzKFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJl
KSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7Cisg
ICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9u
cyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAg
ICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28z
NChUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50
IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1l
bnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERp
bWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJP
ZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAg
dWludCBmb28zNShUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAg
ICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1
aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAg
ICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMs
ICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9
CisgICAgICAgIHVpbnQgZm9vMzYoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkg
eworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAg
ICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7
CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwg
JmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRz
OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMzcoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9h
dD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQg
aGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVt
YmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0
aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0
dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMzgoVGV4dHVy
ZURlcHRoQ3ViZTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAg
ICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsK
KyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAm
bnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9Cisg
ICAgICAgIHVpbnQgZm9vMzkoVGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAg
ICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0
dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzQwKFRleHR1cmVEZXB0aEN1
YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAg
ICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAg
ICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9m
TGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQor
ICAgICAgICB1aW50IGZvbzQxKFJXVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAg
ICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAg
ICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICAgICAgICAg
IHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzQyKFJXVGV4dHVyZURl
cHRoMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAg
ICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndp
ZHRoLCAmaGVpZ2h0KTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAg
ICAgICAgdWludCBmb280MyhSV1RleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsK
KyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAg
ICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUs
ICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzQ0KFJXVGV4dHVyZURlcHRoMkRBcnJheTxmbG9h
dD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQg
aGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVu
c2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMpOworICAgICAgICAgICAg
cmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzQ1KFJXVGV4dHVyZURl
cHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAg
ICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAg
ICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMp
OworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAgICB9CisgICAgYCk7CisgICAg
bGV0IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5
LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0dXJlMURBcnJheSwg
cndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNELCB0ZXh0dXJlRGVwdGgy
RCwgdGV4dHVyZURlcHRoMkRBcnJheSwgdGV4dHVyZURlcHRoQ3ViZSwgcndUZXh0dXJlRGVwdGgy
RCwgcndUZXh0dXJlRGVwdGgyREFycmF5XSA9IGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9n
cmFtKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
IiwgW3RleHR1cmUxRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRF0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5XSksIDQpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4
dHVyZTFEQXJyYXldKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMURBcnJheV0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRF0pLCA4KTsKKyAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1
cmUyRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb284IiwgW3RleHR1cmUyRF0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUyREFycmF5XSksIDgpOworICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUyREFy
cmF5XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzExIiwgW3RleHR1cmUyREFycmF5XSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1cmUyREFycmF5XSksIDMpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3RleHR1
cmUzRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNCIsIFt0ZXh0dXJlM0RdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTNEXSksIDIpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUzRF0pLCAy
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIs
IFt0ZXh0dXJlQ3ViZV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlQ3ViZV0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlQ3ViZV0pLCAyKTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFty
d1RleHR1cmUxRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmUxREFycmF5XSksIDgpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3J3VGV4dHVyZTFEQXJyYXld
KSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjMiLCBbcndUZXh0dXJlMkRdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjQiLCBbcndUZXh0dXJlMkRdKSwgNCk7CisgICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjUiLCBbcndUZXh0dXJlMkRBcnJh
eV0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yNiIsIFtyd1RleHR1cmUyREFycmF5XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI3IiwgW3J3VGV4dHVyZTJEQXJyYXldKSwgMik7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjgiLCBbcndU
ZXh0dXJlM0RdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjkiLCBbcndUZXh0dXJlM0RdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzAiLCBbcndUZXh0dXJlM0RdKSwgMik7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBbdGV4dHVy
ZURlcHRoMkRdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzIiLCBbdGV4dHVyZURlcHRoMkRdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzMiLCBbdGV4dHVyZURlcHRoMkRdKSwgMyk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzQiLCBb
dGV4dHVyZURlcHRoMkRBcnJheV0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zNSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5XSksIDQpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM2IiwgW3RleHR1
cmVEZXB0aDJEQXJyYXldKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMzciLCBbdGV4dHVyZURlcHRoMkRBcnJheV0pLCAzKTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOCIsIFt0ZXh0dXJlRGVw
dGhDdWJlXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzM5IiwgW3RleHR1cmVEZXB0aEN1YmVdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDAiLCBbdGV4dHVyZURlcHRoQ3ViZV0pLCAy
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MSIs
IFtyd1RleHR1cmVEZXB0aDJEXSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3J3VGV4dHVyZURlcHRoMkRdKSwgNCk7CisgICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDMiLCBbcndUZXh0dXJl
RGVwdGgyREFycmF5XSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQ0IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheV0pLCA0KTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFtyd1RleHR1cmVE
ZXB0aDJEQXJyYXldKSwgMik7Cit9CisKK3Rlc3RzLnRleHR1cmVMb2FkID0gZnVuY3Rpb24oKSB7
CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICBmbG9hdCBmb28xKFRleHR1cmUx
RDxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQgbWlwbWFwKSB7CisgICAgICAgICAg
ICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGxvY2F0aW9uLCBtaXBtYXApKTsKKyAgICAgICAg
fQorICAgICAgICBmbG9hdCBmb28yKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0
aW9uLCBpbnQgbWlwbWFwLCBpbnQgb2Zmc2V0KSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0
ZXh0dXJlLCBpbnQyKGxvY2F0aW9uLCBtaXBtYXApLCBvZmZzZXQpOworICAgICAgICB9CisgICAg
ICAgIGZsb2F0IGZvbzMoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlv
biwgaW50IG1pcG1hcCwgaW50IGxheWVyKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0
dXJlLCBpbnQzKGxvY2F0aW9uLCBtaXBtYXAsIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAg
ZmxvYXQgZm9vNChUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uLCBp
bnQgbWlwbWFwLCBpbnQgbGF5ZXIsIGludCBvZmZzZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBM
b2FkKHRleHR1cmUsIGludDMobG9jYXRpb24sIG1pcG1hcCwgbGF5ZXIpLCBvZmZzZXQpOworICAg
ICAgICB9CisgICAgICAgIGZsb2F0IGZvbzUoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBpbnQg
eCwgaW50IHksIGludCBtaXBtYXApIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUs
IGludDMoeCwgeSwgbWlwbWFwKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNihUZXh0
dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCwgaW50IG9mZnNl
dFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQz
KHgsIHksIG1pcG1hcCksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAg
ICAgIGZsb2F0IGZvbzcoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQg
eSwgaW50IG1pcG1hcCwgaW50IGxheWVyKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0
dXJlLCBpbnQ0KHgsIHksIG1pcG1hcCwgbGF5ZXIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb284KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBt
aXBtYXAsIGludCBsYXllciwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAg
ICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgsIHksIG1pcG1hcCwgbGF5ZXIpLCBpbnQyKG9m
ZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb285KFRleHR1cmUz
RDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgeiwgaW50IG1pcG1hcCkgeworICAg
ICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50NCh4LCB5LCB6LCBtaXBtYXApKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb28xMChUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIGlu
dCB4LCBpbnQgeSwgaW50IHosIGludCBtaXBtYXAsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSwg
aW50IG9mZnNldFopIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDQoeCwg
eSwgeiwgbWlwbWFwKSwgaW50MyhvZmZzZXRYLCBvZmZzZXRZLCBvZmZzZXRaKSk7CisgICAgICAg
IH0KKyAgICAgICAgZmxvYXQgZm9vMTEoUldUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIGludCBs
b2NhdGlvbikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgbG9jYXRpb24pOwor
ICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzEyKFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRl
eHR1cmUsIGludCBsb2NhdGlvbiwgaW50IGxheWVyKSB7CisgICAgICAgICAgICByZXR1cm4gTG9h
ZCh0ZXh0dXJlLCBpbnQyKGxvY2F0aW9uLCBsYXllcikpOworICAgICAgICB9CisgICAgICAgIGZs
b2F0IGZvbzEzKFJXVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHkpIHsKKyAg
ICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIoeCwgeSkpOworICAgICAgICB9Cisg
ICAgICAgIGZsb2F0IGZvbzE0KFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCB4
LCBpbnQgeSwgaW50IGxheWVyKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBp
bnQzKHgsIHksIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTUoUldUZXh0
dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IHopIHsKKyAgICAgICAgICAg
IHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgeikpOworICAgICAgICB9CisgICAgICAg
IGZsb2F0IGZvbzE2KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHks
IGludCBtaXBtYXApIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwg
eSwgbWlwbWFwKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTcoVGV4dHVyZURlcHRo
MkQ8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCwgaW50IG9mZnNldFgs
IGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgs
IHksIG1pcG1hcCksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAg
IGZsb2F0IGZvbzE4KFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBp
bnQgeSwgaW50IG1pcG1hcCwgaW50IGxheWVyKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0
ZXh0dXJlLCBpbnQ0KHgsIHksIG1pcG1hcCwgbGF5ZXIpKTsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdCBmb28xOShUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50
IHksIGludCBtaXBtYXAsIGludCBsYXllciwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7Cisg
ICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgsIHksIG1pcG1hcCwgbGF5ZXIp
LCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28y
MChSV1RleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHkpIHsKKyAgICAg
ICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIoeCwgeSkpOworICAgICAgICB9CisgICAg
ICAgIGZsb2F0IGZvbzIxKFJXVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgaW50
IHgsIGludCB5LCBpbnQgbGF5ZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUs
IGludDMoeCwgeSwgbGF5ZXIpKTsKKyAgICAgICAgfQorICAgIGApOworICAgIGxldCBbdGV4dHVy
ZTFELCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0ZXh0dXJlMkRBcnJheSwgdGV4dHVyZTNE
LCB0ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVyZTFEQXJyYXksIHJ3VGV4dHVyZTJE
LCByd1RleHR1cmUyREFycmF5LCByd1RleHR1cmUzRCwgdGV4dHVyZURlcHRoMkQsIHRleHR1cmVE
ZXB0aDJEQXJyYXksIHRleHR1cmVEZXB0aEN1YmUsIHJ3VGV4dHVyZURlcHRoMkQsIHJ3VGV4dHVy
ZURlcHRoMkRBcnJheV0gPSBjcmVhdGVUZXh0dXJlc0ZvclRlc3RpbmcocHJvZ3JhbSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVy
ZTFELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1
cmUxRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0
dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTMpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3Rl
eHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBb
dGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTFELCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMiIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAx
Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMi
LCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIs
IFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMjAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwg
W3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDIxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAtMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
MTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAxMyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4
dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTcpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMjEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIC0xKV0pLCAyMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0
ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTApOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBb
dGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCAxOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE3KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzOCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBb
dGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAzNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM3KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAzMyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAz
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzci
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzcpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM4KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0Myk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDUxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCA1Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
NzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDc2KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgODApOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgMzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDM0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
LTEpXSksIDM1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0NCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgNTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQ1KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgNTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDYwKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCA1Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNjEpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDc2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCA4MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNzcpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDgxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA4MCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDc2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCA4MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDc3KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIs
IFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0Mik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVy
ZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDY1KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgNjYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCA2OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDcwKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBb
dGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJl
M0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQxKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBb
dGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDExKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVy
ZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDE4KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQyKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDQxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIC0xKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDM1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDQyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAi
LCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQyKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4
dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQ5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNE
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIC0xKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA2Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCA2OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCA2Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3MCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwg
W3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3MCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1
cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNjUpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0Qs
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNzEpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDY2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDIp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIs
IFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAzKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1h
a2VJbnQocHJvZ3JhbSwgMyldKSwgNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDQp
XSksIDUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCA1KV0pLCA2KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJl
MUQsIG1ha2VJbnQocHJvZ3JhbSwgNildKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dy
YW0sIDcpXSksIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1
cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIs
IFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDcp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJl
MURBcnJheSwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwg
W3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgMTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA1
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTUpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0
dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAx
Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEy
IiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMildKSwgMTgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtl
SW50KHByb2dyYW0sIDIpXSksIDE5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFt
LCAzKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjEpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIyKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndU
ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAyKV0p
LCAyMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJv
Z3JhbSwgMildKSwgMjQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDIp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFt
LCAzKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJv
Z3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDYpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFr
ZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVy
ZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1Rl
eHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwg
W3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgMTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgMTUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA3
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTgpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFr
ZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxOSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJE
LCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIwKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0
dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjEpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFty
d1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAy
Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEz
IiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDIp
XSksIDIzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3Jh
bSwgMildKSwgMjQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAzKV0pLCAyNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDMpXSksIDI2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMiks
IG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFt
LCAzKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHBy
b2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMzApOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwg
bWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAzMSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVy
ZTJELCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDMyKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndU
ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBb
cndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAx
MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0
IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0MSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1Iiwg
W3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1Rl
eHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCA0MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQyKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZURl
cHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlRGVw
dGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlRGVw
dGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZURl
cHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgMzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzOCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVE
ZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
NyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVw
dGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAx
MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3
IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
LTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTcpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVw
dGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAz
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3
IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
LTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM3KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURl
cHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
MzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
NyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAtMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDMzKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURl
cHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCA0NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgNTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDUyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCA3NSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgNzYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDc5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCA4MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEx
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTki
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgMTgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxOSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwg
MzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
OSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAtMSldKSwgMzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDQ0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1Mik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDUpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDUzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA1Mik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5Iiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNjApOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDUzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCA2MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNzYpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDgwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCA3Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgODEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDgwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAtMSldKSwgNzYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDgx
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTki
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgNzcpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0
aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1Rl
eHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0s
IDQpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50
KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDYpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJE
LCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1
cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDgp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIs
IFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAy
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTIpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJE
LCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEzKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0
dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAx
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIw
IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgMTUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTgpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0
aDJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndU
ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAyKV0p
LCAyMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJv
Z3JhbSwgMildKSwgMjEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDUpLCBt
YWtlSW50KHByb2dyYW0sIDIpXSksIDIyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9n
cmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1h
a2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVE
ZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI1KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBb
cndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAz
KV0pLCAyNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQo
cHJvZ3JhbSwgMyldKSwgMjcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDMp
LCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChw
cm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyOSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQs
IG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMzApOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1
cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDMx
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAi
LCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFt
LCAzKV0pLCAzMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIxIiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbcndUZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIx
IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3
VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCA0Mik7Cit9CisKK3Rlc3RzLnRleHR1cmVTdG9yZSA9IGZ1bmN0aW9uKCkgeworICAg
IGxldCBwcm9ncmFtID0gZG9QcmVwKGAKKyAgICAgICAgZmxvYXQgZm9vMShSV1RleHR1cmUxRDxm
bG9hdD4gdGV4dHVyZSwgdWludCBsb2NhdGlvbiwgZmxvYXQgdmFsdWUpIHsKKyAgICAgICAgICAg
IFN0b3JlKHRleHR1cmUsIHZhbHVlLCBsb2NhdGlvbik7CisgICAgICAgICAgICByZXR1cm4gTG9h
ZCh0ZXh0dXJlLCBpbnQobG9jYXRpb24pKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28y
KFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHVpbnQgbG9jYXRpb24sIHVpbnQgbGF5
ZXIsIGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwgdWlu
dDIobG9jYXRpb24sIGxheWVyKSk7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBp
bnQyKGludChsb2NhdGlvbiksIGludChsYXllcikpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb28zKFJXVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCB1aW50IHgsIHVpbnQgeSwgZmxvYXQg
dmFsdWUpIHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1cmUsIHZhbHVlLCB1aW50Mih4LCB5KSk7
CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGludCh4KSwgaW50KHkpKSk7
CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNChSV1RleHR1cmUyREFycmF5PGZsb2F0PiB0
ZXh0dXJlLCB1aW50IHgsIHVpbnQgeSwgdWludCBsYXllciwgZmxvYXQgdmFsdWUpIHsKKyAgICAg
ICAgICAgIFN0b3JlKHRleHR1cmUsIHZhbHVlLCB1aW50Myh4LCB5LCBsYXllcikpOworICAgICAg
ICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MyhpbnQoeCksIGludCh5KSwgaW50KGxheWVy
KSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzUoUldUZXh0dXJlM0Q8ZmxvYXQ+IHRl
eHR1cmUsIHVpbnQgeCwgdWludCB5LCB1aW50IHosIGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAg
ICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDMoeCwgeSwgeikpOworICAgICAgICAgICAgcmV0
dXJuIExvYWQodGV4dHVyZSwgaW50MyhpbnQoeCksIGludCh5KSwgaW50KHopKSk7CisgICAgICAg
IH0KKyAgICAgICAgZmxvYXQgZm9vNihSV1RleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCB1
aW50IHgsIHVpbnQgeSwgZmxvYXQgdmFsdWUpIHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1cmUs
IHZhbHVlLCB1aW50Mih4LCB5KSk7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBp
bnQyKGludCh4KSwgaW50KHkpKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNyhSV1Rl
eHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHVpbnQgeCwgdWludCB5LCB1aW50IGxh
eWVyLCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4dHVyZSwgdmFsdWUsIHVp
bnQzKHgsIHksIGxheWVyKSk7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQz
KGludCh4KSwgaW50KHkpLCBpbnQobGF5ZXIpKSk7CisgICAgICAgIH0KKyAgICBgKTsKKyAgICBs
ZXQgW3RleHR1cmUxRCwgdGV4dHVyZTFEQXJyYXksIHRleHR1cmUyRCwgdGV4dHVyZTJEQXJyYXks
IHRleHR1cmUzRCwgdGV4dHVyZUN1YmUsIHJ3VGV4dHVyZTFELCByd1RleHR1cmUxREFycmF5LCBy
d1RleHR1cmUyRCwgcndUZXh0dXJlMkRBcnJheSwgcndUZXh0dXJlM0QsIHRleHR1cmVEZXB0aDJE
LCB0ZXh0dXJlRGVwdGgyREFycmF5LCB0ZXh0dXJlRGVwdGhDdWJlLCByd1RleHR1cmVEZXB0aDJE
LCByd1RleHR1cmVEZXB0aDJEQXJyYXldID0gY3JlYXRlVGV4dHVyZXNGb3JUZXN0aW5nKHByb2dy
YW0pOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
IiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDIp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChw
cm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwg
bWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndU
ZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFy
cmF5LCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
IiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5
LCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwg
NiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwg
W3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBt
YWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3
VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtl
VWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4
dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWlu
dChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VV
aW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVy
ZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50
KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFE
QXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9n
cmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHBy
b2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJy
YXksIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFt
LCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMi
LCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1h
a2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVy
ZTJELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDYp
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFty
d1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVp
bnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQs
IG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4
dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0s
IDcpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIs
IFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDIp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9n
cmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFr
ZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVp
bnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJl
MkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiks
IG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3
VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0s
IDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWlu
dChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChw
cm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwg
bWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0
dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwg
NyksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280Iiwg
W3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFt
LCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQi
LCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50
KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50
KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dy
YW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIs
IFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFty
d1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1Rl
eHR1cmUzRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1
cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWlu
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVE
ZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJv
Z3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0
aDJELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282
IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJE
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwg
MiksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282Iiwg
W3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBt
YWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSks
IG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3
VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtl
VWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4
dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAyKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWlu
dChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VV
aW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVy
ZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChw
cm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50
KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURl
cHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHBy
b2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRo
MkQsIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFt
LCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYi
LCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dy
YW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQs
IG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA2
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBb
cndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0s
IDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtyd1RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbcndUZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283Iiwg
W3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
VWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzciLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb283IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VV
aW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cit9CisKK3Rlc3RzLnRleHR1cmVT
YW1wbGUgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCisgICAgICAg
IGZsb2F0IGZvbzEoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IGxv
Y2F0aW9uKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGxvY2F0aW9u
KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28yKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVy
ZSwgc2FtcGxlciBzLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9mZnNldCkgeworICAgICAgICAgICAg
cmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBsb2NhdGlvbiwgb2Zmc2V0KTsKKyAgICAgICAgfQor
ICAgICAgICBmbG9hdCBmb28zKFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVy
IHMsIGZsb2F0IHgsIGZsb2F0IGxheWVyKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRl
eHR1cmUsIHMsIGZsb2F0Mih4LCBsYXllcikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZv
bzQoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxv
YXQgbGF5ZXIsIGludCBvZmZzZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVy
ZSwgcywgZmxvYXQyKHgsIGxheWVyKSwgb2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb281KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9h
dCB5KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5
KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNihUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1
cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZ
KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwg
aW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNyhU
ZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5
LCBmbG9hdCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBm
bG9hdDMoeCwgeSwgbGF5ZXIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb284KFRleHR1
cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZs
b2F0IGxheWVyLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVy
biBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgaW50MihvZmZzZXRYLCBv
ZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vOShUZXh0dXJlM0Q8ZmxvYXQ+
IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeikgeworICAgICAg
ICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeikpOworICAgICAg
ICB9CisgICAgICAgIGZsb2F0IGZvbzEwKFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxl
ciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFks
IGludCBvZmZzZXRaKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZs
b2F0Myh4LCB5LCB6KSwgaW50MyhvZmZzZXRYLCBvZmZzZXRZLCBvZmZzZXRaKSk7CisgICAgICAg
IH0KKyAgICAgICAgZmxvYXQgZm9vMTEoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUsIHNhbXBs
ZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeikgeworICAgICAgICAgICAgcmV0dXJuIFNh
bXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeikpOworICAgICAgICB9CisgICAgICAgIGZs
b2F0IGZvbzEyKFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBm
bG9hdCB5LCBmbG9hdCBCaWFzKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0
dXJlLCBzLCBmbG9hdDIoeCwgeSksIEJpYXMpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZv
bzEzKFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5
LCBmbG9hdCBCaWFzLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJl
dHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgQmlhcywgaW50MihvZmZz
ZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTQoVGV4dHVyZTJE
PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGRkeDAs
IGZsb2F0IGRkeDEsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEpIHsKKyAgICAgICAgICAgIHJldHVy
biBTYW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgZmxvYXQyKGRkeDAsIGRkeDEp
LCBmbG9hdDIoZGR5MCwgZGR5MSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE1KFRl
eHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9h
dCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHkwLCBmbG9hdCBkZHkxLCBpbnQgb2Zmc2V0WCwg
aW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUsIHMs
IGZsb2F0Mih4LCB5KSwgZmxvYXQyKGRkeDAsIGRkeDEpLCBmbG9hdDIoZGR5MCwgZGR5MSksIGlu
dDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE2KFRl
eHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9h
dCBMT0QpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9h
dDIoeCwgeSksIExPRCk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTcoVGV4dHVyZTJE
PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IExPRCwg
aW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2
ZWwodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBMT0QsIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE4KFRleHR1cmUyREFycmF5PGZsb2F0PiB0
ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBC
aWFzKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDMo
eCwgeSwgbGF5ZXIpLCBCaWFzKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xOShUZXh0
dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBm
bG9hdCBsYXllciwgZmxvYXQgQmlhcywgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAg
ICAgICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIp
LCBCaWFzLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb28yMChUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4
LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR5
MCwgZmxvYXQgZGR5MSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwg
cywgZmxvYXQzKHgsIHksIGxheWVyKSwgZmxvYXQyKGRkeDAsIGRkeDEpLCBmbG9hdDIoZGR5MCwg
ZGR5MSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzIxKFRleHR1cmUyREFycmF5PGZs
b2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBm
bG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHkwLCBmbG9hdCBkZHkxLCBpbnQgb2Zmc2V0
WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUs
IHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGZsb2F0MihkZHgwLCBkZHgxKSwgZmxvYXQyKGRkeTAs
IGRkeTEpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb28yMihUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4
LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgTE9EKSB7CisgICAgICAgICAgICByZXR1cm4g
U2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgTE9EKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb28yMyhUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwg
c2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgTE9ELCBpbnQg
b2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0
ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBMT0QsIGludDIob2Zmc2V0WCwgb2Zmc2V0
WSkpOworICAgICAgICB9CisgICAgICAgIGludCBmb28yNChUZXh0dXJlMUQ8aW50ND4gdGV4dHVy
ZSwgc2FtcGxlciBzLCBmbG9hdCBsb2NhdGlvbikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBs
ZSh0ZXh0dXJlLCBzLCBsb2NhdGlvbikueDsKKyAgICAgICAgfQorICAgICAgICBpbnQgZm9vMjUo
VGV4dHVyZTFEPGludDQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgbG9jYXRpb24pIHsKKyAg
ICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgbG9jYXRpb24pLnk7CisgICAgICAg
IH0KKyAgICAgICAgaW50IGZvbzI2KFRleHR1cmUxRDxpbnQ0PiB0ZXh0dXJlLCBzYW1wbGVyIHMs
IGZsb2F0IGxvY2F0aW9uKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMs
IGxvY2F0aW9uKS56OworICAgICAgICB9CisgICAgICAgIGludCBmb28yNyhUZXh0dXJlMUQ8aW50
ND4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCBsb2NhdGlvbikgeworICAgICAgICAgICAgcmV0
dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBsb2NhdGlvbikudzsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdCBmb28yOChUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9h
dCB4LCBmbG9hdCB5KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZs
b2F0Mih4LCB5KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMjkoVGV4dHVyZURlcHRo
MkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgaW50IG9mZnNl
dFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMs
IGZsb2F0Mih4LCB5KSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAg
ICAgZmxvYXQgZm9vMzAoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxl
ciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJu
IFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmb28zMShUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1w
bGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBpbnQgb2Zmc2V0WCwgaW50IG9m
ZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQzKHgs
IHksIGxheWVyKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAg
ZmxvYXQgZm9vMzIoVGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBm
bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRl
eHR1cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9v
MzMoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxv
YXQgeSwgZmxvYXQgQmlhcykgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVy
ZSwgcywgZmxvYXQyKHgsIHkpLCBCaWFzKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28z
NChUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9h
dCB5LCBmbG9hdCBCaWFzLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAg
IHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgQmlhcywgaW50Mihv
ZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMzUoVGV4dHVy
ZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxv
YXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSkgeworICAgICAgICAg
ICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBmbG9hdDIoZGR4
MCwgZGR4MSksIGZsb2F0MihkZHkwLCBkZHkxKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQg
Zm9vMzYoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwg
ZmxvYXQgeSwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSwg
aW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlR3Jh
ZCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGZsb2F0MihkZHgwLCBkZHgxKSwgZmxvYXQyKGRk
eTAsIGRkeTEpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdCBmb28zNyhUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9h
dCB4LCBmbG9hdCB5LCBmbG9hdCBMT0QpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZl
bCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIExPRCk7CisgICAgICAgIH0KKyAgICAgICAgZmxv
YXQgZm9vMzgoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQg
eCwgZmxvYXQgeSwgZmxvYXQgTE9ELCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAg
ICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIExPRCwg
aW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMzko
VGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBm
bG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgQmlhcykgeworICAgICAgICAgICAgcmV0dXJuIFNh
bXBsZUJpYXModGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgQmlhcyk7CisgICAgICAg
IH0KKyAgICAgICAgZmxvYXQgZm9vNDAoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVy
ZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgQmlhcywg
aW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQmlh
cyh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBCaWFzLCBpbnQyKG9mZnNldFgsIG9m
ZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb280MShUZXh0dXJlRGVwdGgyREFy
cmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxh
eWVyLCBmbG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHkwLCBmbG9hdCBkZHkxKSB7Cisg
ICAgICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5
ZXIpLCBmbG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0MihkZHkwLCBkZHkxKSk7CisgICAgICAgIH0K
KyAgICAgICAgZmxvYXQgZm9vNDIoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwg
c2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgZGR4MCwgZmxv
YXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZ
KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwg
eSwgbGF5ZXIpLCBmbG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0MihkZHkwLCBkZHkxKSwgaW50Mihv
ZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDMoVGV4dHVy
ZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5
LCBmbG9hdCBsYXllciwgZmxvYXQgTE9EKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2
ZWwodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgTE9EKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmb280NChUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1w
bGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBMT0QsIGludCBvZmZz
ZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUxldmVsKHRleHR1
cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIExPRCwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7
CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDUoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRl
eHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgY29tcGFyZVZhbHVlKSB7
CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQ21wKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwg
Y29tcGFyZVZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb280NihUZXh0dXJlRGVw
dGgyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBj
b21wYXJlVmFsdWUsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0
dXJuIFNhbXBsZUNtcCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGNvbXBhcmVWYWx1ZSwgaW50
MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDcoVGV4
dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9h
dCB5LCBmbG9hdCBsYXllciwgZmxvYXQgY29tcGFyZVZhbHVlKSB7CisgICAgICAgICAgICByZXR1
cm4gU2FtcGxlQ21wKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGNvbXBhcmVWYWx1
ZSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDgoVGV4dHVyZURlcHRoMkRBcnJheTxm
bG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwg
ZmxvYXQgY29tcGFyZVZhbHVlLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAg
ICAgIHJldHVybiBTYW1wbGVDbXAodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgY29t
cGFyZVZhbHVlLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdCBmb280OShUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4
LCBmbG9hdCB5LCBmbG9hdCB6LCBmbG9hdCBiaWFzKSB7CisgICAgICAgICAgICByZXR1cm4gU2Ft
cGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeiksIGJpYXMpOworICAgICAgICB9Cisg
ICAgICAgIGZsb2F0IGZvbzUwKFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMs
IGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0
IGRkeDIsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEsIGZsb2F0IGRkeTIpIHsKKyAgICAgICAgICAg
IHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSwgZmxvYXQzKGRk
eDAsIGRkeDEsIGRkeDIpLCBmbG9hdDMoZGR5MCwgZGR5MSwgZGR5MikpOworICAgICAgICB9Cisg
ICAgICAgIGZsb2F0IGZvbzUxKFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMs
IGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IGxvZCkgeworICAgICAgICAgICAgcmV0
dXJuIFNhbXBsZUxldmVsKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSwgbG9kKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb281MihUZXh0dXJlRGVwdGhDdWJlPGZsb2F0PiB0ZXh0dXJl
LCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IGJpYXMpIHsKKyAg
ICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSwg
Ymlhcyk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNTMoVGV4dHVyZURlcHRoQ3ViZTxm
bG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBmbG9h
dCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHgyLCBmbG9hdCBkZHkwLCBmbG9hdCBkZHkxLCBm
bG9hdCBkZHkyKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJlLCBzLCBm
bG9hdDMoeCwgeSwgeiksIGZsb2F0MyhkZHgwLCBkZHgxLCBkZHgyKSwgZmxvYXQzKGRkeTAsIGRk
eTEsIGRkeTIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb281NChUZXh0dXJlRGVwdGhD
dWJlPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHos
IGZsb2F0IGxvZCkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUxldmVsKHRleHR1cmUsIHMs
IGZsb2F0Myh4LCB5LCB6KSwgbG9kKTsKKyAgICAgICAgfQorICAgIGApOworICAgIGxldCBbdGV4
dHVyZTFELCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0ZXh0dXJlMkRBcnJheSwgdGV4dHVy
ZTNELCB0ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVyZTFEQXJyYXksIHJ3VGV4dHVy
ZTJELCByd1RleHR1cmUyREFycmF5LCByd1RleHR1cmUzRCwgdGV4dHVyZURlcHRoMkQsIHRleHR1
cmVEZXB0aDJEQXJyYXksIHRleHR1cmVEZXB0aEN1YmUsIHJ3VGV4dHVyZURlcHRoMkQsIHJ3VGV4
dHVyZURlcHRoMkRBcnJheV0gPSBjcmVhdGVUZXh0dXJlc0ZvclRlc3RpbmcocHJvZ3JhbSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4
dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjM3
NSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7fSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjQzNzUpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge30p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41NjI1KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjYyNSldKSwgMTQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUx
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuMzc1KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjQzNzUpXSksICgzICog
NyArIDEgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICg3ICsgMTQpIC8gMik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBb
dGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41NjI1KV0pLCAoMSAqIDcgKyAzICogMTQpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVy
ZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC42MjUpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3Ii
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjM3NSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0Jv
cmRlckNvbG9yIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC40Mzc1KV0pLCAoMyAqIDcgKyAxICog
MTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KV0pLCAoNyArIDE0KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xv
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNTYyNSldKSwgKDEgKiA3ICsgMyAqIDE0KSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJB
ZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NjI1KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAr
IDAuMzc1KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
ICsgMC40Mzc1KV0pLCAoMyAqIDcgKyAxICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuNSldKSwgKDcgKyAxNCkgLyAyKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6
ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC41NjI1KV0pLCAoMSAqIDcgKyAz
ICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAr
IDAuNjI1KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MiArIDAuMzc1KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAyICsgMC40Mzc1KV0pLCAoMyAqIDcgKyAxICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuNSldKSwgKDcgKyAxNCkgLyAyKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJl
MUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01v
ZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC41NjI1KV0pLCAoMSAqIDcg
KyAzICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MiArIDAuNjI1KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSArIDAuNjI1KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxICsgMC41NjI1KV0pLCAoMyAqIDcgKyAxICogMTQpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4
dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJl
c3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuNSldKSwg
KDcgKyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxICsgMC40Mzc1KV0pLCAoMSAqIDcgKyAzICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWly
cm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuMzc1KV0pLCAxNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVy
ZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NN
b2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuMzc1KV0pLCA3
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIs
IFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBy
QWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC40
Mzc1KV0pLCAoMyAqIDcgKyAxICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuNSldKSwgKDcgKyAxNCkgLyAyKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6
ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC41NjI1KV0pLCAoMSAq
IDcgKyAzICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMiArIDAuNjI1KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTAuMzc1KV0pLCAx
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIs
IFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxLjM3NSldKSwgNzkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3Jk
ZXJDb2xvciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0wLjM3NSldKSwgMCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAi
Y2xhbXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMS4zNzUpXSksIDApOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3Rl
eHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRy
ZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciIsIGJvcmRlckNvbG9yOiAib3BhcXVlQmxhY2si
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMC4zNzUpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9C
b3JkZXJDb2xvciIsIGJvcmRlckNvbG9yOiAib3BhcXVlQmxhY2sifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxLjM3NSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIiwgYm9yZGVy
Q29sb3I6ICJvcGFxdWVXaGl0ZSJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0wLjM3NSldKSwgMSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBb
dGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFk
ZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIiwgYm9yZGVyQ29sb3I6ICJvcGFxdWVXaGl0
ZSJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEuMzc1KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRv
Qm9yZGVyQ29sb3IiLCBib3JkZXJDb2xvcjogIm9wYXF1ZVdoaXRlIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSldKSwgKDc5ICsgMSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBsb2RNaW5DbGFtcDogMX0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KV0pLCAoMTMgKyAxNikgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksICgxNCArIDc5KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg3ICsgMTQpIC8gMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDE3ICsgMTgpIC8gMik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4
dHVyZTFEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgKDE0ICsgNzkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDE4ICsgMTkp
IC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwg
KDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KV0pLCAoMjAgKyAyMSArIDI4
ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQg
KyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgyMCAr
IDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCAr
IDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICg2MiArIDYzICsg
NzAgKyA3MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEyICsgMTMgKyAyMCArIDIxICsgNDQg
KyA0NSArIDUyICsgNTMpIC8gOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTMgKyAxNCArIDIx
ICsgMjIgKyA0NSArIDQ2ICsgNTMgKyA1NCkgLyA4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMjAg
KyAyMSArIDI4ICsgMjkgKyA1MiArIDUzICsgNjAgKyA2MSkgLyA4KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDUgLyA4
KV0pLCAoMTIgKyAxMyArIDIwICsgMjEgKyAoNDQgKyA0NSArIDUyICsgNTMpICogMykgLyAxNik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwg
W3RleHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIgKyA0NSArIDQ2ICsg
NTMgKyA1NCkgLyA4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgyMCArIDIxICsgMjggKyAy
OSArIDUyICsgNTMgKyA2MCArIDYxKSAvIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuMjUpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICg0
NCArIDQ1ICsgNTIgKyA1MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMgKyA0ICsgNSArIDYpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEx
IiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDE1ICsgMTYpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3RleHR1cmVDdWJl
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
XSksICgyMyArIDI0ICsgMjUgKyAyNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzMyArIDM0ICsg
MzUgKyAzNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDQzICsgNDQgKyA0NSArIDQ2KSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0
ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAtMSldKSwgKDUzICsgNTQgKyA1NSArIDU2KSAvIDQpOworICAgIC8vIFVuZm9ydHVu
YXRlbHksIHdlIGNhbid0IGFjdHVhbGx5IHRlc3QgdGhlICJCaWFzIiBhcmd1bWVudCwgYmVjYXVz
ZSBpdCBpcyBzdXBwb3NlZCB0byBiZSBhcHBsaWVkCisgICAgLy8gdG8gdGhlIHVuY2xhbXBlZCBM
T0QsIHdoaWNoIGZvciB1cyBpcyAtSW5maW5pdHkgKGJlY2F1c2Ugb3VyIGRlcml2YXRpdmVzIGFy
ZSBhbGwgMCkKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTIiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1
cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbdGV4dHVyZTJELCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
XSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwg
W3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSks
ICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIu
bG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUo
KS5oZWlnaHQpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVyZTJELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVy
ZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRo
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgp
LmhlaWdodCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFs
dWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLmhlaWdodCldKSwgKCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsg
MzUgKyAzOCArIDM5KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAy
MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3RleHR1cmUy
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3RleHR1cmUyRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoMzUgKyAzNiArIDM5ICsgNDApIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3RleHR1cmUyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0
aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsg
MjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVy
OiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBv
dygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1h
dGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDEzICsgMTQgKyAyMSAr
IDIyKSAvIDQpICsgKCgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZTJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDM0ICsgMzUg
KyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
NiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
LCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKCgoMTIgKyAx
MyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAvIDIpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0
dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgx
MiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1
cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
MTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgx
MiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3Iiwg
W3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBb
dGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICgoKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpICsgKCgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KSkg
LyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsg
MTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2MiAr
IDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApXSksICg2MiArIDYzICsgNzAgKyA3MSkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgKDYyICsgNjMgKyA3MCArIDcxKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsg
MjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0
dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRy
LmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZh
bHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWln
aHQpXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFs
dWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS5oZWlnaHQpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0
aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0p
LCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkp
IC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoNTQgKyA1NSAr
IDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWlu
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAv
IHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAw
LjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDU0ICsgNTUgKyA2
MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZp
bHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9h
ZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgoKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpICsgKCg3
NiArIDc3ICsgODAgKyA4MSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1
cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2Fk
VmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhl
aWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsg
MTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0
dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksICgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQu
ZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0
dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5w
b3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBN
YXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMyArIDE0ICsgMjEg
KyAyMikgLyA0KSArICgoMzUgKyAzNiArIDM5ICsgNDApIC8gNCkpIC8gMik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyAr
IDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNzcgKyA3OCArIDgxICsgODIpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIx
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAu
MjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93
KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIx
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGlu
ZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0
KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53
aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1
ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
KCgoNTUgKyA1NiArIDYzICsgNjQpIC8gNCkgKyAoKDc3ICsgNzggKyA4MSArIDgyKSAvIDQpKSAv
IDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAx
MyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIyIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3RleHR1cmUy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFw
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSldKSwgKCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5KSAv
IDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAo
NTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpXSksICg3NiArIDc3ICsgODAgKyA4MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwg
bWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSldKSwgKCgoNTQgKyA1NSArIDYyICsgNjMpIC8gNCkgKyAoKDc2ICsgNzcgKyA4MCAr
IDgxKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyAr
IDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWlu
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNCArIDM1ICsg
MzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyAr
IDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWlu
RmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAz
OCArIDM5KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAx
NCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNSArIDM2
ICsgMzkgKyA0MCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAx
NCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYg
KyAzOSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTQg
KyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg3NiAr
IDc3ICsgODAgKyA4MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTQg
KyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoNTQgKyA1NSArIDYyICsgNjMpIC8gNCkgKyAoKDc2ICsg
NzcgKyA4MCArIDgxKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
NTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg3
NyArIDc4ICsgODEgKyA4MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
NTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoNTUgKyA1NiArIDYzICsgNjQpIC8gNCkgKyAoKDc3
ICsgNzggKyA4MSArIDgyKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBsb2RNaW5DbGFtcDogMSwgbG9kTWF4Q2xhbXA6IDF9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMildKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlMkQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBsb2RNaW5DbGFtcDog
MSwgbG9kTWF4Q2xhbXA6IDF9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDM0ICsgMzUgKyAzOCArIDM5
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNCIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQu
ZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRW
YWx1ZSgpLmhlaWdodCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJs
aW5lYXIiLCBtYXhBbmlzb3Ryb3B5OiAyfSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDQgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDQvMykgLyB0ZXh0dXJlMkQuZVB0ci5sb2Fk
VmFsdWUoKS5oZWlnaHQpXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBsZXQgdGV4
dHVyZTFESW50NCA9IG1ha2UxRFRleHR1cmUocHJvZ3JhbSwgW1tbMSwgMiwgMywgNF0sIFsxMDAs
IDIwMCwgMzAwLCA0MDBdLCBbMTAxLCAyMDIsIDMwMSwgNDAxXSwgWzEzLCAxNCwgMTUsIDE2XV0s
IFtbMTcsIDE4LCAxOSwgMjBdLCBbMjEsIDIyLCAyMywgMjRdXSwgW1syNSwgMjYsIDI3LCAyOF1d
XSwgImludDQiKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzI0IiwgW3RleHR1cmUxREludDQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksIDEwMCk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNSIsIFt0ZXh0dXJlMURJbnQ0
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KV0pLCAyMDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjYiLCBbdGV4dHVyZTFESW50NCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgMzAwKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI3IiwgW3Rl
eHR1cmUxREludDQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksIDQwMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOCIs
IFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI5Iiwg
W3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSAr
IDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yOSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgyMCAr
IDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMzAiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMg
KyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zMCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNTQgKyA1NSArIDYy
ICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYz
ICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksICg2MiArIDYzICsgNzAgKyA3MSkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzIiLCBbdGV4dHVy
ZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKV0pLCAoMyArIDQgKyA1ICsgNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzIiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDEzICsgMTQgKyAxNSArIDE2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zMiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgyMyArIDI0ICsg
MjUgKyAyNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzIiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMzICsgMzQgKyAzNSArIDM2KSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28z
MiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg0MyArIDQ0ICsgNDUgKyA0NikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzIiLCBbdGV4dHVy
ZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAtMSldKSwgKDUzICsgNTQgKyA1NSArIDU2KSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOCIsIFt0ZXh0dXJlRGVwdGgyRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMiArIDEzICsgMjAgKyAy
MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCldKSwgKDIwICsgMjEgKyAyOCArIDI5
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yOSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0
ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjkiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMwIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgx
MiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMzAiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDU0ICsg
NTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zMSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsg
NTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zMSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoNjIgKyA2MyArIDcwICsgNzEpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMzIiwg
W3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMzIiwgW3RleHR1cmVE
ZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMyIsIFt0ZXh0dXJlRGVwdGgy
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM0IiwgW3RleHR1cmVEZXB0aDJELCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIx
ICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzM0IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM1IiwgW3RleHR1cmVEZXB0
aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM1IiwgW3RleHR1cmVE
ZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgxMiArIDEzICsgMjAgKyAy
MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMzUiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53
aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwg
KDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zNSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4y
NSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3co
MiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgxMiArIDEz
ICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMzUiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdo
dCldKSwgKCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5KSAv
IDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNiIsIFt0
ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNiIsIFt0ZXh0dXJlRGVwdGgy
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM2IiwgW3RleHR1cmVEZXB0
aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0
ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksICgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzYiLCBbdGV4dHVyZURl
cHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lk
dGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
MTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lk
dGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUo
KS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgo
KDEzICsgMTQgKyAyMSArIDIyKSAvIDQpICsgKCgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KSkgLyAy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzci
LCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzciLCBbdGV4dHVy
ZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzciLCBbdGV4dHVyZURlcHRoMkQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgo
MzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzM4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1cmVEZXB0aDJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEz
ICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMzgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTIg
KyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAvIDIpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOCIsIFt0
ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQw
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1cmVEZXB0aDJE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksICgoKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpICsgKCgzNSArIDM2
ICsgMzkgKyA0MCkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM5IiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAy
MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCA2IC8gOCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
XSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM5IiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsg
NjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCA2IC8gOCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApXSksICg2MiArIDYzICsgNzAgKyA3MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDAiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQwIiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MCIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDAiLCBbdGV4dHVyZURl
cHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoNjIgKyA2MyArIDcwICsgNzEpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280MSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDEyICsgMTMgKyAy
MCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280MSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1
cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MSIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIs
IDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgu
cG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMTIg
KyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1
cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoKCgxMiArIDEzICsgMjAgKyAy
MSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUg
KyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280MSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRl
eHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
MSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0
dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRy
LmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MSIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAu
MjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoNTQgKyA1NSArIDYy
ICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRy
LmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJE
LmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoKCg1NCArIDU1ICsgNjIgKyA2MykgLyA0KSAr
ICgoNzYgKyA3NyArIDgwICsgODEpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAy
MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQu
ZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
d2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNSArIDM2ICsgMzkg
KyA0MCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21p
bkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBN
YXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdo
dCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQg
KyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQu
ZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1
cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYg
KyAzOSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5l
UHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZh
bHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNzcgKyA3OCArIDgxICsgODIpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwg
MC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5w
b3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRl
cjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZh
bHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICgoKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpICsgKCg3NyArIDc4ICsgODEgKyA4Mikg
LyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNDMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MyIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEyICsgMTMgKyAy
MCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280MyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKCgoMTIgKyAxMyArIDIwICsgMjEpIC8g
NCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDMiLCBb
dGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNzYgKyA3
NyArIDgwICsgODEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0p
LCAoKCg1NCArIDU1ICsgNjIgKyA2MykgLyA0KSArICgoNzYgKyA3NyArIDgwICsgODEpIC8gNCkp
IC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCAr
IDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWlu
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNCArIDM1ICsg
MzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiAr
IDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgz
NCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFw
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAx
NCArIDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBb
dGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNzYgKyA3NyArIDgwICsgODEpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsg
NjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoKCg1NCArIDU1ICsgNjIgKyA2MykgLyA0KSArICgoNzYgKyA3NyArIDgw
ICsgODEpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1
ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICg3NyArIDc4ICsgODEgKyA4MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDU1ICsgNTYgKyA2MyArIDY0
KSAvIDQpICsgKCg3NyArIDc4ICsgODEgKyA4MikgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0
dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2Nv
bXBhcmVGdW5jdGlvbjogIm5ldmVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERl
cHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHtjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDApOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFtt
YWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0p
LCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3MifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDExKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQi
KSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3MifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDE3KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAi
ZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3MifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3
XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImVx
dWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFt
LCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rp
b246ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUo
cHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFy
ZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhU
ZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e2NvbXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDEpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFtt
YWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
NyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0Iiks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNzRXF1YWwifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1d
LCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0
ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0s
IFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlv
bjogImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJl
KHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBh
cmVGdW5jdGlvbjogImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAxKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVw
dGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge2NvbXBhcmVGdW5jdGlvbjogIm5vdEVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1Iiwg
W21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MTcpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIp
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibm90RXF1YWwifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDIzKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1d
LCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0
ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJv
Z3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1
bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERl
cHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0p
LCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9h
dCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiYWx3YXlzIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxNyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11d
XSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJhbHdh
eXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJv
Z3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJl
RnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAx
MSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJm
bG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDApOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0
aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5ldmVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3Jh
bSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVu
Y3Rpb246ICJsZXNzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0p
LCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0
IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNzIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0
dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tb
WzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246
ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3Iiwg
W21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVB
cnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e2NvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3
XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJs
ZXNzRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDEp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIs
IFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4
dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3Jh
bSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVu
Y3Rpb246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEx
KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZs
b2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAwKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVw
dGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJv
Z3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJl
RnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAxMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0s
ICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibm90RXF1
YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDApOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtl
MkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5vdEVxdWFsIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJy
YXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtj
b21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMTEpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBb
W1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlv
bjogImdyZWF0ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAx
NyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJm
bG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVx
dWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAxKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFr
ZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJh
eShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2Nv
bXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAxNyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11d
XV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiYWx3
YXlzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAxKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDkiLCBbdGV4
dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMyArIDQgKyA1ICsgNikgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDkiLCBb
dGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAxNSArIDE2
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280OSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgyMyArIDI0ICsg
MjUgKyAyNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNDkiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMz
ICsgMzQgKyAzNSArIDM2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280OSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
XSksICg0MyArIDQ0ICsgNDUgKyA0NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDkiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCldKSwgKDUzICsgNTQgKyA1NSArIDU2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKV0pLCAoMyArIDQgKyA1ICsgNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTAiLCBbdGV4dHVyZUN1YmUsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMTUgKyAxNikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTAiLCBbdGV4dHVy
ZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIzICsgMjQgKyAyNSArIDI2KSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MCIs
IFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMzICsgMzQgKyAzNSAr
IDM2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNDMgKyA0
NCArIDQ1ICsgNDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0p
LCAoNTMgKyA1NCArIDU1ICsgNTYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC00IC8gdGV4
dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIC00IC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWln
aHQpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDkgKyAxMCkgLyAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTAiLCBbdGV4dHVyZUN1YmUs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAsIDAsIDQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTQgLyB0ZXh0dXJlQ3Vi
ZS5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTkg
KyAyMCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNTAiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA0IC8gdGV4dHVyZUN1
YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgp
LmhlaWdodCldKSwgKDI5ICsgMzApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTQgLyB0ZXh0dXJlQ3Vi
ZS5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM5ICsgNDApIC8gMik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJl
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgNCAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkud2lk
dGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTQgLyB0ZXh0dXJlQ3ViZS5lUHRy
LmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNDkgKyA1MCkg
LyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NTAiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTQgLyB0ZXh0dXJlQ3ViZS5l
UHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC00
IC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCldKSwgKDU5ICsgNjApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzUxIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCldKSwgKDMgKyA0ICsgNSArIDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUxIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApXSksICgxMyArIDE0ICsgMTUgKyAxNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoMjMgKyAyNCArIDI1ICsgMjYpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUxIiwgW3RleHR1cmVDdWJlLCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzMyArIDM0ICsgMzUgKyAzNikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTEiLCBbdGV4dHVy
ZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNDMgKyA0NCArIDQ1ICsgNDYpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUxIiwg
W3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1MyArIDU0ICsgNTUgKyA1
NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoOSArIDEwKSAv
IDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281
MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoMTkgKyAyMCkgLyAy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTEi
LCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoMjkgKyAzMCkgLyAyKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTEiLCBb
dGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDM5ICsgNDApIC8gMik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUxIiwgW3Rl
eHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDQ5ICsgNTApIC8gMik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUxIiwgW3RleHR1
cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg1OSArIDYwKSAvIDIpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MiIsIFt0ZXh0dXJl
RGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMgKyA0ICsgNSArIDYpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUyIiwg
W3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAx
NSArIDE2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb281MiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDIzICsgMjQgKyAyNSArIDI2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281MiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApXSksICgzMyArIDM0ICsgMzUgKyAzNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTIiLCBbdGV4dHVyZURlcHRoQ3ViZSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg0MyArIDQ0ICsgNDUgKyA0NikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTIiLCBbdGV4dHVy
ZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTMgKyA1NCArIDU1ICsgNTYp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMgKyA0
ICsgNSArIDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
XSksICgxMyArIDE0ICsgMTUgKyAxNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoMjMgKyAyNCArIDI1ICsgMjYpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1
YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzMyArIDM0ICsgMzUgKyAzNikgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTMiLCBb
dGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNDMgKyA0NCArIDQ1
ICsgNDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSks
ICg1MyArIDU0ICsgNTUgKyA1NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtNCAv
IHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAtNCAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCku
aGVpZ2h0KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg5ICsgMTApIC8gMik7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUzIiwgW3RleHR1cmVE
ZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAsIDAsIDQgLyB0ZXh0dXJlRGVwdGhDdWJlLmVQdHIubG9hZFZh
bHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAt
NCAvIHRleHR1cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCldKSwgKDE5ICsgMjApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCA0IC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgNCAv
IHRleHR1cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgyOSArIDMwKSAv
IDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281
MyIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDQgLyB0ZXh0dXJlRGVw
dGhDdWJlLmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtNCAvIHRleHR1cmVEZXB0aEN1YmUuZVB0ci5s
b2FkVmFsdWUoKS5oZWlnaHQpXSksICgzOSArIDQwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MyIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgNCAvIHRleHR1cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS53
aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtNCAvIHRleHR1cmVEZXB0aEN1
YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDQ5
ICsgNTApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTQgLyB0
ZXh0dXJlRGVwdGhDdWJlLmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgLTQgLyB0ZXh0dXJlRGVwdGhDdWJlLmVQdHIubG9hZFZhbHVlKCkuaGVp
Z2h0KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1OSArIDYwKSAvIDIpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0dXJlRGVw
dGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMgKyA0ICsgNSArIDYpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU0IiwgW3Rl
eHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAxNSAr
IDE2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIz
ICsgMjQgKyAyNSArIDI2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApXSksICgzMyArIDM0ICsgMzUgKyAzNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApXSksICg0MyArIDQ0ICsgNDUgKyA0NikgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURl
cHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTMgKyA1NCArIDU1ICsgNTYpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU0
IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoOSArIDEwKSAv
IDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281
NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICgxOSArIDIw
KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDI5ICsg
MzApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDM5
ICsgNDApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAo
NDkgKyA1MCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21p
bkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0p
LCAoNTkgKyA2MCkgLyAyKTsKK30KKwordGVzdHMudGV4dHVyZUdhdGhlciA9IGZ1bmN0aW9uKCkg
eworICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKKyAgICAgICAgZmxvYXQ0IGZvbzEoVGV4dHVy
ZTJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHkpIHsKKyAgICAg
ICAgICAgIHJldHVybiBHYXRoZXIodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpKTsKKyAgICAgICAg
fQorICAgICAgICBmbG9hdDQgZm9vMihUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIg
cywgZmxvYXQgeCwgZmxvYXQgeSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAg
ICAgICByZXR1cm4gR2F0aGVyKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgaW50MihvZmZzZXRY
LCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQ0IGZvbzMoVGV4dHVyZTJEQXJy
YXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5
ZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBHYXRoZXIodGV4dHVyZSwgcywgZmxvYXQzKHgsIHks
IGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQ0IGZvbzQoVGV4dHVyZTJEQXJyYXk8
ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIs
IGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIEdhdGhlcih0
ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsK
KyAgICAgICAgfQorICAgICAgICBmbG9hdDQgZm9vNShUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVy
ZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KSB7CisgICAgICAgICAgICBy
ZXR1cm4gR2F0aGVyKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSk7CisgICAgICAgIH0KKyAg
ICAgICAgZmxvYXQ0IGZvbzYoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIg
cywgZmxvYXQgeCwgZmxvYXQgeSkgeworICAgICAgICAgICAgcmV0dXJuIEdhdGhlcih0ZXh0dXJl
LCBzLCBmbG9hdDIoeCwgeSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0NCBmb283KFRleHR1
cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGlu
dCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIEdhdGhlcih0ZXh0
dXJlLCBzLCBmbG9hdDIoeCwgeSksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9
CisgICAgICAgIGZsb2F0NCBmb284KFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUs
IHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIpIHsKKyAgICAgICAgICAg
IHJldHVybiBHYXRoZXIodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSk7CisgICAgICAg
IH0KKyAgICAgICAgZmxvYXQ0IGZvbzkoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVy
ZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgaW50IG9mZnNldFgs
IGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gR2F0aGVyKHRleHR1cmUsIHMsIGZs
b2F0Myh4LCB5LCBsYXllciksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9Cisg
ICAgICAgIGZsb2F0NCBmb28xMChUZXh0dXJlRGVwdGhDdWJlPGZsb2F0PiB0ZXh0dXJlLCBzYW1w
bGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopIHsKKyAgICAgICAgICAgIHJldHVybiBH
YXRoZXIodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopKTsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdDQgZm9vMTEoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxv
YXQgeCwgZmxvYXQgeSwgZmxvYXQgY29tcGFyZVZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4g
R2F0aGVyQ21wKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgY29tcGFyZVZhbHVlKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdDQgZm9vMTIoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUs
IHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgY29tcGFyZVZhbHVlLCBpbnQgb2Zm
c2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBHYXRoZXJDbXAodGV4dHVy
ZSwgcywgZmxvYXQyKHgsIHkpLCBjb21wYXJlVmFsdWUsIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0NCBmb28xMyhUZXh0dXJlRGVwdGgyREFycmF5PGZs
b2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBm
bG9hdCBjb21wYXJlVmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBHYXRoZXJDbXAodGV4dHVy
ZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgY29tcGFyZVZhbHVlKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdDQgZm9vMTQoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2Ft
cGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgY29tcGFyZVZhbHVl
LCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBHYXRoZXJD
bXAodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgY29tcGFyZVZhbHVlLCBpbnQyKG9m
ZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgIGApOworICAgIGxldCBbdGV4dHVyZTFE
LCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0ZXh0dXJlMkRBcnJheSwgdGV4dHVyZTNELCB0
ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVyZTFEQXJyYXksIHJ3VGV4dHVyZTJELCBy
d1RleHR1cmUyREFycmF5LCByd1RleHR1cmUzRCwgdGV4dHVyZURlcHRoMkQsIHRleHR1cmVEZXB0
aDJEQXJyYXksIHRleHR1cmVEZXB0aEN1YmUsIHJ3VGV4dHVyZURlcHRoMkQsIHJ3VGV4dHVyZURl
cHRoMkRBcnJheV0gPSBjcmVhdGVUZXh0dXJlc0ZvclRlc3RpbmcocHJvZ3JhbSk7CisgICAgY2hl
Y2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUy
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksIFsyMCwgMjEsIDEzLCAx
Ml0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSld
KSwgWzIxLCAyMiwgMTQsIDEzXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCA2IC8gOCldKSwgWzI4LCAyOSwgMjEsIDIwXSk7CisgICAgY2hlY2tGbG9hdDQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUyRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIFsyMSwgMjIsIDE0LCAxM10pOworICAgIGNoZWNrRmxvYXQ0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCBbMjgsIDI5LCAyMSwgMjBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksIFsy
MCwgMjEsIDEzLCAxMl0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgWzYyLCA2MywgNTUsIDU0XSk7
CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCBbMjEsIDIyLCAxNCwgMTNdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIFsyOCwgMjksIDIxLCAyMF0pOworICAg
IGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgWzYzLCA2NCwgNTYsIDU1XSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCBbNzAsIDcxLCA2MywgNjJdKTsKKyAgICBjaGVj
a0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZUN1
YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCldKSwgWzUsIDYsIDQsIDNdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksIFsxNSwgMTYsIDE0LCAxM10pOwor
ICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0
ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKV0pLCBbMjUsIDI2LCAyNCwgMjNdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksIFszNSwgMzYs
IDM0LCAzM10pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCBbNDUsIDQ2LCA0NCwgNDNdKTsKKyAgICBjaGVja0Zs
b2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZUN1YmUs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEp
XSksIFs1NSwgNTYsIDU0LCA1M10pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpXSksIFsyMCwgMjEsIDEzLCAxMl0pOworICAgIGNoZWNrRmxvYXQ0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlRGVwdGgyRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCBbMjEsIDIyLCAxNCwg
MTNdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAv
IDgpXSksIFsyOCwgMjksIDIxLCAyMF0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIFsyMSwgMjIsIDE0LCAxM10pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIFsyOCwgMjksIDIxLCAyMF0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0p
LCBbMjAsIDIxLCAxMywgMTJdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgWzYyLCA2Mywg
NTUsIDU0XSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb285IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIFsyMSwgMjIsIDE0LCAxM10pOworICAgIGNoZWNrRmxvYXQ0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCBbMjgs
IDI5LCAyMSwgMjBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzYzLCA2NCwgNTYsIDU1XSk7CisgICAgY2hlY2tG
bG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IFs3MCwgNzEsIDYzLCA2Ml0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCBbNSwgNiwgNCwgM10pOwor
ICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBb
dGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCldKSwgWzE1LCAxNiwgMTQsIDEzXSk7CisgICAgY2hlY2tGbG9hdDQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlRGVwdGhDdWJl
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
XSksIFsyNSwgMjYsIDI0LCAyM10pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgWzM1LCAzNiwgMzQs
IDMzXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksIFs0NSwgNDYsIDQ0LCA0M10pOworICAgIGNoZWNr
RmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZURl
cHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAtMSldKSwgWzU1LCA1NiwgNTQsIDUzXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogIm5ldmVy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdCgxMyldKSwgWzAsIDAsIDAsIDBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQoMTMpXSksIFsxLCAxLCAwLCAwXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdCgxMyldKSwgWzAsIDAsIDEsIDBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFs
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdCgxMyldKSwgWzEsIDEsIDEsIDBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRl
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQoMTMpXSksIFswLCAwLCAwLCAxXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogIm5vdEVx
dWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdCgxMyldKSwgWzEsIDEsIDAsIDFdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiZ3Jl
YXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdCgxMyldKSwgWzAsIDAsIDEsIDFdKTsKKyAgICBjaGVja0Zsb2F0NChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3RleHR1cmVEZXB0aDJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9u
OiAiYWx3YXlzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdCgxMyldKSwgWzEsIDEsIDEsIDFdKTsKKyAgICBjaGVja0Zsb2F0NChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1cmVEZXB0aDJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9u
OiAibmV2ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCBbMCwgMCwgMCwgMF0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJsZXNz
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxNCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgWzEsIDEsIDAsIDBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDE0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCBbMCwgMCwgMSwgMF0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTIiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJsZXNzRXF1YWwifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDE0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBb
MSwgMSwgMSwgMF0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTIiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxNCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzAsIDAs
IDAsIDFdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEyIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibm90RXF1YWwifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE0
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBbMSwgMSwgMCwg
MV0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTIiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE0
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBbMCwgMCwgMSwg
MV0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTIiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE0KSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBbMSwgMSwgMSwgMV0pOwor
ICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBb
dGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciIsIGNvbXBhcmVGdW5jdGlvbjogIm5ldmVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDU1KV0pLCBbMCwgMCwgMCwgMF0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlv
bjogImxlc3MifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNTUpXSksIFsx
LCAxLCAwLCAwXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNTUpXSksIFswLCAwLCAxLCAwXSk7CisgICAgY2hl
Y2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwg
Y29tcGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDU1KV0pLCBbMSwgMSwgMSwgMF0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjog
ImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNTUpXSksIFsw
LCAwLCAwLCAxXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibm90RXF1YWwifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNTUpXSksIFsxLCAxLCAwLCAxXSk7CisgICAg
Y2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
IiwgY29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDU1KV0pLCBbMCwgMCwgMSwgMV0pOworICAgIGNoZWNrRmxvYXQ0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5j
dGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA1NSld
KSwgWzEsIDEsIDEsIDFdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA1NiksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzAsIDAsIDAsIDBdKTsKKyAgICBjaGVja0Zsb2F0NChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVu
Y3Rpb246ICJsZXNzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDU2KSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBbMSwgMSwgMCwgMF0p
OworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQi
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDU2KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCBbMCwgMCwgMSwgMF0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImxlc3NFcXVh
bCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA1NiksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzEsIDEsIDEsIDBdKTsKKyAgICBjaGVj
a0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBj
b21wYXJlRnVuY3Rpb246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDU2KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBb
MCwgMCwgMCwgMV0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogIm5vdEVxdWFsIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDU2KSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCBbMSwgMSwgMCwgMV0pOworICAgIGNoZWNrRmxvYXQ0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5j
dGlvbjogImdyZWF0ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCA1NiksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzAsIDAs
IDEsIDFdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNTYpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIFsxLCAxLCAxLCAxXSk7CisgICAgLy8gRklYTUU6IEdhdGhlciBvdGhl
ciBjb21wb25lbnRzCiB9CiAKIG9rVG9UZXN0ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1cmUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9UZXh0dXJlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwNzY5NGZhYzI2N2E3NzgzNjViOTRhNjhj
MDIxMzcwMjU0Y2E1MGYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9UZXh0dXJlLmpzCkBAIC0wLDAgKzEsNTQ0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyJ1c2Ugc3RyaWN0IjsKKworY2xhc3MgVGV4dHVyZSB7
CisgICAgY29uc3RydWN0b3IoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxD
b3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgdGhpcy5f
ZGltZW5zaW9uID0gZGltZW5zaW9uOworICAgICAgICB0aGlzLl93aWR0aCA9IHdpZHRoOworICAg
ICAgICB0aGlzLl9oZWlnaHQgPSBoZWlnaHQ7CisgICAgICAgIHRoaXMuX2RlcHRoID0gZGVwdGg7
CisgICAgICAgIHRoaXMuX2xldmVsQ291bnQgPSBsZXZlbENvdW50OworICAgICAgICB0aGlzLl9s
YXllckNvdW50ID0gbGF5ZXJDb3VudDsKKyAgICAgICAgdGhpcy5faW5uZXJUeXBlID0gaW5uZXJU
eXBlOworICAgICAgICB0aGlzLl9kYXRhID0gZGF0YTsKKyAgICB9CisKKyAgICBnZXQgZGltZW5z
aW9uKCkgeyByZXR1cm4gdGhpcy5fZGltZW5zaW9uOyB9CisgICAgZ2V0IHdpZHRoKCkgeyByZXR1
cm4gdGhpcy5fd2lkdGg7IH0KKyAgICBnZXQgaGVpZ2h0KCkgeyByZXR1cm4gdGhpcy5faGVpZ2h0
OyB9CisgICAgZ2V0IGRlcHRoKCkgeyByZXR1cm4gdGhpcy5fZGVwdGg7IH0KKyAgICBnZXQgbGV2
ZWxDb3VudCgpIHsgcmV0dXJuIHRoaXMuX2xldmVsQ291bnQ7IH0KKyAgICBnZXQgbGF5ZXJDb3Vu
dCgpIHsgcmV0dXJuIHRoaXMuX2xheWVyQ291bnQ7IH0KKyAgICBnZXQgaW5uZXJUeXBlKCkgeyBy
ZXR1cm4gdGhpcy5faW5uZXJUeXBlOyB9CisgICAgZ2V0IGRhdGEoKSB7IHJldHVybiB0aGlzLl9k
YXRhOyB9CisKKyAgICBlbGVtZW50Q2hlY2tlZChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAg
eworICAgICAgICBpZiAobGF5ZXIgPCAwIHx8IGxheWVyID49IHRoaXMubGF5ZXJDb3VudAorICAg
ICAgICAgICAgfHwgbGV2ZWwgPCAwIHx8IGxldmVsID49IHRoaXMubGV2ZWxDb3VudAorICAgICAg
ICAgICAgfHwgayA8IDAgfHwgayA+PSB0aGlzLmRlcHRoCisgICAgICAgICAgICB8fCBqIDwgMCB8
fCBqID49IHRoaXMuaGVpZ2h0CisgICAgICAgICAgICB8fCBpIDwgMCB8fCBpID49IHRoaXMud2lk
dGgpCisgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgICByZXR1cm4gdGhpcy5l
bGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSk7CisgICAgfQorCisgICAgc2V0RWxlbWVudENo
ZWNrZWQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmIChs
YXllciA8IDAgfHwgbGF5ZXIgPj0gdGhpcy5sYXllckNvdW50CisgICAgICAgICAgICB8fCBsZXZl
bCA8IDAgfHwgbGV2ZWwgPj0gdGhpcy5sZXZlbENvdW50CisgICAgICAgICAgICB8fCBrIDwgMCB8
fCBrID49IHRoaXMuZGVwdGgKKyAgICAgICAgICAgIHx8IGogPCAwIHx8IGogPj0gdGhpcy5oZWln
aHQKKyAgICAgICAgICAgIHx8IGkgPCAwIHx8IGkgPj0gdGhpcy53aWR0aCkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgdGhpcy5zZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywg
aiwgaSwgdmFsdWUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRl
eHR1cmUxRCBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0
YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiBtaXBtYXBzLgorICAg
ICAgICAvLyBUaGUgZmlyc3QgbWlwbWFwIGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLgorICAgICAg
ICAvLyBFYWNoIGVsZW1lbnQgbWF5IGJlIGEgc2NhbGFyIG9yIGFuIGFycmF5IG9mIDItNCBzY2Fs
YXJzLgorICAgICAgICAvLyBUaGUgd2lkdGggbXVzdCBiZSBhIHBvd2VyLW9mLXR3by4KKyAgICAg
ICAgLy8gRWFjaCBtaXBtYXAgaXMgaGFsZi1zaXplIG9mIHRoZSBwcmV2aW91cyBzaXplLgorCisg
ICAgICAgIGxldCBkaW1lbnNpb24gPSAxOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdLmxl
bmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IDE7CisgICAgICAgIGxldCBkZXB0aCA9IDE7Cisg
ICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBsYXllckNv
dW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwg
bGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3
aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVs
XS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAg
ICAgIHJldHVybiAxOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBq
LCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1baV07CisgICAgfQor
CisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAg
ICAgICAgdGhpcy5kYXRhW2xldmVsXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4
dHVyZTFEQXJyYXkgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUs
IGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgMUQgdGV4dHVy
ZXMuCisgICAgICAgIC8vIEFsbCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNhbWUgd2lkdGggYW5k
IG51bWJlciBvZiBtaXBtYXBzLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAxOworICAgICAg
ICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IDE7
CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YVsw
XS5sZW5ndGg7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAg
IHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVy
Q291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVs
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF0ubGVuZ3RoOworICAg
IH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsK
KyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4g
MTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtpXTsKKyAgICB9CisKKyAgICBz
ZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0
aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4
dHVyZTJEIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRh
KQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIG1pcG1hcHMuCisgICAg
ICAgIC8vIFRoZSBmaXJzdCBtaXBtYXAgaXMgYSByZWN0YW5ndWxhciBhcnJheSBvZiByb3dzLCB3
aGVyZSBlYWNoIHJvdyBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBl
bGVtZW50IG1heSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAg
ICAgLy8gVGhlIHdpZHRoIGFuZCBoZWlnaHQgbXVzdCBiZSBwb3dlcnMtb2YtdHdvLgorICAgICAg
ICAvLyBFYWNoIG1pcG1hcCBpcyBoYWxmLXdpZHRoIGFuZCBoYWxmLWhlaWdodCBvZiB0aGUgcHJl
dmlvdXMgc2l6ZS4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMjsKKyAgICAgICAgbGV0IHdp
ZHRoID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRhWzBdLmxl
bmd0aDsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSBk
YXRhLmxlbmd0aDsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSAxOworICAgICAgICBzdXBlcihk
aW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBp
bm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAg
ICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVts
ZXZlbF0ubGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBq
LCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1bal1baV07CisgICAg
fQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsK
KyAgICAgICAgdGhpcy5kYXRhW2xldmVsXVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworbGV0
IFRleHR1cmVEZXB0aDJEID0gVGV4dHVyZTJEOworCitjbGFzcyBUZXh0dXJlMkRBcnJheSBleHRl
bmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7Cisg
ICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiAyRCB0ZXh0dXJlcy4KKyAgICAgICAgLy8g
QWxsIHRleHR1cmVzIG11c3QgaGF2ZSB0aGUgc2FtZSB3aWR0aCwgaGVpZ2h0IGFuZCBudW1iZXIg
b2YgbWlwbWFwcy4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMjsKKyAgICAgICAgbGV0IHdp
ZHRoID0gZGF0YVswXVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRhWzBd
WzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291
bnQgPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSBkYXRhLmxlbmd0
aDsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxD
b3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0
TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdW2xldmVsXVsw
XS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0aGlzLmRhdGFbMF1bbGV2ZWxdLmxlbmd0aDsKKyAgICB9CisKKyAgICBkZXB0
aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBl
bGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
LmRhdGFbbGF5ZXJdW2xldmVsXVtqXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVy
LCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbbGF5ZXJd
W2xldmVsXVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworbGV0IFRleHR1cmVEZXB0aDJEQXJy
YXkgPSBUZXh0dXJlMkRBcnJheTsKKworY2xhc3MgVGV4dHVyZTNEIGV4dGVuZHMgVGV4dHVyZSB7
CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRh
dGEiIGlzIGFuIGFycmF5IG9mIG1pcG1hcHMuCisgICAgICAgIC8vIFRoZSBmaXJzdCBtaXBtYXAg
aXMgYW4gYXJyYXkgb2YgZGVwdGggc2xpY2VzLCBlYWNoIGRlcHRoIHNsaWNlIGlzIGFuIGFycmF5
IG9mIHJvd3MsIGFuZCBlYWNoIHJvdyBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAg
Ly8gRWFjaCBlbGVtZW50IG1heSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFy
cy4KKyAgICAgICAgLy8gVGhlIHdpZHRoLCBoZWlnaHQsIGFuZCBkZXB0aCBtdXN0IGJlIHBvd2Vy
cy1vZi10d28uCisgICAgICAgIC8vIEVhY2ggbWlwbWFwIGlzIGhhbGYtd2lkdGgsIGhhbGYtaGVp
Z2h0LCBhbmQgaGFsZi1kZXB0aCBvZiB0aGUgcHJldmlvdXMgc2l6ZS4KKworICAgICAgICBsZXQg
ZGltZW5zaW9uID0gMzsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXVswXS5sZW5ndGg7
CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGRl
cHRoID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YS5sZW5n
dGg7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9u
LCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBl
LCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXVswXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVp
Z2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxd
WzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXS5sZW5ndGg7CisgICAgfQorCisgICAgZWxlbWVu
dChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRh
W2xldmVsXVtrXVtqXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwg
aywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbbGV2ZWxdW2tdW2pdW2ld
ID0gdmFsdWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlQ3ViZSBleHRlbmRzIFRleHR1cmUg
eworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJk
YXRhIiBpcyBhbiBhcnJheSBvZiA2IDJEIHRleHR1cmVzLgorICAgICAgICAvLyBBbGwgdGV4dHVy
ZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBhbmQgbnVtYmVyIG9m
IG1pcG1hcHMuCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0
aCA9IGRhdGFbMF1bMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXVsw
XS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50
ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7
CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291
bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExl
dmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF1bMF0u
bGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5kYXRhWzBdW2xldmVsXS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhB
dExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxl
bWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5k
YXRhW2xheWVyXVtsZXZlbF1bal1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwg
bGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVts
ZXZlbF1bal1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2xldCBUZXh0dXJlRGVwdGhDdWJlID0g
VGV4dHVyZUN1YmU7CisKK2NsYXNzIFRleHR1cmUxRFJXIGV4dGVuZHMgVGV4dHVyZSB7CisgICAg
Y29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlz
IGFuIGFycmF5IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBFYWNoIGVsZW1lbnQgbWF5IGJlIGEg
c2NhbGFyIG9yIGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgorICAgICAgICAvLyBUaGUgd2lkdGgg
bXVzdCBiZSBhIHBvd2VyLW9mLXR3by4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMTsKKyAg
ICAgICAgbGV0IHdpZHRoID0gZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSAxOwor
ICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7CisgICAg
ICAgIGxldCBsYXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwg
aGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsK
KyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5kYXRhLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2
ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2ldOworICAgIH0K
KworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7Cisg
ICAgICAgIHRoaXMuZGF0YVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTFE
QXJyYXlSVyBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0
YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiAxRCBSVyB0ZXh0dXJl
cy4KKyAgICAgICAgLy8gQWxsIHRleHR1cmVzIG11c3QgaGF2ZSB0aGUgc2FtZSBzaXplLgorCisg
ICAgICAgIGxldCBkaW1lbnNpb24gPSAxOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdLmxl
bmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IDE7CisgICAgICAgIGxldCBkZXB0aCA9IDE7Cisg
ICAgICAgIGxldCBsZXZlbENvdW50ID0gMTsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSBkYXRh
Lmxlbmd0aDsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwg
bGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3
aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdLmxl
bmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIDE7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkp
CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xheWVyXVtpXTsKKyAgICB9CisKKyAg
ICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAg
ICB0aGlzLmRhdGFbbGF5ZXJdW2ldID0gdmFsdWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJl
MkRSVyBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkK
KyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhIHJlY3Rhbmd1bGFyIGFycmF5IG9mIHJvd3Ms
IHdoZXJlIGVhY2ggcm93IGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBFYWNo
IGVsZW1lbnQgbWF5IGJlIGEgc2NhbGFyIG9yIGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgorICAg
ICAgICAvLyBUaGUgd2lkdGggYW5kIGhlaWdodCBtdXN0IGJlIHBvd2Vycy1vZi10d28uCisKKyAg
ICAgICAgbGV0IGRpbWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF0ubGVu
Z3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0
aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gMTsKKyAgICAgICAgbGV0IGxheWVyQ291
bnQgPSAxOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBs
ZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdp
ZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF0ubGVu
Z3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICBy
ZXR1cm4gdGhpcy5kYXRhLmxlbmd0aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwp
CisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBs
ZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbal1baV07Cisg
ICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAg
IHsKKyAgICAgICAgdGhpcy5kYXRhW2pdW2ldID0gdmFsdWU7CisgICAgfQorfQorCitsZXQgVGV4
dHVyZURlcHRoMkRSVyA9IFRleHR1cmUyRFJXOworCitjbGFzcyBUZXh0dXJlMkRBcnJheVJXIGV4
dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsK
KyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIDJEIFJXIHRleHR1cmVzLgorICAgICAg
ICAvLyBBbGwgdGV4dHVyZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHdpZHRoIGFuZCBoZWlnaHQuCisK
KyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1b
MF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAg
IGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gMTsKKyAgICAgICAgbGV0
IGxheWVyQ291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0
aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRh
KTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1
cm4gdGhpcy5kYXRhWzBdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxl
dmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXS5sZW5ndGg7CisgICAgfQor
CisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAg
fQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICBy
ZXR1cm4gdGhpcy5kYXRhW2xheWVyXVtqXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxh
eWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbbGF5
ZXJdW2pdW2ldID0gdmFsdWU7CisgICAgfQorfQorCitsZXQgVGV4dHVyZURlcHRoMkRBcnJheVJX
ID0gVGV4dHVyZTJEQXJyYXlSVworCitjbGFzcyBUZXh0dXJlM0RSVyBleHRlbmRzIFRleHR1cmUg
eworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJk
YXRhIiBpcyBhbiBhcnJheSBvZiBkZXB0aCBzbGljZXMsIGVhY2ggZGVwdGggc2xpY2UgaXMgYW4g
YXJyYXkgb2Ygcm93cywgYW5kIGVhY2ggcm93IGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLgorICAg
ICAgICAvLyBFYWNoIGVsZW1lbnQgbWF5IGJlIGEgc2NhbGFyIG9yIGFuIGFycmF5IG9mIDItNCBz
Y2FsYXJzLgorICAgICAgICAvLyBUaGUgd2lkdGgsIGhlaWdodCwgYW5kIGRlcHRoIG11c3QgYmUg
cG93ZXJzLW9mLXR3by4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMzsKKyAgICAgICAgbGV0
IHdpZHRoID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRhWzBd
Lmxlbmd0aDsKKyAgICAgICAgbGV0IGRlcHRoID0gZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBs
ZXZlbENvdW50ID0gMTsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSAxOworICAgICAgICBzdXBl
cihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50
LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bMF0ubGVuZ3RoOworICAgIH0KKworICAg
IGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBd
Lmxlbmd0aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5kYXRhLmxlbmd0aDsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBs
ZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFba11bal1baV07
CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQor
ICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2tdW2pdW2ldID0gdmFsdWU7CisgICAgfQorfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlT3BlcmF0aW9ucy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yZGFkYjg1MDA5MDQxMDFiZmU0YjQ3ODAyODk1MzA5ZGVlOGQxNzgyCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJh
dGlvbnMuanMKQEAgLTAsMCArMSw3ODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworInVzZSBzdHJpY3QiOworCitmdW5jdGlvbiBkZXB0aENvbXBhcmVPcGVy
YXRpb24oZHJlZiwgZCwgY29tcGFyZUZ1bmN0aW9uKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMg
c2VjdGlvbiAxNS4zLjQKKyAgICBzd2l0Y2ggKGNvbXBhcmVGdW5jdGlvbikgeworICAgICAgICBj
YXNlICJuZXZlciI6CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgY2FzZSAibGVzcyI6
CisgICAgICAgICAgICByZXR1cm4gZHJlZiA8IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAiZXF1
YWwiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYgPT0gZCA/IDEgOiAwOworICAgICAgICBjYXNl
ICJsZXNzRXF1YWwiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYgPD0gZCA/IDEgOiAwOworICAg
ICAgICBjYXNlICJncmVhdGVyIjoKKyAgICAgICAgICAgIHJldHVybiBkcmVmID4gZCA/IDEgOiAw
OworICAgICAgICBjYXNlICJub3RFcXVhbCI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiAhPSBk
ID8gMSA6IDA7CisgICAgICAgIGNhc2UgImdyZWF0ZXJFcXVhbCI6CisgICAgICAgICAgICByZXR1
cm4gZHJlZiA+PSBkID8gMSA6IDA7CisgICAgICAgIGNhc2UgImFsd2F5cyI6CisgICAgICAgICAg
ICByZXR1cm4gMTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiVW5rbm93biBkZXB0aCBjb21wYXJpc29uIGZ1bmN0aW9uIik7CisgICAgfQorfQorCitmdW5j
dGlvbiBjb252ZXJzaW9uVG9SR0JBKHZhbHVlKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2Vj
dGlvbiAxNS4zLjUKKyAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSkgeworICAgICAgICBs
ZXQgcmVzdWx0ID0gW107CisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3Ro
OyArK2kpCisgICAgICAgICAgICByZXN1bHQucHVzaCh2YWx1ZVtpXSk7CisgICAgICAgIHdoaWxl
IChyZXN1bHQubGVuZ3RoICE9IDQpCisgICAgICAgICAgICByZXN1bHQucHVzaChyZXN1bHQubGVu
Z3RoID09IDMgPyAxIDogMCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfSBlbHNlCisg
ICAgICAgIHJldHVybiBbdmFsdWUsIDAsIDAsIDFdOworfQorCitmdW5jdGlvbiBwcm9qZWN0aW9u
T3BlcmF0aW9uKHMsIHQsIHIsIGRyZWYsIHEpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0
aW9uIDE1LjYuMQorICAgIHJldHVybiBbcyAvIHEsIHQgLyBxLCByIC8gcSwgZHJlZiAhPSB1bmRl
ZmluZWQgPyBkcmVmIC8gcSA6IHVuZGVmaW5lZF07Cit9CisKK2Z1bmN0aW9uIGN1YmVNYXBGYWNl
U2VsZWN0aW9uKHMsIHQsIHIsIHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUnhXaXRo
UmVzcGVjdFRvWSwgcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSeVdpdGhSZXNwZWN0
VG9ZLCBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1kpCit7
CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuNAorICAgIGxldCByeCA9IHM7Cisg
ICAgbGV0IHJ5ID0gdDsKKyAgICBsZXQgcnogPSByOworICAgIGxldCB3aW5uZXIgPSAwOworICAg
IGlmIChNYXRoLmFicyhyeikgPj0gTWF0aC5hYnMocnkpICYmIE1hdGguYWJzKHJ6KSA+PSBNYXRo
LmFicyhyeCkpCisgICAgICAgIHdpbm5lciA9IDI7CisgICAgZWxzZSBpZiAoTWF0aC5hYnMocnkp
ID49IE1hdGguYWJzKHJ4KSAmJiBNYXRoLmFicyhyeSkgPj0gTWF0aC5hYnMocnopKQorICAgICAg
ICB3aW5uZXIgPSAxOworCisgICAgbGV0IGxheWVyTnVtYmVyOworICAgIGxldCBzYzsKKyAgICBs
ZXQgdGM7CisgICAgbGV0IHJjOworICAgIGxldCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWDsKKyAg
ICBsZXQgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1k7CisgICAgbGV0IHBhcnRpYWxUY1dpdGhSZXNw
ZWN0VG9YOworICAgIGxldCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWTsKKyAgICBsZXQgcGFydGlh
bFJjV2l0aFJlc3BlY3RUb1g7CisgICAgbGV0IHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZOworICAg
IGlmICh3aW5uZXIgPT0gMCAmJiByeCA+PSAwKSB7CisgICAgICAgIGxheWVyTnVtYmVyID0gMDsK
KyAgICAgICAgc2MgPSAtcno7CisgICAgICAgIHRjID0gLXJ5OworICAgICAgICByYyA9IHJ4Owor
ICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRv
WDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ6V2l0aFJlc3Bl
Y3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhS
ZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlX
aXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFs
UnhXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0
aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAgICB9IGVsc2UgaWYgKHdpbm5lciA9PSAwKSB7CisgICAg
ICAgIGxheWVyTnVtYmVyID0gMTsKKyAgICAgICAgc2MgPSByejsKKyAgICAgICAgdGMgPSAtcnk7
CisgICAgICAgIHJjID0gcng7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gcGFy
dGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0g
cGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9Y
ID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVj
dFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJl
c3BlY3RUb1ggPSAtcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dp
dGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxzZSBpZiAo
d2lubmVyID09IDEgJiYgcnkgPj0gMCkgeworICAgICAgICBsYXllck51bWJlciA9IDI7CisgICAg
ICAgIHNjID0gcng7CisgICAgICAgIHRjID0gLXJ6OworICAgICAgICByYyA9IHJ5OworICAgICAg
ICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAg
ICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOwor
ICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9Y
OworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeldpdGhSZXNwZWN0
VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeVdpdGhSZXNw
ZWN0VG9YOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeVdpdGhS
ZXNwZWN0VG9ZOworICAgIH0gZWxzZSBpZiAod2lubmVyID09IDEpIHsKKyAgICAgICAgbGF5ZXJO
dW1iZXIgPSAzOworICAgICAgICBzYyA9IHJ4OworICAgICAgICB0YyA9IC1yejsKKyAgICAgICAg
cmMgPSByeTsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnhXaXRo
UmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnhX
aXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlh
bFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBh
cnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9
IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RU
b1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgfSBlbHNlIGlmICh3aW5uZXIgPT0g
MiAmJiByeiA+PSAwKSB7CisgICAgICAgIGxheWVyTnVtYmVyID0gNDsKKyAgICAgICAgc2MgPSBy
eDsKKyAgICAgICAgdGMgPSAtcnk7CisgICAgICAgIHJjID0gcno7CisgICAgICAgIHBhcnRpYWxT
Y1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRp
YWxTY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBh
cnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAg
ICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAg
ICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsK
KyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRv
WTsKKyAgICB9IGVsc2UgeworICAgICAgICBsYXllck51bWJlciA9IDU7CisgICAgICAgIHNjID0g
LXJ4OworICAgICAgICB0YyA9IC1yeTsKKyAgICAgICAgcmMgPSByejsKKyAgICAgICAgcGFydGlh
bFNjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBh
cnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgICAg
ICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAg
ICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7
CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0
VG9YOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnpXaXRoUmVz
cGVjdFRvWTsKKyAgICB9CisgICAgcmV0dXJuIFtsYXllck51bWJlciwgc2MsIHRjLCByYywgcGFy
dGlhbFNjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVGNX
aXRoUmVzcGVjdFRvWCwgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSY1dpdGhSZXNw
ZWN0VG9YLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWV0KK30KKworZnVuY3Rpb24gY3ViZU1hcENv
b3JkaW5hdGVUcmFuc2Zvcm1hdGlvbihzYywgdGMsIHJjKQoreworICAgIC8vIFZ1bGthbiAxLjEu
ODMgc2VjdGlvbiAxNS42LjUKKyAgICBsZXQgc0ZhY2UgPSAoMSAvIDIpICogc2MgLyBNYXRoLmFi
cyhyYykgKyAoMSAvIDIpOworICAgIGxldCB0RmFjZSA9ICgxIC8gMikgKiB0YyAvIE1hdGguYWJz
KHJjKSArICgxIC8gMik7CisgICAgcmV0dXJuIFtzRmFjZSwgdEZhY2VdOworfQorCitmdW5jdGlv
biBjdWJlTWFwRGVyaXZhdGl2ZVRyYW5zZm9ybWF0aW9uKHNjLCB0YywgcmMsIHBhcnRpYWxTY1dp
dGhSZXNwZWN0VG9YLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRjV2l0aFJlc3Bl
Y3RUb1gsIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCwg
cGFydGlhbFJjV2l0aFJlc3BlY3RUb1kpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9u
IDE1LjYuNgorICAgIGxldCBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWCA9ICgxIC8gMikgKiAo
KE1hdGguYWJzKHJjKSAqIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YIC0gc2MgKiBwYXJ0aWFsUmNX
aXRoUmVzcGVjdFRvWCkgLyBNYXRoLnBvdyhyYywgMikpOworICAgIGxldCBwYXJ0aWFsU0ZhY2VX
aXRoUmVzcGVjdFRvWSA9ICgxIC8gMikgKiAoKE1hdGguYWJzKHJjKSAqIHBhcnRpYWxTY1dpdGhS
ZXNwZWN0VG9ZIC0gc2MgKiBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSkgLyBNYXRoLnBvdyhyYywg
MikpOworICAgIGxldCBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRvWCA9ICgxIC8gMikgKiAoKE1h
dGguYWJzKHJjKSAqIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YIC0gdGMgKiBwYXJ0aWFsUmNXaXRo
UmVzcGVjdFRvWCkgLyBNYXRoLnBvdyhyYywgMikpOworICAgIGxldCBwYXJ0aWFsVEZhY2VXaXRo
UmVzcGVjdFRvWSA9ICgxIC8gMikgKiAoKE1hdGguYWJzKHJjKSAqIHBhcnRpYWxUY1dpdGhSZXNw
ZWN0VG9ZIC0gdGMgKiBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSkgLyBNYXRoLnBvdyhyYywgMikp
OworICAgIHJldHVybiBbcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTRmFjZVdp
dGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRGYWNlV2l0
aFJlc3BlY3RUb1ldOworfQorCitmdW5jdGlvbiBzY2FsZUZhY3Rvck9wZXJhdGlvbihkZXZpY2VN
YXhBbmlzb3Ryb3B5LCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgc2FtcGxlck1heEFuaXNvdHJvcHks
IHBhcnRpYWxTV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxS
V2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxUV2l0aFJlc3Bl
Y3RUb1ksIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBz
ZWN0aW9uIDE1LjYuNworICAgIGxldCBtdXggPSBNYXRoLmFicyhwYXJ0aWFsU1dpdGhSZXNwZWN0
VG9YKSAqIHdpZHRoOworICAgIGxldCBtdnggPSBNYXRoLmFicyhwYXJ0aWFsVFdpdGhSZXNwZWN0
VG9YKSAqIGhlaWdodDsKKyAgICBsZXQgbXd4ID0gTWF0aC5hYnMocGFydGlhbFJXaXRoUmVzcGVj
dFRvWCkgKiBkZXB0aDsKKyAgICBsZXQgbXV5ID0gTWF0aC5hYnMocGFydGlhbFNXaXRoUmVzcGVj
dFRvWSkgKiB3aWR0aDsKKyAgICBsZXQgbXZ5ID0gTWF0aC5hYnMocGFydGlhbFRXaXRoUmVzcGVj
dFRvWSkgKiBoZWlnaHQ7CisgICAgbGV0IG13eSA9IE1hdGguYWJzKHBhcnRpYWxSV2l0aFJlc3Bl
Y3RUb1kpICogZGVwdGg7CisKKyAgICAvLyBJIG1hZGUgdGhpcyB1cC4gVGhlIGZvcm11bGEgaXNu
J3QgbGlzdGVkIGluIHRoZSBzcGVjLgorICAgIGxldCBmeCA9IE1hdGguc3FydChtdXggKiBtdXgg
KyBtdnggKiBtdnggKyBtd3ggKiBtd3gpOworICAgIGxldCBmeSA9IE1hdGguc3FydChtdXkgKiBt
dXkgKyBtdnkgKiBtdnkgKyBtd3kgKiBtd3kpOworCisgICAgbGV0IHJob1ggPSBmeDsKKyAgICBs
ZXQgcmhvWSA9IGZ5OworICAgIGxldCByaG9NYXggPSBNYXRoLm1heChyaG9YLCByaG9ZKTsKKyAg
ICBsZXQgcmhvTWluID0gTWF0aC5taW4ocmhvWCwgcmhvWSk7CisKKyAgICBsZXQgbWF4QW5pc28g
PSBNYXRoLm1pbihzYW1wbGVyTWF4QW5pc290cm9weSwgZGV2aWNlTWF4QW5pc290cm9weSk7CisK
KyAgICBsZXQgZXRhOworICAgIGlmIChyaG9NYXggPT0gMCAmJiByaG9NaW4gPT0gMCkKKyAgICAg
ICAgZXRhID0gMTsKKyAgICBlbHNlIGlmIChyaG9NaW4gPT0gMCkKKyAgICAgICAgZXRhID0gbWF4
QW5pc287CisgICAgZWxzZQorICAgICAgICBldGEgPSBNYXRoLm1pbihyaG9NYXggLyByaG9NaW4s
IG1heEFuaXNvKTsKKworICAgIGxldCBOID0gTWF0aC5jZWlsKGV0YSk7CisgICAgcmV0dXJuIFty
aG9NYXgsIHJob01pbiwgZXRhLCBOXTsKK30KKworZnVuY3Rpb24gbGV2ZWxPZkRldGFpbE9wZXJh
dGlvbihkZXZpY2VNYXhTYW1wbGVyTG9kQmlhcywgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwgbG9k
TWluRnJvbUZ1bmN0aW9uT3BlcmFuZCwgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIHNhbXBsZXJC
aWFzLCBzYW1wbGVyTG9kTWluLCBzYW1wbGVyTG9kTWF4LCByaG9NYXgsIGV0YSkKK3sKKyAgICAv
LyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi43CisgICAgaWYgKGJpYXNGcm9tRnVuY3Rpb25P
cGVyYW5kID09IHVuZGVmaW5lZCkKKyAgICAgICAgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQgPSAw
OworCisgICAgbGV0IGxhbWJkYUJhc2UgPSBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kICE9IHVuZGVm
aW5lZCA/IGxvZEZyb21GdW5jdGlvbk9wZXJhbmQgOiBNYXRoLmxvZzIocmhvTWF4IC8gZXRhKTsK
KyAgICBsZXQgbGFtYmRhUHJpbWUgPSBsYW1iZGFCYXNlICsgTWF0aC5taW4oTWF0aC5tYXgoc2Ft
cGxlckJpYXMgKyBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwgLWRldmljZU1heFNhbXBsZXJMb2RC
aWFzKSwgZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMpOworICAgIGxldCBsb2RNaW4gPSBNYXRoLm1h
eChzYW1wbGVyTG9kTWluLCBsb2RNaW5Gcm9tRnVuY3Rpb25PcGVyYW5kKTsKKyAgICBsZXQgbG9k
TWF4ID0gc2FtcGxlckxvZE1heDsKKyAgICBsZXQgbGFtYmRhOworICAgIGlmIChsYW1iZGFQcmlt
ZSA+IGxvZE1heCkKKyAgICAgICAgbGFtYmRhID0gbG9kTWF4OworICAgIGVsc2UgaWYgKGxvZE1p
biA8PSBsYW1iZGFQcmltZSAmJiBsYW1iZGFQcmltZSA8PSBsb2RNYXgpCisgICAgICAgIGxhbWJk
YSA9IGxhbWJkYVByaW1lOworICAgIGVsc2UgaWYgKGxhbWJkYVByaW1lIDwgbG9kTWluKQorICAg
ICAgICBsYW1iZGEgPSBsb2RNaW47CisgICAgZWxzZQorICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
ImxvZE1pbiA+PSBsb2RNYXgiKTsKKyAgICByZXR1cm4gbGFtYmRhOworfQorCitmdW5jdGlvbiBp
bWFnZUxldmVsU2VsZWN0aW9uKGJhc2VNaXBMZXZlbCwgbGV2ZWxDb3VudCwgbWlwbWFwTW9kZSwg
bGFtYmRhKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjcKKyAgICBmdW5j
dGlvbiBuZWFyZXN0KGRQcmltZSkKKyAgICB7CisgICAgICAgIHJldHVybiBNYXRoLmNlaWwoZFBy
aW1lICsgMC41KSAtIDE7CisgICAgfQorCisgICAgbGV0IHEgPSBsZXZlbENvdW50IC0gMTsKKyAg
ICBsZXQgZFByaW1lID0gYmFzZU1pcExldmVsICsgTWF0aC5taW4oTWF0aC5tYXgobGFtYmRhLCAw
KSwgcSk7CisgICAgbGV0IGRsOworICAgIGlmIChtaXBtYXBNb2RlID09ICJuZWFyZXN0IikKKyAg
ICAgICAgZGwgPSBuZWFyZXN0KGRQcmltZSk7CisgICAgZWxzZQorICAgICAgICBkbCA9IGRQcmlt
ZTsKKyAgICBpZiAobWlwbWFwTW9kZSA9PSAibmVhcmVzdCIpCisgICAgICAgIHJldHVybiBkbDsK
KyAgICBlbHNlIHsKKyAgICAgICAgbGV0IGRIaSA9IE1hdGguZmxvb3IoZGwpOworICAgICAgICBs
ZXQgZExvdyA9IE1hdGgubWluKGRIaSArIDEsIHEpOworICAgICAgICBsZXQgZGVsdGEgPSBkbCAt
IGRIaTsKKyAgICAgICAgcmV0dXJuIFtkSGksIGRMb3csIGRlbHRhXTsKKyAgICB9Cit9CisKK2Z1
bmN0aW9uIHN0cnFhVG9VVldBVHJhbnNmb3JtYXRpb24ocywgdCwgciwgd2lkdGgsIGhlaWdodCwg
ZGVwdGgpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuOAorICAgIGxldCB1
ID0gcyAqIHdpZHRoOworICAgIGxldCB2ID0gdCAqIGhlaWdodDsKKyAgICBsZXQgdyA9IHIgKiBk
ZXB0aDsKKyAgICByZXR1cm4gW3UsIHYsIHddOworfQorCitmdW5jdGlvbiB1dndhVG9JSktMTlRy
YW5zZm9ybWF0aW9uQW5kQXJyYXlMYXllclNlbGVjdGlvbihsYXllckNvdW50LCBiYXNlQXJyYXlM
YXllciwgZmlsdGVyLCB1LCB2LCB3LCBhLCBkZWx0YUksIGRlbHRhSiwgZGVsdGFLKQoreworICAg
IC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS43LjEKKworICAgIGlmIChkZWx0YUkgPT0gdW5k
ZWZpbmVkKQorICAgICAgICBkZWx0YUkgPSAwOworICAgIGlmIChkZWx0YUogPT0gdW5kZWZpbmVk
KQorICAgICAgICBkZWx0YUogPSAwOworICAgIGlmIChkZWx0YUsgPT0gdW5kZWZpbmVkKQorICAg
ICAgICBkZWx0YUsgPSAwOworCisgICAgZnVuY3Rpb24gcm5lKGEpCisgICAgeworICAgICAgICBy
ZXR1cm4gTWF0aC5mbG9vcihhICsgMC41KTsKKyAgICB9CisgICAgbGV0IGwgPSBNYXRoLm1pbihN
YXRoLm1heChybmUoYSksIDApLCBsYXllckNvdW50IC0gMSkgKyBiYXNlQXJyYXlMYXllcjsKKyAg
ICBsZXQgaTsKKyAgICBsZXQgajsKKyAgICBsZXQgazsKKyAgICBpZiAoZmlsdGVyID09ICJuZWFy
ZXN0IikgeworICAgICAgICBpID0gTWF0aC5mbG9vcih1KTsKKyAgICAgICAgaiA9IE1hdGguZmxv
b3Iodik7CisgICAgICAgIGsgPSBNYXRoLmZsb29yKHcpOworICAgICAgICAKKyAgICAgICAgaSAr
PSBkZWx0YUk7CisgICAgICAgIGogKz0gZGVsdGFKOworICAgICAgICBrICs9IGRlbHRhSzsKKyAg
ICAgICAgCisgICAgICAgIHJldHVybiBbaSwgaiwgaywgbF07CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgaWYgKGZpbHRlciAhPSAibGluZWFyIikKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigi
VW5rbm93biBmaWx0ZXIiKTsKKyAgICAgICAgbGV0IGkwID0gTWF0aC5mbG9vcih1IC0gMC41KTsK
KyAgICAgICAgbGV0IGkxID0gaTAgKyAxOworICAgICAgICBsZXQgajAgPSBNYXRoLmZsb29yKHYg
LSAwLjUpOworICAgICAgICBsZXQgajEgPSBqMCArIDE7CisgICAgICAgIGxldCBrMCA9IE1hdGgu
Zmxvb3IodyAtIDAuNSk7CisgICAgICAgIGxldCBrMSA9IGswICsgMTsKKyAgICAgICAgbGV0IGFs
cGhhID0gKHUgLSAwLjUpIC0gaTA7CisgICAgICAgIGxldCBiZXRhID0gKHYgLSAwLjUpIC0gajA7
CisgICAgICAgIGxldCBnYW1tYSA9ICh3IC0gMC41KSAtIGswOworICAgICAgICAKKyAgICAgICAg
aTAgKz0gZGVsdGFJOworICAgICAgICBpMSArPSBkZWx0YUk7CisgICAgICAgIGowICs9IGRlbHRh
SjsKKyAgICAgICAgajEgKz0gZGVsdGFKOworICAgICAgICBrMCArPSBkZWx0YUs7CisgICAgICAg
IGsxICs9IGRlbHRhSzsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBbaTAsIGkxLCBqMCwgajEs
IGswLCBrMSwgbCwgYWxwaGEsIGJldGEsIGdhbW1hXTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGlu
dGVnZXJUZXhlbENvb3JkaW5hdGVPcGVyYXRpb25zKGJhc2VNaXBMZXZlbCwgbGV2ZWxDb3VudCwg
bGV2ZWxCYXNlLCBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kKQoreworICAgIC8vIFZ1bGthbiAxLjEu
ODMgc2VjdGlvbiAxNS44CisgICAgbGV0IGQgPSBsZXZlbEJhc2UgKyBsb2RGcm9tRnVuY3Rpb25P
cGVyYW5kOworICAgIGlmIChkIDwgYmFzZU1pcExldmVsIHx8IGQgPj0gYmFzZU1pcExldmVsICsg
bGV2ZWxDb3VudCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTZWxlY3RlZCBsZXZlbCBkb2Vz
IG5vdCBsaWUgaW5zaWRlIHRoZSBpbWFnZSIpOworICAgIHJldHVybiBkOworfQorCitmdW5jdGlv
biB3cmFwcGluZ09wZXJhdGlvbih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgYWRkcmVzc01vZGVVLCBh
ZGRyZXNzTW9kZVYsIGFkZHJlc3NNb2RlVywgaSwgaiwgaykKK3sKKyAgICAvLyBWdWxrYW4gMS4x
LjgzIHNlY3Rpb24gMTUuOS4xCisgICAgLy8gRklYTUU6ICJDdWJlIGltYWdlcyBpZ25vcmUgdGhl
IHdyYXAgbW9kZXMgc3BlY2lmaWVkIGluIHRoZSBzYW1wbGVyLiBJbnN0ZWFkLCBpZiBWS19GSUxU
RVJfTkVBUkVTVCBpcyB1c2VkIHdpdGhpbiBhIG1pcCBsZXZlbCB0aGVuIFZLX1NBTVBMRVJfQURE
UkVTU19NT0RFX0NMQU1QX1RPX0VER0UgaXMgdXNlZCwgYW5kIGlmIFZLX0ZJTFRFUl9MSU5FQVIg
aXMgdXNlZCB3aXRoaW4gYSBtaXAgbGV2ZWwgdGhlbiBzYW1wbGluZyBhdCB0aGUgZWRnZXMgaXMg
cGVyZm9ybWVkIGFzIGRlc2NyaWJlZCBlYXJsaWVyIGluIHRoZSBDdWJlIG1hcCBlZGdlIGhhbmRs
aW5nIHNlY3Rpb24uIgorICAgIGZ1bmN0aW9uIHRyYW5zZm9ybShhZGRyZXNzTW9kZSwgc2l6ZSwg
aSkKKyAgICB7CisgICAgICAgIGZ1bmN0aW9uIG1pcnJvcihuKSB7CisgICAgICAgICAgICBpZiAo
biA+PSAwKQorICAgICAgICAgICAgICAgIHJldHVybiBuOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIHJldHVybiAtKDEgKyBuKTsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2gg
KGFkZHJlc3NNb2RlKSB7CisgICAgICAgICAgICBjYXNlICJjbGFtcFRvRWRnZSI6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGksIDApLCBzaXplIC0gMSk7CisgICAg
ICAgICAgICBjYXNlICJyZXBlYXQiOgorICAgICAgICAgICAgICAgIHJldHVybiBpICUgc2l6ZTsK
KyAgICAgICAgICAgIGNhc2UgIm1pcnJvclJlcGVhdCI6CisgICAgICAgICAgICAgICAgcmV0dXJu
IChzaXplIC0gMSkgLSBtaXJyb3IoKGkgJSAoMiAqIHNpemUpKSAtIHNpemUpOworICAgICAgICAg
ICAgY2FzZSAiY2xhbXBUb0JvcmRlckNvbG9yIjoKKyAgICAgICAgICAgICAgICByZXR1cm4gTWF0
aC5taW4oTWF0aC5tYXgoaSwgLTEpLCBzaXplKTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGFkZHJlc3MgbW9kZSIpOworICAg
ICAgICB9CisgICAgfQorICAgIHJldHVybiBbdHJhbnNmb3JtKGFkZHJlc3NNb2RlVSwgd2lkdGgs
IGkpLCB0cmFuc2Zvcm0oYWRkcmVzc01vZGVWLCBoZWlnaHQsIGopLCB0cmFuc2Zvcm0oYWRkcmVz
c01vZGVXLCBkZXB0aCwgayldOworfQorCitmdW5jdGlvbiBjYWxjdWxhdGVMYW1iZGEoZGV2aWNl
TWF4QW5pc290cm9weSwgZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMsIHRleHR1cmUsIHNhbXBsZXIs
IHNhbXBsZXJCaWFzLCBzLCB0LCByLCBhLCBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLCBsb2RNaW5G
cm9tRnVuY3Rpb25PcGVyYW5kLCBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwgZGR4LCBkZHkpCit7
CisgICAgbGV0IHBhcnRpYWxTV2l0aFJlc3BlY3RUb1ggPSAwOworICAgIGxldCBwYXJ0aWFsVFdp
dGhSZXNwZWN0VG9YID0gMDsKKyAgICBsZXQgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCA9IDA7Cisg
ICAgaWYgKGRkeCAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgcGFydGlhbFNXaXRoUmVzcGVjdFRv
WCA9IGRkeFswXTsKKyAgICAgICAgcGFydGlhbFRXaXRoUmVzcGVjdFRvWCA9IGRkeFsxXTsKKyAg
ICAgICAgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCA9IGRkeFsyXTsKKyAgICB9CisgICAgbGV0IHBh
cnRpYWxTV2l0aFJlc3BlY3RUb1kgPSAwOworICAgIGxldCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9Z
ID0gMDsKKyAgICBsZXQgcGFydGlhbFJXaXRoUmVzcGVjdFRvWSA9IDA7CisgICAgaWYgKGRkeSAh
PSB1bmRlZmluZWQpIHsKKyAgICAgICAgcGFydGlhbFNXaXRoUmVzcGVjdFRvWSA9IGRkeVswXTsK
KyAgICAgICAgcGFydGlhbFRXaXRoUmVzcGVjdFRvWSA9IGRkeVsxXTsKKyAgICAgICAgcGFydGlh
bFJXaXRoUmVzcGVjdFRvWSA9IGRkeVsyXTsKKyAgICB9CisKKyAgICBpZiAodGV4dHVyZSBpbnN0
YW5jZW9mIFRleHR1cmVDdWJlKSB7CisgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgY3ViZW1hcCBl
ZGdlL2Nvcm5lcnMgY29ycmVjdGx5CisgICAgICAgIGxldCBbbGF5ZXJOdW1iZXIsIHNjLCB0Yywg
cmMsIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSwgcGFy
dGlhbFRjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUmNX
aXRoUmVzcGVjdFRvWCwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ldID0gY3ViZU1hcEZhY2VTZWxl
Y3Rpb24ocywgdCwgciwgcGFydGlhbFNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNXaXRoUmVzcGVj
dFRvWSwgcGFydGlhbFRXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRXaXRoUmVzcGVjdFRvWSwgcGFy
dGlhbFJXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWSkKKyAgICAgICAgbGV0
IFtzRmFjZSwgdEZhY2VdID0gY3ViZU1hcENvb3JkaW5hdGVUcmFuc2Zvcm1hdGlvbihzYywgdGMs
IHJjKQorICAgICAgICBsZXQgW3BhcnRpYWxTRmFjZVdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU0Zh
Y2VXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxURmFj
ZVdpdGhSZXNwZWN0VG9ZXSA9IGN1YmVNYXBEZXJpdmF0aXZlVHJhbnNmb3JtYXRpb24oc2MsIHRj
LCByYywgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZLCBw
YXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxS
Y1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSkKKyAgICAgICAgcyA9IHNG
YWNlOworICAgICAgICB0ID0gdEZhY2U7CisgICAgICAgIHIgPSAwOworICAgICAgICBhID0gbGF5
ZXJOdW1iZXI7CisgICAgICAgIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsU0ZhY2VX
aXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxT
RmFjZVdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YID0gcGFy
dGlhbFRGYWNlV2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1kg
PSBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJXaXRoUmVzcGVj
dFRvWCA9IDA7CisgICAgICAgIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kgPSAwOworICAgIH0KKwor
ICAgIGxldCBbcmhvTWF4LCByaG9NaW4sIGV0YSwgTl0gPSBzY2FsZUZhY3Rvck9wZXJhdGlvbihk
ZXZpY2VNYXhBbmlzb3Ryb3B5LCB0ZXh0dXJlLndpZHRoLCB0ZXh0dXJlLmhlaWdodCwgdGV4dHVy
ZS5kZXB0aCwgc2FtcGxlci5tYXhBbmlzb3Ryb3B5LCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9YLCBw
YXJ0aWFsVFdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU1dp
dGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUldpdGhSZXNwZWN0
VG9ZKTsKKyAgICBsZXQgbGFtYmRhID0gbGV2ZWxPZkRldGFpbE9wZXJhdGlvbihkZXZpY2VNYXhT
YW1wbGVyTG9kQmlhcywgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwgbG9kTWluRnJvbUZ1bmN0aW9u
T3BlcmFuZCwgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIHNhbXBsZXJCaWFzLCBzYW1wbGVyLmxv
ZE1pbkNsYW1wLCBzYW1wbGVyLmxvZE1heENsYW1wLCByaG9NYXgsIGV0YSk7CisgICAgcmV0dXJu
IFtzLCB0LCByLCBhLCBsYW1iZGFdOworfQorCitmdW5jdGlvbiBjb21wdXRlVGF1KGxldmVsLCBi
YXNlQXJyYXlMYXllciwgdGV4dHVyZSwgc2FtcGxlciwgYWRkcmVzc01vZGVVLCBhZGRyZXNzTW9k
ZVYsIGFkZHJlc3NNb2RlVywgZmlsdGVyLCBzLCB0LCByLCBhLCBkZWx0YUksIGRlbHRhSiwgZGVs
dGFLKQoreworICAgIGZ1bmN0aW9uIGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBs
LCBpLCBqLCBrKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gc2hvdWxkQmVCb3JkZXIodmFsdWUs
IG1heCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHZhbHVlIDwgLTEgfHwgdmFsdWUgPiBt
YXgpCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJPdXQtb2YtYm91bmRzIHRleHR1
cmUgcmVhZCIpOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09IC0xIHx8IHZhbHVlID09IG1h
eDsKKyAgICAgICAgfQorCisgICAgICAgIGxldCBbd3JhcHBlZEksIHdyYXBwZWRKLCB3cmFwcGVk
S10gPSB3cmFwcGluZ09wZXJhdGlvbih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgYWRkcmVzc01vZGVV
LCBhZGRyZXNzTW9kZVYsIGFkZHJlc3NNb2RlVywgaSwgaiwgaykKKyAgICAgICAgaWYgKHNob3Vs
ZEJlQm9yZGVyKHdyYXBwZWRJLCB3aWR0aCkgfHwgc2hvdWxkQmVCb3JkZXIod3JhcHBlZEosIGhl
aWdodCkgfHwgc2hvdWxkQmVCb3JkZXIod3JhcHBlZEssIGRlcHRoKSkKKyAgICAgICAgICAgIHJl
dHVybiBzYW1wbGVyLmNhbGN1bGF0ZUJvcmRlckNvbG9yKHRleHR1cmUuaW5uZXJUeXBlKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIHRleHR1cmUuZWxlbWVudChsLCBsZXZlbCwg
d3JhcHBlZEssIHdyYXBwZWRKLCB3cmFwcGVkSSk7CisgICAgfQorCisgICAgbGV0IFt1LCB2LCB3
XSA9IHN0cnFhVG9VVldBVHJhbnNmb3JtYXRpb24ocywgdCwgciwgdGV4dHVyZS53aWR0aEF0TGV2
ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRM
ZXZlbChsZXZlbCkpOworICAgIGlmIChmaWx0ZXIgPT0gIm5lYXJlc3QiKSB7CisgICAgICAgIGxl
dCBbaSwgaiwgaywgbF0gPSB1dndhVG9JSktMTlRyYW5zZm9ybWF0aW9uQW5kQXJyYXlMYXllclNl
bGVjdGlvbih0ZXh0dXJlLmxheWVyQ291bnQsIGJhc2VBcnJheUxheWVyLCBmaWx0ZXIsIHUsIHYs
IHcsIGEsIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUspOworICAgICAgICByZXR1cm4gYWNjZXNzQ29s
b3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2
ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGksIGosIGspOworICAgIH0gZWxz
ZSB7CisgICAgICAgIGlmIChmaWx0ZXIgIT0gImxpbmVhciIpCisgICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIlVua25vd24gZmlsdGVyIik7CisgICAgICAgIGxldCBbaTAsIGkxLCBqMCwgajEs
IGswLCBrMSwgbCwgYWxwaGEsIGJldGEsIGdhbW1hXSA9IHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRp
b25BbmRBcnJheUxheWVyU2VsZWN0aW9uKHRleHR1cmUubGF5ZXJDb3VudCwgYmFzZUFycmF5TGF5
ZXIsIGZpbHRlciwgdSwgdiwgdywgYSwgZGVsdGFJLCBkZWx0YUosIGRlbHRhSyk7CisgICAgICAg
IGxldCBjb2xvcjAwMCA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwg
dGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwp
LCBsLCBpMCwgajAsIGswKTsKKyAgICAgICAgbGV0IGNvbG9yMTAwID0gYWNjZXNzQ29sb3IodGV4
dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0
ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGkxLCBqMCwgazApOworICAgICAgICBsZXQg
Y29sb3IwMTAgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1
cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwg
aTAsIGoxLCBrMCk7CisgICAgICAgIGxldCBjb2xvcjExMCA9IGFjY2Vzc0NvbG9yKHRleHR1cmUu
d2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVy
ZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMSwgajEsIGswKTsKKyAgICAgICAgbGV0IGNvbG9y
MDAxID0gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhl
aWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGkwLCBq
MCwgazEpOworICAgICAgICBsZXQgY29sb3IxMDEgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRo
QXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVw
dGhBdExldmVsKGxldmVsKSwgbCwgaTEsIGowLCBrMSk7CisgICAgICAgIGxldCBjb2xvcjAxMSA9
IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRB
dExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMCwgajEsIGsx
KTsKKyAgICAgICAgbGV0IGNvbG9yMTExID0gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2
ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRM
ZXZlbChsZXZlbCksIGwsIGkxLCBqMSwgazEpOworICAgICAgICByZXR1cm4gW2NvbG9yMDAwLCBj
b2xvcjEwMCwgY29sb3IwMTAsIGNvbG9yMTEwLCBjb2xvcjAwMSwgY29sb3IxMDEsIGNvbG9yMDEx
LCBjb2xvcjExMSwgYWxwaGEsIGJldGEsIGdhbW1hXTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHJl
ZHVjZSguLi52YWx1ZXMpCit7CisgICAgaWYgKHZhbHVlcy5sZW5ndGggJSAyICE9IDApCisgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiRG9uJ3QgaGF2ZSBhIHdlaWdodCBjb3JyZXNwb25kaW5nIHRv
IGVhY2ggdmFsdWUiKTsKKyAgICBpZiAodmFsdWVzLmxlbmd0aCA8IDIpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcigiRG9uJ3QgaGF2ZSBlbm91Z2ggdGhpbmdzIHRvIGNhbGN1bGF0ZSBhbiBhdmVy
YWdlIik7CisgICAgbGV0IHN1bTsKKyAgICBpZiAodmFsdWVzWzFdIGluc3RhbmNlb2YgQXJyYXkp
IHsKKyAgICAgICAgc3VtID0gW107CisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVz
WzFdLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgc3VtLnB1c2goMCk7CisgICAgfSBlbHNlCisg
ICAgICAgIHN1bSA9IDA7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoIC8g
MjsgKytpKSB7CisgICAgICAgIGxldCB3ZWlnaHQgPSB2YWx1ZXNbMiAqIGldOworICAgICAgICBs
ZXQgY29sb3IgPSB2YWx1ZXNbMiAqIGkgKyAxXTsKKyAgICAgICAgaWYgKGNvbG9yIGluc3RhbmNl
b2YgQXJyYXkpIHsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sb3IubGVuZ3Ro
OyArK2kpCisgICAgICAgICAgICAgICAgc3VtW2ldICs9IHdlaWdodCAqIGNvbG9yW2ldOworICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIHN1bSArPSB3ZWlnaHQgKiBjb2xvcjsKKyAgICB9Cisg
ICAgcmV0dXJuIHN1bTsKK30KKworZnVuY3Rpb24gdGV4ZWxHYXRoZXJpbmcoCisgICAgZGV2aWNl
TWF4QW5pc290cm9weSwKKyAgICBkZXZpY2VNYXhTYW1wbGVyTG9kQmlhcywKKyAgICBiYXNlTWlw
TGV2ZWwsCisgICAgYmFzZUFycmF5TGF5ZXIsCisgICAgdGV4dHVyZSwKKyAgICBzYW1wbGVyLAor
ICAgIHNhbXBsZXJCaWFzLAorICAgIHMsIHQsIHIsIGEsCisgICAgZGVsdGFJLCBkZWx0YUosIGRl
bHRhSywKKyAgICBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgIGxvZE1pbkZyb21GdW5jdGlv
bk9wZXJhbmQsCisgICAgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgZGR4LCBkZHksCisg
ICAgY2hhbm5lbCkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOS4yCisKKyAg
ICAvLyBUaGUgc3BlYyB1c2VzIGRpZmZlcmVudCBuYW1lcyB0aGFuIFdlYkdQVSBkb2VzLgorICAg
IGxldCBhZGRyZXNzTW9kZVUgPSBzYW1wbGVyLnJBZGRyZXNzTW9kZTsKKyAgICBsZXQgYWRkcmVz
c01vZGVWID0gc2FtcGxlci5zQWRkcmVzc01vZGU7CisgICAgbGV0IGFkZHJlc3NNb2RlVyA9IHNh
bXBsZXIudEFkZHJlc3NNb2RlOworCisgICAgbGV0IGxhbWJkYTsKKyAgICBbcywgdCwgciwgYSwg
bGFtYmRhXSA9IGNhbGN1bGF0ZUxhbWJkYShkZXZpY2VNYXhBbmlzb3Ryb3B5LCBkZXZpY2VNYXhT
YW1wbGVyTG9kQmlhcywgdGV4dHVyZSwgc2FtcGxlciwgc2FtcGxlckJpYXMsIHMsIHQsIHIsIGEs
IGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQsIGJpYXNG
cm9tRnVuY3Rpb25PcGVyYW5kLCBkZHgsIGRkeSk7CisKKyAgICBsZXQgZmlsdGVyID0gImxpbmVh
ciI7CisKKyAgICBsZXQgaW1hZ2VMZXZlbCA9IGltYWdlTGV2ZWxTZWxlY3Rpb24oYmFzZU1pcExl
dmVsLCB0ZXh0dXJlLmxldmVsQ291bnQsICJuZWFyZXN0IiwgbGFtYmRhKTsKKworICAgIGxldCBb
Y29sb3IwMDAsIGNvbG9yMTAwLCBjb2xvcjAxMCwgY29sb3IxMTAsIGNvbG9yMDAxLCBjb2xvcjEw
MSwgY29sb3IwMTEsIGNvbG9yMTExLCBhbHBoYSwgYmV0YSwgZ2FtbWFdID0gY29tcHV0ZVRhdShp
bWFnZUxldmVsLCBiYXNlQXJyYXlMYXllciwgdGV4dHVyZSwgc2FtcGxlciwgYWRkcmVzc01vZGVV
LCBhZGRyZXNzTW9kZVYsIGFkZHJlc3NNb2RlVywgZmlsdGVyLCBzLCB0LCByLCBhLCBkZWx0YUks
IGRlbHRhSiwgZGVsdGFLKTsKKworICAgIGlmICh0ZXh0dXJlLmRpbWVuc2lvbiAhPSAyKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBnYXRoZXIgZnJvbSBhIG5vbi0yRCBpbWFnZSIp
OworCisgICAgbGV0IGNvbG9yMDAgPSBjb2xvcjAwMTsKKyAgICBsZXQgY29sb3IxMCA9IGNvbG9y
MTAxOworICAgIGxldCBjb2xvcjAxID0gY29sb3IwMTE7CisgICAgbGV0IGNvbG9yMTEgPSBjb2xv
cjExMTsKKworICAgIHN3aXRjaCAoY2hhbm5lbCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAg
ICAgICBpZiAoY29sb3IwMCBpbnN0YW5jZW9mIEFycmF5KQorICAgICAgICAgICAgICAgIHJldHVy
biBbY29sb3IwMVswXSwgY29sb3IxMVswXSwgY29sb3IxMFswXSwgY29sb3IwMFswXV07CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIFtjb2xvcjAxLCBjb2xvcjExLCBj
b2xvcjEwLCBjb2xvcjAwXTsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIFtj
b2xvcjAxWzFdLCBjb2xvcjExWzFdLCBjb2xvcjEwWzFdLCBjb2xvcjAwWzFdXTsKKyAgICAgICAg
Y2FzZSAyOgorICAgICAgICAgICAgcmV0dXJuIFtjb2xvcjAxWzJdLCBjb2xvcjExWzJdLCBjb2xv
cjEwWzJdLCBjb2xvcjAwWzJdXTsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgcmV0dXJu
IFtjb2xvcjAxWzNdLCBjb2xvcjExWzNdLCBjb2xvcjEwWzNdLCBjb2xvcjAwWzNdXTsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBjaGFubmVs
IHRvIGdhdGhlciBmcm9tIik7CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXhlbEZpbHRlcmluZygK
KyAgICBkZXZpY2VNYXhBbmlzb3Ryb3B5LAorICAgIGRldmljZU1heFNhbXBsZXJMb2RCaWFzLAor
ICAgIGJhc2VNaXBMZXZlbCwKKyAgICBiYXNlQXJyYXlMYXllciwKKyAgICB0ZXh0dXJlLAorICAg
IHNhbXBsZXIsCisgICAgc2FtcGxlckJpYXMsCisgICAgcywgdCwgciwgYSwKKyAgICBkZWx0YUks
IGRlbHRhSiwgZGVsdGFLLAorICAgIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgbG9kTWlu
RnJvbUZ1bmN0aW9uT3BlcmFuZCwKKyAgICBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwKKyAgICBk
ZHgsIGRkeSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOS4zCisKKyAgICAv
LyBUaGUgc3BlYyB1c2VzIGRpZmZlcmVudCBuYW1lcyB0aGFuIFdlYkdQVSBkb2VzLgorICAgIGxl
dCBhZGRyZXNzTW9kZVUgPSBzYW1wbGVyLnJBZGRyZXNzTW9kZTsKKyAgICBsZXQgYWRkcmVzc01v
ZGVWID0gc2FtcGxlci5zQWRkcmVzc01vZGU7CisgICAgbGV0IGFkZHJlc3NNb2RlVyA9IHNhbXBs
ZXIudEFkZHJlc3NNb2RlOworCisgICAgbGV0IGxhbWJkYTsKKyAgICBbcywgdCwgciwgYSwgbGFt
YmRhXSA9IGNhbGN1bGF0ZUxhbWJkYShkZXZpY2VNYXhBbmlzb3Ryb3B5LCBkZXZpY2VNYXhTYW1w
bGVyTG9kQmlhcywgdGV4dHVyZSwgc2FtcGxlciwgc2FtcGxlckJpYXMsIHMsIHQsIHIsIGEsIGxv
ZEZyb21GdW5jdGlvbk9wZXJhbmQsIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQsIGJpYXNGcm9t
RnVuY3Rpb25PcGVyYW5kLCBkZHgsIGRkeSk7CisKKyAgICBsZXQgZmlsdGVyOworICAgIGlmIChs
YW1iZGEgPD0gMCkKKyAgICAgICAgZmlsdGVyID0gc2FtcGxlci5tYWdGaWx0ZXI7CisgICAgZWxz
ZQorICAgICAgICBmaWx0ZXIgPSBzYW1wbGVyLm1pbkZpbHRlcjsKKworICAgIGZ1bmN0aW9uIGNv
bXB1dGVDb2xvckZyb21MZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIGlmIChmaWx0ZXIgPT0g
Im5lYXJlc3QiKSB7CisgICAgICAgICAgICByZXR1cm4gY29tcHV0ZVRhdShsZXZlbCwgYmFzZUFy
cmF5TGF5ZXIsIHRleHR1cmUsIHNhbXBsZXIsIGFkZHJlc3NNb2RlVSwgYWRkcmVzc01vZGVWLCBh
ZGRyZXNzTW9kZVcsIGZpbHRlciwgcywgdCwgciwgYSwgZGVsdGFJLCBkZWx0YUosIGRlbHRhSyk7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoZmlsdGVyICE9ICJsaW5lYXIiKQor
ICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBmaWx0ZXIiKTsKKyAgICAg
ICAgICAgIGxldCBbY29sb3IwMDAsIGNvbG9yMTAwLCBjb2xvcjAxMCwgY29sb3IxMTAsIGNvbG9y
MDAxLCBjb2xvcjEwMSwgY29sb3IwMTEsIGNvbG9yMTExLCBhbHBoYSwgYmV0YSwgZ2FtbWFdID0g
Y29tcHV0ZVRhdShsZXZlbCwgYmFzZUFycmF5TGF5ZXIsIHRleHR1cmUsIHNhbXBsZXIsIGFkZHJl
c3NNb2RlVSwgYWRkcmVzc01vZGVWLCBhZGRyZXNzTW9kZVcsIGZpbHRlciwgcywgdCwgciwgYSwg
ZGVsdGFJLCBkZWx0YUosIGRlbHRhSyk7CisgICAgICAgICAgICBzd2l0Y2ggKHRleHR1cmUuZGlt
ZW5zaW9uKSB7CisgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICBs
ZXQgY29sb3IwID0gY29sb3IwMTE7CisgICAgICAgICAgICAgICAgICAgIGxldCBjb2xvcjEgPSBj
b2xvcjExMTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZHVjZSgxIC0gYWxwaGEsIGNv
bG9yMCwgYWxwaGEsIGNvbG9yMSk7CisgICAgICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAg
ICAgICAgICAgICBsZXQgY29sb3IwMCA9IGNvbG9yMDAxOworICAgICAgICAgICAgICAgICAgICBs
ZXQgY29sb3IxMCA9IGNvbG9yMTAxOworICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IwMSA9
IGNvbG9yMDExOworICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IxMSA9IGNvbG9yMTExOwor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVkdWNlKCgxIC0gYWxwaGEpICogKDEgLSBiZXRh
KSwgY29sb3IwMCwgYWxwaGEgKiAoMSAtIGJldGEpLCBjb2xvcjEwLCAoMSAtIGFscGhhKSAqIGJl
dGEsIGNvbG9yMDEsIGFscGhhICogYmV0YSwgY29sb3IxMSk7CisgICAgICAgICAgICAgICAgY2Fz
ZSAzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVkdWNlKAorICAgICAgICAgICAgICAg
ICAgICAgICAgKDEgLSBhbHBoYSkgKiAoMSAtIGJldGEpICogKDEgLSBnYW1tYSksIGNvbG9yMDAw
LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxwaGEgKiAoMSAtIGJldGEpICogKDEgLSBnYW1t
YSksIGNvbG9yMTAwLAorICAgICAgICAgICAgICAgICAgICAgICAgKDEgLSBhbHBoYSkgKiBiZXRh
ICogKDEgLSBnYW1tYSksIGNvbG9yMDEwLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxwaGEg
KiBiZXRhICogKDEgLSBnYW1tYSksIGNvbG9yMTEwLAorICAgICAgICAgICAgICAgICAgICAgICAg
KDEgLSBhbHBoYSkgKiAoMSAtIGJldGEpICogZ2FtbWEsIGNvbG9yMDAxLAorICAgICAgICAgICAg
ICAgICAgICAgICAgYWxwaGEgKiAoMSAtIGJldGEpICogZ2FtbWEsIGNvbG9yMTAxLAorICAgICAg
ICAgICAgICAgICAgICAgICAgKDEgLSBhbHBoYSkgKiBiZXRhICogZ2FtbWEsIGNvbG9yMDExLAor
ICAgICAgICAgICAgICAgICAgICAgICAgYWxwaGEgKiBiZXRhICogZ2FtbWEsIGNvbG9yMTExKTsK
KyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIlVua25vd24gZGltZW5zaW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBpZiAoc2FtcGxlci5taXBtYXBGaWx0ZXIgPT0gIm5lYXJlc3QiKSB7CisgICAg
ICAgIGxldCBpbWFnZUxldmVsID0gaW1hZ2VMZXZlbFNlbGVjdGlvbihiYXNlTWlwTGV2ZWwsIHRl
eHR1cmUubGV2ZWxDb3VudCwgc2FtcGxlci5taXBtYXBGaWx0ZXIsIGxhbWJkYSk7CisgICAgICAg
IHJldHVybiBjb21wdXRlQ29sb3JGcm9tTGV2ZWwoaW1hZ2VMZXZlbCk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgaWYgKHNhbXBsZXIubWlwbWFwRmlsdGVyICE9ICJsaW5lYXIiKQorICAgICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGZpbHRlciIpOworICAgICAgICBsZXQgW2RIaSwg
ZExvdywgZGVsdGFdID0gaW1hZ2VMZXZlbFNlbGVjdGlvbihiYXNlTWlwTGV2ZWwsIHRleHR1cmUu
bGV2ZWxDb3VudCwgc2FtcGxlci5taXBtYXBGaWx0ZXIsIGxhbWJkYSk7CisgICAgICAgIHJldHVy
biByZWR1Y2UoMSAtIGRlbHRhLCBjb21wdXRlQ29sb3JGcm9tTGV2ZWwoZEhpKSwgZGVsdGEsIGNv
bXB1dGVDb2xvckZyb21MZXZlbChkTG93KSk7CisgICAgfQorfQorCitmdW5jdGlvbiBjYXN0VG9J
bm5lclR5cGVGb3JHYXRoZXIodmFsdWUsIGlubmVyVHlwZSkKK3sKKyAgICBzd2l0Y2ggKGlubmVy
VHlwZSkgeworICAgICAgICBjYXNlICJ1Y2hhciI6CisgICAgICAgIGNhc2UgInVjaGFyMiI6Cisg
ICAgICAgIGNhc2UgInVjaGFyMyI6CisgICAgICAgIGNhc2UgInVjaGFyNCI6CisgICAgICAgICAg
ICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb1VjaGFyKTsKKyAgICAgICAgY2FzZSAidXNob3J0IjoK
KyAgICAgICAgY2FzZSAidXNob3J0MiI6CisgICAgICAgIGNhc2UgInVzaG9ydDMiOgorICAgICAg
ICBjYXNlICJ1c2hvcnQ0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoY2FzdFRvVXNo
b3J0KTsKKyAgICAgICAgY2FzZSAidWludCI6CisgICAgICAgIGNhc2UgInVpbnQyIjoKKyAgICAg
ICAgY2FzZSAidWludDMiOgorICAgICAgICBjYXNlICJ1aW50NCI6CisgICAgICAgICAgICByZXR1
cm4gdmFsdWUubWFwKGNhc3RUb1VpbnQpOworICAgICAgICBjYXNlICJjaGFyIjoKKyAgICAgICAg
Y2FzZSAiY2hhcjIiOgorICAgICAgICBjYXNlICJjaGFyMyI6CisgICAgICAgIGNhc2UgImNoYXI0
IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoY2FzdFRvQ2hhcik7CisgICAgICAgIGNh
c2UgInNob3J0IjoKKyAgICAgICAgY2FzZSAic2hvcnQyIjoKKyAgICAgICAgY2FzZSAic2hvcnQz
IjoKKyAgICAgICAgY2FzZSAic2hvcnQ0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAo
Y2FzdFRvU2hvcnQpOworICAgICAgICBjYXNlICJpbnQiOgorICAgICAgICBjYXNlICJpbnQyIjoK
KyAgICAgICAgY2FzZSAiaW50MyI6CisgICAgICAgIGNhc2UgImludDQiOgorICAgICAgICAgICAg
cmV0dXJuIHZhbHVlLm1hcChjYXN0VG9JbnQpOworICAgICAgICBjYXNlICJoYWxmIjoKKyAgICAg
ICAgY2FzZSAiaGFsZjIiOgorICAgICAgICBjYXNlICJoYWxmMyI6CisgICAgICAgIGNhc2UgImhh
bGY0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoY2FzdFRvSGFsZik7CisgICAgICAg
IGNhc2UgImZsb2F0IjoKKyAgICAgICAgY2FzZSAiZmxvYXQyIjoKKyAgICAgICAgY2FzZSAiZmxv
YXQzIjoKKyAgICAgICAgY2FzZSAiZmxvYXQ0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5t
YXAoY2FzdFRvRmxvYXQpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJVbmtub3duIHRleHR1cmUgaW5uZXIgdHlwZSIpOworICAgIH0KK30KKworZnVuY3Rp
b24gZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGVsdGEsIGJpYXNG
cm9tRnVuY3Rpb25PcGVyYW5kLCBkZHgsIGRkeSwgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwgZHJl
ZiwgY2hhbm5lbCkKK3sKKyAgICBsZXQgcyA9IGxvY2F0aW9uWzBdOworICAgIGxldCB0ID0gbG9j
YXRpb25bMV07CisgICAgbGV0IHIgPSBsb2NhdGlvblsyXTsKKyAgICBsZXQgcSA9IGxvY2F0aW9u
WzNdOworICAgIGxldCBhID0gbG9jYXRpb25bNF07CisKKyAgICBsZXQgZGVsdGFJID0gdW5kZWZp
bmVkOworICAgIGxldCBkZWx0YUogPSB1bmRlZmluZWQ7CisgICAgbGV0IGRlbHRhSyA9IHVuZGVm
aW5lZDsKKyAgICBpZiAoZGVsdGEgIT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGRlbHRhSSA9IGRl
bHRhWzBdOworICAgICAgICBkZWx0YUogPSBkZWx0YVsxXTsKKyAgICAgICAgZGVsdGFLID0gZGVs
dGFbMl07CisgICAgfQorCisgICAgW3MsIHQsIHIsIGRyZWZdID0gcHJvamVjdGlvbk9wZXJhdGlv
bihzLCB0LCByLCBkcmVmLCBxKTsKKyAgICBsZXQgcmVzdWx0ID0gdGV4ZWxHYXRoZXJpbmcoCisg
ICAgICAgIE51bWJlci5NQVhfVkFMVUUsCisgICAgICAgIE51bWJlci5NQVhfVkFMVUUsCisgICAg
ICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIHRleHR1cmUsCisgICAgICAgIHNhbXBsZXIsCisg
ICAgICAgIDAsCisgICAgICAgIHMsIHQsIHIsIGEsCisgICAgICAgIGRlbHRhSSwgZGVsdGFKLCBk
ZWx0YUssCisgICAgICAgIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgICAgIC1OdW1iZXIu
TUFYX1ZBTFVFLAorICAgICAgICBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwKKyAgICAgICAgZGR4
LCBkZHksCisgICAgICAgIGNoYW5uZWwpOworICAgIGlmIChkcmVmICE9IHVuZGVmaW5lZCkKKyAg
ICAgICAgcmVzdWx0ID0gcmVzdWx0Lm1hcCh2ID0+IGRlcHRoQ29tcGFyZU9wZXJhdGlvbihkcmVm
LCB2LCBzYW1wbGVyLmNvbXBhcmVGdW5jdGlvbikpOworICAgIHJldHVybiBjYXN0VG9Jbm5lclR5
cGVGb3JHYXRoZXIocmVzdWx0LCB0ZXh0dXJlLmlubmVyVHlwZSk7CisgICAgLy8gRklYTUU6IEZp
Z3VyZSBvdXQgd2hhdCB0byBkbyB3aXRoIGFuaXNvdHJvcHkKKyAgICAvLyBGSVhNRTogRmlndXJl
IG91dCBob3cgdG8gZG8gbXVsdGlzYW1wbGluZy4KK30KKworZnVuY3Rpb24gY2FzdFRvSW5uZXJU
eXBlKHZhbHVlLCBpbm5lclR5cGUpCit7CisgICAgc3dpdGNoIChpbm5lclR5cGUpIHsKKyAgICAg
ICAgY2FzZSAidWNoYXIiOgorICAgICAgICAgICAgcmV0dXJuIGNhc3RUb1VjaGFyKHZhbHVlKTsK
KyAgICAgICAgY2FzZSAidXNob3J0IjoKKyAgICAgICAgICAgIHJldHVybiBjYXN0VG9Vc2hvcnQo
dmFsdWUpOworICAgICAgICBjYXNlICJ1aW50IjoKKyAgICAgICAgICAgIHJldHVybiBjYXN0VG9V
aW50KHZhbHVlKTsKKyAgICAgICAgY2FzZSAiY2hhciI6CisgICAgICAgICAgICByZXR1cm4gY2Fz
dFRvQ2hhcih2YWx1ZSk7CisgICAgICAgIGNhc2UgInNob3J0IjoKKyAgICAgICAgICAgIHJldHVy
biBjYXN0VG9TaG9ydCh2YWx1ZSk7CisgICAgICAgIGNhc2UgImludCI6CisgICAgICAgICAgICBy
ZXR1cm4gY2FzdFRvSW50KHZhbHVlKTsKKyAgICAgICAgY2FzZSAiaGFsZiI6CisgICAgICAgICAg
ICByZXR1cm4gY2FzdFRvSGFsZih2YWx1ZSk7CisgICAgICAgIGNhc2UgImZsb2F0IjoKKyAgICAg
ICAgICAgIHJldHVybiBjYXN0VG9GbG9hdCh2YWx1ZSk7CisgICAgICAgIAorICAgICAgICBjYXNl
ICJ1Y2hhcjIiOgorICAgICAgICBjYXNlICJ1Y2hhcjMiOgorICAgICAgICBjYXNlICJ1Y2hhcjQi
OgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcChjYXN0VG9VY2hhcik7CisgICAgICAgIGNh
c2UgInVzaG9ydDIiOgorICAgICAgICBjYXNlICJ1c2hvcnQzIjoKKyAgICAgICAgY2FzZSAidXNo
b3J0NCI6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb1VzaG9ydCk7CisgICAg
ICAgIGNhc2UgInVpbnQyIjoKKyAgICAgICAgY2FzZSAidWludDMiOgorICAgICAgICBjYXNlICJ1
aW50NCI6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb1VpbnQpOworICAgICAg
ICBjYXNlICJjaGFyMiI6CisgICAgICAgIGNhc2UgImNoYXIzIjoKKyAgICAgICAgY2FzZSAiY2hh
cjQiOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcChjYXN0VG9DaGFyKTsKKyAgICAgICAg
Y2FzZSAic2hvcnQyIjoKKyAgICAgICAgY2FzZSAic2hvcnQzIjoKKyAgICAgICAgY2FzZSAic2hv
cnQ0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoY2FzdFRvU2hvcnQpOworICAgICAg
ICBjYXNlICJpbnQyIjoKKyAgICAgICAgY2FzZSAiaW50MyI6CisgICAgICAgIGNhc2UgImludDQi
OgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcChjYXN0VG9JbnQpOworICAgICAgICBjYXNl
ICJoYWxmMiI6CisgICAgICAgIGNhc2UgImhhbGYzIjoKKyAgICAgICAgY2FzZSAiaGFsZjQiOgor
ICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcChjYXN0VG9IYWxmKTsKKyAgICAgICAgY2FzZSAi
ZmxvYXQyIjoKKyAgICAgICAgY2FzZSAiZmxvYXQzIjoKKyAgICAgICAgY2FzZSAiZmxvYXQ0IjoK
KyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoY2FzdFRvRmxvYXQpOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHRleHR1cmUgaW5uZXIg
dHlwZSIpOworICAgIH0KK30KKworZnVuY3Rpb24gc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgZGVsdGEsIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLCBkZHgsIGRkeSwg
bG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwgZHJlZikKK3sKKyAgICBsZXQgcyA9IGxvY2F0aW9uWzBd
OworICAgIGxldCB0ID0gbG9jYXRpb25bMV07CisgICAgbGV0IHIgPSBsb2NhdGlvblsyXTsKKyAg
ICBsZXQgcSA9IGxvY2F0aW9uWzNdOworICAgIGxldCBhID0gbG9jYXRpb25bNF07CisKKyAgICBs
ZXQgZGVsdGFJID0gdW5kZWZpbmVkOworICAgIGxldCBkZWx0YUogPSB1bmRlZmluZWQ7CisgICAg
bGV0IGRlbHRhSyA9IHVuZGVmaW5lZDsKKyAgICBpZiAoZGVsdGEgIT0gdW5kZWZpbmVkKSB7Cisg
ICAgICAgIGRlbHRhSSA9IGRlbHRhWzBdOworICAgICAgICBkZWx0YUogPSBkZWx0YVsxXTsKKyAg
ICAgICAgZGVsdGFLID0gZGVsdGFbMl07CisgICAgfQorCisgICAgW3MsIHQsIHIsIGRyZWZdID0g
cHJvamVjdGlvbk9wZXJhdGlvbihzLCB0LCByLCBkcmVmLCBxKTsKKyAgICBsZXQgcmVzdWx0ID0g
dGV4ZWxGaWx0ZXJpbmcoCisgICAgICAgIE51bWJlci5NQVhfVkFMVUUsCisgICAgICAgIE51bWJl
ci5NQVhfVkFMVUUsCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIHRleHR1cmUsCisg
ICAgICAgIHNhbXBsZXIsCisgICAgICAgIDAsCisgICAgICAgIHMsIHQsIHIsIGEsCisgICAgICAg
IGRlbHRhSSwgZGVsdGFKLCBkZWx0YUssCisgICAgICAgIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQs
CisgICAgICAgIC1OdW1iZXIuTUFYX1ZBTFVFLAorICAgICAgICBiaWFzRnJvbUZ1bmN0aW9uT3Bl
cmFuZCwKKyAgICAgICAgZGR4LCBkZHkpOworICAgIGlmIChkcmVmICE9IHVuZGVmaW5lZCkgewor
ICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgQXJyYXkpCisgICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIkRlcHRoIGNvbXBhcmlzb24gbm90IHN1cHBvcnRlZCBvbiBtdWx0aWNoYW5uZWwg
dGV4dHVyZXMiKTsKKyAgICAgICAgcmVzdWx0ID0gZGVwdGhDb21wYXJlT3BlcmF0aW9uKGRyZWYs
IHJlc3VsdCwgc2FtcGxlci5jb21wYXJlRnVuY3Rpb24pOworICAgIH0KKyAgICByZXR1cm4gY2Fz
dFRvSW5uZXJUeXBlKHJlc3VsdCwgdGV4dHVyZS5pbm5lclR5cGUpOworICAgIC8vIEZJWE1FOiBG
aWd1cmUgb3V0IHdoYXQgdG8gZG8gd2l0aCBhbmlzb3Ryb3B5CisgICAgLy8gRklYTUU6IEZpZ3Vy
ZSBvdXQgaG93IHRvIGRvIG11bHRpc2FtcGxpbmcuCit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvaW5kZXguaHRtbAppbmRleCA2NWE4NjQxMWIzZTc3MGI1NTdiNDFhY2M3ZTQxNGRlZjQy
NDAzMDEzLi5lNmUxM2RmZThkZmE1YzUzMzJhZDllZjA0OWVjZWEzNTliN2UzYTQyIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCisrKyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKQEAgLTI4LDYgKzI4LDcgQEAKIDxz
Y3JpcHQgc3JjPSJCdWlsdGluVmVjdG9yU2V0dGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJDYWxsRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2FsbEZ1bmN0aW9u
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDYXN0cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iQ2hlY2suanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNoZWNrTGl0ZXJhbFR5cGVz
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDaGVja0xvb3BzLmpzIj48L3NjcmlwdD4KQEAg
LTExNSw2ICsxMTYsNyBAQAogPHNjcmlwdCBzcmM9IlJldHVybi5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iUmV0dXJuQ2hlY2tlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUmV0dXJu
RXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJTYW1wbGVyLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJTdGFuZGFyZExpYnJhcnkuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9IlN0YXRlbWVudENsb25lci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3RydWN0TGF5
b3V0QnVpbGRlci5qcyI+PC9zY3JpcHQ+CkBAIC0xMjcsNiArMTI5LDggQEAKIDxzY3JpcHQgc3Jj
PSJTeW50aGVzaXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IlN5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iVGVybmFyeUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9IlRleHR1cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlRleHR1cmVPcGVyYXRpb25z
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUcmFwU3RhdGVtZW50LmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVm
UmVzb2x2ZXIuanMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348798</attachid>
            <date>2018-09-03 17:33:39 -0700</date>
            <delta_ts>2018-09-03 19:51:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188940-20180903173338.patch</filename>
            <type>text/plain</type>
            <size>468998</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTg5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWE0MzNhZWVmNTA2YjZmNDY1NTYwMTNiZmJiNDM2MWJm
MjE5YWMxYS4uMjkwODFkNjFjMmUwM2RlNmYwYjE5NWE2NmMzNDg4OTU4YzViYjA2YyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
OSBAQAorMjAxOC0wOS0wMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRleHR1cmUgdHlwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Nhc3RzLmpz
OiBBZGRlZC4KKyAgICAgICAgKGNhc3QpOgorICAgICAgICAoYml0d2lzZUNhc3QpOgorICAgICAg
ICAoY2FzdFRvVWNoYXIpOgorICAgICAgICAoY2FzdFRvVXNob3J0KToKKyAgICAgICAgKGNhc3RU
b1VpbnQpOgorICAgICAgICAoY2FzdFRvQ2hhcik6CisgICAgICAgIChjYXN0VG9TaG9ydCk6Cisg
ICAgICAgIChjYXN0VG9JbnQpOgorICAgICAgICAoY2FzdFRvSGFsZik6CisgICAgICAgIChjYXN0
VG9GbG9hdCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5q
czoKKyAgICAgICAgKEludHJpbnNpY3MuKToKKyAgICAgICAgKEludHJpbnNpY3MuY2hlY2tGYWxz
ZSk6CisgICAgICAgIChJbnRyaW5zaWNzLmJveFZlY3Rvcik6CisgICAgICAgIChJbnRyaW5zaWNz
LnVuYm94VmVjdG9yKToKKyAgICAgICAgKEludHJpbnNpY3MpOgorICAgICAgICAoSW50cmluc2lj
cy5jYXN0KTogRGVsZXRlZC4KKyAgICAgICAgKEludHJpbnNpY3MuYml0d2lzZUNhc3QpOiBEZWxl
dGVkLgorICAgICAgICAoSW50cmluc2ljcy5jYXN0VG9IYWxmKTogRGVsZXRlZC4KKyAgICAgICAg
KiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sOgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1NhbXBsZXIuanM6IEFkZGVkLgorICAgICAgICAoU2FtcGxlcik6Cisg
ICAgICAgIChTYW1wbGVyLnByb3RvdHlwZS5nZXQgckFkZHJlc3NNb2RlKToKKyAgICAgICAgKFNh
bXBsZXIucHJvdG90eXBlLmdldCBzQWRkcmVzc01vZGUpOgorICAgICAgICAoU2FtcGxlci5wcm90
b3R5cGUuZ2V0IHRBZGRyZXNzTW9kZSk6CisgICAgICAgIChTYW1wbGVyLnByb3RvdHlwZS5nZXQg
bWluRmlsdGVyKToKKyAgICAgICAgKFNhbXBsZXIucHJvdG90eXBlLmdldCBtYWdGaWx0ZXIpOgor
ICAgICAgICAoU2FtcGxlci5wcm90b3R5cGUuZ2V0IG1pcG1hcEZpbHRlcik6CisgICAgICAgIChT
YW1wbGVyLnByb3RvdHlwZS5nZXQgbG9kTWluQ2xhbXApOgorICAgICAgICAoU2FtcGxlci5wcm90
b3R5cGUuZ2V0IGxvZE1heENsYW1wKToKKyAgICAgICAgKFNhbXBsZXIucHJvdG90eXBlLmdldCBt
YXhBbmlzb3Ryb3B5KToKKyAgICAgICAgKFNhbXBsZXIucHJvdG90eXBlLmdldCBjb21wYXJlRnVu
Y3Rpb24pOgorICAgICAgICAoU2FtcGxlci5wcm90b3R5cGUuZ2V0IGJvcmRlckNvbG9yKToKKyAg
ICAgICAgKFNhbXBsZXIucHJvdG90eXBlLmNhbGN1bGF0ZUJvcmRlckNvbG9yLmNvbXB1dGVWYWx1
ZXMpOgorICAgICAgICAoU2FtcGxlci5wcm90b3R5cGUuY2FsY3VsYXRlQm9yZGVyQ29sb3IpOgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qczoKKyAg
ICAgICAgKGxldC5zdGFuZGFyZExpYnJhcnkpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0
LmpzOgorICAgICAgICAobWFrZVNhbXBsZXIpOgorICAgICAgICAobWFrZTFEVGV4dHVyZSk6Cisg
ICAgICAgIChtYWtlMURUZXh0dXJlQXJyYXkpOgorICAgICAgICAobWFrZTJEVGV4dHVyZSk6Cisg
ICAgICAgIChtYWtlMkRUZXh0dXJlQXJyYXkpOgorICAgICAgICAobWFrZTNEVGV4dHVyZSk6Cisg
ICAgICAgIChtYWtlVGV4dHVyZUN1YmUpOgorICAgICAgICAobWFrZVJXMURUZXh0dXJlKToKKyAg
ICAgICAgKG1ha2VSVzFEVGV4dHVyZUFycmF5KToKKyAgICAgICAgKG1ha2VSVzJEVGV4dHVyZSk6
CisgICAgICAgIChtYWtlUlcyRFRleHR1cmVBcnJheSk6CisgICAgICAgIChtYWtlUlczRFRleHR1
cmUpOgorICAgICAgICAobWFrZTJERGVwdGhUZXh0dXJlKToKKyAgICAgICAgKG1ha2UyRERlcHRo
VGV4dHVyZUFycmF5KToKKyAgICAgICAgKG1ha2VEZXB0aFRleHR1cmVDdWJlKToKKyAgICAgICAg
KG1ha2VSVzJERGVwdGhUZXh0dXJlKToKKyAgICAgICAgKG1ha2VSVzJERGVwdGhUZXh0dXJlQXJy
YXkpOgorICAgICAgICAoY2hlY2tGbG9hdDQpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1RleHR1cmUuanM6IEFkZGVkLgorICAgICAgICAoVGV4dHVyZSk6CisgICAgICAgIChU
ZXh0dXJlLnByb3RvdHlwZS5nZXQgZGltZW5zaW9uKToKKyAgICAgICAgKFRleHR1cmUucHJvdG90
eXBlLmdldCB3aWR0aCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQgaGVpZ2h0KToK
KyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkZXB0aCk6CisgICAgICAgIChUZXh0dXJl
LnByb3RvdHlwZS5nZXQgbGV2ZWxDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5n
ZXQgbGF5ZXJDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQgaW5uZXJUeXBl
KToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkYXRhKToKKyAgICAgICAgKFRleHR1
cmUucHJvdG90eXBlLmVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBl
LnNldEVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUxRCk6CisgICAgICAgIChUZXh0
dXJlMUQucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMUQucHJvdG90
eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlwZS5kZXB0aEF0
TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAg
KFRleHR1cmUxRC5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMURBcnJh
eSk6CisgICAgICAgIChUZXh0dXJlMURBcnJheS5wcm90b3R5cGUud2lkdGhBdExldmVsKToKKyAg
ICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAgICAgICAg
KFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVy
ZTFEQXJyYXkucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTFEQXJyYXkucHJv
dG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEKToKKyAgICAgICAgKFRleHR1
cmUyRC5wcm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyRC5wcm90b3R5
cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBlLmRlcHRoQXRM
ZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAo
VGV4dHVyZTJELnByb3RvdHlwZS5zZXRFbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUyREFycmF5
KToKKyAgICAgICAgKFRleHR1cmUyREFycmF5LnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAg
ICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAo
VGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJl
MkRBcnJheS5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMkRBcnJheS5wcm90
b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlM0QpOgorICAgICAgICAoVGV4dHVy
ZTNELnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTNELnByb3RvdHlw
ZS5oZWlnaHRBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUuZGVwdGhBdExl
dmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChU
ZXh0dXJlM0QucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZUN1YmUpOgor
ICAgICAgICAoVGV4dHVyZUN1YmUucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlQ3ViZS5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlQ3Vi
ZS5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmVDdWJlLnByb3RvdHlw
ZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmVDdWJlLnByb3RvdHlwZS5zZXRFbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUxRFJXKToKKyAgICAgICAgKFRleHR1cmUxRFJXLnByb3RvdHlwZS53
aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmhlaWdodEF0TGV2
ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAg
ICAgIChUZXh0dXJlMURSVy5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMURS
Vy5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMURBcnJheVJXKToKKyAg
ICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAgICAgICAgKFRl
eHR1cmUxREFycmF5UlcucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJl
MURBcnJheVJXLnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUxREFycmF5Ulcu
cHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEUlcpOgorICAgICAgICAo
VGV4dHVyZTJEUlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkRS
Vy5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkRSVy5wcm90b3R5
cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlwZS5lbGVtZW50
KToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlwZS5zZXRFbGVtZW50KToKKyAgICAgICAg
KFRleHR1cmUyREFycmF5UlcpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUu
d2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90eXBlLmhlaWdo
dEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUuZGVwdGhBdExl
dmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90eXBlLmVsZW1lbnQpOgorICAg
ICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChs
ZXQuVGV4dHVyZURlcHRoMkRBcnJheVJXLlRleHR1cmUyREFycmF5UlcuVGV4dHVyZTNEUlcpOgor
ICAgICAgICAobGV0LlRleHR1cmVEZXB0aDJEQXJyYXlSVy5UZXh0dXJlMkRBcnJheVJXLlRleHR1
cmUzRFJXLnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAobGV0LlRleHR1cmVEZXB0
aDJEQXJyYXlSVy5UZXh0dXJlMkRBcnJheVJXLlRleHR1cmUzRFJXLnByb3RvdHlwZS5oZWlnaHRB
dExldmVsKToKKyAgICAgICAgKGxldC5UZXh0dXJlRGVwdGgyREFycmF5UlcuVGV4dHVyZTJEQXJy
YXlSVy5UZXh0dXJlM0RSVy5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKGxldC5U
ZXh0dXJlRGVwdGgyREFycmF5UlcuVGV4dHVyZTJEQXJyYXlSVy5UZXh0dXJlM0RSVy5wcm90b3R5
cGUuZWxlbWVudCk6CisgICAgICAgIChsZXQuVGV4dHVyZURlcHRoMkRBcnJheVJXLlRleHR1cmUy
REFycmF5UlcuVGV4dHVyZTNEUlcucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1cmVPcGVyYXRpb25zLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGRlcHRoQ29tcGFyZU9wZXJhdGlvbik6CisgICAgICAgIChjb252ZXJzaW9uVG9SR0JBKToK
KyAgICAgICAgKHByb2plY3Rpb25PcGVyYXRpb24pOgorICAgICAgICAoY3ViZU1hcEZhY2VTZWxl
Y3Rpb24pOgorICAgICAgICAoY3ViZU1hcENvb3JkaW5hdGVUcmFuc2Zvcm1hdGlvbik6CisgICAg
ICAgIChjdWJlTWFwRGVyaXZhdGl2ZVRyYW5zZm9ybWF0aW9uKToKKyAgICAgICAgKHNjYWxlRmFj
dG9yT3BlcmF0aW9uKToKKyAgICAgICAgKGxldmVsT2ZEZXRhaWxPcGVyYXRpb24pOgorICAgICAg
ICAobmVhcmVzdCk6CisgICAgICAgIChpbWFnZUxldmVsU2VsZWN0aW9uKToKKyAgICAgICAgKHN0
cnFhVG9VVldBVHJhbnNmb3JtYXRpb24pOgorICAgICAgICAocm5lKToKKyAgICAgICAgKHV2d2FU
b0lKS0xOVHJhbnNmb3JtYXRpb25BbmRBcnJheUxheWVyU2VsZWN0aW9uKToKKyAgICAgICAgKGlu
dGVnZXJUZXhlbENvb3JkaW5hdGVPcGVyYXRpb25zKToKKyAgICAgICAgKG1pcnJvcik6CisgICAg
ICAgICh0cmFuc2Zvcm0pOgorICAgICAgICAod3JhcHBpbmdPcGVyYXRpb24pOgorICAgICAgICAo
Y2FsY3VsYXRlTGFtYmRhKToKKyAgICAgICAgKHNob3VsZEJlQm9yZGVyKToKKyAgICAgICAgKGFj
Y2Vzc0NvbG9yKToKKyAgICAgICAgKGNvbXB1dGVUYXUpOgorICAgICAgICAocmVkdWNlKToKKyAg
ICAgICAgKHRleGVsR2F0aGVyaW5nKToKKyAgICAgICAgKGNvbXB1dGVDb2xvckZyb21MZXZlbCk6
CisgICAgICAgICh0ZXhlbEZpbHRlcmluZyk6CisgICAgICAgIChjYXN0VG9Jbm5lclR5cGVGb3JH
YXRoZXIpOgorICAgICAgICAoZ2F0aGVyVGV4dHVyZSk6CisgICAgICAgIChjYXN0VG9Jbm5lclR5
cGUpOgorICAgICAgICAoc2FtcGxlVGV4dHVyZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAxOC0wOS0wMSAgTWljaGFlbCBDYXRhbnphcm8gIDxt
Y2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV0gMi4yMS45MSBmYWlscyB0byBi
dWlsZCB3aXRoIEVOQUJMRV9NSU5JQlJPV1NFUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvQWxsLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxs
LmpzCmluZGV4IDljMmEzNzE1MGMxZTk3NmI5MjZjZmJlZTIzNDM3NTIwYThkZTRhNDcuLjkwZmM4
NDEzYTY1MTIyNDQ2YmYwMWZkOTY3ZGQ2NTEzOWEwZjg3ZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9BbGwuanMKQEAgLTUxLDYgKzUxLDcgQEAgbG9hZCgiQnVpbHRpblZlY3RvckdldHRl
ci5qcyIpOwogbG9hZCgiQnVpbHRpblZlY3RvclNldHRlci5qcyIpOwogbG9hZCgiQ2FsbEV4cHJl
c3Npb24uanMiKTsKIGxvYWQoIkNhbGxGdW5jdGlvbi5qcyIpOworbG9hZCgiQ2FzdHMuanMiKTsK
IGxvYWQoIkNoZWNrLmpzIik7CiBsb2FkKCJDaGVja0xpdGVyYWxUeXBlcy5qcyIpOwogbG9hZCgi
Q2hlY2tMb29wcy5qcyIpOwpAQCAtMTM4LDYgKzEzOSw3IEBAIGxvYWQoIlJlc29sdmVUeXBlRGVm
cy5qcyIpOwogbG9hZCgiUmV0dXJuLmpzIik7CiBsb2FkKCJSZXR1cm5DaGVja2VyLmpzIik7CiBs
b2FkKCJSZXR1cm5FeGNlcHRpb24uanMiKTsKK2xvYWQoIlNhbXBsZXIuanMiKTsKIGxvYWQoIlN0
YW5kYXJkTGlicmFyeS5qcyIpOwogbG9hZCgiU3RhdGVtZW50Q2xvbmVyLmpzIik7CiBsb2FkKCJT
dHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIik7CkBAIC0xNTAsNiArMTUyLDggQEAgbG9hZCgiU3ludGhl
c2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyIpOwogbG9hZCgiU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rv
ck9wZXJhdG9yLmpzIik7CiBsb2FkKCJTeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0
b3IuanMiKTsKIGxvYWQoIlRlcm5hcnlFeHByZXNzaW9uLmpzIik7Citsb2FkKCJUZXh0dXJlLmpz
Iik7Citsb2FkKCJUZXh0dXJlT3BlcmF0aW9ucy5qcyIpOwogbG9hZCgiVHJhcFN0YXRlbWVudC5q
cyIpOwogbG9hZCgiVHlwZURlZi5qcyIpOwogbG9hZCgiVHlwZURlZlJlc29sdmVyLmpzIik7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYXN0cy5qcyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Nhc3RzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjYmIyZWEwMjg1
MzViNDY3MDQyMzA5N2Y3YTViNTdjYWY2YjhiMWMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYXN0cy5qcwpAQCAtMCwwICsxLDExNSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworInVzZSBzdHJpY3QiOworCitm
dW5jdGlvbiBjYXN0KHR5cGVkQXJyYXlDb25zdHJ1Y3RvciwgbnVtYmVyKQoreworICAgIHZhciBh
cnJheSA9IG5ldyB0eXBlZEFycmF5Q29uc3RydWN0b3IoMSk7CisgICAgYXJyYXlbMF0gPSBudW1i
ZXI7CisgICAgcmV0dXJuIGFycmF5WzBdOworfQorCitmdW5jdGlvbiBiaXR3aXNlQ2FzdCh0eXBl
ZEFycmF5Q29uc3RydWN0b3IxLCB0eXBlZEFycmF5Q29uc3RydWN0b3IyLCB2YWx1ZSkKK3sKKyAg
ICBsZXQgdHlwZWRBcnJheTEgPSBuZXcgdHlwZWRBcnJheUNvbnN0cnVjdG9yMSgxKTsKKyAgICBs
ZXQgdHlwZWRBcnJheTIgPSBuZXcgdHlwZWRBcnJheUNvbnN0cnVjdG9yMih0eXBlZEFycmF5MS5i
dWZmZXIpOworICAgIHR5cGVkQXJyYXkxWzBdID0gdmFsdWU7CisgICAgcmV0dXJuIHR5cGVkQXJy
YXkyWzBdOworfQorCitmdW5jdGlvbiBjYXN0VG9VY2hhcihudW1iZXIpCit7CisgICAgcmV0dXJu
IG51bWJlciAmIDB4RkY7Cit9CisKK2Z1bmN0aW9uIGNhc3RUb1VzaG9ydChudW1iZXIpCit7Cisg
ICAgcmV0dXJuIG51bWJlciAmIDB4RkZGRjsKK30KKworZnVuY3Rpb24gY2FzdFRvVWludChudW1i
ZXIpCit7CisgICAgcmV0dXJuIG51bWJlciA+Pj4gMDsKK30KKworZnVuY3Rpb24gY2FzdFRvQ2hh
cihudW1iZXIpCit7CisgICAgcmV0dXJuIGNhc3QoSW50OEFycmF5LCBudW1iZXIpOworfQorCitm
dW5jdGlvbiBjYXN0VG9TaG9ydChudW1iZXIpCit7CisgICAgcmV0dXJuIGNhc3QoSW50MTZBcnJh
eSwgbnVtYmVyKTsKK30KKworZnVuY3Rpb24gY2FzdFRvSW50KG51bWJlcikKK3sKKyAgICByZXR1
cm4gbnVtYmVyIHwgMDsKK30KKworZnVuY3Rpb24gY2FzdFRvSGFsZihudW1iZXIpCit7CisgICAg
Ly8gRklYTUU6IE1ha2UgdGhpcyBtYXRoIG9iZXkgSUVFRSA3NTQuCisgICAgaWYgKE51bWJlci5p
c05hTihudW1iZXIpKQorICAgICAgIHJldHVybiBudW1iZXIKKyAgICBpZiAobnVtYmVyID4gNjU1
MDQpCisgICAgICAgIHJldHVybiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CisgICAgaWYgKG51
bWJlciA8IC02NTUwNCkKKyAgICAgICAgcmV0dXJuIE51bWJlci5ORUdBVElWRV9JTkZJTklUWTsK
KyAgICBpZiAobnVtYmVyID4gMCAmJiBudW1iZXIgPCBNYXRoLnBvdygyLCAtMjQpKQorICAgICAg
ICByZXR1cm4gMDsKKyAgICBpZiAobnVtYmVyIDwgMCAmJiBudW1iZXIgPiAtTWF0aC5wb3coMiwg
LTI0KSkKKyAgICAgICAgcmV0dXJuIC0wOworICAgIGxldCBkb3VibGVBcnJheSA9IG5ldyBGbG9h
dDY0QXJyYXkoMSk7CisgICAgbGV0IHVpbnRBcnJheSA9IG5ldyBVaW50OEFycmF5KGRvdWJsZUFy
cmF5LmJ1ZmZlcik7CisgICAgZG91YmxlQXJyYXlbMF0gPSBudW1iZXI7CisgICAgbGV0IHNpZ24g
PSB1aW50QXJyYXlbN10gJiAweDgwOworICAgIGxldCBleHBvbmVudCA9ICgodWludEFycmF5Wzdd
ICYgMHg3ZikgPDwgNCkgfCAoKHVpbnRBcnJheVs2XSAmIDB4ZjApID4+PiA0KTsKKyAgICBsZXQg
c2lnbmlmaWNhbmQgPSAoKHVpbnRBcnJheVs2XSAmIDB4MGYpIDw8IDYpIHwgKCh1aW50QXJyYXlb
NV0gJiAweGZjKSA+Pj4gMik7CisKKyAgICBpZiAoKGV4cG9uZW50IC0gMTAyMykgPCAtMTQpIHsK
KyAgICAgICAgZXhwb25lbnQgPSAwOworICAgICAgICBzaWduaWZpY2FuZCA9IChNYXRoLmFicyhu
dW1iZXIpICogTWF0aC5wb3coMiwgMjQpKSA+Pj4gMDsKKyAgICAgICAgbGV0IHZhbHVlID0gTWF0
aC5wb3coMiwgLTE0KSAqIHNpZ25pZmljYW5kIC8gMTAyNDsKKyAgICAgICAgaWYgKHNpZ24gIT0g
MCkKKyAgICAgICAgICAgIHZhbHVlICo9IC0xOworICAgICAgICByZXR1cm4gdmFsdWU7CisgICAg
fQorCisgICAgZG91YmxlQXJyYXlbMF0gPSAwOworCisgICAgdWludEFycmF5WzddIHw9IHNpZ247
CisgICAgdWludEFycmF5WzddIHw9IChleHBvbmVudCA+Pj4gNCk7CisgICAgdWludEFycmF5WzZd
IHw9ICgoZXhwb25lbnQgPDwgNCkgJiAweGYwKTsKKyAgICB1aW50QXJyYXlbNl0gfD0gKHNpZ25p
ZmljYW5kID4+PiA2KTsKKyAgICB1aW50QXJyYXlbNV0gfD0gKChzaWduaWZpY2FuZCA8PCAyKSAm
IDB4ZmMpOworCisgICAgcmV0dXJuIGRvdWJsZUFycmF5WzBdOworfQorCitmdW5jdGlvbiBjYXN0
VG9GbG9hdChudW1iZXIpCit7CisgICAgcmV0dXJuIE1hdGguZnJvdW5kKG51bWJlcik7Cit9CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcwppbmRleCBiMDA0MDY3
ZjVlYmZiM2E4YjRiZDk4ZTQzN2E4YzA3NjhiZTI2ZjFlLi5iYzBhNjg0ZWU3M2MzNjkyZjEzZmRj
OTc4YWRiOGQ4YjY1ODczNmU5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9JbnRyaW5zaWNzLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lu
dHJpbnNpY3MuanMKQEAgLTQ4LDYxICs0OCw2IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBjYXN0KHR5
cGVkQXJyYXlDb25zdHJ1Y3RvciwgbnVtYmVyKQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIg
YXJyYXkgPSBuZXcgdHlwZWRBcnJheUNvbnN0cnVjdG9yKDEpOwotICAgICAgICAgICAgYXJyYXlb
MF0gPSBudW1iZXI7Ci0gICAgICAgICAgICByZXR1cm4gYXJyYXlbMF07Ci0gICAgICAgIH0KLQot
ICAgICAgICBmdW5jdGlvbiBiaXR3aXNlQ2FzdCh0eXBlZEFycmF5Q29uc3RydWN0b3IxLCB0eXBl
ZEFycmF5Q29uc3RydWN0b3IyLCB2YWx1ZSkKLSAgICAgICAgewotICAgICAgICAgICAgbGV0IHR5
cGVkQXJyYXkxID0gbmV3IHR5cGVkQXJyYXlDb25zdHJ1Y3RvcjEoMSk7Ci0gICAgICAgICAgICBs
ZXQgdHlwZWRBcnJheTIgPSBuZXcgdHlwZWRBcnJheUNvbnN0cnVjdG9yMih0eXBlZEFycmF5MS5i
dWZmZXIpOwotICAgICAgICAgICAgdHlwZWRBcnJheTFbMF0gPSB2YWx1ZTsKLSAgICAgICAgICAg
IHJldHVybiB0eXBlZEFycmF5MlswXTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIGNh
c3RUb0hhbGYobnVtYmVyKQotICAgICAgICB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogTWFrZSB0
aGlzIG1hdGggb2JleSBJRUVFIDc1NC4KLSAgICAgICAgICAgIGlmIChOdW1iZXIuaXNOYU4obnVt
YmVyKSkKLSAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIKLSAgICAgICAgICAgIGlmIChudW1i
ZXIgPiA2NTUwNCkKLSAgICAgICAgICAgICAgICByZXR1cm4gTnVtYmVyLlBPU0lUSVZFX0lORklO
SVRZOwotICAgICAgICAgICAgaWYgKG51bWJlciA8IC02NTUwNCkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOwotICAgICAgICAgICAgaWYgKG51bWJlciA+
IDAgJiYgbnVtYmVyIDwgTWF0aC5wb3coMiwgLTI0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4g
MDsKLSAgICAgICAgICAgIGlmIChudW1iZXIgPCAwICYmIG51bWJlciA+IC1NYXRoLnBvdygyLCAt
MjQpKQotICAgICAgICAgICAgICAgIHJldHVybiAtMDsKLSAgICAgICAgICAgIGxldCBkb3VibGVB
cnJheSA9IG5ldyBGbG9hdDY0QXJyYXkoMSk7Ci0gICAgICAgICAgICBsZXQgdWludEFycmF5ID0g
bmV3IFVpbnQ4QXJyYXkoZG91YmxlQXJyYXkuYnVmZmVyKTsKLSAgICAgICAgICAgIGRvdWJsZUFy
cmF5WzBdID0gbnVtYmVyOwotICAgICAgICAgICAgbGV0IHNpZ24gPSB1aW50QXJyYXlbN10gJiAw
eDgwOwotICAgICAgICAgICAgbGV0IGV4cG9uZW50ID0gKCh1aW50QXJyYXlbN10gJiAweDdmKSA8
PCA0KSB8ICgodWludEFycmF5WzZdICYgMHhmMCkgPj4+IDQpOwotICAgICAgICAgICAgbGV0IHNp
Z25pZmljYW5kID0gKCh1aW50QXJyYXlbNl0gJiAweDBmKSA8PCA2KSB8ICgodWludEFycmF5WzVd
ICYgMHhmYykgPj4+IDIpOwotCi0gICAgICAgICAgICBpZiAoKGV4cG9uZW50IC0gMTAyMykgPCAt
MTQpIHsKLSAgICAgICAgICAgICAgICBleHBvbmVudCA9IDA7Ci0gICAgICAgICAgICAgICAgc2ln
bmlmaWNhbmQgPSAoTWF0aC5hYnMobnVtYmVyKSAqIE1hdGgucG93KDIsIDI0KSkgPj4+IDA7Ci0g
ICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gTWF0aC5wb3coMiwgLTE0KSAqIHNpZ25pZmljYW5k
IC8gMTAyNDsKLSAgICAgICAgICAgICAgICBpZiAoc2lnbiAhPSAwKQotICAgICAgICAgICAgICAg
ICAgICB2YWx1ZSAqPSAtMTsKLSAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIGRvdWJsZUFycmF5WzBdID0gMDsKLQotICAgICAgICAgICAg
dWludEFycmF5WzddIHw9IHNpZ247Ci0gICAgICAgICAgICB1aW50QXJyYXlbN10gfD0gKGV4cG9u
ZW50ID4+PiA0KTsKLSAgICAgICAgICAgIHVpbnRBcnJheVs2XSB8PSAoKGV4cG9uZW50IDw8IDQp
ICYgMHhmMCk7Ci0gICAgICAgICAgICB1aW50QXJyYXlbNl0gfD0gKHNpZ25pZmljYW5kID4+PiA2
KTsKLSAgICAgICAgICAgIHVpbnRBcnJheVs1XSB8PSAoKHNpZ25pZmljYW5kIDw8IDIpICYgMHhm
Yyk7Ci0KLSAgICAgICAgICAgIHJldHVybiBkb3VibGVBcnJheVswXTsKLSAgICAgICAgfQotCiAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgdm9pZCIs
CiAgICAgICAgICAgICB0eXBlID0+IHsKQEAgLTEyOCwxNSArNzMsMTUgQEAgY2xhc3MgSW50cmlu
c2ljcyB7CiAgICAgICAgICAgICAgICAgdHlwZS5pc0ludCA9IHRydWU7CiAgICAgICAgICAgICAg
ICAgdHlwZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9
IGZhbHNlOwotICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNC
aXR3aXNlRXF1aXZhbGVudCh2YWx1ZSAmIDB4ZmYsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICB0
eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvVWNo
YXIodmFsdWUpLCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKICAgICAg
ICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5j
cmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3Jp
Z2luLCB2YWx1ZSAmIDB4ZmYsIHR5cGUpOwotICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29y
VmFsdWUgPSB2YWx1ZSA9PiAodmFsdWUgKyAxKSAmIDB4ZmY7CisgICAgICAgICAgICAgICAgdHlw
ZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUo
b3JpZ2luLCBjYXN0VG9VY2hhcih2YWx1ZSksIHR5cGUpOworICAgICAgICAgICAgICAgIHR5cGUu
c3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0VG9VY2hhcih2YWx1ZSArIDEpOwogICAgICAg
ICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKICAgICAgICAg
ICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBi
dWZmZXIuc2V0KG9mZnNldCwgMCk7Ci0gICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZy
b21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAweGZmOwotICAgICAgICAgICAgICAgIHR5
cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmY7Cisg
ICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4g
Y2FzdFRvVWNoYXIodmFsdWUpOworICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9t
VWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9VY2hhcih2YWx1ZSk7CiAgICAgICAgICAgICAg
ICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7CiAgICAgICAgICAgICAgICAgICAgIGZv
ciAobGV0IGkgPSAwOyBpIDw9IDB4ZmY7ICsraSkKICAgICAgICAgICAgICAgICAgICAgICAgIHlp
ZWxkIHt2YWx1ZTogaSwgbmFtZTogaX07CkBAIC0xNTIsMTUgKzk3LDE1IEBAIGNsYXNzIEludHJp
bnNpY3MgewogICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAg
ICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWdu
ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9
PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVlICYgMHhmZmZmLCB2YWx1ZSk7CisgICAgICAgICAg
ICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChj
YXN0VG9Vc2hvcnQodmFsdWUpLCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9
IDE7CiAgICAgICAgICAgICAgICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAg
ICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwu
d2l0aFR5cGUob3JpZ2luLCB2YWx1ZSAmIDB4ZmZmZiwgdHlwZSk7Ci0gICAgICAgICAgICAgICAg
IHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiAodmFsdWUgKyAxKSAmIDB4ZmZmZjsKKyAg
ICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IElu
dExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBjYXN0VG9Vc2hvcnQodmFsdWUpLCB0eXBlKTsKKyAg
ICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+IGNhc3RUb1VzaG9y
dCh2YWx1ZSArIDEpOwogICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIp
ID0+IGEgPT09IGI7CiAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUg
PSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAg
ICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAw
eGZmZmY7Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwg
PSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmZmZjsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRW
YWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvVXNob3J0KHZhbHVlKTsKKyAgICAg
ICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IGNh
c3RUb1VzaG9ydCh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVu
Y3Rpb24qKCkgewogICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhm
ZmZmOyArK2kpCiAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVlOiBpLCBuYW1l
OiBpfTsKQEAgLTE3NSwxNSArMTIwLDE1IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAg
ICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJl
ciA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSBmYWxzZTsKLSAgICAg
ICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFs
ZW50KHZhbHVlID4+PiAwLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVz
ZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0VG9VaW50KHZhbHVlKSwgdmFs
dWUpOwogICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOwogICAgICAgICAgICAgICAgICB0
eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJh
bCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgdmFsdWUg
Pj4+IDAsIHR5cGUpOwotICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFs
dWUgPT4gKHZhbHVlICsgMSkgPj4+IDA7CisgICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0
ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2Fz
dFRvVWludCh2YWx1ZSksIHR5cGUpOworICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZh
bHVlID0gdmFsdWUgPT4gY2FzdFRvVWludCh2YWx1ZSArIDEpOwogICAgICAgICAgICAgICAgICB0
eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7CiAgICAgICAgICAgICAgICAgIHR5
cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQo
b2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRl
cmFsID0gdmFsdWUgPT4gdmFsdWUgPj4+IDA7Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0
VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSA+Pj4gMDsKKyAgICAgICAgICAg
ICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvVWlu
dCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVy
YWwgPSB2YWx1ZSA9PiBjYXN0VG9VaW50KHZhbHVlKTsKICAgICAgICAgICAgICAgICAgdHlwZS5h
bGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBp
ID0gMDsgaSA8PSAweGZmZmZmZmZmOyArK2kpCiAgICAgICAgICAgICAgICAgICAgICAgICAgeWll
bGQge3ZhbHVlOiBpLCBuYW1lOiBpfTsKQEAgLTE5OCwxOCArMTQzLDE4IEBAIGNsYXNzIEludHJp
bnNpY3MgewogICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAg
ICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWdu
ZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+
IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdChJbnQ4QXJyYXksIHZhbHVlKSwgdmFsdWUpOworICAg
ICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2
YWxlbnQoY2FzdFRvQ2hhcih2YWx1ZSksIHZhbHVlKTsKICAgICAgICAgICAgICAgICAgdHlwZS5z
aXplID0gMTsKICAgICAgICAgICAgICAgICAgdHlwZS5kZWZhdWx0VmFsdWUgPSAwOwotICAgICAg
ICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0
ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3QoSW50OEFycmF5LCB2YWx1ZSksIHR5cGUpOwotICAg
ICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdChJbnQ4QXJy
YXksIHZhbHVlICsgMSk7CisgICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChv
cmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2FzdFRvQ2hhcih2
YWx1ZSksIHR5cGUpOworICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFs
dWUgPT4gY2FzdFRvQ2hhcih2YWx1ZSArIDEpOwogICAgICAgICAgICAgICAgICB0eXBlLnZhbHVl
c0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7CiAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxh
dGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAw
KTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFs
dWUgPT4gY2FzdChJbnQ4QXJyYXksIHZhbHVlKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3Jt
YXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3QoSW50OEFycmF5LCB2YWx1ZSk7
CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVl
ID0+IGNhc3RUb0NoYXIodmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVl
RnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvQ2hhcih2YWx1ZSk7CiAgICAgICAgICAg
ICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVuY3Rpb24qKCkgewogICAgICAgICAgICAgICAgICAg
ICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhmZjsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IHZhbHVlID0gY2FzdChJbnQ4QXJyYXksIGkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCB2YWx1ZSA9IGNhc3RUb0NoYXIoaSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgeWllbGQge3ZhbHVlOiB2YWx1ZSwgbmFtZTogdmFsdWV9OwogICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICB9OwpAQCAtMjIzLDE4ICsxNjgsMTggQEAgY2xhc3MgSW50
cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNJbnQgPSB0cnVlOwogICAgICAgICAg
ICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc1Np
Z25lZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUg
PT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0KEludDE2QXJyYXksIHZhbHVlKSwgdmFsdWUpOwor
ICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVx
dWl2YWxlbnQoY2FzdFRvU2hvcnQodmFsdWUpLCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5
cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAgICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAg
ICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IElu
dExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBjYXN0KEludDE2QXJyYXksIHZhbHVlKSwgdHlwZSk7
Ci0gICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0KElu
dDE2QXJyYXksIHZhbHVlICsgMSk7CisgICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJh
bCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2FzdFRv
U2hvcnQodmFsdWUpLCB0eXBlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1
ZSA9IHZhbHVlID0+IGNhc3RUb1Nob3J0KHZhbHVlICsgMSk7CiAgICAgICAgICAgICAgICAgIHR5
cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKICAgICAgICAgICAgICAgICAgdHlw
ZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChv
ZmZzZXQsIDApOwotICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVy
YWwgPSB2YWx1ZSA9PiBjYXN0KEludDE2QXJyYXksIHZhbHVlKTsKLSAgICAgICAgICAgICAgICAg
dHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3QoSW50MTZBcnJh
eSwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVy
YWwgPSB2YWx1ZSA9PiBjYXN0VG9TaG9ydCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUu
Zm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9TaG9ydCh2YWx1ZSk7
CiAgICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVuY3Rpb24qKCkgewogICAgICAg
ICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhmZmZmOyArK2kpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBjYXN0KEludDE2QXJyYXksIGkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGNhc3RUb1Nob3J0KGkpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogdmFsdWUsIG5hbWU6IHZhbHVlfTsKICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfTsKQEAgLTI0OCwxOCArMTkz
LDE4IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0g
dHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAg
ICAgICAgIHR5cGUuaXNTaWduZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICB0eXBlLmNhblJl
cHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQodmFsdWUgfCAwLCB2YWx1ZSk7
CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNl
RXF1aXZhbGVudChjYXN0VG9JbnQodmFsdWUpLCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5
cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAgICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAg
ICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IElu
dExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2YWx1ZSB8IDAsIHR5cGUpOwotICAgICAgICAgICAg
ICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gKHZhbHVlICsgMSkgfCAwOworICAg
ICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50
TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3RUb0ludCh2YWx1ZSksIHR5cGUpOworICAgICAg
ICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdFRvSW50KHZhbHVl
ICsgMSk7CiAgICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9
PT0gYjsKICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZm
ZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOwotICAgICAgICAgICAgICAgICB0
eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSB8IDA7Ci0gICAg
ICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2
YWx1ZSB8IDA7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJh
bCA9IHZhbHVlID0+IGNhc3RUb0ludCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9y
bWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9JbnQodmFsdWUpOwogICAg
ICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsKICAgICAgICAgICAg
ICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmZmZmZmZmY7ICsraSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGkgfCAwOworICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCB2YWx1ZSA9IGNhc3RUb0ludChpKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICB5aWVsZCB7dmFsdWU6IHZhbHVlLCBuYW1lOiB2YWx1ZX07CiAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgIH07CkBAIC0yOTIsNyArMjM3LDcgQEAgY2xhc3MgSW50cmlu
c2ljcyB7CiAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVm
ZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKICAgICAgICAgICAgICAgICAg
dHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWU7CiAgICAgICAg
ICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1
ZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21GbG9hdExpdGVyYWwgPSB2
YWx1ZSA9PiBNYXRoLmZyb3VuZCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0
VmFsdWVGcm9tRmxvYXRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvRmxvYXQodmFsdWUpOwogICAg
ICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCkBAIC0zMzAsNyArMjc1LDgg
QEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgc2FtcGxl
ciIsCiAgICAgICAgICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAgICB0aGlzLnNhbXBsZXIg
PSB0eXBlOwotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gcHV0
IGhlcmUuCisgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICB0
eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0
KG9mZnNldCwge30pOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgZm9yIChsZXQgdGV4dHVy
ZVR5cGUgb2YgWyJUZXh0dXJlMUQiLCAiUldUZXh0dXJlMUQiLCAiVGV4dHVyZTFEQXJyYXkiLCAi
UldUZXh0dXJlMURBcnJheSIsICJUZXh0dXJlMkQiLCAiUldUZXh0dXJlMkQiLCAiVGV4dHVyZTJE
QXJyYXkiLCAiUldUZXh0dXJlMkRBcnJheSIsICJUZXh0dXJlM0QiLCAiUldUZXh0dXJlM0QiLCAi
VGV4dHVyZUN1YmUiXSkgewpAQCAtMzM5LDEyICsyODUsMTYgQEAgY2xhc3MgSW50cmluc2ljcyB7
CiAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdHlwZWRlZiAke3RleHR1cmVUeXBlfTwke3R5
cGVBcmd1bWVudH0+YCwKICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YF0gPSB0
eXBlOworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQp
ID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCB7fSk7CiAgICAgICAgICAgICAgICAgICAgIH0pOwogICAg
ICAgICAgICAgICAgIGZvciAobGV0IGkgPSAyOyBpIDw9IDQ7ICsraSkgewogICAgICAgICAgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0
eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fSR7aX0+YCwKICAgICAgICAgICAg
ICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNb
YCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fSR7aX0+YF0gPSB0eXBlOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVm
ZmVyLnNldChvZmZzZXQsIHt9KTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTM1Niw2ICszMDYsOCBAQCBjbGFzcyBJbnRy
aW5zaWNzIHsKICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5
cGV9PCR7dHlwZUFyZ3VtZW50fT5gLAogICAgICAgICAgICAgICAgICAgICB0eXBlID0+IHsKICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50
fT5gXSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAg
ICAgICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIs
IG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIHt9KTsKICAgICAgICAgICAgICAgICAgICAg
fSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTM2NCw3ICszMTYsNyBAQCBjbGFzcyBJ
bnRyaW5zaWNzIHsKICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAgICAg
YG5hdGl2ZSBvcGVyYXRvciB1Y2hhcigke3ByaW1pdGl2ZVR5cGV9KWAsCiAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgJiAweGZmKTsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChj
YXN0VG9VY2hhcih2YWx1ZS5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgICAgIH0pOwogICAg
ICAgICB9CiAKQEAgLTM3Miw3ICszMjQsNyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciB1c2hv
cnQoJHtwcmltaXRpdmVUeXBlfSlgLAogICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94
KHZhbHVlLmxvYWRWYWx1ZSgpICYgMHhmZmZmKTsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9Vc2hvcnQodmFsdWUu
bG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgfQogCkBAIC0zODAs
NyArMzMyLDcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAogICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgdWludCgke3ByaW1pdGl2ZVR5cGV9
KWAsCiAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkg
Pj4+IDApOworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1
ZV0pID0+IEVQdHIuYm94KGNhc3RUb1VpbnQodmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfQogCkBAIC0zODgsNyArMzQwLDcgQEAgY2xhc3MgSW50cmlu
c2ljcyB7CiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgICAgIGBuYXRp
dmUgb3BlcmF0b3IgY2hhcigke3ByaW1pdGl2ZVR5cGV9KWAsCiAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVl
XSkgPT4gRVB0ci5ib3goY2FzdChJbnQ4QXJyYXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5i
b3goY2FzdFRvQ2hhcih2YWx1ZS5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgICAgIH0pOwog
ICAgICAgICB9CiAKQEAgLTM5Niw3ICszNDgsNyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciBz
aG9ydCgke3ByaW1pdGl2ZVR5cGV9KWAsCiAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5i
b3goY2FzdChJbnQxNkFycmF5LCB2YWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb1No
b3J0KHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgIH0K
IApAQCAtNDIwLDcgKzM3Miw3IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKICAgICAgICAgICAgICAgICBgbmF0aXZlIG9wZXJhdG9yIGZsb2F0KCR7cHJp
bWl0aXZlVHlwZX0pYCwKICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChNYXRoLmZy
b3VuZCh2YWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb0Zsb2F0KHZhbHVlLmxvYWRW
YWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KIApAQCAtNDg0LDI5MiAr
NDM2LDI5MiBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICJuYXRpdmUgaW50IG9w
ZXJhdG9yLShpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goKC12YWx1ZS5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goY2FzdFRvSW50KC12YWx1ZS5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAK
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0
b3ItKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KE1hdGguZnJvdW5kKC12YWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChjYXN0VG9GbG9hdCgtdmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAg
IH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBv
cGVyYXRvcisoaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8
IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5sb2FkVmFs
dWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0
aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3ItKGludCxpbnQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
KGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2Fk
VmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAg
ICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yKihpbnQsaW50KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCBy
aWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgp
ICogcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KGNhc3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAg
ICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZl
IGludCBvcGVyYXRvci8oaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1
ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5s
b2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAg
ICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yKyh1
aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOwor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxlZnQubG9hZFZhbHVlKCkg
KyByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5f
bWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvci0odWludCx1aW50KSIs
CiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChs
ZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWludChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9h
ZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAg
ICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3IqKHVpbnQsdWludCkiLAogICAgICAgICAg
ICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFs
dWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAg
Im5hdGl2ZSB1aW50IG9wZXJhdG9yLyh1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4g
ewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLyByaWdo
dC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0
VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAg
ICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxv
YXQgb3BlcmF0b3IrKGZsb2F0LGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgKyBy
aWdodC5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9G
bG9hdChsZWZ0LmxvYWRWYWx1ZSgpICsgcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAg
IH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0
IG9wZXJhdG9yLShmbG9hdCxmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmln
aHQubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxv
YXQobGVmdC5sb2FkVmFsdWUoKSAtIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9
KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBv
cGVyYXRvciooZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0
LmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0
KGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7
CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3Bl
cmF0b3IvKGZsb2F0LGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5s
b2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChs
ZWZ0LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwog
CiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRv
ciYoaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSAm
IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9t
YXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3J8KGludCxpbnQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQu
bG9hZFZhbHVlKCkgfCByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkgfCByaWdodC5sb2FkVmFsdWUo
KSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAg
ICAgICJuYXRpdmUgaW50IG9wZXJhdG9yXihpbnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+
IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0p
ID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmln
aHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RU
b0ludChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAg
IH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBv
cGVyYXRvcn4oaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KCh+dmFsdWUubG9hZFZh
bHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFs
dWVdKSA9PiBFUHRyLmJveChjYXN0VG9JbnQofnZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAg
ICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBp
bnQgb3BlcmF0b3I8PChpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSA8PCByaWdodC5sb2FkVmFs
dWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQu
bG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcj4+
KGludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpID4+IHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSA+
PiByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5f
bWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvciYodWludCx1aW50KSIs
CiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChs
ZWZ0LmxvYWRWYWx1ZSgpICYgcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWludChsZWZ0LmxvYWRWYWx1ZSgpICYgcmlnaHQubG9h
ZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAg
ICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3J8KHVpbnQsdWludCkiLAogICAgICAgICAg
ICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFs
dWUoKSB8IHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSB8IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAg
Im5hdGl2ZSB1aW50IG9wZXJhdG9yXih1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4g
ewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgXiByaWdo
dC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0
VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgXiByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAg
ICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWlu
dCBvcGVyYXRvcn4odWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCgofnZhbHVlLmxv
YWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9VaW50KH52YWx1ZS5sb2FkVmFsdWUoKSkpOwog
ICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJu
YXRpdmUgdWludCBvcGVyYXRvcjw8KHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7
CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9
PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSA8PCByaWdo
dC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0
VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAg
ICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVp
bnQgb3BlcmF0b3I+Pih1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgPj4+IHJpZ2h0LmxvYWRW
YWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQo
bGVmdC5sb2FkVmFsdWUoKSA+Pj4gcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNv
cyhmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChNYXRoLmZyb3VuZChNYXRoLmNvcyh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5jb3ModmFsdWUubG9hZFZhbHVlKCkp
KSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAg
ICAgIm5hdGl2ZSBmbG9hdCBzaW4oZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5zaW4odmFsdWUubG9hZFZhbHVl
KCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguc2lu
KHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5f
bWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgdGFuKGZsb2F0KSIsCiAgICAgICAg
ICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2
YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgu
dGFuKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChj
YXN0VG9GbG9hdChNYXRoLnRhbih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGFj
b3MoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goTWF0aC5mcm91bmQoTWF0aC5hY29zKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLmFjb3ModmFsdWUubG9hZFZhbHVl
KCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAg
ICAgICAgIm5hdGl2ZSBmbG9hdCBhc2luKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsK
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguYXNpbih2YWx1ZS5sb2Fk
VmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0
aC5hc2luKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAg
dGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgYXRhbihmbG9hdCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3Vu
ZChNYXRoLmF0YW4odmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguYXRhbih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAg
ICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZl
IGZsb2F0IGNvc2goZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5jb3NoKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLmNvc2godmFsdWUu
bG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0
KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBzaW5oKGZsb2F0KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0p
ID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguc2luaCh2
YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRv
RmxvYXQoTWF0aC5zaW5oKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAK
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgdGFuaChm
bG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChN
YXRoLmZyb3VuZChNYXRoLnRhbmgodmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgudGFuaCh2YWx1ZS5sb2FkVmFsdWUoKSkp
KTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAg
ICAibmF0aXZlIGZsb2F0IGNlaWwoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5jZWlsKHZhbHVlLmxvYWRWYWx1
ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLmNl
aWwodmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlz
Ll9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBleHAoZmxvYXQpIiwKICAgICAg
ICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0
aC5leHAodmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KGNhc3RUb0Zsb2F0KE1hdGguZXhwKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAg
fSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQg
Zmxvb3IoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goTWF0aC5mcm91bmQoTWF0aC5mbG9vcih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5mbG9vcih2YWx1ZS5sb2Fk
VmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAg
ICAgICAgICAgICAibmF0aXZlIGZsb2F0IGxvZyhmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9
PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9Pgot
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmxvZyh2YWx1ZS5s
b2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQo
TWF0aC5sb2codmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCByb3VuZChmbG9hdCki
LAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZy
b3VuZChNYXRoLnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwog
ICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJu
YXRpdmUgZmxvYXQgc3FydChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnNxcnQodmFsdWUubG9hZFZhbHVlKCkp
KSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguc3FydCh2
YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21h
cC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IHRydW5jKGZsb2F0KSIsCiAgICAgICAg
ICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2
YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgu
dHJ1bmModmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KGNhc3RUb0Zsb2F0KE1hdGgudHJ1bmModmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAg
ICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KApAQCAtNzg4LDcgKzc0MCw3IEBAIGNsYXNz
IEludHJpbnNpY3MgewogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBwb3coZmxvYXQsZmxvYXQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
TWF0aC5mcm91bmQoTWF0aC5wb3cobGVmdC5sb2FkVmFsdWUoKSwgcmlnaHQubG9hZFZhbHVlKCkp
KSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgucG93KGxl
ZnQubG9hZFZhbHVlKCksIHJpZ2h0LmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAK
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKQEAgLTgzMiw3ICs3ODQsNyBAQCBjbGFzcyBJbnRyaW5z
aWNzIHsKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgYXRhbjIoZmxvYXQsZmxvYXQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQoTWF0aC5hdGFuMihsZWZ0LmxvYWRWYWx1ZSgpLCByaWdodC5sb2FkVmFsdWUoKSkpKTsK
KyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5hdGFuMihsZWZ0
LmxvYWRWYWx1ZSgpLCByaWdodC5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCkBAIC05MTQsNiArODY2LDEzODggQEAgY2xhc3MgSW50cmlu
c2ljcyB7CiAKICAgICAgICAgZm9yIChsZXQgc2V0dGVyIG9mIEJ1aWx0aW5NYXRyaXhTZXR0ZXIu
ZnVuY3Rpb25zKCkpCiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KHNldHRlci50b1N0cmluZygp
LCBmdW5jID0+IHNldHRlci5pbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsKKworICAg
ICAgICBmdW5jdGlvbiBjaGVja1VuZGVmaW5lZChvcmlnaW4sIGV4cGxhbmF0aW9uLCB2YWx1ZSkK
KyAgICAgICAgeworICAgICAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkKKyAgICAgICAg
ICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQg
b2YgYm91bmRzIik7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBjaGVja0ZhbHNlKG9yaWdpbiwgZXhwbGFuYXRpb24sIHZhbHVlKQorICAg
ICAgICB7CisgICAgICAgICAgICBpZiAodmFsdWUgPT0gZmFsc2UpCisgICAgICAgICAgICAgICAg
dGhyb3cgbmV3IFdUcmFwRXJyb3IoIltTdG9yZV0iLCAiVGV4dHVyZSBzdG9yZSBvdXQgb2YgYm91
bmRzIik7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBib3hWZWN0b3IoYSkKKyAgICAg
ICAgeworICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBBcnJheSkgeworICAgICAgICAgICAg
ICAgIGxldCByZXN1bHQgPSBuZXcgRVB0cihuZXcgRUJ1ZmZlcihhLmxlbmd0aCksIDApOworICAg
ICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkKKyAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0LnNldChpLCBhW2ldKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIu
Ym94KGEpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdW5ib3hWZWN0b3IoYSwgbGVu
Z3RoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAobGVuZ3RoICE9ICIiKSB7CisgICAgICAg
ICAgICAgICAgbGVuZ3RoID0gTnVtYmVyLnBhcnNlSW50KGxlbmd0aCk7CisgICAgICAgICAgICAg
ICAgbGV0IHJlc3VsdCA9IFtdOworICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
bGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGEuZ2V0KGkpKTsK
KyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgcmV0dXJuIGEubG9hZFZhbHVlKCk7CisgICAgICAgIH0KKworICAgICAgICBm
b3IgKGxldCB0eXBlIG9mIFsidWNoYXIiLCAidXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9y
dCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICBmb3IgKHZhciBsZW5n
dGhWYXJpYWJsZSBvZiBbYGAsIGAyYCwgYDNgLCBgNGBdKSB7CisgICAgICAgICAgICAgICAgbGV0
IGxlbmd0aCA9IGxlbmd0aFZhcmlhYmxlOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4
dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9u
LmxvYWRWYWx1ZSgpLCAwLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0g
U2FtcGxlKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0IGxvY2F0aW9u
LGludCBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24ubG9hZFZhbHVlKCksIDAsIDAsIDEsIDBdOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5sb2Fk
VmFsdWUoKSwgMCwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVl
KCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1
cmUxRDwke3R5cGV9JHtsZW5ndGh9PixpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1
cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tl
ZCgwLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHts
ZW5ndGh9IExvYWQoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LGludDIgbG9jYXRpb24saW50
IG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0
aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRz
IiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMSks
IDAsIDAsIGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERp
bWVuc2lvbnMoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWludCog
dGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBudW1iZXJPZkxldmVs
c10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2Fk
VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZl
bC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0g
dGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5l
dyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50
IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lk
dGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkp
LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xl
bmd0aH0gU2FtcGxlKFRleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9j
YXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIDAsIDAsIDEsIGxvY2F0aW9uLmdldCgxKV07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0
dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJy
YXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMURBcnJheTwke3R5
cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgMCwgMCwgMSwgbG9jYXRpb24uZ2V0KDEpXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQubG9hZFZhbHVlKCksIDAs
IDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxl
VGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlv
bkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMURBcnJheTwk
e3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVh
ZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2Nh
dGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgbG9jYXRpb24uZ2V0KDApKSkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQz
IGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0
ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQg
b3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRp
b24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSArIG9mZnNl
dC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEQXJyYXk8JHt0eXBl
fSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFk
IEVsZW1lbnRzLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBlbGVtZW50cywgbnVtYmVy
T2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1
cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0g
bWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1p
cElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25l
eGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwo
bWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1
cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24u
Z2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7
bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQy
IGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24u
Z2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFB
cnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2Fk
VmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwg
bG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgp
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHts
ZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSks
IDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxl
VGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlv
bkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4
dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0MiBE
RFgsZmxvYXQyIEREWSlgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEp
LCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBb
ZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0ke2xlbmd0aH0gU2FtcGxlR3JhZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2Ft
cGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0KWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwg
MF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQo
MCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlB
cnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkQ8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9k
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2Fk
VmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5l
ZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0
aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IExPRCxpbnQyIG9mZnNldClgLAorICAg
ICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxv
ZCwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFy
cmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBv
ZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94
VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFs
dWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4
dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxv
Y2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0
KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJh
eSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFs
dWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9j
YXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0
dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJy
YXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xl
bmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0
aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEp
LCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhl
clRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRp
b25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMiIgfHwg
bGVuZ3RoID09ICIzIiB8fCBsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdh
dGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbilgLAorICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEs
IDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdh
dGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9j
YXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgMSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJH
cmVlbihUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24s
aW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
ZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRl
eHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRl
bHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCAxKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjMiIHx8
IGxlbmd0aCA9PSAiNCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVl
KFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVl
KCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9m
ZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlv
bkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNl
dC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAyKSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjQiKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkQ8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAw
LCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ym94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMykpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUy
RDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClg
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQo
MCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0Lmdl
dCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9h
ZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAzKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyRDwke3R5cGV9
JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQg
b2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlv
bi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gTG9hZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4saW50MyBsb2NhdGlvbixp
bnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxv
Y2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91
bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQo
MiksIDAsIGxvY2F0aW9uLmdldCgxKSArIG9mZnNldC5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSAr
IG9mZnNldC5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUyRDwke3R5cGV9JHts
ZW5ndGh9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVp
Z2h0LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIG51bWJlck9mTGV2ZWxz
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRW
YWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVs
LmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0
ZXgubGV2ZWxDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3
IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQg
bWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWln
aHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQp
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1
cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUo
dGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUyREFycmF5PCR7dHlwZX0k
e2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQo
MCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxv
YWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2Ft
cGxlQmlhcyhUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBs
b2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgp
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHts
ZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlhcyxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXMsIG9mZnNl
dF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFts
b2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0
KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5s
b2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgYmlhcy5sb2FkVmFsdWUoKSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVu
Z3RofSBTYW1wbGVHcmFkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSlgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9u
LmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0
KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5
LmdldCgwKSwgZGR5LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIu
bG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBkZHhBcnJh
eSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1w
bGVHcmFkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5LCBv
ZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkg
PSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgy
KV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQo
MCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlB
cnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkRBcnJh
eTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwK
KyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBsb2RdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkg
PSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgy
KV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVU
ZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9u
QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxv
YWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUxldmVsKFRleHR1
cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0
IExPRCxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24u
Z2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVy
ZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5
LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZh
bHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlMkRBcnJheTwke3R5cGV9
JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2Nh
dGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXIoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0
dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJy
YXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCAwKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUyREFycmF5PCR7dHlw
ZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFs
dWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEp
LCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhl
clRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRp
b25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMiIgfHwg
bGVuZ3RoID09ICIzIiB8fCBsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdh
dGhlckdyZWVuKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
MCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBs
ZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDEpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNl
dC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwg
c2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDEpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMyIgfHwgbGVuZ3RoID09ICI0Iikgewor
ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFy
cmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5n
ZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVl
KCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3Ro
fT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxv
Y2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxv
Y2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
ZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVy
ZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5
LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgMikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
bGVuZ3RoID09ICI0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDAp
LCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgMykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAw
LCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBd
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgNCkpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHts
ZW5ndGh9PixpbnQ0IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2Yg
Ym91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQo
MyksIGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkp
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+
LGludDQgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJl
IHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQo
bG9jYXRpb24uZ2V0KDMpLCBsb2NhdGlvbi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSArIG9m
ZnNldC5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5nZXQoMCkpKSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXRE
aW1lbnNpb25zKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWws
dWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIEVsZW1l
bnRzLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRzLCBudW1i
ZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4
dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQg
PSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
bWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5v
bmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHRBdExl
dmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxD
b3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUzRDwke3R5cGV9JHts
ZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCks
IHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHts
ZW5ndGh9IFNhbXBsZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24saW50MyBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgb2Zmc2V0
LmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihz
YW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxv
Y2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUzRDwk
e3R5cGV9JHtsZW5ndGh9PixpbnQ0IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVh
ZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBs
b2NhdGlvbi5nZXQoMyksIGxvY2F0aW9uLmdldCgyKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlv
bi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUzRDwke3R5cGV9JHtsZW5n
dGh9PixpbnQ0IGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4
dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVj
a2VkKDAsIGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIpICsgb2Zmc2V0LmdldCgyKSwg
bG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0
LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+
LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWlu
dCogdGhyZWFkIERlcHRoLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIGRl
cHRoLCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
dGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGlu
ZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGVwdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmRl
cHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWln
aHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQp
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1
cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlQmlhcyhUZXh0dXJlQ3ViZTwke3R5cGV9JHts
ZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5k
ZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4dHVyZUN1YmU8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQzIEREWCxmbG9hdDMg
RERZKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxv
Y2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9u
LmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5
ID0gW2RkeC5nZXQoMCksIGRkeC5nZXQoMSksIGRkeC5nZXQoMildOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCBkZHku
Z2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNh
bXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9j
YXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGRkeEFycmF5LCBkZHlBcnJheSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUxldmVsKFRleHR1cmVD
dWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IExPRClg
LAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIGxvZF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJh
eSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAx
LCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBs
ZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRp
b25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2Qu
bG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlQ3ViZTwke3R5
cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBs
b2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZh
bHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBs
b2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlv
bi5nZXQoMiksIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hW
ZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1
ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGlmIChsZW5ndGgg
PT0gIjIiIHx8IGxlbmd0aCA9PSAiMyIgfHwgbGVuZ3RoID09ICI0IikgeworICAgICAgICAgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAxKSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjMiIHx8IGxlbmd0aCA9PSAiNCIpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmVDdWJlPCR7dHlw
ZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJh
eSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAx
LCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAyKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rv
cihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCks
IGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDMpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAg
YG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4s
dWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50
KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBudW1iZXJPZkxldmVsc10pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFs
dWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4LmxheWVyQ291bnQgIT0g
NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDdWJl
IHRleHR1cmUgZG9lc24ndCBoYXZlIDYgZmFjZXMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGlu
ZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5o
ZWlnaHRBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
ZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQp
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERp
bWVuc2lvbnMoUldUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sdWludCogdGhyZWFkIFdpZHRo
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJX
VGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LGZsb2F0KiB0aHJlYWQgV2lkdGgpYCwKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleHR1
cmUubG9hZFZhbHVlKCkud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoUldUZXh0dXJl
MUQ8JHt0eXBlfSR7bGVuZ3RofT4saW50IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUg
cmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgw
LCAwLCAwLCAwLCBsb2NhdGlvbi5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTFE
PCR7dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0aH0sdWludCBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0ZhbHNlKCJbU3RvcmVdIiwgIlRleHR1
cmUgd3JpdGUgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENo
ZWNrZWQoMCwgMCwgMCwgMCwgbG9jYXRpb24ubG9hZFZhbHVlKCksIHVuYm94VmVjdG9yKHZhbHVl
LCBsZW5ndGgpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIH0pOworCisgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBl
fSR7bGVuZ3RofT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBFbGVtZW50cylgLAor
ICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGVsZW1lbnRzXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1
ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwg
MSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4s
ZmxvYXQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBlbGVtZW50c10pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
ZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gTG9hZChSV1RleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGludDIgbG9j
YXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNr
VW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJl
LmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgMCwgbG9j
YXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5n
dGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBvdXQg
b2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tlZChsb2NhdGlv
bi5nZXQoMSksIDAsIDAsIDAsIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0b3IodmFsdWUsIGxl
bmd0aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3Ro
fT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQpYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lv
bnMoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9h
dCogdGhyZWFkIEhlaWdodClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgd2lkdGgsIGhlaWdodF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4
ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWln
aHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChSV1RleHR1cmUyRDwke3R5cGV9
JHtsZW5ndGh9PixpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQg
b2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCAwLCAwLCBs
b2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTJE
PCR7dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0aH0sdWludDIgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0
dXJlIHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRD
aGVja2VkKDAsIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApLCB1bmJveFZl
Y3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUyREFy
cmF5PCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVp
Z2h0LHVpbnQqIHRocmVhZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
bihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53
aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUyREFycmF5PCR7dHlwZX0ke2xl
bmd0aH0+LGZsb2F0KiB0aHJlYWQgV2lkdGgsZmxvYXQqIHRocmVhZCBIZWlnaHQsZmxvYXQqIHRo
cmVhZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
d2lkdGgsIGhlaWdodCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQp
LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0ke2xlbmd0aH0gTG9hZChSV1RleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGlu
dDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9y
KGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0
ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgyKSwgMCwgMCwg
bG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUy
REFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0aH0sdWludDMgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRp
b25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIs
ICJUZXh0dXJlIHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVs
ZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgyKSwgMCwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2Nh
dGlvbi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVlLCBsZW5ndGgpKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1l
bnNpb25zKFJXVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQqIHRocmVhZCBXaWR0aCx1
aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBEZXB0aClgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZGVwdGhdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4LmRlcHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0Lmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
d2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3Ro
fT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhyZWFkIEhlaWdodCxmbG9hdCogdGhyZWFk
IERlcHRoKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwg
aGVpZ2h0LCBkZXB0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0g
dGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aC5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguZGVwdGgpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9h
ZChSV1RleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRd
IiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVt
ZW50Q2hlY2tlZCgwLCAwLCBsb2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRp
b24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sJHt0
eXBlfSR7bGVuZ3RofSx1aW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjaGVja0ZhbHNlKCJbU3RvcmVdIiwgIlRleHR1cmUgd3JpdGUgb3V0IG9mIGJvdW5k
cyIsIHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQoMCwgMCwgbG9jYXRpb24u
Z2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0b3IodmFs
dWUsIGxlbmd0aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCB0
eXBlIG9mIFsiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkQ8JHt0
eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwg
MSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9j
YXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBs
b2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQo
MCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSlgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVl
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCks
IHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVl
KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlQ21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLCR7
dHlwZX0gQ29tcGFyZVZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUu
bG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJy
YXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZh
bHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSlgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzCisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVy
byhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbiwke3R5cGV9
IENvbXBhcmVWYWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgy
RDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDAp
LCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIu
bG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgYmlhcy5sb2FkVmFsdWUoKSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZURl
cHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgQmlhcyxpbnQyIG9m
ZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgYmlhcywgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9u
QXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zm
c2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9y
KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwg
bG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgYmlhcy5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZKWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeV0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9u
LmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVy
ZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0
aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHksIG9mZnNldF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdl
dCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCks
IG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVl
KCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFy
cmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Pixz
YW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0
KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Io
c2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBs
b2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IGxvZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IExPRCxpbnQyIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kLCBvZmZzZXRd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0
ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBk
ZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVl
KCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxv
Y2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9j
YXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0
dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9j
YXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwg
MF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJS
ZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBv
ZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5
ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5n
ZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRo
ZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0
aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDAp
LCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIu
bG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCksIDApKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckNt
cChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBj
b21wYXJlX3ZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9j
YXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0
YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZh
bHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZhbHVlLmxv
YWRWYWx1ZSgpLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9h
dDIgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24g
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2Nh
dGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCksIDApKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcFJlZChU
ZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBjb21w
YXJlX3ZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRp
b24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFy
cmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZhbHVlLmxvYWRW
YWx1ZSgpLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9IExvYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4saW50MyBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJl
IHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQo
MCwgbG9jYXRpb24uZ2V0KDIpLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkp
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChU
ZXh0dXJlRGVwdGgyRDwke3R5cGV9PixpbnQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0i
LCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1l
bnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0
LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0LmdldCgwKSkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlRGVw
dGgyRDwke3R5cGV9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJl
YWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgbnVtYmVyT2ZMZXZlbHNd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1
ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0
RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0
dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhB
dExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZl
bHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVw
dGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZz
ZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9m
ZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rv
cihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCks
IGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZh
bHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFs
dWUsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5
ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQo
MildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0Lmdl
dCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ym94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxa
ZXJvKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24s
JHt0eXBlfSBDb21wYXJlVmFsdWUpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZV0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkRBcnJh
eTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSxp
bnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9u
LmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1w
bGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIGJpYXMubG9hZFZhbHVl
KCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlh
cyxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgYmlhcywgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEs
IGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJh
eSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxv
YWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3Jh
ZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZs
b2F0MiBERFgsZmxvYXQyIEREWSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwg
MSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJh
eSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRl
eHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQy
IEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeSwgb2Zmc2V0XSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2Nh
dGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5LmdldCgwKSwgZGR5LmdldCgxKSwg
MF07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0
KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
b3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRW
YWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIGRkeEFycmF5LCBk
ZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoMkRBcnJheTwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9j
YXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCks
IHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwo
VGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9h
dCBMT0QsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFB
cnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1
ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkp
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
KFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQo
MCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIo
VGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQy
IG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJy
YXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdl
dCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQu
Z2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxv
YWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmVEZXB0aDJE
QXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdl
dCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVy
LmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRo
MkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZz
ZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Io
Z2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBs
b2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVl
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVy
ZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbXBhcmVW
YWx1ZS5sb2FkVmFsdWUoKSwgMCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFy
ZVZhbHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25B
cnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24u
Z2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNl
dC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIu
bG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpLCAwKSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJD
bXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxv
YWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpLCAwKSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBS
ZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixm
bG9hdCBjb21wYXJlX3ZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgx
KSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCksIDApKTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlw
ZX0+LGludDQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNr
VW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJl
LmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0
KDIpLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlRGVwdGgyREFy
cmF5PCR7dHlwZX0+LGludDQgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJl
IHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQo
bG9jYXRpb24uZ2V0KDMpLCBsb2NhdGlvbi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSArIG9m
ZnNldC5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5nZXQoMCkpKSk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVy
ZURlcHRoMkRBcnJheTwke3R5cGV9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1
aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBFbGVtZW50cyx1aW50KiB0aHJlYWQgTnVt
YmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbWlwbGV2ZWws
IHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRzLCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJS
ZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
aGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRo
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwg
MSk7CisgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJv
bShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAg
bnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291
bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0g
U2FtcGxlKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5n
ZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNt
cChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLCR7dHlw
ZX0gQ29tcGFyZVZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9j
YXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hW
ZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1
ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhU
ZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLCR7dHlwZX0g
Q29tcGFyZVZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBG
SVhNRTogSW1wbGVtZW50IHRoaXMKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
bG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
b3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRW
YWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIGJpYXMubG9hZFZhbHVlKCksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aEN1
YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQzIEREWCxmbG9hdDMgRERZ
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBk
ZHgsIGRkeV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBd
OworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCksIGRk
eC5nZXQoMSksIGRkeC5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeUFy
cmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIGRkeS5nZXQoMildOworICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZh
bHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRl
eHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9E
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBs
b2RdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0
dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxvZC5sb2FkVmFsdWUoKSwg
dW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0
aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOworICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1
cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00
IEdhdGhlclJlZChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVy
ZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgMCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyQ21wKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQo
MSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5s
b2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSwgMCkpOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21w
UmVkKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxv
YXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxv
Y2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94
VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFs
dWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSwgMCkpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1
cmVEZXB0aEN1YmU8JHt0eXBlfT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWlu
dCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIG51bWJlck9m
TGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9h
ZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5s
b2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXgubGF5ZXJDb3VudCAh
PSA2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ3ViZSB0
ZXh0dXJlIGRvZXNuJ3QgaGF2ZSA2IGZhY2VzIik7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9u
ZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZlbCht
aXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sdWludCog
dGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQpYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgd2lkdGgsIGhlaWdodF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVp
Z2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRl
eC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9p
ZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sZmxvYXQqIHRocmVhZCBX
aWR0aCxmbG9hdCogdGhyZWFkIEhlaWdodClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCB3aWR0aCwgaGVpZ2h0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9
IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRo
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExv
YWQoUldUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVh
ZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCAw
LCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlRGVwdGgyRDwke3R5
cGV9Piwke3R5cGV9LHVpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNr
RmFsc2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5s
b2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tlZCgwLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxv
Y2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0b3IodmFsdWUsIGxlbmd0aCkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmVE
ZXB0aDJEQXJyYXk8JHt0eXBlfT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWln
aHQsdWludCogdGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1
cmUsIHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBl
bGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEp
OworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZURl
cHRoMkRBcnJheTwke3R5cGV9PixmbG9hdCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJlYWQgSGVp
Z2h0LGZsb2F0KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwg
MSk7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoUldUZXh0dXJlRGVwdGgy
REFycmF5PCR7dHlwZX0+LGludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94
VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3Vu
ZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgyKSwg
MCwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZURlcHRoMkRBcnJh
eTwke3R5cGV9Piwke3R5cGV9LHVpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVu
YyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBvdXQgb2YgYm91bmRzIiwgdGV4
dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMiksIDAsIDAs
IGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApLCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVu
Z3RoKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0KICAgICB9CiAKICAgICBhZGQodGhpbmcpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvU1BJUlYuaHRtbAppbmRleCA3OGQwMDhmODM1ZjllOWMyMzRlZjJkZjZkNmRlZWEzZjc0MjZj
ZTY1Li4xYjI2Y2YyYjJlNjUxNTI3YTE1MmVlOGQ5MmZmMjViZWRhNjFkMzM5IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKQEAgLTM0LDYgKzM0LDcgQEAgdGQgewog
ICAgIDxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9yU2V0dGVyLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iQ2FsbEV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJDYWxsRnVuY3Rpb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJDYXN0cy5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNoZWNrLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iQ2hlY2tMaXRlcmFsVHlwZXMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJDaGVja0xvb3BzLmpzIj48L3NjcmlwdD4KQEAgLTEyMSw2ICsxMjIsNyBAQCB0ZCB7CiAgICAg
PHNjcmlwdCBzcmM9IlJldHVybi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlJldHVy
bkNoZWNrZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJSZXR1cm5FeGNlcHRpb24u
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJTYW1wbGVyLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iU3RhbmRhcmRMaWJyYXJ5LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iU3RhdGVtZW50Q2xvbmVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3Ry
dWN0TGF5b3V0QnVpbGRlci5qcyI+PC9zY3JpcHQ+CkBAIC0xMzMsNiArMTM1LDggQEAgdGQgewog
ICAgIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3Bl
cmF0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlRleHR1cmUuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSJUZXh0dXJlT3BlcmF0aW9ucy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUeXBl
RGVmLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NhbXBs
ZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TYW1wbGVyLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmVlNzcxM2RmYzgxZjgzYzU4NDczNjIxMjE3NTY0ZjM5NTcyYjE0YjgKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TYW1wbGVyLmpzCkBAIC0wLDAg
KzEsMTYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyJ1
c2Ugc3RyaWN0IjsKKworY2xhc3MgU2FtcGxlciB7CisgICAgY29uc3RydWN0b3Iob3B0aW9ucykK
KyAgICB7CisgICAgICAgIGlmIChvcHRpb25zLnJBZGRyZXNzTW9kZSA9PSB1bmRlZmluZWQpCisg
ICAgICAgICAgICB0aGlzLl9yQWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgICAgICBl
bHNlCisgICAgICAgICAgICB0aGlzLl9yQWRkcmVzc01vZGUgPSBvcHRpb25zLnJBZGRyZXNzTW9k
ZTsKKyAgICAgICAgaWYgKG9wdGlvbnMuc0FkZHJlc3NNb2RlID09IHVuZGVmaW5lZCkKKyAgICAg
ICAgICAgIHRoaXMuX3NBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHRoaXMuX3NBZGRyZXNzTW9kZSA9IG9wdGlvbnMuc0FkZHJlc3NNb2RlOwor
ICAgICAgICBpZiAob3B0aW9ucy50QWRkcmVzc01vZGUgPT0gdW5kZWZpbmVkKQorICAgICAgICAg
ICAgdGhpcy5fdEFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgdGhpcy5fdEFkZHJlc3NNb2RlID0gb3B0aW9ucy50QWRkcmVzc01vZGU7CisgICAg
ICAgIGlmIChvcHRpb25zLm1pbkZpbHRlciA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlz
Ll9taW5GaWx0ZXIgPSAibmVhcmVzdCI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMu
X21pbkZpbHRlciA9IG9wdGlvbnMubWluRmlsdGVyOworICAgICAgICBpZiAob3B0aW9ucy5tYWdG
aWx0ZXIgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fbWFnRmlsdGVyID0gIm5lYXJl
c3QiOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9tYWdGaWx0ZXIgPSBvcHRpb25z
Lm1hZ0ZpbHRlcjsKKyAgICAgICAgaWYgKG9wdGlvbnMubWlwbWFwRmlsdGVyID09IHVuZGVmaW5l
ZCkKKyAgICAgICAgICAgIHRoaXMuX21pcG1hcEZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgdGhpcy5fbWlwbWFwRmlsdGVyID0gb3B0aW9ucy5taXBtYXBGaWx0
ZXI7CisgICAgICAgIGlmIChvcHRpb25zLmxvZE1pbkNsYW1wID09IHVuZGVmaW5lZCkKKyAgICAg
ICAgICAgIHRoaXMuX2xvZE1pbkNsYW1wID0gLU51bWJlci5NQVhfVkFMVUU7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHRoaXMuX2xvZE1pbkNsYW1wID0gb3B0aW9ucy5sb2RNaW5DbGFtcDsK
KyAgICAgICAgaWYgKG9wdGlvbnMubG9kTWF4Q2xhbXAgPT0gdW5kZWZpbmVkKQorICAgICAgICAg
ICAgdGhpcy5fbG9kTWF4Q2xhbXAgPSBOdW1iZXIuTUFYX1ZBTFVFOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICB0aGlzLl9sb2RNYXhDbGFtcCA9IG9wdGlvbnMubG9kTWF4Q2xhbXA7CisgICAg
ICAgIGlmIChvcHRpb25zLm1heEFuaXNvdHJvcHkgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAg
dGhpcy5fbWF4QW5pc290cm9weSA9IDE7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMu
X21heEFuaXNvdHJvcHkgPSBvcHRpb25zLm1heEFuaXNvdHJvcHk7CisgICAgICAgIGlmIChvcHRp
b25zLmNvbXBhcmVGdW5jdGlvbiA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9jb21w
YXJlRnVuY3Rpb24gPSAibmV2ZXIiOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9j
b21wYXJlRnVuY3Rpb24gPSBvcHRpb25zLmNvbXBhcmVGdW5jdGlvbjsKKyAgICAgICAgaWYgKG9w
dGlvbnMuYm9yZGVyQ29sb3IgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fYm9yZGVy
Q29sb3IgPSAidHJhbnNwYXJlbnRCbGFjayI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRo
aXMuX2JvcmRlckNvbG9yID0gb3B0aW9ucy5ib3JkZXJDb2xvcjsKKyAgICB9CisgICAgCisgICAg
Z2V0IHJBZGRyZXNzTW9kZSgpIHsgcmV0dXJuIHRoaXMuX3JBZGRyZXNzTW9kZTsgfQorICAgIGdl
dCBzQWRkcmVzc01vZGUoKSB7IHJldHVybiB0aGlzLl9zQWRkcmVzc01vZGU7IH0KKyAgICBnZXQg
dEFkZHJlc3NNb2RlKCkgeyByZXR1cm4gdGhpcy5fdEFkZHJlc3NNb2RlOyB9CisgICAgZ2V0IG1p
bkZpbHRlcigpIHsgcmV0dXJuIHRoaXMuX21pbkZpbHRlcjsgfQorICAgIGdldCBtYWdGaWx0ZXIo
KSB7IHJldHVybiB0aGlzLl9tYWdGaWx0ZXI7IH0KKyAgICBnZXQgbWlwbWFwRmlsdGVyKCkgeyBy
ZXR1cm4gdGhpcy5fbWlwbWFwRmlsdGVyOyB9CisgICAgZ2V0IGxvZE1pbkNsYW1wKCkgeyByZXR1
cm4gdGhpcy5fbG9kTWluQ2xhbXA7IH0KKyAgICBnZXQgbG9kTWF4Q2xhbXAoKSB7IHJldHVybiB0
aGlzLl9sb2RNYXhDbGFtcDsgfQorICAgIGdldCBtYXhBbmlzb3Ryb3B5KCkgeyByZXR1cm4gdGhp
cy5fbWF4QW5pc290cm9weTsgfQorICAgIGdldCBjb21wYXJlRnVuY3Rpb24oKSB7IHJldHVybiB0
aGlzLl9jb21wYXJlRnVuY3Rpb247IH0KKyAgICBnZXQgYm9yZGVyQ29sb3IoKSB7IHJldHVybiB0
aGlzLl9ib3JkZXJDb2xvcjsgfQorCisgICAgY2FsY3VsYXRlQm9yZGVyQ29sb3IoaW5uZXJUeXBl
KQorICAgIHsKKyAgICAgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjMuMworICAgICAg
ICBmdW5jdGlvbiBjb21wdXRlVmFsdWVzKCkgeworICAgICAgICAgICAgc3dpdGNoIChpbm5lclR5
cGUpIHsKKyAgICAgICAgICAgICAgICBjYXNlICJ1Y2hhciI6CisgICAgICAgICAgICAgICAgICAg
IHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdoaXRl
OiAweEZGfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1c2hvcnQiOgorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVX
aGl0ZTogMHhGRkZGfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1aW50IjoKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazogMCwgb3Bh
cXVlV2hpdGU6IDB4RkZGRkZGRkZ9OworICAgICAgICAgICAgICAgIGNhc2UgImNoYXIiOgorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNr
OiAwLCBvcGFxdWVXaGl0ZTogMHg3Rn07CisgICAgICAgICAgICAgICAgY2FzZSAic2hvcnQiOgor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJs
YWNrOiAwLCBvcGFxdWVXaGl0ZTogMHg3RkZGfTsKKyAgICAgICAgICAgICAgICBjYXNlICJpbnQi
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1
ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMHg3RkZGRkZGRn07CisgICAgICAgICAgICAgICAgY2Fz
ZSAiaGFsZiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazog
MCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdoaXRlOiAxfTsKKyAgICAgICAgICAgICAgICBjYXNl
ICJmbG9hdCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazog
MCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdoaXRlOiAxfTsKKyAgICAgICAgICAgICAgICBjYXNl
ICJ1Y2hhcjIiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6
IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsweEZGLCAweEZGXX07
CisgICAgICAgICAgICAgICAgY2FzZSAidXNob3J0MiI6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFx
dWVXaGl0ZTogWzB4RkZGRiwgMHhGRkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAidWludDIi
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwg
b3BhcXVlQmxhY2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsweEZGRkZGRkZGLCAweEZGRkZGRkZG
XX07CisgICAgICAgICAgICAgICAgY2FzZSAiY2hhcjIiOgorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwXSwgb3Bh
cXVlV2hpdGU6IFsweDdGLCAweDdGXX07CisgICAgICAgICAgICAgICAgY2FzZSAic2hvcnQyIjoK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9w
YXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHg3RkZGLCAweDdGRkZdfTsKKyAgICAg
ICAgICAgICAgICBjYXNlICJpbnQyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFu
c3BhcmVudEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBb
MHg3RkZGRkZGRiwgMHg3RkZGRkZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgImhhbGYyIjoK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9w
YXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMSwgMV19OworICAgICAgICAgICAgICAg
IGNhc2UgImZsb2F0MiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRC
bGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzEsIDFdfTsK
KyAgICAgICAgICAgICAgICBjYXNlICJ1Y2hhcjMiOgorICAgICAgICAgICAgICAgICAgICByZXR1
cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwg
b3BhcXVlV2hpdGU6IFsweEZGLCAweEZGLCAweEZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAi
dXNob3J0MyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazog
WzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4RkZGRiwg
MHhGRkZGLCAweEZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1aW50MyI6CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVC
bGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4RkZGRkZGRkYsIDB4RkZGRkZGRkYsIDB4
RkZGRkZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJjaGFyMyI6CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazog
WzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4N0YsIDB4N0YsIDB4N0ZdfTsKKyAgICAgICAgICAg
ICAgICBjYXNlICJzaG9ydDMiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFy
ZW50QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6
IFsweDdGRkYsIDB4N0ZGRiwgMHg3RkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAiaW50MyI6
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDBd
LCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4N0ZGRkZGRkYsIDB4N0ZG
RkZGRkYsIDB4N0ZGRkZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJoYWxmMyI6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFx
dWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzEsIDEsIDFdfTsKKyAgICAgICAgICAg
ICAgICBjYXNlICJmbG9hdDMiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFy
ZW50QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6
IFsxLCAxLCAxXX07CisgICAgICAgICAgICAgICAgY2FzZSAidWNoYXI0IjoKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJs
YWNrOiBbMCwgMCwgMCwgMHhGRl0sIG9wYXF1ZVdoaXRlOiBbMHhGRiwgMHhGRiwgMHhGRiwgMHhG
Rl19OworICAgICAgICAgICAgICAgIGNhc2UgInVzaG9ydDQiOgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFsw
LCAwLCAwLCAweEZGRkZdLCBvcGFxdWVXaGl0ZTogWzB4RkZGRiwgMHhGRkZGLCAweEZGRkYsIDB4
RkZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgInVpbnQ0IjoKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBb
MCwgMCwgMCwgMHhGRkZGRkZGRl0sIG9wYXF1ZVdoaXRlOiBbMHhGRkZGRkZGRiwgMHhGRkZGRkZG
RiwgMHhGRkZGRkZGRiwgMHhGRkZGRkZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgImNoYXI0
IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwg
MCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMHg3Rl0sIG9wYXF1ZVdoaXRlOiBbMHg3Riwg
MHg3RiwgMHg3RiwgMHg3Rl19OworICAgICAgICAgICAgICAgIGNhc2UgInNob3J0NCI6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBv
cGFxdWVCbGFjazogWzAsIDAsIDAsIDB4N0ZGRl0sIG9wYXF1ZVdoaXRlOiBbMHg3RkZGLCAweDdG
RkYsIDB4N0ZGRiwgMHg3RkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAiaW50NCI6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBv
cGFxdWVCbGFjazogWzAsIDAsIDAsIDB4N0ZGRkZGRkZdLCBvcGFxdWVXaGl0ZTogWzB4N0ZGRkZG
RkYsIDB4N0ZGRkZGRkYsIDB4N0ZGRkZGRkYsIDB4N0ZGRkZGRkZdfTsKKyAgICAgICAgICAgICAg
ICBjYXNlICJoYWxmNCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRC
bGFjazogWzAsIDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDAsIDFdLCBvcGFxdWVXaGl0
ZTogWzEsIDEsIDEsIDFdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJmbG9hdDQiOgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3Bh
cXVlQmxhY2s6IFswLCAwLCAwLCAxXSwgb3BhcXVlV2hpdGU6IFsxLCAxLCAxLCAxXX07CisgICAg
ICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJVbmtub3duIHRleHR1cmUgaW5uZXIgdHlwZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgICAgIHJldHVybiBjb21wdXRlVmFsdWVzKClbdGhpcy5ib3JkZXJDb2xvcl07CisgICAg
fQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRM
aWJyYXJ5LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5
LmpzCmluZGV4IDNkZDRmZWUxODYwMGQ1Y2QyYTg5NWFkNWE0Nzk3MjFkYTc3ODhjYzEuLjgxODE2
ZGYxYzVlYTg2ZGU1NmZjM2FhNGNkMGRiNWQ2N2QwZmNiZGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcworKysgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKQEAgLTU3LDcgKzU3LDcgQEAg
bGV0IHN0YW5kYXJkTGlicmFyeSA9IChmdW5jdGlvbigpIHsKICAgICAgICAgfQogICAgICAgICBw
cmludChgbmF0aXZlIHR5cGVkZWYgc2FtcGxlcjtgKTsKICAgICAgICAgZm9yICh2YXIgdHlwZSBv
ZiBbYFRleHR1cmUxRGAsIGBSV1RleHR1cmUxRGAsIGBUZXh0dXJlMURBcnJheWAsIGBSV1RleHR1
cmUxREFycmF5YCwgYFRleHR1cmUyRGAsIGBSV1RleHR1cmUyRGAsIGBUZXh0dXJlMkRBcnJheWAs
IGBSV1RleHR1cmUyREFycmF5YCwgYFRleHR1cmUzRGAsIGBSV1RleHR1cmUzRGAsIGBUZXh0dXJl
Q3ViZWBdKSB7Ci0gICAgICAgICAgICBmb3IgKHZhciB0eXBlQXJndW1lbnRCYXNlIG9mIFtgYm9v
bGAsIGB1Y2hhcmAsIGB1c2hvcnRgLCBgdWludGAsIGBjaGFyYCwgYHNob3J0YCwgYGludGAsIGBo
YWxmYCwgYGZsb2F0YF0pIHsKKyAgICAgICAgICAgIGZvciAodmFyIHR5cGVBcmd1bWVudEJhc2Ug
b2YgW2B1Y2hhcmAsIGB1c2hvcnRgLCBgdWludGAsIGBjaGFyYCwgYHNob3J0YCwgYGludGAsIGBo
YWxmYCwgYGZsb2F0YF0pIHsKICAgICAgICAgICAgICAgICBmb3IgKHZhciBzaXplIG9mIFtgYCwg
YDJgLCBgM2AsIGA0YF0pIHsKICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB0eXBl
ZGVmICR7dHlwZX08JHt0eXBlQXJndW1lbnRCYXNlfSR7c2l6ZX0+O2ApOwogICAgICAgICAgICAg
ICAgIH0KQEAgLTE4OTcsNyArMTg5Nyw4IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlIHZvaWQgSW50ZXJsb2NrZWRDb21wYXJl
RXhjaGFuZ2UodGhyZWFkIGF0b21pY18ke3R5cGV9KiwgJHt0eXBlfSwgJHt0eXBlfSwgdGhyZWFk
ICR7dHlwZX0qKTtgKTsKICAgICAgICAgfQogICAgICAgICBwcmludCgpOwotICAgICAgICAKKyAg
ICAgICAgKi8KKwogICAgICAgICBmb3IgKHZhciB0eXBlIG9mIFtgdWNoYXJgLCBgdXNob3J0YCwg
YHVpbnRgLCBgY2hhcmAsIGBzaG9ydGAsIGBpbnRgLCBgaGFsZmAsIGBmbG9hdGBdKSB7CiAgICAg
ICAgICAgICBmb3IgKHZhciBsZW5ndGggb2YgW2BgLCBgMmAsIGAzYCwgYDRgXSkgewogICAgICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTFE
PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7YCk7CkBAIC0xOTI0
LDEyICsxOTI1LDE4IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7dHlw
ZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsK
ICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJl
MkQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7CiAgICAg
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEPCR7
dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtg
KTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRl
eHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uKTtgKTsK
LSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1
cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9m
ZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJC
bHVlKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9u
KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUo
VGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGlu
dDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdh
dGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxv
Y2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckFscGhhKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0
aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMiIg
fHwgbGVuZ3RoID09ICIzIiB8fCBsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEPCR7dHlwZX0ke2xl
bmd0aH0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9JHts
ZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjMiIHx8IGxlbmd0aCA9PSAiNCIpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShU
ZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7
CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJs
dWUoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24s
IGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0g
IjQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJBbHBoYShUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0
MiBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBs
ZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyRDwk
e3R5cGV9JHtsZW5ndGh9PiwgaW50MyBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0
aH0+LCBpbnQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+
LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBIZWlnaHQs
IHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7YCk7CkBAIC0xOTQ2LDI4ICsxOTUzLDI0IEBA
IGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3Ro
fT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwogICAgICAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUyREFycmF5PCR7
dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwogICAgICAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUyREFycmF5PCR7
dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtg
KTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRl
eHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24p
O2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4o
VGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlv
biwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwg
ZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIs
IGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVu
Z3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHts
ZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAg
ICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMiIgfHwgbGVuZ3RoID09ICIzIiB8fCBsZW5ndGgg
PT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0
MyBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIs
IGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgICAgICAgICBp
ZiAobGVuZ3RoID09ICIzIiB8fCBsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0
eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJE
QXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBv
ZmZzZXQpO2ApOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiNCIpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckFscGhhKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMg
bG9jYXRpb24pO2ApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUy
REFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBpbnQ0IGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMkRBcnJheTwk
e3R5cGV9JHtsZW5ndGh9PiwgaW50NCBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwogICAgICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUyREFycmF5
PCR7dHlwZX0ke2xlbmd0aH0+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRo
cmVhZCB1aW50KiBIZWlnaHQsIHRocmVhZCB1aW50KiBFbGVtZW50cywgdGhyZWFkIHVpbnQqIE51
bWJlck9mTGV2ZWxzKTtgKTsKICAgICAgICAgICAgICAgICBwcmludCgpOwogICAgICAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTNEPCR7dHlw
ZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwogICAgICAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTNEPCR7dHlw
ZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDMgb2Zmc2V0KTtgKTsK
LSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlM0Q8
JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTNEPCR7dHlwZX0k
e2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDMgb2Zmc2V0KTtgKTsKLSAg
ICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlM0Q8
JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTNEPCR7dHlw
ZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDMgb2Zmc2V0KTtgKTsK
LSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1
cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAg
ICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUz
RDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNl
dCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVl
KFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtg
KTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4
dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDMg
b2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckFscGhhKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0
aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckFs
cGhhKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9u
LCBpbnQzIG9mZnNldCk7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IExvYWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBpbnQ0IGxvY2F0aW9u
KTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9h
ZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIGludDQgbG9jYXRpb24sIGludDMgb2Zmc2V0
KTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhU
ZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBX
aWR0aCwgdGhyZWFkIHVpbnQqIEhlaWdodCwgdGhyZWFkIHVpbnQqIERlcHRoLCB0aHJlYWQgdWlu
dCogTnVtYmVyT2ZMZXZlbHMpO2ApOwpAQCAtMTk3OCw5ICsxOTgxLDE0IEBAIGxldCBzdGFuZGFy
ZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9JHtsZW5ndGh9IFNhbXBsZUxldmVsKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+
LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IExPRCk7YCk7CiAgICAgICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVu
Z3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3Ro
fT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4s
IHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9Piwg
c2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgICAgICBpZiAobGVuZ3Ro
ID09ICIyIiB8fCBsZW5ndGggPT0gIjMiIHx8IGxlbmd0aCA9PSAiNCIpIHsKKyAgICAgICAgICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlQ3ViZTwk
e3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMyIgfHwgbGVuZ3RoID09ICI0IikgeworICAgICAg
ICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1
cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiNCIpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJl
Q3ViZTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBw
cmludChgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5n
dGh9PiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogSGVp
Z2h0LCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpO2ApOwogICAgICAgICAgICAgICAgIHBy
aW50KCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMo
UldUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sIHRocmVhZCB1aW50KiBXaWR0aCk7YCk7CkBA
IC0yMDEwLDk3ICsyMDE4LDY2IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7
CiAgICAgICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAg
ICAgICAKKwogICAgICAgICBmb3IgKHZhciB0eXBlIG9mIFtgaGFsZmAsIGBmbG9hdGBdKSB7CiAg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEPCR7
dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwogICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwg
ZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29t
cGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IENvbXBhcmVWYWx1ZSk7YCk7Ci0g
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJE
PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0
IENvbXBhcmVWYWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2Ft
cGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUp
O2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVy
byhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQy
IGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgJHt0eXBlfSBDb21wYXJlVmFsdWUpO2ApOwor
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgy
RDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1
ZSwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNh
bXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQy
IGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+
LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlLCBpbnQyIG9m
ZnNldCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhU
ZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBC
aWFzKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRl
eHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IEJp
YXMsIGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBT
YW1wbGVHcmFkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRp
b24sIGZsb2F0MiBERFgsIGZsb2F0MiBERFkpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZs
b2F0MiBsb2NhdGlvbiwgZmxvYXQyIEREWCwgZmxvYXQyIEREWSwgaW50MiBvZmZzZXQpO2ApOwog
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0
aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IExPRCk7YCk7CiAg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgTE9ELCBpbnQyIG9m
ZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwotICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlcihUZXh0dXJlRGVwdGgyRDwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyUmVkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+
LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxv
YXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0gR2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZs
b2F0MiBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0
aGVyR3JlZW4oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlv
biwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdh
dGhlckJsdWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlv
bik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQmx1ZShUZXh0
dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNl
dCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQWxwaGEoVGV4
dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7Ci0gICAg
ICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkQ8
JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyRDwk
e3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBj
b21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRo
ZXJDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZs
b2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgy
RDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9h
dCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBH
YXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3Rh
dGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2Ap
OwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEdyZWVuKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRp
b24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29t
cGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIg
b2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBC
bHVlKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9h
dDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIFNh
bXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1
ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdh
dGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0
YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJEPCR7
dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNv
bXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIg
bG9jYXRpb24pO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIo
VGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBv
ZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQo
VGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7Cisg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGgy
RDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Cisg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGgy
RDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVl
KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBh
cmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9h
dDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNh
bXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQp
O2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4sIGludDMgbG9jYXRpb24pO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIGludDMgbG9jYXRpb24sIGlu
dDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBHZXREaW1lbnNp
b25zKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCog
V2lkdGgsIHRocmVhZCB1aW50KiBIZWlnaHQsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7
YCk7CiAgICAgICAgICAgICBwcmludCgpOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMg
bG9jYXRpb24pO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShU
ZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGlu
dDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVD
bXAoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwg
ZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUpO2ApOwotICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+
LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IENvbXBhcmVW
YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVy
Q29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IENvbXBhcmVWYWx1ZSk7YCk7
Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRl
eHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0
MyBsb2NhdGlvbiwgZmxvYXQgQ29tcGFyZVZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8
JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgJHt0eXBlfSBDb21wYXJlVmFsdWUp
O2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJl
RGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sICR7dHlwZX0g
Q29tcGFyZVZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4s
IHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgJHt0eXBlfSBDb21wYXJlVmFsdWUpO2ApOworICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJl
RGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sICR7dHlwZX0g
Q29tcGFyZVZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVy
LCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IEJpYXMpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2Ft
cGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBCaWFzLCBpbnQyIG9mZnNldCk7YCk7CiAgICAg
ICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlRGVwdGgyREFy
cmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0MiBERFgsIGZsb2F0
MiBERFkpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQo
VGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBm
bG9hdDIgRERYLCBmbG9hdDIgRERZLCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBMT0QpO2ApOwogICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgTE9ELCBpbnQyIG9mZnNldCk7
YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyKFRleHR1cmVEZXB0
aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyREFycmF5
PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+
LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJHcmVlbihUZXh0dXJlRGVwdGgyREFycmF5PCR7
dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9IEdhdGhlckdyZWVuKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4s
IHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckJsdWUoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5
cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfSBHYXRoZXJCbHVlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckFscGhhKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBl
fT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX0gR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2Ft
cGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4s
IFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92
YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wKFRl
eHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0
MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgyREFy
cmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZs
b2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFy
aXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zm
c2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBHcmVl
bihUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBm
bG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0
eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29t
cGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxl
ckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtg
KTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBCbHVlKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBs
b2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJEQXJy
YXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxv
YXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0g
R2F0aGVyQ21wQWxwaGEoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBh
cmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9m
ZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0
dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwor
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7
CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlRGVw
dGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOworICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkRBcnJh
eTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Cisg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGgy
REFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVf
dmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXAo
VGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBm
bG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX00IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+
LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOworICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRo
MkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJl
X3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX0gTG9hZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBpbnQ0IGxvY2F0aW9uKTtgKTsK
ICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmVEZXB0aDJEQXJy
YXk8JHt0eXBlfT4sIGludDQgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0
eXBlfT4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIEhl
aWdodCwgdGhyZWFkIHVpbnQqIEVsZW1lbnRzLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMp
O2ApOwogICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxv
Y2F0aW9uKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAo
VGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQz
IGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+
LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IENvbXBhcmVW
YWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRl
eHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgJHt0eXBl
fSBDb21wYXJlVmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNh
bXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9h
dDMgbG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlKTtgKTsKICAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgQmlhcyk7YCk7Ci0gICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBz
YW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0MiBERFgsIGZsb2F0MiBERFkpO2ApOworICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoQ3Vi
ZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdDMgRERYLCBmbG9hdDMg
RERZKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChU
ZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0
IExPRCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyKFRleHR1
cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAg
ICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyUmVkKFRleHR1cmVEZXB0aEN1YmU8
JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0gR2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwg
c2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfSBHYXRoZXJCbHVlKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZs
b2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0
aGVyQWxwaGEoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0
aW9uKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXAoVGV4
dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxv
Y2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxl
ckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtg
KTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBHcmVlbihUZXh0
dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9j
YXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IEdhdGhlckNtcEJsdWUoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxl
ckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtg
KTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBBbHBoYShUZXh0
dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9j
YXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgaW50NCBsb2NhdGlvbik7
YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlRGVw
dGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOworICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoQ3ViZTwke3R5
cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBs
ZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7CisgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGhDdWJlPCR7
dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2Ap
OwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZURl
cHRoQ3ViZTwke3R5cGV9PiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJl
YWQgdWludCogSGVpZ2h0LCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpO2ApOwogICAgICAg
ICAgICAgcHJpbnQoKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBHZXREaW1lbnNp
b25zKFJXVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFk
IHVpbnQqIEhlaWdodCk7YCk7CkBAIC0yMTE0LDcgKzIwOTEsNiBAQCBsZXQgc3RhbmRhcmRMaWJy
YXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIFN0b3Jl
KFJXVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgJHt0eXBlfSwgdWludDMgbG9jYXRpb24p
O2ApOwogICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgfQotICAgICAgICAqLwogICAgIH0p
KCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0pKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UZXN0Lmh0bWwKaW5kZXggNjA3YTY5NTMyNTNkYTcyN2IxZGUzNzY3OGVjMzg4YjRmYTI0MDQw
NS4uZmIxMDE1ZjE5MzgxY2Y2ZWFjNzMxN2I0ODVlZjAwYzNlYzFjYjk2ZSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sCisrKyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbApAQCAtMjgsNiArMjgsNyBAQAogPHNjcmlwdCBz
cmM9IkJ1aWx0aW5WZWN0b3JTZXR0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNhbGxF
eHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDYWxsRnVuY3Rpb24uanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9IkNhc3RzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJD
aGVjay5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2hlY2tMaXRlcmFsVHlwZXMuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IkNoZWNrTG9vcHMuanMiPjwvc2NyaXB0PgpAQCAtMTE1LDYg
KzExNiw3IEBACiA8c2NyaXB0IHNyYz0iUmV0dXJuLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJSZXR1cm5DaGVja2VyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZXR1cm5FeGNlcHRp
b24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlNhbXBsZXIuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9IlN0YW5kYXJkTGlicmFyeS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3Rh
dGVtZW50Q2xvbmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTdHJ1Y3RMYXlvdXRCdWls
ZGVyLmpzIj48L3NjcmlwdD4KQEAgLTEyNyw2ICsxMjksOCBAQAogPHNjcmlwdCBzcmM9IlN5bnRo
ZXNpemVDb3B5Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
U3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4
dHVyZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZl
ci5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UZXN0LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwppbmRleCA0
YTExYzE4NTg1OTk3NzhmZjM5MWIwNGYyNjM1YzViNzEwMDVkZjdmLi5hZjg2ODUyMzY3ZmRkZDU2
NjU4NjliM2MyNDcxZTkwNGI2ZTA2MmExIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UZXN0LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rl
c3QuanMKQEAgLTk0LDYgKzk0LDEzMyBAQCBmdW5jdGlvbiBtYWtlRW51bShwcm9ncmFtLCBlbnVt
TmFtZSwgdmFsdWUpCiAgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KGVudW1UeXBlLCBlbnVtTWVt
YmVyLnZhbHVlLnVuaWZ5Tm9kZS52YWx1ZUZvclNlbGVjdGVkVHlwZSk7CiB9CiAKK2Z1bmN0aW9u
IG1ha2VTYW1wbGVyKHByb2dyYW0sIG9wdGlvbnMpCit7CisgICAgLy8gZW51bSBXZWJHUFVBZGRy
ZXNzTW9kZSB7CisgICAgLy8gICAgICJjbGFtcFRvRWRnZSIsCisgICAgLy8gICAgICJyZXBlYXQi
LAorICAgIC8vICAgICAibWlycm9yUmVwZWF0IiwKKyAgICAvLyAgICAgImNsYW1wVG9Cb3JkZXJD
b2xvciIKKyAgICAvLyB9CisgICAgLy8KKyAgICAvLyBlbnVtIFdlYkdQVUZpbHRlck1vZGUgewor
ICAgIC8vICAgICAibmVhcmVzdCIsCisgICAgLy8gICAgICJsaW5lYXIiCisgICAgLy8gfQorICAg
IC8vCisgICAgLy8gZW51bSBXZWJHUFVDb21wYXJlRnVuY3Rpb24geworICAgIC8vICAgICAibmV2
ZXIiLAorICAgIC8vICAgICAibGVzcyIsCisgICAgLy8gICAgICJlcXVhbCIsCisgICAgLy8gICAg
ICJsZXNzRXF1YWwiLAorICAgIC8vICAgICAiZ3JlYXRlciIsCisgICAgLy8gICAgICJub3RFcXVh
bCIsCisgICAgLy8gICAgICJncmVhdGVyRXF1YWwiLAorICAgIC8vICAgICAiYWx3YXlzIgorICAg
IC8vIH0KKyAgICAvLworICAgIC8vIGVudW0gV2ViR1BVQm9yZGVyQ29sb3IgeworICAgIC8vICAg
ICAidHJhbnNwYXJlbnRCbGFjayIsCisgICAgLy8gICAgICJvcGFxdWVCbGFjayIsCisgICAgLy8g
ICAgICJvcGFxdWVXaGl0ZSIKKyAgICAvLyB9CisgICAgLy8KKyAgICAvLyBkaWN0aW9uYXJ5IFdl
YkdQVVNhbXBsZXJEZXNjcmlwdG9yIHsKKyAgICAvLyAgICAgV2ViR1BVZGRyZXNzTW9kZSByQWRk
cmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgIC8vICAgICBXZWJHUFVkZHJlc3NNb2RlIHNB
ZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAgLy8gICAgIFdlYkdQVWRkcmVzc01vZGUg
dEFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICAvLyAgICAgV2ViR1BVRmlsdGVyTW9k
ZUVudW0gbWFnRmlsdGVyID0gIm5lYXJlc3QiOworICAgIC8vICAgICBXZWJHUFVGaWx0ZXJNb2Rl
RW51bSBtaW5GaWx0ZXIgPSAibmVhcmVzdCI7CisgICAgLy8gICAgIFdlYkdQVUZpbHRlck1vZGVF
bnVtIG1pcG1hcEZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICAvLyAgICAgZmxvYXQgbG9kTWluQ2xh
bXAgPSAwOworICAgIC8vICAgICBmbG9hdCBsb2RNYXhDbGFtcCA9IE51bWJlci5NQVhfVkFMVUU7
CisgICAgLy8gICAgIHVuc2lnbmVkIGxvbmcgbWF4QW5pc290cm9weSA9IDE7CisgICAgLy8gICAg
IFdlYkdQVUNvbXBhcmVGdW5jdGlvbiBjb21wYXJlRnVuY3Rpb24gPSAibmV2ZXIiOworICAgIC8v
ICAgICBXZWJHUFVCb3JkZXJDb2xvciBib3JkZXJDb2xvciA9ICJ0cmFuc3BhcmVudEJsYWNrIjsK
KyAgICAvLyB9OworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3Mu
c2FtcGxlciwgbmV3IFNhbXBsZXIob3B0aW9ucykpOworfQorCitmdW5jdGlvbiBtYWtlMURUZXh0
dXJlKHByb2dyYW0sIG1pcG1hcHMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZh
bHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmUxRDwke2VsZW1lbnRUeXBlfT5gXSwg
bmV3IFRleHR1cmUxRChlbGVtZW50VHlwZSwgbWlwbWFwcykpOworfQorCitmdW5jdGlvbiBtYWtl
MURUZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVy
biBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmUxREFycmF5PCR7ZWxl
bWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTFEQXJyYXkoZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9
CisKK2Z1bmN0aW9uIG1ha2UyRFRleHR1cmUocHJvZ3JhbSwgbWlwbWFwcywgZWxlbWVudFR5cGUp
Cit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVy
ZTJEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTJEKGVsZW1lbnRUeXBlLCBtaXBtYXBz
KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UyRFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxl
bWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2lj
c1tgVGV4dHVyZTJEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlMkRBcnJheShl
bGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24gbWFrZTNEVGV4dHVyZShwcm9ncmFt
LCBtaXBtYXBzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJv
Z3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlM0Q8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJl
M0QoZWxlbWVudFR5cGUsIG1pcG1hcHMpKTsKK30KKworZnVuY3Rpb24gbWFrZVRleHR1cmVDdWJl
KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5i
b3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlQ3ViZTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3
IFRleHR1cmVDdWJlKGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQorCitmdW5jdGlvbiBtYWtlUlcx
RFRleHR1cmUocHJvZ3JhbSwgZWxlbWVudHMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBU
eXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTFEPCR7ZWxlbWVudFR5
cGV9PmBdLCBuZXcgVGV4dHVyZTFEUlcoZWxlbWVudFR5cGUsIGVsZW1lbnRzKSk7Cit9CisKK2Z1
bmN0aW9uIG1ha2VSVzFEVGV4dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkK
K3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1
cmUxREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTFEQXJyYXlSVyhlbGVtZW50
VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24gbWFrZVJXMkRUZXh0dXJlKHByb2dyYW0sIHJv
d3MsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmlu
dHJpbnNpY3NbYFJXVGV4dHVyZTJEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTJEUlco
ZWxlbWVudFR5cGUsIHJvd3MpKTsKK30KKworZnVuY3Rpb24gbWFrZVJXMkRUZXh0dXJlQXJyYXko
cHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJv
eChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTJEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0s
IG5ldyBUZXh0dXJlMkRBcnJheVJXKGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQorCitmdW5jdGlv
biBtYWtlUlczRFRleHR1cmUocHJvZ3JhbSwgZGVwdGhTbGljZXMsIGVsZW1lbnRUeXBlKQorewor
ICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTNE
PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTNEUlcoZWxlbWVudFR5cGUsIGRlcHRoU2xp
Y2VzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBtaXBtYXBz
LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRy
aW5zaWNzW2BUZXh0dXJlRGVwdGgyRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmVEZXB0
aDJEKGVsZW1lbnRUeXBlLCBtaXBtYXBzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UyRERlcHRoVGV4
dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlw
ZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlRGVwdGgyREFycmF5PCR7ZWxl
bWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZURlcHRoMkRBcnJheShlbGVtZW50VHlwZSwgYXJyYXkp
KTsKK30KKworZnVuY3Rpb24gbWFrZURlcHRoVGV4dHVyZUN1YmUocHJvZ3JhbSwgYXJyYXksIGVs
ZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNp
Y3NbYFRleHR1cmVEZXB0aEN1YmU8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlRGVwdGhD
dWJlKGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQorCitmdW5jdGlvbiBtYWtlUlcyRERlcHRoVGV4
dHVyZShwcm9ncmFtLCByb3dzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1
ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmVEZXB0aDJEPCR7ZWxlbWVudFR5cGV9
PmBdLCBuZXcgVGV4dHVyZURlcHRoMkRSVyhlbGVtZW50VHlwZSwgcm93cykpOworfQorCitmdW5j
dGlvbiBtYWtlUlcyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlw
ZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1Rl
eHR1cmVEZXB0aDJEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlRGVwdGgyREFy
cmF5UlcoZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9CisKIGZ1bmN0aW9uIGNoZWNrTnVtYmVyKHBy
b2dyYW0sIHJlc3VsdCwgZXhwZWN0ZWQpCiB7CiAgICAgaWYgKCFyZXN1bHQudHlwZS51bmlmeU5v
ZGUuaXNOdW1iZXIpCkBAIC0xNTcsNiArMjg0LDE0IEBAIGZ1bmN0aW9uIGNoZWNrSGFsZihwcm9n
cmFtLCByZXN1bHQsIGV4cGVjdGVkKQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJl
c3VsdDogIiArIHJlc3VsdC52YWx1ZSArICIgKGV4cGVjdGVkICIgKyBleHBlY3RlZCArICIpIik7
CiB9CiAKK2Z1bmN0aW9uIGNoZWNrRmxvYXQ0KHByb2dyYW0sIHJlc3VsdCwgZXhwZWN0ZWQpCit7
CisgICAgaWYgKCFyZXN1bHQudHlwZS5lcXVhbHMocHJvZ3JhbS5pbnRyaW5zaWNzWyJ2ZWN0b3I8
ZmxvYXQsIDQ+Il0pKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJlc3VsdCB0eXBl
OiAiICsgcmVzdWx0LnR5cGUpOworICAgIGlmIChyZXN1bHQuZVB0ci5nZXQoMCkgIT0gZXhwZWN0
ZWRbMF0gfHwgcmVzdWx0LmVQdHIuZ2V0KDEpICE9IGV4cGVjdGVkWzFdIHx8IHJlc3VsdC5lUHRy
LmdldCgyKSAhPSBleHBlY3RlZFsyXSB8fCByZXN1bHQuZVB0ci5nZXQoMykgIT0gZXhwZWN0ZWRb
M10pCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiV3JvbmcgcmVzdWx0OiBbIiArIHJlc3VsdC5l
UHRyLmdldCgwKSArICIsICIgKyByZXN1bHQuZVB0ci5nZXQoMSkgKyAiLCAiICsgcmVzdWx0LmVQ
dHIuZ2V0KDIpICsgIiwgIiArIHJlc3VsdC5lUHRyLmdldCgzKSArICJdIChleHBlY3RlZCBbIiAr
IGV4cGVjdGVkWzBdICsgIiwgIiArIGV4cGVjdGVkWzFdICsgIiwgIiArIGV4cGVjdGVkWzJdICsg
IiwgIiArIGV4cGVjdGVkWzNdICsgIl0pIik7Cit9CisKIGZ1bmN0aW9uIGNoZWNrTGV4ZXJUb2tl
bihyZXN1bHQsIGV4cGVjdGVkSW5kZXgsIGV4cGVjdGVkS2luZCwgZXhwZWN0ZWRUZXh0KQogewog
ICAgIGlmIChyZXN1bHQuX2luZGV4ICE9IGV4cGVjdGVkSW5kZXgpCkBAIC01NTgyLDcgKzU3MTcs
MTc5NyBAQCB0ZXN0cy5hcnJheUluZGV4ID0gZnVuY3Rpb24oKSB7CiAgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMikgXSksIDMpOwogICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApIF0pLCA0KTsKICAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBbIG1ha2VVaW50
KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSBdKSwgNSk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMikgXSksIDYpOyAgICAKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBbIG1h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAyKSBdKSwgNik7Cit9CisKK2Z1
bmN0aW9uIGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9ncmFtKQoreworICAgIGxldCB0ZXh0
dXJlMUQgPSBtYWtlMURUZXh0dXJlKHByb2dyYW0sIFtbMSwgNywgMTQsIDc5XSwgWzEzLCAxNl0s
IFsxNV1dLCAiZmxvYXQiKTsKKyAgICBsZXQgdGV4dHVyZTFEQXJyYXkgPSBtYWtlMURUZXh0dXJl
QXJyYXkocHJvZ3JhbSwgW1tbMSwgNywgMTQsIDc5XSwgWzEzLCAxNl0sIFsxNV1dLCBbWzE2LCAx
NywgMTgsIDE5XSwgWzIwLCAyMV0sIFsyMl1dXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmUy
RCA9IG1ha2UyRFRleHR1cmUocHJvZ3JhbSwgWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYs
IDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAg
ICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcs
IDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2XSwKKyAgICAg
ICAgWzM3LCAzOCwgMzksIDQwXV0sCisgICAgICAgIFtbNDEsIDQyXV0KKyAgICBdLCAiZmxvYXQi
KTsKKyAgICBsZXQgdGV4dHVyZTJEQXJyYXkgPSBtYWtlMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwg
W1sKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAx
MSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIs
IDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAg
ICAgICAgW1szMywgMzQsIDM1LCAzNl0sCisgICAgICAgIFszNywgMzgsIDM5LCA0MF1dLAorICAg
ICAgICBbWzQxLCA0Ml1dCisgICAgXSwgWworICAgICAgICBbWzQzLCA0NCwgNDUsIDQ2LCA0Nywg
NDgsIDQ5LCA1MF0sCisgICAgICAgIFs1MSwgNTIsIDUzLCA1NCwgNTUsIDU2LCA1NywgNThdLAor
ICAgICAgICBbNTksIDYwLCA2MSwgNjIsIDYzLCA2NCwgNjUsIDY2XSwKKyAgICAgICAgWzY3LCA2
OCwgNjksIDcwLCA3MSwgNzIsIDczLCA3NF1dLAorICAgICAgICBbWzc1LCA3NiwgNzcsIDc4XSwK
KyAgICAgICAgWzc5LCA4MCwgODEsIDgyXV0sCisgICAgICAgIFtbODMsIDg0XV0KKyAgICBdXSwg
ImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmUzRCA9IG1ha2UzRFRleHR1cmUocHJvZ3JhbSwgWwor
ICAgICAgICBbW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwg
MTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIz
LCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAg
ICAgW1szMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDBdLAorICAgICAgICBbNDEsIDQyLCA0
MywgNDQsIDQ1LCA0NiwgNDcsIDQ4XSwKKyAgICAgICAgWzQ5LCA1MCwgNTEsIDUyLCA1MywgNTQs
IDU1LCA1Nl0sCisgICAgICAgIFs1NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2MywgNjRdXV0sCisg
ICAgICAgIFtbWzY1LCA2NiwgNjcsIDY4XSwKKyAgICAgICAgWzY5LCA3MCwgNzEsIDcyXV1dCisg
ICAgXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmVDdWJlID0gbWFrZVRleHR1cmVDdWJlKHBy
b2dyYW0sIFtbCisgICAgICAgIFtbMSwgMl0sCisgICAgICAgIFszLCA0XSwKKyAgICAgICAgWzUs
IDZdLAorICAgICAgICBbNywgOF1dLAorICAgICAgICBbWzldLAorICAgICAgICBbMTBdXSwKKyAg
ICBdLCBbCisgICAgICAgIFtbMTEsIDEyXSwKKyAgICAgICAgWzEzLCAxNF0sCisgICAgICAgIFsx
NSwgMTZdLAorICAgICAgICBbMTcsIDE4XV0sCisgICAgICAgIFtbMTldLAorICAgICAgICBbMjBd
XSwKKyAgICBdLCBbCisgICAgICAgIFtbMjEsIDIyXSwKKyAgICAgICAgWzIzLCAyNF0sCisgICAg
ICAgIFsyNSwgMjZdLAorICAgICAgICBbMjcsIDI4XV0sCisgICAgICAgIFtbMjldLAorICAgICAg
ICBbMzBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbMzEsIDMyXSwKKyAgICAgICAgWzMzLCAzNF0s
CisgICAgICAgIFszNSwgMzZdLAorICAgICAgICBbMzcsIDM4XV0sCisgICAgICAgIFtbMzldLAor
ICAgICAgICBbNDBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbNDEsIDQyXSwKKyAgICAgICAgWzQz
LCA0NF0sCisgICAgICAgIFs0NSwgNDZdLAorICAgICAgICBbNDcsIDQ4XV0sCisgICAgICAgIFtb
NDldLAorICAgICAgICBbNTBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbNTEsIDUyXSwKKyAgICAg
ICAgWzUzLCA1NF0sCisgICAgICAgIFs1NSwgNTZdLAorICAgICAgICBbNTcsIDU4XV0sCisgICAg
ICAgIFtbNTldLAorICAgICAgICBbNjBdXSwKKyAgICBdXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3
VGV4dHVyZTFEID0gbWFrZVJXMURUZXh0dXJlKHByb2dyYW0sIFsxLCAyLCAzLCA0LCA1LCA2LCA3
LCA4XSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4dHVyZTFEQXJyYXkgPSBtYWtlUlcxRFRleHR1
cmVBcnJheShwcm9ncmFtLCBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLCBbOSwgMTAsIDExLCAx
MiwgMTMsIDE0LCAxNSwgMTZdLCBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XV0sICJm
bG9hdCIpOworICAgIGxldCByd1RleHR1cmUyRCA9IG1ha2VSVzJEVGV4dHVyZShwcm9ncmFtLCBb
CisgICAgICAgIFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwg
MTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIz
LCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwgImZsb2F0
Iik7CisgICAgbGV0IHJ3VGV4dHVyZTJEQXJyYXkgPSBtYWtlUlcyRFRleHR1cmVBcnJheShwcm9n
cmFtLCBbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAx
MCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEs
IDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0s
CisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwXSwKKyAgICAgICAgWzQx
LCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OF0sCisgICAgICAgIFs0OSwgNTAsIDUxLCA1Miwg
NTMsIDU0LCA1NSwgNTZdLAorICAgICAgICBbNTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjMsIDY0
XV1dLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlM0QgPSBtYWtlUlczRFRleHR1cmUocHJv
Z3JhbSwgWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwg
MTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIx
LCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1d
LAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MF0sCisgICAgICAgIFs0
MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDhdLAorICAgICAgICBbNDksIDUwLCA1MSwgNTIs
IDUzLCA1NCwgNTUsIDU2XSwKKyAgICAgICAgWzU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLCA2
NF1dXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmVEZXB0aDJEID0gbWFrZTJERGVwdGhUZXh0
dXJlKHByb2dyYW0sIFsKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAg
ICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTks
IDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAz
MSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNl0sCisgICAgICAgIFszNywgMzgsIDM5
LCA0MF1dLAorICAgICAgICBbWzQxLCA0Ml1dCisgICAgXSwgImZsb2F0Iik7CisgICAgbGV0IHRl
eHR1cmVEZXB0aDJEQXJyYXkgPSBtYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbWwor
ICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAx
MiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMs
IDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAg
ICBbWzMzLCAzNCwgMzUsIDM2XSwKKyAgICAgICAgWzM3LCAzOCwgMzksIDQwXV0sCisgICAgICAg
IFtbNDEsIDQyXV0KKyAgICBdLCBbCisgICAgICAgIFtbNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwg
NDksIDUwXSwKKyAgICAgICAgWzUxLCA1MiwgNTMsIDU0LCA1NSwgNTYsIDU3LCA1OF0sCisgICAg
ICAgIFs1OSwgNjAsIDYxLCA2MiwgNjMsIDY0LCA2NSwgNjZdLAorICAgICAgICBbNjcsIDY4LCA2
OSwgNzAsIDcxLCA3MiwgNzMsIDc0XV0sCisgICAgICAgIFtbNzUsIDc2LCA3NywgNzhdLAorICAg
ICAgICBbNzksIDgwLCA4MSwgODJdXSwKKyAgICAgICAgW1s4MywgODRdXQorICAgIF1dLCAiZmxv
YXQiKTsKKyAgICBsZXQgdGV4dHVyZURlcHRoQ3ViZSA9IG1ha2VEZXB0aFRleHR1cmVDdWJlKHBy
b2dyYW0sIFtbCisgICAgICAgIFtbMSwgMl0sCisgICAgICAgIFszLCA0XSwKKyAgICAgICAgWzUs
IDZdLAorICAgICAgICBbNywgOF1dLAorICAgICAgICBbWzldLAorICAgICAgICBbMTBdXSwKKyAg
ICBdLCBbCisgICAgICAgIFtbMTEsIDEyXSwKKyAgICAgICAgWzEzLCAxNF0sCisgICAgICAgIFsx
NSwgMTZdLAorICAgICAgICBbMTcsIDE4XV0sCisgICAgICAgIFtbMTldLAorICAgICAgICBbMjBd
XSwKKyAgICBdLCBbCisgICAgICAgIFtbMjEsIDIyXSwKKyAgICAgICAgWzIzLCAyNF0sCisgICAg
ICAgIFsyNSwgMjZdLAorICAgICAgICBbMjcsIDI4XV0sCisgICAgICAgIFtbMjldLAorICAgICAg
ICBbMzBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbMzEsIDMyXSwKKyAgICAgICAgWzMzLCAzNF0s
CisgICAgICAgIFszNSwgMzZdLAorICAgICAgICBbMzcsIDM4XV0sCisgICAgICAgIFtbMzldLAor
ICAgICAgICBbNDBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbNDEsIDQyXSwKKyAgICAgICAgWzQz
LCA0NF0sCisgICAgICAgIFs0NSwgNDZdLAorICAgICAgICBbNDcsIDQ4XV0sCisgICAgICAgIFtb
NDldLAorICAgICAgICBbNTBdXSwKKyAgICBdLCBbCisgICAgICAgIFtbNTEsIDUyXSwKKyAgICAg
ICAgWzUzLCA1NF0sCisgICAgICAgIFs1NSwgNTZdLAorICAgICAgICBbNTcsIDU4XV0sCisgICAg
ICAgIFtbNTldLAorICAgICAgICBbNjBdXSwKKyAgICBdXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3
VGV4dHVyZURlcHRoMkQgPSBtYWtlUlcyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAg
IFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAx
NCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisg
ICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwgImZsb2F0Iik7CisgICAg
bGV0IHJ3VGV4dHVyZURlcHRoMkRBcnJheSA9IG1ha2VSVzJERGVwdGhUZXh0dXJlQXJyYXkocHJv
Z3JhbSwgWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwg
MTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIx
LCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1d
LAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MF0sCisgICAgICAgIFs0
MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDhdLAorICAgICAgICBbNDksIDUwLCA1MSwgNTIs
IDUzLCA1NCwgNTUsIDU2XSwKKyAgICAgICAgWzU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLCA2
NF1dXSwgImZsb2F0Iik7CisgICAgcmV0dXJuIFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0
ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1
cmUxRCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3
VGV4dHVyZTNELCB0ZXh0dXJlRGVwdGgyRCwgdGV4dHVyZURlcHRoMkRBcnJheSwgdGV4dHVyZURl
cHRoQ3ViZSwgcndUZXh0dXJlRGVwdGgyRCwgcndUZXh0dXJlRGVwdGgyREFycmF5XTsKK30KKwor
dGVzdHMudGV4dHVyZURpbWVuc2lvbnMgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3JhbSA9
IGRvUHJlcChgCisgICAgICAgIHVpbnQgZm9vMShUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUpIHsK
KyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxz
OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZudW1iZXJP
ZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAg
dWludCBmb28yKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3
aWR0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXRE
aW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAg
ICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzMo
VGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7
CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxl
dmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmZWxl
bWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb280KFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7
CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAg
ICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25z
KHRleHR1cmUsIDAsICZ3aWR0aCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAg
ICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNShUZXh0
dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAg
ICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxz
OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZlbGVtZW50
cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzYoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7
CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAg
ICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0
ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAg
ICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb283KFRleHR1cmUyRDxm
bG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVp
bnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAg
IEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZl
bHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50
IGZvbzgoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRo
OworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2
ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWln
aHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7
CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb285KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0
dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7
CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxl
dmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVp
Z2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lk
dGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xMChUZXh0dXJlMkRBcnJheTxmbG9hdD4g
dGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVp
Z2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVy
T2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwg
JmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJu
IGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzExKFRleHR1cmUyREFycmF5PGZs
b2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWlu
dCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBu
dW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndp
ZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICBy
ZXR1cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xMihUZXh0dXJlMkRB
cnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAg
ICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAg
IHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUs
IDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAg
ICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9v
MTMoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOwor
ICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAg
ICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4
dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgsICZudW1iZXJPZkxldmVscyk7CisgICAg
ICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xNChUZXh0
dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAg
ICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICB1
aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAw
LCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAg
IHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xNShUZXh0dXJlM0Q8
ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1
aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICB1aW50IG51
bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lk
dGgsICZoZWlnaHQsICZkZXB0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVy
biBkZXB0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE2KFRleHR1cmUzRDxmbG9hdD4g
dGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVp
Z2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZM
ZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhl
aWdodCwgJmRlcHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJl
ck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTcoVGV4dHVyZUN1YmU8Zmxv
YXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50
IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBH
ZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxz
KTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZv
bzE4KFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRo
OworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2
ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWln
aHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAg
ICB9CisgICAgICAgIHVpbnQgZm9vMTkoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAg
ICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAg
ICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1
cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJl
dHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIwKFJXVGV4
dHVyZTFEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAg
ICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgpOworICAgICAgICAgICAgcmV0dXJu
IHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjEoUldUZXh0dXJlMURBcnJheTxm
bG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVp
bnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwg
JmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAg
ICB1aW50IGZvbzIyKFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAg
ICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAg
R2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZlbGVtZW50cyk7CisgICAgICAgICAgICBy
ZXR1cm4gZWxlbWVudHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yMyhSV1RleHR1cmUy
RDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAg
IHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgs
ICZoZWlnaHQpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAg
IHVpbnQgZm9vMjQoUldUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVp
bnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIEdldERpbWVu
c2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICAgICAgICAgIHJldHVybiBoZWln
aHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yNShSV1RleHR1cmUyREFycmF5PGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5z
aW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cyk7CisgICAgICAgICAgICBy
ZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yNihSV1RleHR1cmUyREFy
cmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAg
ICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAg
R2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cyk7CisgICAg
ICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjcoUldU
ZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsK
KyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAg
ICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVu
dHMpOworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAgICB9CisgICAgICAgIHVp
bnQgZm9vMjgoUldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQg
d2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7
CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmRl
cHRoKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50
IGZvbzI5KFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdp
ZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0
aCk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQg
Zm9vMzAoUldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lk
dGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7Cisg
ICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRo
KTsKKyAgICAgICAgICAgIHJldHVybiBkZXB0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZv
bzMxKFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdp
ZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9m
TGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZo
ZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb28zMihUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSkg
eworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAg
ICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnMo
dGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAg
ICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzMzKFRleHR1cmVE
ZXB0aDJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAg
ICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAg
ICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1i
ZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAg
IH0KKyAgICAgICAgdWludCBmb28zNChUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJl
KSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7Cisg
ICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVs
czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0
LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7
CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28zNShUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1i
ZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRo
LCAmaGVpZ2h0LCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1
cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMzYoVGV4dHVyZURlcHRoMkRB
cnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAg
ICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAg
IHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUs
IDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAg
ICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMzcoVGV4
dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0
aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsK
KyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNp
b25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZl
bHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAg
ICAgIHVpbnQgZm9vMzgoVGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAg
ICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAg
dWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwg
MCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJu
IHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMzkoVGV4dHVyZURlcHRoQ3ViZTxm
bG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVp
bnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAg
IEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZl
bHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50
IGZvbzQwKFRleHR1cmVEZXB0aEN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVp
bnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVt
YmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0
aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJP
ZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzQxKFJXVGV4dHVyZURlcHRoMkQ8
ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1
aW50IGhlaWdodDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAm
aGVpZ2h0KTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1
aW50IGZvbzQyKFJXVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAg
IHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIEdldERp
bWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICAgICAgICAgIHJldHVybiBo
ZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb280MyhSV1RleHR1cmVEZXB0aDJEQXJy
YXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAg
ICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBH
ZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAg
ICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzQ0KFJXVGV4
dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0
aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsK
KyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxl
bWVudHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1
aW50IGZvbzQ1KFJXVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAg
ICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAg
dWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRo
LCAmaGVpZ2h0LCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAg
ICAgICB9CisgICAgYCk7CisgICAgbGV0IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0ZXh0
dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1cmUx
RCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3VGV4
dHVyZTNELCB0ZXh0dXJlRGVwdGgyRCwgdGV4dHVyZURlcHRoMkRBcnJheSwgdGV4dHVyZURlcHRo
Q3ViZSwgcndUZXh0dXJlRGVwdGgyRCwgcndUZXh0dXJlRGVwdGgyREFycmF5XSA9IGNyZWF0ZVRl
eHR1cmVzRm9yVGVzdGluZyhwcm9ncmFtKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRF0pLCA0KTsKKyAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRF0pLCAzKTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3Rl
eHR1cmUxREFycmF5XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXldKSwgMik7CisgICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMURBcnJheV0pLCAz
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282Iiwg
W3RleHR1cmUyRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb283IiwgW3RleHR1cmUyRF0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyRF0pLCAzKTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUyREFy
cmF5XSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEwIiwgW3RleHR1cmUyREFycmF5XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3RleHR1cmUyREFycmF5XSksIDIpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1
cmUyREFycmF5XSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEzIiwgW3RleHR1cmUzRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlM0RdKSwgNCk7CisgICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTNE
XSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE2IiwgW3RleHR1cmUzRF0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlQ3ViZV0pLCAyKTsKKyAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlQ3ViZV0pLCA0
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIs
IFt0ZXh0dXJlQ3ViZV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmUxRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmUxREFycmF5XSks
IDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIy
IiwgW3J3VGV4dHVyZTFEQXJyYXldKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbcndUZXh0dXJlMkRdKSwgOCk7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjQiLCBbcndUZXh0dXJlMkRd
KSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjUiLCBbcndUZXh0dXJlMkRBcnJheV0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNiIsIFtyd1RleHR1cmUyREFycmF5XSksIDQpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI3IiwgW3J3VGV4
dHVyZTJEQXJyYXldKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjgiLCBbcndUZXh0dXJlM0RdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjkiLCBbcndUZXh0dXJlM0RdKSwgNCk7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzAiLCBbcndU
ZXh0dXJlM0RdKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRoMkRdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzIiLCBbdGV4dHVyZURlcHRoMkRdKSwgNCk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzMiLCBb
dGV4dHVyZURlcHRoMkRdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMzQiLCBbdGV4dHVyZURlcHRoMkRBcnJheV0pLCA4KTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNSIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5XSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJEQXJyYXldKSwgMik7CisgICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzciLCBbdGV4dHVyZURlcHRoMkRB
cnJheV0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zOCIsIFt0ZXh0dXJlRGVwdGhDdWJlXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM5IiwgW3RleHR1cmVEZXB0aEN1YmVdKSwgNCk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDAiLCBb
dGV4dHVyZURlcHRoQ3ViZV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280MSIsIFtyd1RleHR1cmVEZXB0aDJEXSksIDgpOworICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3J3VGV4dHVyZURl
cHRoMkRdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNDMiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5XSksIDgpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3J3VGV4dHVyZURlcHRoMkRB
cnJheV0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280NSIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXldKSwgMik7Cit9CisKK3Rlc3RzLnRleHR1
cmVMb2FkID0gZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAg
ICBmbG9hdCBmb28xKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQg
bWlwbWFwKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGxvY2F0aW9u
LCBtaXBtYXApKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28yKFRleHR1cmUxRDxmbG9h
dD4gdGV4dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQgbWlwbWFwLCBpbnQgb2Zmc2V0KSB7CisgICAg
ICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGxvY2F0aW9uLCBtaXBtYXApLCBvZmZz
ZXQpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzMoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+
IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50IG1pcG1hcCwgaW50IGxheWVyKSB7CisgICAgICAg
ICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKGxvY2F0aW9uLCBtaXBtYXAsIGxheWVyKSk7
CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNChUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4
dHVyZSwgaW50IGxvY2F0aW9uLCBpbnQgbWlwbWFwLCBpbnQgbGF5ZXIsIGludCBvZmZzZXQpIHsK
KyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMobG9jYXRpb24sIG1pcG1hcCwg
bGF5ZXIpLCBvZmZzZXQpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzUoVGV4dHVyZTJE
PGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXApIHsKKyAgICAgICAgICAg
IHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgbWlwbWFwKSk7CisgICAgICAgIH0KKyAg
ICAgICAgZmxvYXQgZm9vNihUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwg
aW50IG1pcG1hcCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1
cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIG1pcG1hcCksIGludDIob2Zmc2V0WCwgb2Zmc2V0
WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzcoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+
IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCwgaW50IGxheWVyKSB7CisgICAgICAg
ICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgsIHksIG1pcG1hcCwgbGF5ZXIpKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb284KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJl
LCBpbnQgeCwgaW50IHksIGludCBtaXBtYXAsIGludCBsYXllciwgaW50IG9mZnNldFgsIGludCBv
ZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgsIHksIG1p
cG1hcCwgbGF5ZXIpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAg
ICBmbG9hdCBmb285KFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQg
eiwgaW50IG1pcG1hcCkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50NCh4
LCB5LCB6LCBtaXBtYXApKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xMChUZXh0dXJl
M0Q8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IHosIGludCBtaXBtYXAsIGludCBv
ZmZzZXRYLCBpbnQgb2Zmc2V0WSwgaW50IG9mZnNldFopIHsKKyAgICAgICAgICAgIHJldHVybiBM
b2FkKHRleHR1cmUsIGludDQoeCwgeSwgeiwgbWlwbWFwKSwgaW50MyhvZmZzZXRYLCBvZmZzZXRZ
LCBvZmZzZXRaKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTEoUldUZXh0dXJlMUQ8
ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQo
dGV4dHVyZSwgbG9jYXRpb24pOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzEyKFJXVGV4
dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50IGxheWVyKSB7Cisg
ICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGxvY2F0aW9uLCBsYXllcikpOwor
ICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzEzKFJXVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJl
LCBpbnQgeCwgaW50IHkpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIo
eCwgeSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE0KFJXVGV4dHVyZTJEQXJyYXk8
ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IGxheWVyKSB7CisgICAgICAgICAgICBy
ZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAg
ICAgZmxvYXQgZm9vMTUoUldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwg
aW50IHopIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgeikp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE2KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0
ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXApIHsKKyAgICAgICAgICAgIHJldHVybiBM
b2FkKHRleHR1cmUsIGludDMoeCwgeSwgbWlwbWFwKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxv
YXQgZm9vMTcoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50
IG1pcG1hcCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4g
TG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIG1pcG1hcCksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE4KFRleHR1cmVEZXB0aDJEQXJyYXk8Zmxv
YXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IG1pcG1hcCwgaW50IGxheWVyKSB7CisgICAg
ICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgsIHksIG1pcG1hcCwgbGF5ZXIpKTsK
KyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xOShUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0
PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXAsIGludCBsYXllciwgaW50IG9mZnNl
dFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0
KHgsIHksIG1pcG1hcCwgbGF5ZXIpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAg
fQorICAgICAgICBmbG9hdCBmb28yMChSV1RleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBp
bnQgeCwgaW50IHkpIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDIoeCwg
eSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzIxKFJXVGV4dHVyZURlcHRoMkRBcnJh
eTxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbGF5ZXIpIHsKKyAgICAgICAgICAg
IHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoeCwgeSwgbGF5ZXIpKTsKKyAgICAgICAgfQorICAg
IGApOworICAgIGxldCBbdGV4dHVyZTFELCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0ZXh0
dXJlMkRBcnJheSwgdGV4dHVyZTNELCB0ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVy
ZTFEQXJyYXksIHJ3VGV4dHVyZTJELCByd1RleHR1cmUyREFycmF5LCByd1RleHR1cmUzRCwgdGV4
dHVyZURlcHRoMkQsIHRleHR1cmVEZXB0aDJEQXJyYXksIHRleHR1cmVEZXB0aEN1YmUsIHJ3VGV4
dHVyZURlcHRoMkQsIHJ3VGV4dHVyZURlcHRoMkRBcnJheV0gPSBjcmVhdGVUZXh0dXJlc0ZvclRl
c3RpbmcocHJvZ3JhbSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgMTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDcpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAt
MSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEzKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0
ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0
dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTYpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1
cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVy
ZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMjApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDIxKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJl
MURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIC0xKV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAx
Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQi
LCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMjEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1
cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAyMCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4
dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzgpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3Rl
eHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0x
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxOCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0
dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0x
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzNyk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM4KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDM0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0
ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHBy
b2dyYW0sIC0xKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0Myk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDUxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgNzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDc2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCA3OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgODAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAxMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAxMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzOCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDM5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzOCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgLTEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzOSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDM1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCA0NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTIpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDQ1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1Myk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDYwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA1Myk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgNjEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDc2KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA4MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgNzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDgxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA4MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDc2KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA4MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEp
XSksIDc3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVy
ZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzMyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4
dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCA0Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDY1
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIs
IFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNjYpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA2OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDcwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwg
W3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVy
ZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDQxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAi
LCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4
dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQxKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNE
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIC0xKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDQyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDQ5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0p
LCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQzKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBb
dGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUwKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVy
ZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAxMCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2Nik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCA2Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCA3MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCA3MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgNjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
NzEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDY2KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBb
cndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAyKV0p
LCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFE
LCBtYWtlSW50KHByb2dyYW0sIDQpXSksIDUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFt
LCA1KV0pLCA2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgNildKSwgNyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4
dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1Rl
eHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDUpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDgpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1
cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIs
IFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAxMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MyksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJh
eSwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4
dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
MTUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAyKV0pLCAxNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTgpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURB
cnJheSwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3
VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMild
KSwgMjEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHBy
b2dyYW0sIDIpXSksIDIyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA2KSwg
bWFrZUludChwcm9ncmFtLCAyKV0pLCAyMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJE
LCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1
cmUyRCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndU
ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwg
W3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MyksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9n
cmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1h
a2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTUpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4
dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE3KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBb
cndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwg
MTgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAy
KV0pLCAxOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dy
YW0sIDIpXSksIDIwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQo
cHJvZ3JhbSwgMildKSwgMjEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFr
ZUludChwcm9ncmFtLCAyKV0pLCAyMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDYp
LCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyNSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI2KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjcpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1
cmUyRCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyOCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3
VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMi
LCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMyld
KSwgMzApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFt
LCAzKV0pLCAzMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHBy
b2dyYW0sIDMpXSksIDMyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJl
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFty
d1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0
MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0
IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAx
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUi
LCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1Rl
eHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJl
M0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0MSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDQyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmVEZXB0aDJELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZURlcHRoMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmVEZXB0aDJELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzcpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlRGVwdGgyRCwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4
dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0
dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMzKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4
dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzcpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0
ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3Jh
bSwgLTEpXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAx
MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzMp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBb
dGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzgpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQzKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0NCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTEpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDUyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3NSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNzYpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDc5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA4MCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTgpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDExKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCAxOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAzNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAtMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDM5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMzUpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQ0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCA1Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDUpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDUzKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCA1Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
NjApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
OSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUzKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCA2MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgNzYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDgwKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgODEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDgwKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBb
dGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgNzYpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDgxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSld
KSwgNzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dy
YW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtl
SW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0
aDJELCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1Rl
eHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgy
RCwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4
dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
MTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTUpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtl
SW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVw
dGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxNyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3
VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMild
KSwgMTgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHBy
b2dyYW0sIDIpXSksIDE5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAzKSwg
bWFrZUludChwcm9ncmFtLCAyKV0pLCAyMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJv
Z3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBt
YWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIyKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJl
RGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMyk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwg
W3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwg
MildKSwgMjQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDMpXSksIDI1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjcpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJE
LCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI4KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0
dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAy
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIw
IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3Jh
bSwgMyldKSwgMzApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtl
SW50KHByb2dyYW0sIDMpXSksIDMxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFt
LCA3KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAzMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjEiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAx
MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIx
IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0MSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3
VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0Mik7Cit9CisKK3Rlc3RzLnRleHR1cmVTdG9y
ZSA9IGZ1bmN0aW9uKCkgeworICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKKyAgICAgICAgZmxv
YXQgZm9vMShSV1RleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSwgdWludCBsb2NhdGlvbiwgZmxvYXQg
dmFsdWUpIHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1cmUsIHZhbHVlLCBsb2NhdGlvbik7Cisg
ICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQobG9jYXRpb24pKTsKKyAgICAgICAg
fQorICAgICAgICBmbG9hdCBmb28yKFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHVp
bnQgbG9jYXRpb24sIHVpbnQgbGF5ZXIsIGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICBTdG9y
ZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDIobG9jYXRpb24sIGxheWVyKSk7CisgICAgICAgICAgICBy
ZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGludChsb2NhdGlvbiksIGludChsYXllcikpKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb28zKFJXVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCB1
aW50IHgsIHVpbnQgeSwgZmxvYXQgdmFsdWUpIHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1cmUs
IHZhbHVlLCB1aW50Mih4LCB5KSk7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBp
bnQyKGludCh4KSwgaW50KHkpKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNChSV1Rl
eHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCB1aW50IHgsIHVpbnQgeSwgdWludCBsYXllciwg
ZmxvYXQgdmFsdWUpIHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1cmUsIHZhbHVlLCB1aW50Myh4
LCB5LCBsYXllcikpOworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MyhpbnQo
eCksIGludCh5KSwgaW50KGxheWVyKSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzUo
UldUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIHVpbnQgeCwgdWludCB5LCB1aW50IHosIGZsb2F0
IHZhbHVlKSB7CisgICAgICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDMoeCwgeSwg
eikpOworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MyhpbnQoeCksIGludCh5
KSwgaW50KHopKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNihSV1RleHR1cmVEZXB0
aDJEPGZsb2F0PiB0ZXh0dXJlLCB1aW50IHgsIHVpbnQgeSwgZmxvYXQgdmFsdWUpIHsKKyAgICAg
ICAgICAgIFN0b3JlKHRleHR1cmUsIHZhbHVlLCB1aW50Mih4LCB5KSk7CisgICAgICAgICAgICBy
ZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKGludCh4KSwgaW50KHkpKSk7CisgICAgICAgIH0KKyAg
ICAgICAgZmxvYXQgZm9vNyhSV1RleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHVp
bnQgeCwgdWludCB5LCB1aW50IGxheWVyLCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3Rv
cmUodGV4dHVyZSwgdmFsdWUsIHVpbnQzKHgsIHksIGxheWVyKSk7CisgICAgICAgICAgICByZXR1
cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKGludCh4KSwgaW50KHkpLCBpbnQobGF5ZXIpKSk7CisgICAg
ICAgIH0KKyAgICBgKTsKKyAgICBsZXQgW3RleHR1cmUxRCwgdGV4dHVyZTFEQXJyYXksIHRleHR1
cmUyRCwgdGV4dHVyZTJEQXJyYXksIHRleHR1cmUzRCwgdGV4dHVyZUN1YmUsIHJ3VGV4dHVyZTFE
LCByd1RleHR1cmUxREFycmF5LCByd1RleHR1cmUyRCwgcndUZXh0dXJlMkRBcnJheSwgcndUZXh0
dXJlM0QsIHRleHR1cmVEZXB0aDJELCB0ZXh0dXJlRGVwdGgyREFycmF5LCB0ZXh0dXJlRGVwdGhD
dWJlLCByd1RleHR1cmVEZXB0aDJELCByd1RleHR1cmVEZXB0aDJEQXJyYXldID0gY3JlYXRlVGV4
dHVyZXNGb3JUZXN0aW5nKHByb2dyYW0pOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQs
IG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3
VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFt
LCA2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVp
bnQocHJvZ3JhbSwgNyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJl
MURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURB
cnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dy
YW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJh
eSwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0s
IDcpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIs
IFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDIp
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFty
d1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFr
ZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDUpLCBt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1Rl
eHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVp
bnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
VWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1
cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWlu
dChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUx
REFycmF5LCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJv
Z3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChw
cm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFy
cmF5LCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFty
d1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9n
cmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVp
bnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQs
IG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1h
a2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4
dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0s
IDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIs
IFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChw
cm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFr
ZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVp
bnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJl
MkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3
VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dy
YW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0s
IDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWlu
dChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChw
cm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwg
bWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0
dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwg
W3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHBy
b2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dy
YW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtl
VWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWlu
dChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUy
RCwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNSIsIFtyd1RleHR1cmUzRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VV
aW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0
dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50
KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJl
RGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHBy
b2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVw
dGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgy
RCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0s
IDMpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIs
IFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwg
bWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDYp
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFty
d1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1Rl
eHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVp
bnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtl
VWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1
cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWlu
dChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVE
ZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChw
cm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0
aDJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282
IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9n
cmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJE
LCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwg
NyksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283Iiwg
W3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHBy
b2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
VWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzciLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb283IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbcndUZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3J3VGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtyd1RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
Cit9CisKK3Rlc3RzLnRleHR1cmVTYW1wbGUgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3Jh
bSA9IGRvUHJlcChgCisgICAgICAgIGZsb2F0IGZvbzEoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJl
LCBzYW1wbGVyIHMsIGZsb2F0IGxvY2F0aW9uKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxl
KHRleHR1cmUsIHMsIGxvY2F0aW9uKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28yKFRl
eHR1cmUxRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCBsb2NhdGlvbiwgaW50IG9m
ZnNldCkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBsb2NhdGlvbiwg
b2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28zKFRleHR1cmUxREFycmF5PGZs
b2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IGxheWVyKSB7CisgICAgICAg
ICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Mih4LCBsYXllcikpOworICAgICAg
ICB9CisgICAgICAgIGZsb2F0IGZvbzQoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNh
bXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgbGF5ZXIsIGludCBvZmZzZXQpIHsKKyAgICAgICAgICAg
IHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQyKHgsIGxheWVyKSwgb2Zmc2V0KTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb281KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2Ft
cGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRl
eHR1cmUsIHMsIGZsb2F0Mih4LCB5KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNihU
ZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgaW50
IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1
cmUsIHMsIGZsb2F0Mih4LCB5KSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0K
KyAgICAgICAgZmxvYXQgZm9vNyhUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxl
ciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJu
IFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmb284KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMs
IGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkp
IHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxh
eWVyKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQg
Zm9vOShUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQg
eSwgZmxvYXQgeikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9h
dDMoeCwgeSwgeikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzEwKFRleHR1cmUzRDxm
bG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBpbnQg
b2Zmc2V0WCwgaW50IG9mZnNldFksIGludCBvZmZzZXRaKSB7CisgICAgICAgICAgICByZXR1cm4g
U2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSwgaW50MyhvZmZzZXRYLCBvZmZzZXRZ
LCBvZmZzZXRaKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTEoVGV4dHVyZUN1YmU8
ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeikgewor
ICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeikpOwor
ICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzEyKFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwg
c2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBCaWFzKSB7CisgICAgICAgICAgICBy
ZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIEJpYXMpOworICAgICAg
ICB9CisgICAgICAgIGZsb2F0IGZvbzEzKFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxl
ciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBCaWFzLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNl
dFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0Mih4
LCB5KSwgQmlhcywgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAg
ZmxvYXQgZm9vMTQoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgs
IGZsb2F0IHksIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEp
IHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5
KSwgZmxvYXQyKGRkeDAsIGRkeDEpLCBmbG9hdDIoZGR5MCwgZGR5MSkpOworICAgICAgICB9Cisg
ICAgICAgIGZsb2F0IGZvbzE1KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBm
bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHkwLCBmbG9h
dCBkZHkxLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBT
YW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgZmxvYXQyKGRkeDAsIGRkeDEpLCBm
bG9hdDIoZGR5MCwgZGR5MSksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9Cisg
ICAgICAgIGZsb2F0IGZvbzE2KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBm
bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBMT0QpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVM
ZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIExPRCk7CisgICAgICAgIH0KKyAgICAgICAg
ZmxvYXQgZm9vMTcoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgs
IGZsb2F0IHksIGZsb2F0IExPRCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAg
ICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBMT0QsIGlu
dDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE4KFRl
eHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHks
IGZsb2F0IGxheWVyLCBmbG9hdCBCaWFzKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQmlh
cyh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBCaWFzKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmb28xOShUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBz
LCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgQmlhcywgaW50IG9mZnNldFgs
IGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBz
LCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBCaWFzLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb28yMChUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVy
ZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgZGR4MCwg
ZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSkgeworICAgICAgICAgICAgcmV0dXJu
IFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgZmxvYXQyKGRkeDAs
IGRkeDEpLCBmbG9hdDIoZGR5MCwgZGR5MSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZv
bzIxKFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZs
b2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHkwLCBm
bG9hdCBkZHkxLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVy
biBTYW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGZsb2F0MihkZHgw
LCBkZHgxKSwgZmxvYXQyKGRkeTAsIGRkeTEpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb28yMihUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVy
ZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgTE9EKSB7
CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQzKHgsIHks
IGxheWVyKSwgTE9EKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28yMyhUZXh0dXJlMkRB
cnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBs
YXllciwgZmxvYXQgTE9ELCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAg
IHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBMT0Qs
IGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGludCBmb28yNChU
ZXh0dXJlMUQ8aW50ND4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCBsb2NhdGlvbikgeworICAg
ICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBsb2NhdGlvbikueDsKKyAgICAgICAg
fQorICAgICAgICBpbnQgZm9vMjUoVGV4dHVyZTFEPGludDQ+IHRleHR1cmUsIHNhbXBsZXIgcywg
ZmxvYXQgbG9jYXRpb24pIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywg
bG9jYXRpb24pLnk7CisgICAgICAgIH0KKyAgICAgICAgaW50IGZvbzI2KFRleHR1cmUxRDxpbnQ0
PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IGxvY2F0aW9uKSB7CisgICAgICAgICAgICByZXR1
cm4gU2FtcGxlKHRleHR1cmUsIHMsIGxvY2F0aW9uKS56OworICAgICAgICB9CisgICAgICAgIGlu
dCBmb28yNyhUZXh0dXJlMUQ8aW50ND4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCBsb2NhdGlv
bikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBsb2NhdGlvbikudzsK
KyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28yOChUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4
dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5KSB7CisgICAgICAgICAgICByZXR1cm4g
U2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxv
YXQgZm9vMjkoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQg
eCwgZmxvYXQgeSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1
cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgaW50MihvZmZzZXRYLCBvZmZzZXRZ
KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMzAoVGV4dHVyZURlcHRoMkRBcnJheTxm
bG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllcikg
eworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5
ZXIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28zMShUZXh0dXJlRGVwdGgyREFycmF5
PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVy
LCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUo
dGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7
CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMzIoVGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4g
dGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KSB7CisgICAgICAg
ICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSk7CisgICAgICAg
IH0KKyAgICAgICAgZmxvYXQgZm9vMzMoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNh
bXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgQmlhcykgeworICAgICAgICAgICAgcmV0
dXJuIFNhbXBsZUJpYXModGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBCaWFzKTsKKyAgICAgICAg
fQorICAgICAgICBmbG9hdCBmb28zNChUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgc2Ft
cGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBCaWFzLCBpbnQgb2Zmc2V0WCwgaW50IG9m
ZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0
Mih4LCB5KSwgQmlhcywgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAg
ICAgZmxvYXQgZm9vMzUoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywg
ZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxv
YXQgZGR5MSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxv
YXQyKHgsIHkpLCBmbG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0MihkZHkwLCBkZHkxKSk7CisgICAg
ICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMzYoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUs
IHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxv
YXQgZGR5MCwgZmxvYXQgZGR5MSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAg
ICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGZsb2F0Mihk
ZHgwLCBkZHgxKSwgZmxvYXQyKGRkeTAsIGRkeTEpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsK
KyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28zNyhUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4
dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBMT0QpIHsKKyAgICAgICAg
ICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIExPRCk7Cisg
ICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMzgoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1
cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgTE9ELCBpbnQgb2Zmc2V0WCwg
aW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBz
LCBmbG9hdDIoeCwgeSksIExPRCwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0K
KyAgICAgICAgZmxvYXQgZm9vMzkoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwg
c2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgQmlhcykgewor
ICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxh
eWVyKSwgQmlhcyk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDAoVGV4dHVyZURlcHRo
MkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9h
dCBsYXllciwgZmxvYXQgQmlhcywgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAg
ICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBC
aWFzLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBm
b280MShUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0
IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBk
ZHkwLCBmbG9hdCBkZHkxKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJl
LCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBmbG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0MihkZHkw
LCBkZHkxKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDIoVGV4dHVyZURlcHRoMkRB
cnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBs
YXllciwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSwgaW50
IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0
ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBmbG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0
MihkZHkwLCBkZHkxKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAg
ICAgZmxvYXQgZm9vNDMoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxl
ciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgTE9EKSB7CisgICAgICAg
ICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwg
TE9EKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb280NChUZXh0dXJlRGVwdGgyREFycmF5
PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVy
LCBmbG9hdCBMT0QsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0
dXJuIFNhbXBsZUxldmVsKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIExPRCwgaW50
MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDUoVGV4
dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgY29tcGFyZVZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQ21wKHRleHR1
cmUsIHMsIGZsb2F0Mih4LCB5KSwgY29tcGFyZVZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdCBmb280NihUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9h
dCB4LCBmbG9hdCB5LCBmbG9hdCBjb21wYXJlVmFsdWUsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0
WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUNtcCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwg
eSksIGNvbXBhcmVWYWx1ZSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAg
ICAgICAgZmxvYXQgZm9vNDcoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2Ft
cGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgY29tcGFyZVZhbHVl
KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQ21wKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5
LCBsYXllciksIGNvbXBhcmVWYWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDgo
VGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBm
bG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgY29tcGFyZVZhbHVlLCBpbnQgb2Zmc2V0WCwgaW50
IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVDbXAodGV4dHVyZSwgcywgZmxv
YXQzKHgsIHksIGxheWVyKSwgY29tcGFyZVZhbHVlLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsK
KyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb280OShUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVy
ZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBmbG9hdCBiaWFzKSB7Cisg
ICAgICAgICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeiks
IGJpYXMpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzUwKFRleHR1cmVDdWJlPGZsb2F0
PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IGRk
eDAsIGZsb2F0IGRkeDEsIGZsb2F0IGRkeDIsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEsIGZsb2F0
IGRkeTIpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0
Myh4LCB5LCB6KSwgZmxvYXQzKGRkeDAsIGRkeDEsIGRkeDIpLCBmbG9hdDMoZGR5MCwgZGR5MSwg
ZGR5MikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzUxKFRleHR1cmVDdWJlPGZsb2F0
PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IGxv
ZCkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUxldmVsKHRleHR1cmUsIHMsIGZsb2F0Myh4
LCB5LCB6KSwgbG9kKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb281MihUZXh0dXJlRGVw
dGhDdWJlPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0
IHosIGZsb2F0IGJpYXMpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUs
IHMsIGZsb2F0Myh4LCB5LCB6KSwgYmlhcyk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9v
NTMoVGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBm
bG9hdCB5LCBmbG9hdCB6LCBmbG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHgyLCBmbG9h
dCBkZHkwLCBmbG9hdCBkZHkxLCBmbG9hdCBkZHkyKSB7CisgICAgICAgICAgICByZXR1cm4gU2Ft
cGxlR3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeiksIGZsb2F0MyhkZHgwLCBkZHgxLCBk
ZHgyKSwgZmxvYXQzKGRkeTAsIGRkeTEsIGRkeTIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb281NChUZXh0dXJlRGVwdGhDdWJlPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0
IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IGxvZCkgeworICAgICAgICAgICAgcmV0dXJuIFNh
bXBsZUxldmVsKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSwgbG9kKTsKKyAgICAgICAgfQor
ICAgIGApOworICAgIGxldCBbdGV4dHVyZTFELCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0
ZXh0dXJlMkRBcnJheSwgdGV4dHVyZTNELCB0ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4
dHVyZTFEQXJyYXksIHJ3VGV4dHVyZTJELCByd1RleHR1cmUyREFycmF5LCByd1RleHR1cmUzRCwg
dGV4dHVyZURlcHRoMkQsIHRleHR1cmVEZXB0aDJEQXJyYXksIHRleHR1cmVEZXB0aEN1YmUsIHJ3
VGV4dHVyZURlcHRoMkQsIHJ3VGV4dHVyZURlcHRoMkRBcnJheV0gPSBjcmVhdGVUZXh0dXJlc0Zv
clRlc3RpbmcocHJvZ3JhbSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7fSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjM3NSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjQzNzUpXSksIDcpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge30pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41NjI1KV0pLCAxNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBb
dGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7fSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjYyNSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuMzc1KV0pLCA3KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjQzNzUpXSksICgzICogNyArIDEgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpXSksICg3ICsgMTQpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41NjI1KV0pLCAoMSAqIDcg
KyAzICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC42MjUpXSksIDE0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6
ICJjbGFtcFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjM3NSldKSwgNyk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBb
dGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFk
ZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC40
Mzc1KV0pLCAoMyAqIDcgKyAxICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNv
bG9yIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoNyArIDE0KSAvIDIpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUx
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9k
ZTogImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNTYyNSldKSwg
KDEgKiA3ICsgMyAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNjI1KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuMzc1KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC40Mzc1KV0pLCAoMyAqIDcgKyAxICogMTQpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBb
dGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFk
ZHJlc3NNb2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuNSldKSwgKDcg
KyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsg
MC41NjI1KV0pLCAoMSAqIDcgKyAzICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuNjI1KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuMzc1KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC40Mzc1KV0pLCAoMyAqIDcgKyAxICogMTQpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEi
LCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwg
ckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuNSldKSwg
KDcgKyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAy
ICsgMC41NjI1KV0pLCAoMSAqIDcgKyAzICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuNjI1KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9y
UmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuNjI1KV0pLCA3KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6
ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC41NjI1KV0pLCAoMyAq
IDcgKyAxICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSArIDAuNSldKSwgKDcgKyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBl
YXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC40Mzc1KV0pLCAoMSAqIDcgKyAzICogMTQp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
IiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAr
IDAuMzc1KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMiArIDAuMzc1KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAyICsgMC40Mzc1KV0pLCAoMyAqIDcgKyAxICogMTQpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVy
ZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NN
b2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuNSldKSwgKDcg
KyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAyICsgMC41NjI1KV0pLCAoMSAqIDcgKyAzICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9y
UmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuNjI1KV0pLCAxNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgLTAuMzc1KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxLjM3NSldKSwgNzkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3Rl
eHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRy
ZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0wLjM3
NSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMS4zNzUpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciIsIGJvcmRl
ckNvbG9yOiAib3BhcXVlQmxhY2sifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMC4zNzUpXSksIDAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJB
ZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciIsIGJvcmRlckNvbG9yOiAib3BhcXVlQmxh
Y2sifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxLjM3NSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBU
b0JvcmRlckNvbG9yIiwgYm9yZGVyQ29sb3I6ICJvcGFxdWVXaGl0ZSJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIC0wLjM3NSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIiwgYm9y
ZGVyQ29sb3I6ICJvcGFxdWVXaGl0ZSJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEuMzc1KV0pLCAx
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIs
IFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBy
QWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IiLCBib3JkZXJDb2xvcjogIm9wYXF1ZVdo
aXRlIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDc5ICsgMSkgLyAyKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBsb2RNaW5DbGFtcDog
MX0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTMgKyAxNikgLyAyKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJlMUQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgxNCArIDc5KSAvIDIpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1
cmUxREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg3ICsgMTQp
IC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSld
KSwgKDE3ICsgMTgpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDE0ICsgNzkpIC8gMik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVy
ZTFEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgKDE4ICsgMTkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTMgKyAxNCArIDIx
ICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYg
LyA4KV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNTQg
KyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgi
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksICg2MiArIDYzICsgNzAgKyA3MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEy
ICsgMTMgKyAyMCArIDIxICsgNDQgKyA0NSArIDUyICsgNTMpIC8gOCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KV0pLCAoMTMgKyAxNCArIDIxICsgMjIgKyA0NSArIDQ2ICsgNTMgKyA1NCkgLyA4KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0
dXJlM0QsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KV0pLCAoMjAgKyAyMSArIDI4ICsgMjkgKyA1MiArIDUzICsgNjAgKyA2MSkg
LyA4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OSIsIFt0ZXh0dXJlM0QsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDUgLyA4KV0pLCAoMTIgKyAxMyArIDIwICsgMjEgKyAoNDQgKyA0NSAr
IDUyICsgNTMpICogMykgLyAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCAr
IDIxICsgMjIgKyA0NSArIDQ2ICsgNTMgKyA1NCkgLyA4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksICgyMCArIDIxICsgMjggKyAyOSArIDUyICsgNTMgKyA2MCArIDYxKSAvIDgpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJl
M0QsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuMjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksICg0NCArIDQ1ICsgNTIgKyA1MykgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZUN1YmUs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgKDMgKyA0ICsgNSArIDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDE1ICsg
MTYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzExIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgyMyArIDI0ICsgMjUgKyAyNikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVy
ZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApXSksICgzMyArIDM0ICsgMzUgKyAzNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDQzICsg
NDQgKyA0NSArIDQ2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSldKSwgKDUzICsgNTQgKyA1NSArIDU2KSAv
IDQpOworICAgIC8vIFVuZm9ydHVuYXRlbHksIHdlIGNhbid0IGFjdHVhbGx5IHRlc3QgdGhlICJC
aWFzIiBhcmd1bWVudCwgYmVjYXVzZSBpdCBpcyBzdXBwb3NlZCB0byBiZSBhcHBsaWVkCisgICAg
Ly8gdG8gdGhlIHVuY2xhbXBlZCBMT0QsIHdoaWNoIGZvciB1cyBpcyAtSW5maW5pdHkgKGJlY2F1
c2Ugb3VyIGRlcml2YXRpdmVzIGFyZSBhbGwgMCkKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyAr
IDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEyIiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTIiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVy
ZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMg
KyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEzIiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJl
MkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVyZTJE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0
dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQi
LCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgzNCArIDM1ICsg
MzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTQiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5l
UHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1
cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIs
IFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBt
aXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0
ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41
KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKCgoMTIgKyAxMyArIDIw
ICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAvIDIpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFt0ZXh0dXJlMkQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIx
ICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE1IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndp
ZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsg
MjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE1IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRo
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMzUgKyAzNiArIDM5ICsgNDAp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE1IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2Fk
VmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2Fk
VmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksICgoKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpICsgKCgzNSArIDM2ICsgMzkgKyA0MCkgLyA0
KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTYiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1
cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwg
KDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSldKSwgKCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCAr
IDM5KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMzQgKyAzNSAr
IDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE3IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmUyRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSAr
IDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJl
MkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNSAr
IDM2ICsgMzkgKyA0MCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWlu
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVy
ZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksICgoKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpICsgKCgzNSAr
IDM2ICsgMzkgKyA0MCkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgyMCArIDIx
ICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEw
IC8gMTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg2MiArIDYzICsgNzAgKyA3
MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTkiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIy
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xOSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE5IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTkiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDYyICsgNjMgKyA3MCArIDcxKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDEyICsgMTMgKyAy
MCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQu
ZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0
ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4y
NSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgxMiArIDEzICsgMjAg
KyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRW
YWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIu
bG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQg
KyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
aGVpZ2h0KV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDc2ICsg
NzcgKyA4MCArIDgxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhl
aWdodCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUp
IC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIs
IDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgoKDU0ICsgNTUg
KyA2MiArIDYzKSAvIDQpICsgKCg3NiArIDc3ICsgODAgKyA4MSkgLyA0KSkgLyAyKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCAr
IDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lk
dGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNSArIDM2ICsgMzkgKyA0
MCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3co
MiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0
aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAy
MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1
ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9h
ZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoKCgxMyArIDE0ICsgMjEgKyAyMikgLyA0KSArICgoMzUgKyAzNiArIDM5ICsgNDApIC8g
NCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NCAr
IDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRy
LmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
NzcgKyA3OCArIDgxICsgODIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lk
dGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
NTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJl
MkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRl
eHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoNTUgKyA1NiArIDYzICsgNjQpIC8gNCkgKyAoKDc3ICsg
NzggKyA4MSArIDgyKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3RleHR1cmUyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIw
ICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIyIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmls
dGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkgKyAo
KDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg3NiArIDc3ICsgODAgKyA4MSkgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIi
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoNTQgKyA1
NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIyIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKCgoNTQgKyA1NSArIDYyICsgNjMpIC8g
NCkgKyAoKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTIgKyAxMyArIDIwICsgMjEp
IC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsg
MjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApXSksICg3NiArIDc3ICsgODAgKyA4MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoNTQgKyA1NSArIDYy
ICsgNjMpIC8gNCkgKyAoKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpKSAvIDIpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksICg3NyArIDc4ICsgODEgKyA4MikgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoNTUgKyA1NiAr
IDYzICsgNjQpIC8gNCkgKyAoKDc3ICsgNzggKyA4MSArIDgyKSAvIDQpKSAvIDIpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJl
MkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBsb2RNaW5DbGFt
cDogMSwgbG9kTWF4Q2xhbXA6IDF9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMildKSwgKDM0ICsgMzUgKyAzOCAr
IDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIiLCBsb2RNaW5DbGFtcDogMSwgbG9kTWF4Q2xhbXA6IDF9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAv
IHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM0ICsgMzUgKyAzOCArIDM5
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNCIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIiLCBtYXhBbmlzb3Ryb3B5OiAyfSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDQgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDQvMykg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgzNCArIDM1ICsgMzggKyAz
OSkgLyA0KTsKKyAgICBsZXQgdGV4dHVyZTFESW50NCA9IG1ha2UxRFRleHR1cmUocHJvZ3JhbSwg
W1tbMSwgMiwgMywgNF0sIFsxMDAsIDIwMCwgMzAwLCA0MDBdLCBbMTAxLCAyMDIsIDMwMSwgNDAx
XSwgWzEzLCAxNCwgMTUsIDE2XV0sIFtbMTcsIDE4LCAxOSwgMjBdLCBbMjEsIDIyLCAyMywgMjRd
XSwgW1syNSwgMjYsIDI3LCAyOF1dXSwgImludDQiKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI0IiwgW3RleHR1cmUxREludDQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
XSksIDEwMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yNSIsIFt0ZXh0dXJlMURJbnQ0LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAyMDEpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjYiLCBbdGV4dHVyZTFESW50NCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSldKSwgMzAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzI3IiwgW3RleHR1cmUxREludDQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksIDQwMCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4IiwgW3Rl
eHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEy
ICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4IiwgW3RleHR1
cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KV0pLCAoMjAg
KyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzI5IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzAiLCBbdGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsg
MjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMSIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICg2MiArIDYzICsg
NzAgKyA3MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzIiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMyArIDQgKyA1ICsgNikgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzIiLCBb
dGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAxNSArIDE2KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMiIsIFt0ZXh0dXJlRGVw
dGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApXSksICgyMyArIDI0ICsgMjUgKyAyNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzIiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDMzICsgMzQgKyAzNSArIDM2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zMiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg0MyArIDQ0ICsg
NDUgKyA0NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzIiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSldKSwgKDUzICsgNTQgKyA1NSArIDU2KSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
OCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
XSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAv
IDE2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOCIs
IFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCld
KSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjkiLCBbdGV4dHVyZURlcHRoMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMwIiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzAiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMSIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMg
KyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEi
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMSIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoNjIg
KyA2MyArIDcwICsgNzEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzMzIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIw
ICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMzIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIy
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zMyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2
IC8gOCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM0Iiwg
W3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM0IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsg
MjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzM1IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIw
ICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzM1IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQp
XSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzUiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJl
MkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLmhlaWdodCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNSIsIFt0ZXh0dXJlRGVw
dGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0
aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUo
KS5oZWlnaHQpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzUiLCBbdGV4dHVyZURlcHRoMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5l
UHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkgKyAo
KDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsg
MTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIy
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndp
ZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsg
MjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzM2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
d2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNSArIDM2ICsgMzkg
KyA0MCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMzYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJE
LmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM2IiwgW3RleHR1cmVEZXB0
aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJE
LmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0
dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksICgoKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpICsgKCgzNSArIDM2
ICsgMzkgKyA0MCkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMzciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsg
MjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICgzNCArIDM1ICsgMzggKyAzOSkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MzciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNyIsIFt0
ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIs
IG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoKCgxMiArIDEz
ICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1
cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4
IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzgiLCBbdGV4dHVyZURlcHRoMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAz
OCArIDM5KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOCIsIFt0ZXh0
dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzM4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDEzICsgMTQgKyAyMSAr
IDIyKSAvIDQpICsgKCgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzkiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzM5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
XSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzkiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYy
ICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzM5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg2MiArIDYzICsgNzAgKyA3MSkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDAiLCBb
dGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQw
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280MCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMg
KyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNDAiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoNjIgKyA2MyAr
IDcwICsgNzEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MSIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2Fk
VmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhl
aWdodCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0
aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM0
ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280MSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
d2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZh
bHVlKCkuaGVpZ2h0KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0
aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0p
LCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkp
IC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53
aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwg
KDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280MSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDc2ICsgNzcgKyA4
MCArIDgxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280MSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVp
Z2h0KV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwg
MC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBv
dygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoKCg1NCAr
IDU1ICsgNjIgKyA2MykgLyA0KSArICgoNzYgKyA3NyArIDgwICsgODEpIC8gNCkpIC8gMik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAy
MCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIi
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5l
UHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93
KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0
aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsg
MjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIi
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1
NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
aGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNzcg
KyA3OCArIDgxICsgODIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53
aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFs
dWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAu
NSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpICsg
KCg3NyArIDc4ICsgODEgKyA4MikgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDM0ICsgMzUgKyAz
OCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280MyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKCgo
MTIgKyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAvIDIp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MyIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1NCAr
IDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNDMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKV0pLCAoNzYgKyA3NyArIDgwICsgODEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQz
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoKCg1NCArIDU1ICsgNjIgKyA2MykgLyA0KSArICgoNzYg
KyA3NyArIDgwICsgODEpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDEyICsgMTMg
KyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIy
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmls
dGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAzOSAr
IDQwKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NCAr
IDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
NzYgKyA3NyArIDgwICsgODEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCg1NCArIDU1ICsgNjIgKyA2Mykg
LyA0KSArICgoNzYgKyA3NyArIDgwICsgODEpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksICg3NyArIDc4ICsgODEgKyA4MikgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURl
cHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4
dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICgoKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpICsgKCg3NyArIDc4ICsgODEgKyA4MikgLyA0KSkg
LyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5ldmVyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxMSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0
IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMTcpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0s
ICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtb
WzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjog
Imxlc3MifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dy
YW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5j
dGlvbjogImxlc3MifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJl
KHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBh
cmVGdW5jdGlvbjogImxlc3MifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhU
ZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e2NvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2Uy
RERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDEp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIs
IFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIz
KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0s
ICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzc0Vx
dWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFt
LCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rp
b246ICJsZXNzRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0
dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2Nv
bXBhcmVGdW5jdGlvbjogImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAwKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJE
RGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAw
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUi
LCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDIzKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQi
KSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5vdEVxdWFsIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11d
XSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJub3RF
cXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3Jh
bSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0
aW9uOiAibm90RXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0
dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2Nv
bXBhcmVGdW5jdGlvbjogImdyZWF0ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDApOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFtt
YWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxNyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0
IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtb
WzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjog
ImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJv
Z3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1
bmN0aW9uOiAiYWx3YXlzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4
dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtj
b21wYXJlRnVuY3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAxKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJE
RGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHBy
b2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFy
ZUZ1bmN0aW9uOiAibmV2ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MTcpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAi
ZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5ldmVyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVw
dGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDExKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3Jh
bSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVu
Y3Rpb246ICJsZXNzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0p
LCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0
IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNzIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0
dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHtjb21wYXJlRnVuY3Rpb246ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAxMSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtb
W1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9u
OiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDEp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIs
IFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJl
QXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHtjb21wYXJlRnVuY3Rpb246ICJsZXNzRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBb
W1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlv
bjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyld
KSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9h
dCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAwKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVw
dGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJv
Z3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJl
RnVuY3Rpb246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDE3KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwg
ImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAxKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJE
RGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5
KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29t
cGFyZUZ1bmN0aW9uOiAibm90RXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMTcpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTdd
XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5v
dEVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIzKV0pLCAxKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBb
bWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDApOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRl
eHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHBy
b2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFy
ZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDIzKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3
XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJh
bHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDEpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFtt
YWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFy
cmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
Y29tcGFyZUZ1bmN0aW9uOiAiYWx3YXlzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDIzKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDkiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAo
MyArIDQgKyA1ICsgNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNDkiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgKDEzICsgMTQgKyAxNSArIDE2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280OSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApXSksICgyMyArIDI0ICsgMjUgKyAyNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDkiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCldKSwgKDMzICsgMzQgKyAzNSArIDM2KSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280OSIsIFt0ZXh0dXJlQ3ViZSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg0MyArIDQ0ICsgNDUgKyA0NikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDkiLCBbdGV4dHVy
ZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDUzICsgNTQgKyA1NSArIDU2KSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MCIs
IFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMyArIDQgKyA1ICsgNikg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NTAiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsg
MTUgKyAxNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNTAiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIz
ICsgMjQgKyAyNSArIDI2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCldKSwgKDMzICsgMzQgKyAzNSArIDM2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKV0pLCAoNDMgKyA0NCArIDQ1ICsgNDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTMgKyA1NCArIDU1ICsgNTYpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVD
dWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIC00IC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC00IC8gdGV4dHVyZUN1YmUu
ZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDkgKyAx
MCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNTAiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAsIDAsIDQgLyB0ZXh0dXJlQ3ViZS5lUHRy
LmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgLTQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoMTkgKyAyMCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTAiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCA0IC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDQgLyB0ZXh0dXJl
Q3ViZS5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDI5ICsgMzApIC8gMik7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVD
dWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgp
LndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgLTQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM5ICsg
NDApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNCAvIHRleHR1cmVDdWJl
LmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
LTQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKV0pLCAoNDkgKyA1MCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNTAiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgLTQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIC00IC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWln
aHQpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDU5ICsgNjApIC8gMik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUxIiwgW3RleHR1cmVDdWJl
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMgKyA0ICsgNSArIDYpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUxIiwgW3RleHR1cmVD
dWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMTUgKyAxNikgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTEiLCBb
dGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMjMgKyAyNCArIDI1ICsgMjYp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzUxIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzMyArIDM0ICsg
MzUgKyAzNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNDMg
KyA0NCArIDQ1ICsgNDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzUxIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
XSksICg1MyArIDU0ICsgNTUgKyA1NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKV0pLCAoOSArIDEwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKV0pLCAoMTkgKyAyMCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KV0pLCAoMjkgKyAzMCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSld
KSwgKDM5ICsgNDApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzUxIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWlu
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwg
KDQ5ICsgNTApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzUxIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg1
OSArIDYwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb281MiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDMgKyA0ICsgNSArIDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzUyIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCldKSwgKDEzICsgMTQgKyAxNSArIDE2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCldKSwgKDIzICsgMjQgKyAyNSArIDI2KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MiIsIFt0ZXh0dXJlRGVw
dGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzMyArIDM0ICsgMzUgKyAzNikgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTIi
LCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg0MyArIDQ0ICsg
NDUgKyA0NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNTIiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0p
LCAoNTMgKyA1NCArIDU1ICsgNTYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCldKSwgKDMgKyA0ICsgNSArIDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMTUgKyAxNikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVy
ZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMjMgKyAyNCArIDI1ICsgMjYp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0x
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzMyAr
IDM0ICsgMzUgKyAzNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKV0pLCAoNDMgKyA0NCArIDQ1ICsgNDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApXSksICg1MyArIDU0ICsgNTUgKyA1NikgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURl
cHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAtNCAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkud2lkdGgp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtNCAvIHRleHR1cmVD
dWJlLmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg5
ICsgMTApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAsIDAsIDQgLyB0ZXh0dXJl
RGVwdGhDdWJlLmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAtNCAvIHRleHR1cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUo
KS5oZWlnaHQpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDE5ICsgMjApIC8gMik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUzIiwgW3RleHR1
cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA0IC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRy
LmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgNCAvIHRleHR1cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS5o
ZWlnaHQpXSksICgyOSArIDMwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281MyIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDQgLyB0ZXh0dXJlRGVwdGhDdWJlLmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtNCAvIHRl
eHR1cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgzOSArIDQwKSAvIDIp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MyIs
IFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNCAvIHRleHR1cmVEZXB0aEN1
YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAtNCAvIHRleHR1cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCldKSwgKDQ5ICsgNTApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgLTQgLyB0ZXh0dXJlRGVwdGhDdWJlLmVQdHIubG9hZFZhbHVlKCkud2lk
dGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTQgLyB0ZXh0dXJlRGVwdGhDdWJl
LmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1OSAr
IDYwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMg
KyA0ICsgNSArIDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCldKSwgKDEzICsgMTQgKyAxNSArIDE2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCldKSwgKDIzICsgMjQgKyAyNSArIDI2KSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0dXJlRGVwdGhD
dWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzMyArIDM0ICsgMzUgKyAzNikgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQiLCBb
dGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg0MyArIDQ0ICsgNDUg
KyA0NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAo
NTMgKyA1NCArIDU1ICsgNTYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKV0pLCAoOSArIDEwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpXSksICgxOSArIDIwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSldKSwgKDI5ICsgMzApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSldKSwgKDM5ICsgNDApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKV0pLCAoNDkgKyA1MCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNTkgKyA2MCkgLyAyKTsKK30KKwordGVzdHMudGV4dHVy
ZUdhdGhlciA9IGZ1bmN0aW9uKCkgeworICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKKyAgICAg
ICAgZmxvYXQ0IGZvbzEoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0
IHgsIGZsb2F0IHkpIHsKKyAgICAgICAgICAgIHJldHVybiBHYXRoZXIodGV4dHVyZSwgcywgZmxv
YXQyKHgsIHkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdDQgZm9vMihUZXh0dXJlMkQ8Zmxv
YXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgaW50IG9mZnNldFgsIGlu
dCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gR2F0aGVyKHRleHR1cmUsIHMsIGZsb2F0
Mih4LCB5KSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxv
YXQ0IGZvbzMoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQg
eCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBHYXRoZXIodGV4
dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQ0
IGZvbzQoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwg
ZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAg
ICAgICAgcmV0dXJuIEdhdGhlcih0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBpbnQy
KG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdDQgZm9vNShUZXh0
dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9h
dCB6KSB7CisgICAgICAgICAgICByZXR1cm4gR2F0aGVyKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5
LCB6KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQ0IGZvbzYoVGV4dHVyZURlcHRoMkQ8Zmxv
YXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSkgeworICAgICAgICAgICAg
cmV0dXJuIEdhdGhlcih0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSkpOworICAgICAgICB9CisgICAg
ICAgIGZsb2F0NCBmb283KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMs
IGZsb2F0IHgsIGZsb2F0IHksIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAg
ICAgcmV0dXJuIEdhdGhlcih0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGludDIob2Zmc2V0WCwg
b2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0NCBmb284KFRleHR1cmVEZXB0aDJE
QXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg
bGF5ZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBHYXRoZXIodGV4dHVyZSwgcywgZmxvYXQzKHgs
IHksIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQ0IGZvbzkoVGV4dHVyZURlcHRo
MkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9h
dCBsYXllciwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4g
R2F0aGVyKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGludDIob2Zmc2V0WCwgb2Zm
c2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0NCBmb28xMChUZXh0dXJlRGVwdGhDdWJl
PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopIHsK
KyAgICAgICAgICAgIHJldHVybiBHYXRoZXIodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopKTsK
KyAgICAgICAgfQorICAgICAgICBmbG9hdDQgZm9vMTEoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRl
eHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgY29tcGFyZVZhbHVlKSB7
CisgICAgICAgICAgICByZXR1cm4gR2F0aGVyQ21wKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwg
Y29tcGFyZVZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdDQgZm9vMTIoVGV4dHVyZURl
cHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg
Y29tcGFyZVZhbHVlLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJl
dHVybiBHYXRoZXJDbXAodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBjb21wYXJlVmFsdWUsIGlu
dDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0NCBmb28xMyhU
ZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZs
b2F0IHksIGZsb2F0IGxheWVyLCBmbG9hdCBjb21wYXJlVmFsdWUpIHsKKyAgICAgICAgICAgIHJl
dHVybiBHYXRoZXJDbXAodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgY29tcGFyZVZh
bHVlKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdDQgZm9vMTQoVGV4dHVyZURlcHRoMkRBcnJh
eTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXll
ciwgZmxvYXQgY29tcGFyZVZhbHVlLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAg
ICAgICAgIHJldHVybiBHYXRoZXJDbXAodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwg
Y29tcGFyZVZhbHVlLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgIGAp
OworICAgIGxldCBbdGV4dHVyZTFELCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0ZXh0dXJl
MkRBcnJheSwgdGV4dHVyZTNELCB0ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVyZTFE
QXJyYXksIHJ3VGV4dHVyZTJELCByd1RleHR1cmUyREFycmF5LCByd1RleHR1cmUzRCwgdGV4dHVy
ZURlcHRoMkQsIHRleHR1cmVEZXB0aDJEQXJyYXksIHRleHR1cmVEZXB0aEN1YmUsIHJ3VGV4dHVy
ZURlcHRoMkQsIHJ3VGV4dHVyZURlcHRoMkRBcnJheV0gPSBjcmVhdGVUZXh0dXJlc0ZvclRlc3Rp
bmcocHJvZ3JhbSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xIiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpXSksIFsyMCwgMjEsIDEzLCAxMl0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgWzIxLCAyMiwgMTQsIDEzXSk7CisgICAgY2hlY2tGbG9h
dDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCldKSwgWzI4LCAyOSwgMjEsIDIwXSk7
CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwg
W3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIFsyMSwgMjIsIDE0LCAxM10pOwor
ICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFt0
ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCBbMjgsIDI5LCAyMSwgMjBdKTsKKyAg
ICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApXSksIFsyMCwgMjEsIDEzLCAxMl0pOworICAgIGNoZWNrRmxvYXQ0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSld
KSwgWzYyLCA2MywgNTUsIDU0XSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBbMjEsIDIyLCAxNCwgMTNdKTsKKyAgICBjaGVj
a0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIFsy
OCwgMjksIDIxLCAyMF0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzYzLCA2NCwgNTYsIDU1XSk7CisgICAgY2hlY2tGbG9h
dDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCBbNzAsIDcx
LCA2MywgNjJdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgWzUsIDYsIDQsIDNdKTsKKyAgICBjaGVja0Zsb2F0
NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZUN1YmUsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSks
IFsxNSwgMTYsIDE0LCAxM10pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCBbMjUsIDI2LCAyNCwgMjNdKTsKKyAg
ICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4
dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApXSksIFszNSwgMzYsIDM0LCAzM10pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCBbNDUsIDQ2LCA0
NCwgNDNdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzUiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgLTEpXSksIFs1NSwgNTYsIDU0LCA1M10pOworICAgIGNoZWNrRmxv
YXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlRGVwdGgy
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksIFsyMCwgMjEsIDEzLCAx
Ml0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KV0pLCBbMjEsIDIyLCAxNCwgMTNdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpXSksIFsyOCwgMjksIDIxLCAyMF0pOworICAgIGNoZWNr
RmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlRGVw
dGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIFsyMSwgMjIsIDE0LCAxM10pOworICAgIGNo
ZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJl
RGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIFsyOCwgMjksIDIxLCAyMF0pOworICAg
IGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKV0pLCBbMjAsIDIxLCAxMywgMTJdKTsKKyAgICBjaGVja0Zsb2F0
NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSldKSwgWzYyLCA2MywgNTUsIDU0XSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIFsyMSwgMjIsIDE0LCAx
M10pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCBbMjgsIDI5LCAyMSwgMjBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzYzLCA2NCwg
NTYsIDU1XSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb285IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIFs3MCwgNzEsIDYzLCA2Ml0pOworICAgIGNoZWNrRmxvYXQ0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZURlcHRoQ3Vi
ZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KV0pLCBbNSwgNiwgNCwgM10pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgWzE1LCAxNiwgMTQsIDEz
XSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksIFsyNSwgMjYsIDI0LCAyM10pOworICAgIGNoZWNrRmxv
YXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZURlcHRo
Q3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCldKSwgWzM1LCAzNiwgMzQsIDMzXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksIFs0NSwgNDYs
IDQ0LCA0M10pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTAiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSldKSwgWzU1LCA1NiwgNTQsIDUzXSk7CisgICAg
Y2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0
dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNv
bXBhcmVGdW5jdGlvbjogIm5ldmVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMyldKSwgWzAsIDAsIDAsIDBd
KTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEx
IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTMpXSksIFsxLCAx
LCAwLCAwXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMyld
KSwgWzAsIDAsIDEsIDBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzExIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxMyldKSwgWzEsIDEsIDEsIDBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRl
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMTMpXSksIFswLCAwLCAwLCAxXSk7CisgICAgY2hlY2tGbG9hdDQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlRGVwdGgyRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlv
bjogIm5vdEVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMyldKSwgWzEsIDEsIDAsIDFdKTsKKyAgICBj
aGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3RleHR1
cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29t
cGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMyldKSwgWzAsIDAs
IDEsIDFdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzExIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiYWx3YXlzIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMyld
KSwgWzEsIDEsIDEsIDFdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDE0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBbMCwg
MCwgMCwgMF0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTIiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJsZXNzIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzEsIDEsIDAsIDBd
KTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEy
IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE0KSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBbMCwgMCwgMSwgMF0pOworICAg
IGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbdGV4
dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBj
b21wYXJlRnVuY3Rpb246ICJsZXNzRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE0KSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBbMSwgMSwgMSwgMF0pOworICAgIGNo
ZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbdGV4dHVy
ZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21w
YXJlRnVuY3Rpb246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzAsIDAsIDAsIDFdKTsKKyAgICBjaGVja0Zs
b2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1cmVEZXB0
aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1
bmN0aW9uOiAibm90RXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE0KSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBbMSwgMSwgMCwgMV0pOworICAgIGNoZWNrRmxvYXQ0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbdGV4dHVyZURlcHRoMkQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rp
b246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE0KSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBbMCwgMCwgMSwgMV0pOworICAgIGNoZWNrRmxvYXQ0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbdGV4dHVyZURlcHRoMkQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rp
b246ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCBbMSwgMSwgMSwgMV0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlv
bjogIm5ldmVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDU1KV0pLCBb
MCwgMCwgMCwgMF0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImxlc3MifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNTUpXSksIFsxLCAxLCAwLCAwXSk7CisgICAgY2hl
Y2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwg
Y29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgNTUpXSksIFswLCAwLCAxLCAwXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibGVz
c0VxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDU1KV0pLCBbMSwg
MSwgMSwgMF0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNTUpXSksIFswLCAwLCAwLCAxXSk7CisgICAgY2hl
Y2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwg
Y29tcGFyZUZ1bmN0aW9uOiAibm90RXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgNTUpXSksIFsxLCAxLCAwLCAxXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAi
Z3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDU1KV0p
LCBbMCwgMCwgMSwgMV0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA1NSldKSwgWzEsIDEsIDEsIDFdKTsKKyAg
ICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIiLCBjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCA1NiksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgWzAsIDAsIDAsIDBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJsZXNzIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDU2KSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCBbMSwgMSwgMCwgMF0pOworICAgIGNoZWNrRmxvYXQ0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5j
dGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDU2KSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBbMCwgMCwgMSwgMF0p
OworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQi
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCA1NiksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgWzEsIDEsIDEsIDBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJncmVh
dGVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDU2KSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBbMCwgMCwgMCwgMV0pOworICAgIGNo
ZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIs
IGNvbXBhcmVGdW5jdGlvbjogIm5vdEVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDU2KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCBbMSwgMSwgMCwgMV0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXJFcXVhbCJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA1NiksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzAsIDAsIDEsIDFdKTsKKyAgICBjaGVja0Zs
b2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21w
YXJlRnVuY3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgNTYpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIFsxLCAx
LCAxLCAxXSk7CisgICAgLy8gRklYTUU6IEdhdGhlciBvdGhlciBjb21wb25lbnRzCiB9CiAKIG9r
VG9UZXN0ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1RleHR1cmUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQwNzY5NGZhYzI2N2E3NzgzNjViOTRhNjhjMDIxMzcwMjU0Y2E1MGYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlLmpzCkBA
IC0wLDAgKzEsNTQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKyJ1c2Ugc3RyaWN0IjsKKworY2xhc3MgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoZGlt
ZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5u
ZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgdGhpcy5fZGltZW5zaW9uID0gZGltZW5zaW9u
OworICAgICAgICB0aGlzLl93aWR0aCA9IHdpZHRoOworICAgICAgICB0aGlzLl9oZWlnaHQgPSBo
ZWlnaHQ7CisgICAgICAgIHRoaXMuX2RlcHRoID0gZGVwdGg7CisgICAgICAgIHRoaXMuX2xldmVs
Q291bnQgPSBsZXZlbENvdW50OworICAgICAgICB0aGlzLl9sYXllckNvdW50ID0gbGF5ZXJDb3Vu
dDsKKyAgICAgICAgdGhpcy5faW5uZXJUeXBlID0gaW5uZXJUeXBlOworICAgICAgICB0aGlzLl9k
YXRhID0gZGF0YTsKKyAgICB9CisKKyAgICBnZXQgZGltZW5zaW9uKCkgeyByZXR1cm4gdGhpcy5f
ZGltZW5zaW9uOyB9CisgICAgZ2V0IHdpZHRoKCkgeyByZXR1cm4gdGhpcy5fd2lkdGg7IH0KKyAg
ICBnZXQgaGVpZ2h0KCkgeyByZXR1cm4gdGhpcy5faGVpZ2h0OyB9CisgICAgZ2V0IGRlcHRoKCkg
eyByZXR1cm4gdGhpcy5fZGVwdGg7IH0KKyAgICBnZXQgbGV2ZWxDb3VudCgpIHsgcmV0dXJuIHRo
aXMuX2xldmVsQ291bnQ7IH0KKyAgICBnZXQgbGF5ZXJDb3VudCgpIHsgcmV0dXJuIHRoaXMuX2xh
eWVyQ291bnQ7IH0KKyAgICBnZXQgaW5uZXJUeXBlKCkgeyByZXR1cm4gdGhpcy5faW5uZXJUeXBl
OyB9CisgICAgZ2V0IGRhdGEoKSB7IHJldHVybiB0aGlzLl9kYXRhOyB9CisKKyAgICBlbGVtZW50
Q2hlY2tlZChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICBpZiAobGF5ZXIg
PCAwIHx8IGxheWVyID49IHRoaXMubGF5ZXJDb3VudAorICAgICAgICAgICAgfHwgbGV2ZWwgPCAw
IHx8IGxldmVsID49IHRoaXMubGV2ZWxDb3VudAorICAgICAgICAgICAgfHwgayA8IDAgfHwgayA+
PSB0aGlzLmRlcHRoCisgICAgICAgICAgICB8fCBqIDwgMCB8fCBqID49IHRoaXMuaGVpZ2h0Cisg
ICAgICAgICAgICB8fCBpIDwgMCB8fCBpID49IHRoaXMud2lkdGgpCisgICAgICAgICAgICByZXR1
cm4gdW5kZWZpbmVkOworICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50KGxheWVyLCBsZXZlbCwg
aywgaiwgaSk7CisgICAgfQorCisgICAgc2V0RWxlbWVudENoZWNrZWQobGF5ZXIsIGxldmVsLCBr
LCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmIChsYXllciA8IDAgfHwgbGF5ZXIgPj0g
dGhpcy5sYXllckNvdW50CisgICAgICAgICAgICB8fCBsZXZlbCA8IDAgfHwgbGV2ZWwgPj0gdGhp
cy5sZXZlbENvdW50CisgICAgICAgICAgICB8fCBrIDwgMCB8fCBrID49IHRoaXMuZGVwdGgKKyAg
ICAgICAgICAgIHx8IGogPCAwIHx8IGogPj0gdGhpcy5oZWlnaHQKKyAgICAgICAgICAgIHx8IGkg
PCAwIHx8IGkgPj0gdGhpcy53aWR0aCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgdGhpcy5zZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpOworICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUxRCBleHRlbmRzIFRleHR1
cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8v
ICJkYXRhIiBpcyBhbiBhcnJheSBvZiBtaXBtYXBzLgorICAgICAgICAvLyBUaGUgZmlyc3QgbWlw
bWFwIGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBFYWNoIGVsZW1lbnQgbWF5
IGJlIGEgc2NhbGFyIG9yIGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgorICAgICAgICAvLyBUaGUg
d2lkdGggbXVzdCBiZSBhIHBvd2VyLW9mLXR3by4KKyAgICAgICAgLy8gRWFjaCBtaXBtYXAgaXMg
aGFsZi1zaXplIG9mIHRoZSBwcmV2aW91cyBzaXplLgorCisgICAgICAgIGxldCBkaW1lbnNpb24g
PSAxOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhl
aWdodCA9IDE7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50
ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gMTsKKyAgICAgICAgc3Vw
ZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3Vu
dCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisg
ICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXS5sZW5ndGg7CisgICAgfQorCisg
ICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0K
KworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAg
IH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXll
ciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xldmVs
XVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTFEQXJyYXkgZXh0ZW5kcyBU
ZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAg
ICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgMUQgdGV4dHVyZXMuCisgICAgICAgIC8vIEFsbCB0
ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNhbWUgd2lkdGggYW5kIG51bWJlciBvZiBtaXBtYXBzLgor
CisgICAgICAgIGxldCBkaW1lbnNpb24gPSAxOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBd
WzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IDE7CisgICAgICAgIGxldCBkZXB0aCA9
IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxl
dCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lk
dGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0
YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHRoaXMuZGF0YVswXVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2
ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBkZXB0aEF0
TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVt
ZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRh
dGFbbGF5ZXJdW2xldmVsXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZl
bCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbbGF5ZXJdW2xldmVs
XVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTJEIGV4dGVuZHMgVGV4dHVy
ZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8g
ImRhdGEiIGlzIGFuIGFycmF5IG9mIG1pcG1hcHMuCisgICAgICAgIC8vIFRoZSBmaXJzdCBtaXBt
YXAgaXMgYSByZWN0YW5ndWxhciBhcnJheSBvZiByb3dzLCB3aGVyZSBlYWNoIHJvdyBpcyBhbiBh
cnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBhIHNjYWxh
ciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRoIGFuZCBo
ZWlnaHQgbXVzdCBiZSBwb3dlcnMtb2YtdHdvLgorICAgICAgICAvLyBFYWNoIG1pcG1hcCBpcyBo
YWxmLXdpZHRoIGFuZCBoYWxmLWhlaWdodCBvZiB0aGUgcHJldmlvdXMgc2l6ZS4KKworICAgICAg
ICBsZXQgZGltZW5zaW9uID0gMjsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXS5sZW5n
dGg7CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGRl
cHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAg
bGV0IGxheWVyQ291bnQgPSAxOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWln
aHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAg
IH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
LmRhdGFbbGV2ZWxdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVs
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF0ubGVuZ3RoOworICAgIH0K
KworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAg
IH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1bal1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChs
YXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xl
dmVsXVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworbGV0IFRleHR1cmVEZXB0aDJEID0gVGV4
dHVyZTJEOworCitjbGFzcyBUZXh0dXJlMkRBcnJheSBleHRlbmRzIFRleHR1cmUgeworICAgIGNv
bnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBh
biBhcnJheSBvZiAyRCB0ZXh0dXJlcy4KKyAgICAgICAgLy8gQWxsIHRleHR1cmVzIG11c3QgaGF2
ZSB0aGUgc2FtZSB3aWR0aCwgaGVpZ2h0IGFuZCBudW1iZXIgb2YgbWlwbWFwcy4KKworICAgICAg
ICBsZXQgZGltZW5zaW9uID0gMjsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXVswXS5s
ZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAg
bGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSBkYXRhWzBdLmxlbmd0aDsK
KyAgICAgICAgbGV0IGxheWVyQ291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgc3VwZXIoZGlt
ZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5u
ZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgewor
ICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdW2xldmVsXVswXS5sZW5ndGg7CisgICAgfQorCisg
ICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFb
MF1bbGV2ZWxdLmxlbmd0aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAg
eworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwg
aywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtq
XVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFs
dWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbbGF5ZXJdW2xldmVsXVtqXVtpXSA9IHZhbHVl
OworICAgIH0KK30KKworbGV0IFRleHR1cmVEZXB0aDJEQXJyYXkgPSBUZXh0dXJlMkRBcnJheTsK
KworY2xhc3MgVGV4dHVyZTNEIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5u
ZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIG1p
cG1hcHMuCisgICAgICAgIC8vIFRoZSBmaXJzdCBtaXBtYXAgaXMgYW4gYXJyYXkgb2YgZGVwdGgg
c2xpY2VzLCBlYWNoIGRlcHRoIHNsaWNlIGlzIGFuIGFycmF5IG9mIHJvd3MsIGFuZCBlYWNoIHJv
dyBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1heSBi
ZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhlIHdp
ZHRoLCBoZWlnaHQsIGFuZCBkZXB0aCBtdXN0IGJlIHBvd2Vycy1vZi10d28uCisgICAgICAgIC8v
IEVhY2ggbWlwbWFwIGlzIGhhbGYtd2lkdGgsIGhhbGYtaGVpZ2h0LCBhbmQgaGFsZi1kZXB0aCBv
ZiB0aGUgcHJldmlvdXMgc2l6ZS4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMzsKKyAgICAg
ICAgbGV0IHdpZHRoID0gZGF0YVswXVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQg
PSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGRlcHRoID0gZGF0YVswXS5sZW5ndGg7
CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBsYXll
ckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0
aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAg
ICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xl
dmVsXVswXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdWzBdLmxlbmd0aDsKKyAgICB9CisK
KyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRh
W2xldmVsXS5sZW5ndGg7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGos
IGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXVtrXVtqXVtpXTsKKyAg
ICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAg
eworICAgICAgICB0aGlzLmRhdGFbbGV2ZWxdW2tdW2pdW2ldID0gdmFsdWU7CisgICAgfQorfQor
CitjbGFzcyBUZXh0dXJlQ3ViZSBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlu
bmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiA2
IDJEIHRleHR1cmVzLgorICAgICAgICAvLyBBbGwgdGV4dHVyZXMgbXVzdCBoYXZlIHRoZSBzYW1l
IHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBhbmQgbnVtYmVyIG9mIG1pcG1hcHMuCisKKyAgICAgICAg
bGV0IGRpbWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF1bMF0ubGVu
Z3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxl
dCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YVswXS5sZW5ndGg7Cisg
ICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIHN1cGVyKGRpbWVu
c2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVy
VHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF1bMF0ubGVuZ3RoOworICAgIH0KKworICAg
IGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBd
W2xldmVsXS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGss
IGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1bal1b
aV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVl
KQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1bal1baV0gPSB2YWx1ZTsK
KyAgICB9Cit9CisKK2xldCBUZXh0dXJlRGVwdGhDdWJlID0gVGV4dHVyZUN1YmU7CisKK2NsYXNz
IFRleHR1cmUxRFJXIGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBl
LCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIGVsZW1lbnRz
LgorICAgICAgICAvLyBFYWNoIGVsZW1lbnQgbWF5IGJlIGEgc2NhbGFyIG9yIGFuIGFycmF5IG9m
IDItNCBzY2FsYXJzLgorICAgICAgICAvLyBUaGUgd2lkdGggbXVzdCBiZSBhIHBvd2VyLW9mLXR3
by4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMTsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0
YS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSAxOworICAgICAgICBsZXQgZGVwdGggPSAx
OworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7CisgICAgICAgIGxldCBsYXllckNvdW50ID0g
MTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxD
b3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0
TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmxlbmd0aDsKKyAg
ICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7
CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgewor
ICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5
ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtpXSA9
IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTFEQXJyYXlSVyBleHRlbmRzIFRleHR1
cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8v
ICJkYXRhIiBpcyBhbiBhcnJheSBvZiAxRCBSVyB0ZXh0dXJlcy4KKyAgICAgICAgLy8gQWxsIHRl
eHR1cmVzIG11c3QgaGF2ZSB0aGUgc2FtZSBzaXplLgorCisgICAgICAgIGxldCBkaW1lbnNpb24g
PSAxOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhl
aWdodCA9IDE7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50
ID0gMTsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgc3Vw
ZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3Vu
dCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisg
ICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBo
ZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisg
ICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQor
CisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1
cm4gdGhpcy5kYXRhW2xheWVyXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBs
ZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbbGF5ZXJdW2ld
ID0gdmFsdWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlMkRSVyBleHRlbmRzIFRleHR1cmUg
eworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJk
YXRhIiBpcyBhIHJlY3Rhbmd1bGFyIGFycmF5IG9mIHJvd3MsIHdoZXJlIGVhY2ggcm93IGlzIGFu
IGFycmF5IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBFYWNoIGVsZW1lbnQgbWF5IGJlIGEgc2Nh
bGFyIG9yIGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgorICAgICAgICAvLyBUaGUgd2lkdGggYW5k
IGhlaWdodCBtdXN0IGJlIHBvd2Vycy1vZi10d28uCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9
IDI7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVp
Z2h0ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBs
ZXZlbENvdW50ID0gMTsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSAxOworICAgICAgICBzdXBl
cihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50
LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF0ubGVuZ3RoOworICAgIH0KKworICAgIGhl
aWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmxlbmd0
aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1
cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbal1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVu
dChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRh
W2pdW2ldID0gdmFsdWU7CisgICAgfQorfQorCitsZXQgVGV4dHVyZURlcHRoMkRSVyA9IFRleHR1
cmUyRFJXOworCitjbGFzcyBUZXh0dXJlMkRBcnJheVJXIGV4dGVuZHMgVGV4dHVyZSB7CisgICAg
Y29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlz
IGFuIGFycmF5IG9mIDJEIFJXIHRleHR1cmVzLgorICAgICAgICAvLyBBbGwgdGV4dHVyZXMgbXVz
dCBoYXZlIHRoZSBzYW1lIHdpZHRoIGFuZCBoZWlnaHQuCisKKyAgICAgICAgbGV0IGRpbWVuc2lv
biA9IDI7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAgICAgICBs
ZXQgaGVpZ2h0ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAg
ICAgIGxldCBsZXZlbENvdW50ID0gMTsKKyAgICAgICAgbGV0IGxheWVyQ291bnQgPSBkYXRhLmxl
bmd0aDsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2
ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0
aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdWzBdLmxl
bmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuZGF0YVswXS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxl
dmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXll
ciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xheWVy
XVtqXVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwg
dmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbbGF5ZXJdW2pdW2ldID0gdmFsdWU7Cisg
ICAgfQorfQorCitsZXQgVGV4dHVyZURlcHRoMkRBcnJheVJXID0gVGV4dHVyZTJEQXJyYXlSVwor
CitjbGFzcyBUZXh0dXJlM0RSVyBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlu
bmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiBk
ZXB0aCBzbGljZXMsIGVhY2ggZGVwdGggc2xpY2UgaXMgYW4gYXJyYXkgb2Ygcm93cywgYW5kIGVh
Y2ggcm93IGlzIGFuIGFycmF5IG9mIGVsZW1lbnRzLgorICAgICAgICAvLyBFYWNoIGVsZW1lbnQg
bWF5IGJlIGEgc2NhbGFyIG9yIGFuIGFycmF5IG9mIDItNCBzY2FsYXJzLgorICAgICAgICAvLyBU
aGUgd2lkdGgsIGhlaWdodCwgYW5kIGRlcHRoIG11c3QgYmUgcG93ZXJzLW9mLXR3by4KKworICAg
ICAgICBsZXQgZGltZW5zaW9uID0gMzsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXS5s
ZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0
IGRlcHRoID0gZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gMTsKKyAgICAg
ICAgbGV0IGxheWVyQ291bnQgPSAxOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBo
ZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOwor
ICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLmRhdGFbMF1bMF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwp
CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdLmxlbmd0aDsKKyAgICB9CisKKyAg
ICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmxl
bmd0aDsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFba11bal1baV07CisgICAgfQorCisgICAgc2V0RWxl
bWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5k
YXRhW2tdW2pdW2ldID0gdmFsdWU7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanMgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9UZXh0dXJlT3BlcmF0aW9ucy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZGFkYjg1MDA5
MDQxMDFiZmU0YjQ3ODAyODk1MzA5ZGVlOGQxNzgyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanMKQEAgLTAsMCArMSw3
ODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworInVzZSBz
dHJpY3QiOworCitmdW5jdGlvbiBkZXB0aENvbXBhcmVPcGVyYXRpb24oZHJlZiwgZCwgY29tcGFy
ZUZ1bmN0aW9uKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS4zLjQKKyAgICBz
d2l0Y2ggKGNvbXBhcmVGdW5jdGlvbikgeworICAgICAgICBjYXNlICJuZXZlciI6CisgICAgICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgY2FzZSAibGVzcyI6CisgICAgICAgICAgICByZXR1cm4g
ZHJlZiA8IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAiZXF1YWwiOgorICAgICAgICAgICAgcmV0
dXJuIGRyZWYgPT0gZCA/IDEgOiAwOworICAgICAgICBjYXNlICJsZXNzRXF1YWwiOgorICAgICAg
ICAgICAgcmV0dXJuIGRyZWYgPD0gZCA/IDEgOiAwOworICAgICAgICBjYXNlICJncmVhdGVyIjoK
KyAgICAgICAgICAgIHJldHVybiBkcmVmID4gZCA/IDEgOiAwOworICAgICAgICBjYXNlICJub3RF
cXVhbCI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiAhPSBkID8gMSA6IDA7CisgICAgICAgIGNh
c2UgImdyZWF0ZXJFcXVhbCI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiA+PSBkID8gMSA6IDA7
CisgICAgICAgIGNhc2UgImFsd2F5cyI6CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBkZXB0aCBjb21w
YXJpc29uIGZ1bmN0aW9uIik7CisgICAgfQorfQorCitmdW5jdGlvbiBjb252ZXJzaW9uVG9SR0JB
KHZhbHVlKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS4zLjUKKyAgICBpZiAo
dmFsdWUgaW5zdGFuY2VvZiBBcnJheSkgeworICAgICAgICBsZXQgcmVzdWx0ID0gW107CisgICAg
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBy
ZXN1bHQucHVzaCh2YWx1ZVtpXSk7CisgICAgICAgIHdoaWxlIChyZXN1bHQubGVuZ3RoICE9IDQp
CisgICAgICAgICAgICByZXN1bHQucHVzaChyZXN1bHQubGVuZ3RoID09IDMgPyAxIDogMCk7Cisg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfSBlbHNlCisgICAgICAgIHJldHVybiBbdmFsdWUs
IDAsIDAsIDFdOworfQorCitmdW5jdGlvbiBwcm9qZWN0aW9uT3BlcmF0aW9uKHMsIHQsIHIsIGRy
ZWYsIHEpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuMQorICAgIHJldHVy
biBbcyAvIHEsIHQgLyBxLCByIC8gcSwgZHJlZiAhPSB1bmRlZmluZWQgPyBkcmVmIC8gcSA6IHVu
ZGVmaW5lZF07Cit9CisKK2Z1bmN0aW9uIGN1YmVNYXBGYWNlU2VsZWN0aW9uKHMsIHQsIHIsIHBh
cnRpYWxSeFdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJ5
V2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUnpXaXRoUmVz
cGVjdFRvWCwgcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1kpCit7CisgICAgLy8gVnVsa2FuIDEuMS44
MyBzZWN0aW9uIDE1LjYuNAorICAgIGxldCByeCA9IHM7CisgICAgbGV0IHJ5ID0gdDsKKyAgICBs
ZXQgcnogPSByOworICAgIGxldCB3aW5uZXIgPSAwOworICAgIGlmIChNYXRoLmFicyhyeikgPj0g
TWF0aC5hYnMocnkpICYmIE1hdGguYWJzKHJ6KSA+PSBNYXRoLmFicyhyeCkpCisgICAgICAgIHdp
bm5lciA9IDI7CisgICAgZWxzZSBpZiAoTWF0aC5hYnMocnkpID49IE1hdGguYWJzKHJ4KSAmJiBN
YXRoLmFicyhyeSkgPj0gTWF0aC5hYnMocnopKQorICAgICAgICB3aW5uZXIgPSAxOworCisgICAg
bGV0IGxheWVyTnVtYmVyOworICAgIGxldCBzYzsKKyAgICBsZXQgdGM7CisgICAgbGV0IHJjOwor
ICAgIGxldCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWDsKKyAgICBsZXQgcGFydGlhbFNjV2l0aFJl
c3BlY3RUb1k7CisgICAgbGV0IHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YOworICAgIGxldCBwYXJ0
aWFsVGNXaXRoUmVzcGVjdFRvWTsKKyAgICBsZXQgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1g7Cisg
ICAgbGV0IHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZOworICAgIGlmICh3aW5uZXIgPT0gMCAmJiBy
eCA+PSAwKSB7CisgICAgICAgIGxheWVyTnVtYmVyID0gMDsKKyAgICAgICAgc2MgPSAtcno7Cisg
ICAgICAgIHRjID0gLXJ5OworICAgICAgICByYyA9IHJ4OworICAgICAgICBwYXJ0aWFsU2NXaXRo
UmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNj
V2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRp
YWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAgICBw
YXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICAg
ICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsKKyAg
ICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWTsK
KyAgICB9IGVsc2UgaWYgKHdpbm5lciA9PSAwKSB7CisgICAgICAgIGxheWVyTnVtYmVyID0gMTsK
KyAgICAgICAgc2MgPSByejsKKyAgICAgICAgdGMgPSAtcnk7CisgICAgICAgIHJjID0gcng7Cisg
ICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7
CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RU
b1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeVdpdGhSZXNw
ZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnlXaXRo
UmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ4
V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRp
YWxSeFdpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxzZSBpZiAod2lubmVyID09IDEgJiYgcnkgPj0g
MCkgeworICAgICAgICBsYXllck51bWJlciA9IDI7CisgICAgICAgIHNjID0gcng7CisgICAgICAg
IHRjID0gLXJ6OworICAgICAgICByYyA9IHJ5OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVj
dFRvWCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVz
cGVjdFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRo
UmVzcGVjdFRvWCA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNX
aXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFs
UmNXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0
aWFsUmNXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxz
ZSBpZiAod2lubmVyID09IDEpIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSAzOworICAgICAgICBz
YyA9IHJ4OworICAgICAgICB0YyA9IC1yejsKKyAgICAgICAgcmMgPSByeTsKKyAgICAgICAgcGFy
dGlhbFNjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAg
cGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAgICAg
ICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7Cisg
ICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9Z
OworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVj
dFRvWDsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0aFJl
c3BlY3RUb1k7CisgICAgfSBlbHNlIGlmICh3aW5uZXIgPT0gMiAmJiByeiA+PSAwKSB7CisgICAg
ICAgIGxheWVyTnVtYmVyID0gNDsKKyAgICAgICAgc2MgPSByeDsKKyAgICAgICAgdGMgPSAtcnk7
CisgICAgICAgIHJjID0gcno7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gcGFy
dGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0g
cGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9Y
ID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVj
dFRvWSA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJl
c3BlY3RUb1ggPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJjV2l0
aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICB9IGVsc2UgeworICAg
ICAgICBsYXllck51bWJlciA9IDU7CisgICAgICAgIHNjID0gLXJ4OworICAgICAgICB0YyA9IC1y
eTsKKyAgICAgICAgcmMgPSByejsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSAt
cGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9Z
ID0gLXBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVj
dFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJl
c3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxSY1dp
dGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFs
UmNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICB9CisgICAg
cmV0dXJuIFtsYXllck51bWJlciwgc2MsIHRjLCByYywgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1gs
IHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCwgcGFydGlh
bFRjV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUmNXaXRo
UmVzcGVjdFRvWV0KK30KKworZnVuY3Rpb24gY3ViZU1hcENvb3JkaW5hdGVUcmFuc2Zvcm1hdGlv
bihzYywgdGMsIHJjKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjUKKyAg
ICBsZXQgc0ZhY2UgPSAoMSAvIDIpICogc2MgLyBNYXRoLmFicyhyYykgKyAoMSAvIDIpOworICAg
IGxldCB0RmFjZSA9ICgxIC8gMikgKiB0YyAvIE1hdGguYWJzKHJjKSArICgxIC8gMik7CisgICAg
cmV0dXJuIFtzRmFjZSwgdEZhY2VdOworfQorCitmdW5jdGlvbiBjdWJlTWFwRGVyaXZhdGl2ZVRy
YW5zZm9ybWF0aW9uKHNjLCB0YywgcmMsIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFs
U2NXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxUY1dpdGhS
ZXNwZWN0VG9ZLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJjV2l0aFJlc3BlY3RU
b1kpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuNgorICAgIGxldCBwYXJ0
aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWCA9ICgxIC8gMikgKiAoKE1hdGguYWJzKHJjKSAqIHBhcnRp
YWxTY1dpdGhSZXNwZWN0VG9YIC0gc2MgKiBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCkgLyBNYXRo
LnBvdyhyYywgMikpOworICAgIGxldCBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWSA9ICgxIC8g
MikgKiAoKE1hdGguYWJzKHJjKSAqIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZIC0gc2MgKiBwYXJ0
aWFsUmNXaXRoUmVzcGVjdFRvWSkgLyBNYXRoLnBvdyhyYywgMikpOworICAgIGxldCBwYXJ0aWFs
VEZhY2VXaXRoUmVzcGVjdFRvWCA9ICgxIC8gMikgKiAoKE1hdGguYWJzKHJjKSAqIHBhcnRpYWxU
Y1dpdGhSZXNwZWN0VG9YIC0gdGMgKiBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCkgLyBNYXRoLnBv
dyhyYywgMikpOworICAgIGxldCBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRvWSA9ICgxIC8gMikg
KiAoKE1hdGguYWJzKHJjKSAqIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZIC0gdGMgKiBwYXJ0aWFs
UmNXaXRoUmVzcGVjdFRvWSkgLyBNYXRoLnBvdyhyYywgMikpOworICAgIHJldHVybiBbcGFydGlh
bFNGYWNlV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTRmFjZVdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFs
VEZhY2VXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1ldOworfQorCitm
dW5jdGlvbiBzY2FsZUZhY3Rvck9wZXJhdGlvbihkZXZpY2VNYXhBbmlzb3Ryb3B5LCB3aWR0aCwg
aGVpZ2h0LCBkZXB0aCwgc2FtcGxlck1heEFuaXNvdHJvcHksIHBhcnRpYWxTV2l0aFJlc3BlY3RU
b1gsIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1gsIHBhcnRp
YWxTV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSV2l0aFJl
c3BlY3RUb1kpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuNworICAgIGxl
dCBtdXggPSBNYXRoLmFicyhwYXJ0aWFsU1dpdGhSZXNwZWN0VG9YKSAqIHdpZHRoOworICAgIGxl
dCBtdnggPSBNYXRoLmFicyhwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YKSAqIGhlaWdodDsKKyAgICBs
ZXQgbXd4ID0gTWF0aC5hYnMocGFydGlhbFJXaXRoUmVzcGVjdFRvWCkgKiBkZXB0aDsKKyAgICBs
ZXQgbXV5ID0gTWF0aC5hYnMocGFydGlhbFNXaXRoUmVzcGVjdFRvWSkgKiB3aWR0aDsKKyAgICBs
ZXQgbXZ5ID0gTWF0aC5hYnMocGFydGlhbFRXaXRoUmVzcGVjdFRvWSkgKiBoZWlnaHQ7CisgICAg
bGV0IG13eSA9IE1hdGguYWJzKHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kpICogZGVwdGg7CisKKyAg
ICAvLyBJIG1hZGUgdGhpcyB1cC4gVGhlIGZvcm11bGEgaXNuJ3QgbGlzdGVkIGluIHRoZSBzcGVj
LgorICAgIGxldCBmeCA9IE1hdGguc3FydChtdXggKiBtdXggKyBtdnggKiBtdnggKyBtd3ggKiBt
d3gpOworICAgIGxldCBmeSA9IE1hdGguc3FydChtdXkgKiBtdXkgKyBtdnkgKiBtdnkgKyBtd3kg
KiBtd3kpOworCisgICAgbGV0IHJob1ggPSBmeDsKKyAgICBsZXQgcmhvWSA9IGZ5OworICAgIGxl
dCByaG9NYXggPSBNYXRoLm1heChyaG9YLCByaG9ZKTsKKyAgICBsZXQgcmhvTWluID0gTWF0aC5t
aW4ocmhvWCwgcmhvWSk7CisKKyAgICBsZXQgbWF4QW5pc28gPSBNYXRoLm1pbihzYW1wbGVyTWF4
QW5pc290cm9weSwgZGV2aWNlTWF4QW5pc290cm9weSk7CisKKyAgICBsZXQgZXRhOworICAgIGlm
IChyaG9NYXggPT0gMCAmJiByaG9NaW4gPT0gMCkKKyAgICAgICAgZXRhID0gMTsKKyAgICBlbHNl
IGlmIChyaG9NaW4gPT0gMCkKKyAgICAgICAgZXRhID0gbWF4QW5pc287CisgICAgZWxzZQorICAg
ICAgICBldGEgPSBNYXRoLm1pbihyaG9NYXggLyByaG9NaW4sIG1heEFuaXNvKTsKKworICAgIGxl
dCBOID0gTWF0aC5jZWlsKGV0YSk7CisgICAgcmV0dXJuIFtyaG9NYXgsIHJob01pbiwgZXRhLCBO
XTsKK30KKworZnVuY3Rpb24gbGV2ZWxPZkRldGFpbE9wZXJhdGlvbihkZXZpY2VNYXhTYW1wbGVy
TG9kQmlhcywgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwgbG9kTWluRnJvbUZ1bmN0aW9uT3BlcmFu
ZCwgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIHNhbXBsZXJCaWFzLCBzYW1wbGVyTG9kTWluLCBz
YW1wbGVyTG9kTWF4LCByaG9NYXgsIGV0YSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rp
b24gMTUuNi43CisgICAgaWYgKGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kID09IHVuZGVmaW5lZCkK
KyAgICAgICAgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQgPSAwOworCisgICAgbGV0IGxhbWJkYUJh
c2UgPSBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kICE9IHVuZGVmaW5lZCA/IGxvZEZyb21GdW5jdGlv
bk9wZXJhbmQgOiBNYXRoLmxvZzIocmhvTWF4IC8gZXRhKTsKKyAgICBsZXQgbGFtYmRhUHJpbWUg
PSBsYW1iZGFCYXNlICsgTWF0aC5taW4oTWF0aC5tYXgoc2FtcGxlckJpYXMgKyBiaWFzRnJvbUZ1
bmN0aW9uT3BlcmFuZCwgLWRldmljZU1heFNhbXBsZXJMb2RCaWFzKSwgZGV2aWNlTWF4U2FtcGxl
ckxvZEJpYXMpOworICAgIGxldCBsb2RNaW4gPSBNYXRoLm1heChzYW1wbGVyTG9kTWluLCBsb2RN
aW5Gcm9tRnVuY3Rpb25PcGVyYW5kKTsKKyAgICBsZXQgbG9kTWF4ID0gc2FtcGxlckxvZE1heDsK
KyAgICBsZXQgbGFtYmRhOworICAgIGlmIChsYW1iZGFQcmltZSA+IGxvZE1heCkKKyAgICAgICAg
bGFtYmRhID0gbG9kTWF4OworICAgIGVsc2UgaWYgKGxvZE1pbiA8PSBsYW1iZGFQcmltZSAmJiBs
YW1iZGFQcmltZSA8PSBsb2RNYXgpCisgICAgICAgIGxhbWJkYSA9IGxhbWJkYVByaW1lOworICAg
IGVsc2UgaWYgKGxhbWJkYVByaW1lIDwgbG9kTWluKQorICAgICAgICBsYW1iZGEgPSBsb2RNaW47
CisgICAgZWxzZQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImxvZE1pbiA+PSBsb2RNYXgiKTsK
KyAgICByZXR1cm4gbGFtYmRhOworfQorCitmdW5jdGlvbiBpbWFnZUxldmVsU2VsZWN0aW9uKGJh
c2VNaXBMZXZlbCwgbGV2ZWxDb3VudCwgbWlwbWFwTW9kZSwgbGFtYmRhKQoreworICAgIC8vIFZ1
bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjcKKyAgICBmdW5jdGlvbiBuZWFyZXN0KGRQcmltZSkK
KyAgICB7CisgICAgICAgIHJldHVybiBNYXRoLmNlaWwoZFByaW1lICsgMC41KSAtIDE7CisgICAg
fQorCisgICAgbGV0IHEgPSBsZXZlbENvdW50IC0gMTsKKyAgICBsZXQgZFByaW1lID0gYmFzZU1p
cExldmVsICsgTWF0aC5taW4oTWF0aC5tYXgobGFtYmRhLCAwKSwgcSk7CisgICAgbGV0IGRsOwor
ICAgIGlmIChtaXBtYXBNb2RlID09ICJuZWFyZXN0IikKKyAgICAgICAgZGwgPSBuZWFyZXN0KGRQ
cmltZSk7CisgICAgZWxzZQorICAgICAgICBkbCA9IGRQcmltZTsKKyAgICBpZiAobWlwbWFwTW9k
ZSA9PSAibmVhcmVzdCIpCisgICAgICAgIHJldHVybiBkbDsKKyAgICBlbHNlIHsKKyAgICAgICAg
bGV0IGRIaSA9IE1hdGguZmxvb3IoZGwpOworICAgICAgICBsZXQgZExvdyA9IE1hdGgubWluKGRI
aSArIDEsIHEpOworICAgICAgICBsZXQgZGVsdGEgPSBkbCAtIGRIaTsKKyAgICAgICAgcmV0dXJu
IFtkSGksIGRMb3csIGRlbHRhXTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHN0cnFhVG9VVldBVHJh
bnNmb3JtYXRpb24ocywgdCwgciwgd2lkdGgsIGhlaWdodCwgZGVwdGgpCit7CisgICAgLy8gVnVs
a2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuOAorICAgIGxldCB1ID0gcyAqIHdpZHRoOworICAgIGxl
dCB2ID0gdCAqIGhlaWdodDsKKyAgICBsZXQgdyA9IHIgKiBkZXB0aDsKKyAgICByZXR1cm4gW3Us
IHYsIHddOworfQorCitmdW5jdGlvbiB1dndhVG9JSktMTlRyYW5zZm9ybWF0aW9uQW5kQXJyYXlM
YXllclNlbGVjdGlvbihsYXllckNvdW50LCBiYXNlQXJyYXlMYXllciwgZmlsdGVyLCB1LCB2LCB3
LCBhLCBkZWx0YUksIGRlbHRhSiwgZGVsdGFLKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2Vj
dGlvbiAxNS43LjEKKworICAgIGlmIChkZWx0YUkgPT0gdW5kZWZpbmVkKQorICAgICAgICBkZWx0
YUkgPSAwOworICAgIGlmIChkZWx0YUogPT0gdW5kZWZpbmVkKQorICAgICAgICBkZWx0YUogPSAw
OworICAgIGlmIChkZWx0YUsgPT0gdW5kZWZpbmVkKQorICAgICAgICBkZWx0YUsgPSAwOworCisg
ICAgZnVuY3Rpb24gcm5lKGEpCisgICAgeworICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihhICsg
MC41KTsKKyAgICB9CisgICAgbGV0IGwgPSBNYXRoLm1pbihNYXRoLm1heChybmUoYSksIDApLCBs
YXllckNvdW50IC0gMSkgKyBiYXNlQXJyYXlMYXllcjsKKyAgICBsZXQgaTsKKyAgICBsZXQgajsK
KyAgICBsZXQgazsKKyAgICBpZiAoZmlsdGVyID09ICJuZWFyZXN0IikgeworICAgICAgICBpID0g
TWF0aC5mbG9vcih1KTsKKyAgICAgICAgaiA9IE1hdGguZmxvb3Iodik7CisgICAgICAgIGsgPSBN
YXRoLmZsb29yKHcpOworICAgICAgICAKKyAgICAgICAgaSArPSBkZWx0YUk7CisgICAgICAgIGog
Kz0gZGVsdGFKOworICAgICAgICBrICs9IGRlbHRhSzsKKyAgICAgICAgCisgICAgICAgIHJldHVy
biBbaSwgaiwgaywgbF07CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGZpbHRlciAhPSAibGlu
ZWFyIikKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBmaWx0ZXIiKTsKKyAg
ICAgICAgbGV0IGkwID0gTWF0aC5mbG9vcih1IC0gMC41KTsKKyAgICAgICAgbGV0IGkxID0gaTAg
KyAxOworICAgICAgICBsZXQgajAgPSBNYXRoLmZsb29yKHYgLSAwLjUpOworICAgICAgICBsZXQg
ajEgPSBqMCArIDE7CisgICAgICAgIGxldCBrMCA9IE1hdGguZmxvb3IodyAtIDAuNSk7CisgICAg
ICAgIGxldCBrMSA9IGswICsgMTsKKyAgICAgICAgbGV0IGFscGhhID0gKHUgLSAwLjUpIC0gaTA7
CisgICAgICAgIGxldCBiZXRhID0gKHYgLSAwLjUpIC0gajA7CisgICAgICAgIGxldCBnYW1tYSA9
ICh3IC0gMC41KSAtIGswOworICAgICAgICAKKyAgICAgICAgaTAgKz0gZGVsdGFJOworICAgICAg
ICBpMSArPSBkZWx0YUk7CisgICAgICAgIGowICs9IGRlbHRhSjsKKyAgICAgICAgajEgKz0gZGVs
dGFKOworICAgICAgICBrMCArPSBkZWx0YUs7CisgICAgICAgIGsxICs9IGRlbHRhSzsKKyAgICAg
ICAgCisgICAgICAgIHJldHVybiBbaTAsIGkxLCBqMCwgajEsIGswLCBrMSwgbCwgYWxwaGEsIGJl
dGEsIGdhbW1hXTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGludGVnZXJUZXhlbENvb3JkaW5hdGVP
cGVyYXRpb25zKGJhc2VNaXBMZXZlbCwgbGV2ZWxDb3VudCwgbGV2ZWxCYXNlLCBsb2RGcm9tRnVu
Y3Rpb25PcGVyYW5kKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS44CisgICAg
bGV0IGQgPSBsZXZlbEJhc2UgKyBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kOworICAgIGlmIChkIDwg
YmFzZU1pcExldmVsIHx8IGQgPj0gYmFzZU1pcExldmVsICsgbGV2ZWxDb3VudCkKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJTZWxlY3RlZCBsZXZlbCBkb2VzIG5vdCBsaWUgaW5zaWRlIHRoZSBp
bWFnZSIpOworICAgIHJldHVybiBkOworfQorCitmdW5jdGlvbiB3cmFwcGluZ09wZXJhdGlvbih3
aWR0aCwgaGVpZ2h0LCBkZXB0aCwgYWRkcmVzc01vZGVVLCBhZGRyZXNzTW9kZVYsIGFkZHJlc3NN
b2RlVywgaSwgaiwgaykKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOS4xCisg
ICAgLy8gRklYTUU6ICJDdWJlIGltYWdlcyBpZ25vcmUgdGhlIHdyYXAgbW9kZXMgc3BlY2lmaWVk
IGluIHRoZSBzYW1wbGVyLiBJbnN0ZWFkLCBpZiBWS19GSUxURVJfTkVBUkVTVCBpcyB1c2VkIHdp
dGhpbiBhIG1pcCBsZXZlbCB0aGVuIFZLX1NBTVBMRVJfQUREUkVTU19NT0RFX0NMQU1QX1RPX0VE
R0UgaXMgdXNlZCwgYW5kIGlmIFZLX0ZJTFRFUl9MSU5FQVIgaXMgdXNlZCB3aXRoaW4gYSBtaXAg
bGV2ZWwgdGhlbiBzYW1wbGluZyBhdCB0aGUgZWRnZXMgaXMgcGVyZm9ybWVkIGFzIGRlc2NyaWJl
ZCBlYXJsaWVyIGluIHRoZSBDdWJlIG1hcCBlZGdlIGhhbmRsaW5nIHNlY3Rpb24uIgorICAgIGZ1
bmN0aW9uIHRyYW5zZm9ybShhZGRyZXNzTW9kZSwgc2l6ZSwgaSkKKyAgICB7CisgICAgICAgIGZ1
bmN0aW9uIG1pcnJvcihuKSB7CisgICAgICAgICAgICBpZiAobiA+PSAwKQorICAgICAgICAgICAg
ICAgIHJldHVybiBuOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiAt
KDEgKyBuKTsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKGFkZHJlc3NNb2RlKSB7CisgICAg
ICAgICAgICBjYXNlICJjbGFtcFRvRWRnZSI6CisgICAgICAgICAgICAgICAgcmV0dXJuIE1hdGgu
bWluKE1hdGgubWF4KGksIDApLCBzaXplIC0gMSk7CisgICAgICAgICAgICBjYXNlICJyZXBlYXQi
OgorICAgICAgICAgICAgICAgIHJldHVybiBpICUgc2l6ZTsKKyAgICAgICAgICAgIGNhc2UgIm1p
cnJvclJlcGVhdCI6CisgICAgICAgICAgICAgICAgcmV0dXJuIChzaXplIC0gMSkgLSBtaXJyb3Io
KGkgJSAoMiAqIHNpemUpKSAtIHNpemUpOworICAgICAgICAgICAgY2FzZSAiY2xhbXBUb0JvcmRl
ckNvbG9yIjoKKyAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoaSwgLTEp
LCBzaXplKTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJVbmtub3duIGFkZHJlc3MgbW9kZSIpOworICAgICAgICB9CisgICAgfQorICAgIHJl
dHVybiBbdHJhbnNmb3JtKGFkZHJlc3NNb2RlVSwgd2lkdGgsIGkpLCB0cmFuc2Zvcm0oYWRkcmVz
c01vZGVWLCBoZWlnaHQsIGopLCB0cmFuc2Zvcm0oYWRkcmVzc01vZGVXLCBkZXB0aCwgayldOwor
fQorCitmdW5jdGlvbiBjYWxjdWxhdGVMYW1iZGEoZGV2aWNlTWF4QW5pc290cm9weSwgZGV2aWNl
TWF4U2FtcGxlckxvZEJpYXMsIHRleHR1cmUsIHNhbXBsZXIsIHNhbXBsZXJCaWFzLCBzLCB0LCBy
LCBhLCBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLCBsb2RNaW5Gcm9tRnVuY3Rpb25PcGVyYW5kLCBi
aWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwgZGR4LCBkZHkpCit7CisgICAgbGV0IHBhcnRpYWxTV2l0
aFJlc3BlY3RUb1ggPSAwOworICAgIGxldCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YID0gMDsKKyAg
ICBsZXQgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCA9IDA7CisgICAgaWYgKGRkeCAhPSB1bmRlZmlu
ZWQpIHsKKyAgICAgICAgcGFydGlhbFNXaXRoUmVzcGVjdFRvWCA9IGRkeFswXTsKKyAgICAgICAg
cGFydGlhbFRXaXRoUmVzcGVjdFRvWCA9IGRkeFsxXTsKKyAgICAgICAgcGFydGlhbFJXaXRoUmVz
cGVjdFRvWCA9IGRkeFsyXTsKKyAgICB9CisgICAgbGV0IHBhcnRpYWxTV2l0aFJlc3BlY3RUb1kg
PSAwOworICAgIGxldCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZID0gMDsKKyAgICBsZXQgcGFydGlh
bFJXaXRoUmVzcGVjdFRvWSA9IDA7CisgICAgaWYgKGRkeSAhPSB1bmRlZmluZWQpIHsKKyAgICAg
ICAgcGFydGlhbFNXaXRoUmVzcGVjdFRvWSA9IGRkeVswXTsKKyAgICAgICAgcGFydGlhbFRXaXRo
UmVzcGVjdFRvWSA9IGRkeVsxXTsKKyAgICAgICAgcGFydGlhbFJXaXRoUmVzcGVjdFRvWSA9IGRk
eVsyXTsKKyAgICB9CisKKyAgICBpZiAodGV4dHVyZSBpbnN0YW5jZW9mIFRleHR1cmVDdWJlKSB7
CisgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgY3ViZW1hcCBlZGdlL2Nvcm5lcnMgY29ycmVjdGx5
CisgICAgICAgIGxldCBbbGF5ZXJOdW1iZXIsIHNjLCB0YywgcmMsIHBhcnRpYWxTY1dpdGhSZXNw
ZWN0VG9YLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1gs
IHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCwgcGFydGlh
bFJjV2l0aFJlc3BlY3RUb1ldID0gY3ViZU1hcEZhY2VTZWxlY3Rpb24ocywgdCwgciwgcGFydGlh
bFNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRXaXRoUmVz
cGVjdFRvWCwgcGFydGlhbFRXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCwg
cGFydGlhbFJXaXRoUmVzcGVjdFRvWSkKKyAgICAgICAgbGV0IFtzRmFjZSwgdEZhY2VdID0gY3Vi
ZU1hcENvb3JkaW5hdGVUcmFuc2Zvcm1hdGlvbihzYywgdGMsIHJjKQorICAgICAgICBsZXQgW3Bh
cnRpYWxTRmFjZVdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWSwgcGFy
dGlhbFRGYWNlV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0VG9ZXSA9IGN1
YmVNYXBEZXJpdmF0aXZlVHJhbnNmb3JtYXRpb24oc2MsIHRjLCByYywgcGFydGlhbFNjV2l0aFJl
c3BlY3RUb1gsIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRv
WCwgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YLCBwYXJ0
aWFsUmNXaXRoUmVzcGVjdFRvWSkKKyAgICAgICAgcyA9IHNGYWNlOworICAgICAgICB0ID0gdEZh
Y2U7CisgICAgICAgIHIgPSAwOworICAgICAgICBhID0gbGF5ZXJOdW1iZXI7CisgICAgICAgIHBh
cnRpYWxTV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWDsKKyAgICAg
ICAgcGFydGlhbFNXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxTRmFjZVdpdGhSZXNwZWN0VG9ZOwor
ICAgICAgICBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YID0gcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RU
b1g7CisgICAgICAgIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsVEZhY2VXaXRoUmVz
cGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCA9IDA7CisgICAgICAgIHBh
cnRpYWxSV2l0aFJlc3BlY3RUb1kgPSAwOworICAgIH0KKworICAgIGxldCBbcmhvTWF4LCByaG9N
aW4sIGV0YSwgTl0gPSBzY2FsZUZhY3Rvck9wZXJhdGlvbihkZXZpY2VNYXhBbmlzb3Ryb3B5LCB0
ZXh0dXJlLndpZHRoLCB0ZXh0dXJlLmhlaWdodCwgdGV4dHVyZS5kZXB0aCwgc2FtcGxlci5tYXhB
bmlzb3Ryb3B5LCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9Y
LCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFs
VFdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9ZKTsKKyAgICBsZXQgbGFtYmRh
ID0gbGV2ZWxPZkRldGFpbE9wZXJhdGlvbihkZXZpY2VNYXhTYW1wbGVyTG9kQmlhcywgbG9kRnJv
bUZ1bmN0aW9uT3BlcmFuZCwgbG9kTWluRnJvbUZ1bmN0aW9uT3BlcmFuZCwgYmlhc0Zyb21GdW5j
dGlvbk9wZXJhbmQsIHNhbXBsZXJCaWFzLCBzYW1wbGVyLmxvZE1pbkNsYW1wLCBzYW1wbGVyLmxv
ZE1heENsYW1wLCByaG9NYXgsIGV0YSk7CisgICAgcmV0dXJuIFtzLCB0LCByLCBhLCBsYW1iZGFd
OworfQorCitmdW5jdGlvbiBjb21wdXRlVGF1KGxldmVsLCBiYXNlQXJyYXlMYXllciwgdGV4dHVy
ZSwgc2FtcGxlciwgYWRkcmVzc01vZGVVLCBhZGRyZXNzTW9kZVYsIGFkZHJlc3NNb2RlVywgZmls
dGVyLCBzLCB0LCByLCBhLCBkZWx0YUksIGRlbHRhSiwgZGVsdGFLKQoreworICAgIGZ1bmN0aW9u
IGFjY2Vzc0NvbG9yKHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsLCBpLCBqLCBrKQorICAgIHsKKyAg
ICAgICAgZnVuY3Rpb24gc2hvdWxkQmVCb3JkZXIodmFsdWUsIG1heCkKKyAgICAgICAgeworICAg
ICAgICAgICAgaWYgKHZhbHVlIDwgLTEgfHwgdmFsdWUgPiBtYXgpCisgICAgICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJPdXQtb2YtYm91bmRzIHRleHR1cmUgcmVhZCIpOworICAgICAgICAg
ICAgcmV0dXJuIHZhbHVlID09IC0xIHx8IHZhbHVlID09IG1heDsKKyAgICAgICAgfQorCisgICAg
ICAgIGxldCBbd3JhcHBlZEksIHdyYXBwZWRKLCB3cmFwcGVkS10gPSB3cmFwcGluZ09wZXJhdGlv
bih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgYWRkcmVzc01vZGVVLCBhZGRyZXNzTW9kZVYsIGFkZHJl
c3NNb2RlVywgaSwgaiwgaykKKyAgICAgICAgaWYgKHNob3VsZEJlQm9yZGVyKHdyYXBwZWRJLCB3
aWR0aCkgfHwgc2hvdWxkQmVCb3JkZXIod3JhcHBlZEosIGhlaWdodCkgfHwgc2hvdWxkQmVCb3Jk
ZXIod3JhcHBlZEssIGRlcHRoKSkKKyAgICAgICAgICAgIHJldHVybiBzYW1wbGVyLmNhbGN1bGF0
ZUJvcmRlckNvbG9yKHRleHR1cmUuaW5uZXJUeXBlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgcmV0dXJuIHRleHR1cmUuZWxlbWVudChsLCBsZXZlbCwgd3JhcHBlZEssIHdyYXBwZWRKLCB3
cmFwcGVkSSk7CisgICAgfQorCisgICAgbGV0IFt1LCB2LCB3XSA9IHN0cnFhVG9VVldBVHJhbnNm
b3JtYXRpb24ocywgdCwgciwgdGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhl
aWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCkpOworICAgIGlm
IChmaWx0ZXIgPT0gIm5lYXJlc3QiKSB7CisgICAgICAgIGxldCBbaSwgaiwgaywgbF0gPSB1dndh
VG9JSktMTlRyYW5zZm9ybWF0aW9uQW5kQXJyYXlMYXllclNlbGVjdGlvbih0ZXh0dXJlLmxheWVy
Q291bnQsIGJhc2VBcnJheUxheWVyLCBmaWx0ZXIsIHUsIHYsIHcsIGEsIGRlbHRhSSwgZGVsdGFK
LCBkZWx0YUspOworICAgICAgICByZXR1cm4gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2
ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRM
ZXZlbChsZXZlbCksIGwsIGksIGosIGspOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChmaWx0
ZXIgIT0gImxpbmVhciIpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZmls
dGVyIik7CisgICAgICAgIGxldCBbaTAsIGkxLCBqMCwgajEsIGswLCBrMSwgbCwgYWxwaGEsIGJl
dGEsIGdhbW1hXSA9IHV2d2FUb0lKS0xOVHJhbnNmb3JtYXRpb25BbmRBcnJheUxheWVyU2VsZWN0
aW9uKHRleHR1cmUubGF5ZXJDb3VudCwgYmFzZUFycmF5TGF5ZXIsIGZpbHRlciwgdSwgdiwgdywg
YSwgZGVsdGFJLCBkZWx0YUosIGRlbHRhSyk7CisgICAgICAgIGxldCBjb2xvcjAwMCA9IGFjY2Vz
c0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVs
KGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMCwgajAsIGswKTsKKyAg
ICAgICAgbGV0IGNvbG9yMTAwID0gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2
ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChs
ZXZlbCksIGwsIGkxLCBqMCwgazApOworICAgICAgICBsZXQgY29sb3IwMTAgPSBhY2Nlc3NDb2xv
cih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZl
bCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTAsIGoxLCBrMCk7CisgICAgICAg
IGxldCBjb2xvcjExMCA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwg
dGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwp
LCBsLCBpMSwgajEsIGswKTsKKyAgICAgICAgbGV0IGNvbG9yMDAxID0gYWNjZXNzQ29sb3IodGV4
dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0
ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGkwLCBqMCwgazEpOworICAgICAgICBsZXQg
Y29sb3IxMDEgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1
cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwg
aTEsIGowLCBrMSk7CisgICAgICAgIGxldCBjb2xvcjAxMSA9IGFjY2Vzc0NvbG9yKHRleHR1cmUu
d2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVy
ZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMCwgajEsIGsxKTsKKyAgICAgICAgbGV0IGNvbG9y
MTExID0gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhl
aWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGkxLCBq
MSwgazEpOworICAgICAgICByZXR1cm4gW2NvbG9yMDAwLCBjb2xvcjEwMCwgY29sb3IwMTAsIGNv
bG9yMTEwLCBjb2xvcjAwMSwgY29sb3IxMDEsIGNvbG9yMDExLCBjb2xvcjExMSwgYWxwaGEsIGJl
dGEsIGdhbW1hXTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHJlZHVjZSguLi52YWx1ZXMpCit7Cisg
ICAgaWYgKHZhbHVlcy5sZW5ndGggJSAyICE9IDApCisgICAgICAgIHRocm93IG5ldyBFcnJvcigi
RG9uJ3QgaGF2ZSBhIHdlaWdodCBjb3JyZXNwb25kaW5nIHRvIGVhY2ggdmFsdWUiKTsKKyAgICBp
ZiAodmFsdWVzLmxlbmd0aCA8IDIpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiRG9uJ3QgaGF2
ZSBlbm91Z2ggdGhpbmdzIHRvIGNhbGN1bGF0ZSBhbiBhdmVyYWdlIik7CisgICAgbGV0IHN1bTsK
KyAgICBpZiAodmFsdWVzWzFdIGluc3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAgc3VtID0gW107
CisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzWzFdLmxlbmd0aDsgKytpKQorICAg
ICAgICAgICAgc3VtLnB1c2goMCk7CisgICAgfSBlbHNlCisgICAgICAgIHN1bSA9IDA7CisgICAg
Zm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoIC8gMjsgKytpKSB7CisgICAgICAgIGxl
dCB3ZWlnaHQgPSB2YWx1ZXNbMiAqIGldOworICAgICAgICBsZXQgY29sb3IgPSB2YWx1ZXNbMiAq
IGkgKyAxXTsKKyAgICAgICAgaWYgKGNvbG9yIGluc3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAg
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sb3IubGVuZ3RoOyArK2kpCisgICAgICAgICAgICAg
ICAgc3VtW2ldICs9IHdlaWdodCAqIGNvbG9yW2ldOworICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgIHN1bSArPSB3ZWlnaHQgKiBjb2xvcjsKKyAgICB9CisgICAgcmV0dXJuIHN1bTsKK30KKwor
ZnVuY3Rpb24gdGV4ZWxHYXRoZXJpbmcoCisgICAgZGV2aWNlTWF4QW5pc290cm9weSwKKyAgICBk
ZXZpY2VNYXhTYW1wbGVyTG9kQmlhcywKKyAgICBiYXNlTWlwTGV2ZWwsCisgICAgYmFzZUFycmF5
TGF5ZXIsCisgICAgdGV4dHVyZSwKKyAgICBzYW1wbGVyLAorICAgIHNhbXBsZXJCaWFzLAorICAg
IHMsIHQsIHIsIGEsCisgICAgZGVsdGFJLCBkZWx0YUosIGRlbHRhSywKKyAgICBsb2RGcm9tRnVu
Y3Rpb25PcGVyYW5kLAorICAgIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgYmlhc0Zy
b21GdW5jdGlvbk9wZXJhbmQsCisgICAgZGR4LCBkZHksCisgICAgY2hhbm5lbCkKK3sKKyAgICAv
LyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOS4yCisKKyAgICAvLyBUaGUgc3BlYyB1c2VzIGRp
ZmZlcmVudCBuYW1lcyB0aGFuIFdlYkdQVSBkb2VzLgorICAgIGxldCBhZGRyZXNzTW9kZVUgPSBz
YW1wbGVyLnJBZGRyZXNzTW9kZTsKKyAgICBsZXQgYWRkcmVzc01vZGVWID0gc2FtcGxlci5zQWRk
cmVzc01vZGU7CisgICAgbGV0IGFkZHJlc3NNb2RlVyA9IHNhbXBsZXIudEFkZHJlc3NNb2RlOwor
CisgICAgbGV0IGxhbWJkYTsKKyAgICBbcywgdCwgciwgYSwgbGFtYmRhXSA9IGNhbGN1bGF0ZUxh
bWJkYShkZXZpY2VNYXhBbmlzb3Ryb3B5LCBkZXZpY2VNYXhTYW1wbGVyTG9kQmlhcywgdGV4dHVy
ZSwgc2FtcGxlciwgc2FtcGxlckJpYXMsIHMsIHQsIHIsIGEsIGxvZEZyb21GdW5jdGlvbk9wZXJh
bmQsIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQsIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLCBk
ZHgsIGRkeSk7CisKKyAgICBsZXQgZmlsdGVyID0gImxpbmVhciI7CisKKyAgICBsZXQgaW1hZ2VM
ZXZlbCA9IGltYWdlTGV2ZWxTZWxlY3Rpb24oYmFzZU1pcExldmVsLCB0ZXh0dXJlLmxldmVsQ291
bnQsICJuZWFyZXN0IiwgbGFtYmRhKTsKKworICAgIGxldCBbY29sb3IwMDAsIGNvbG9yMTAwLCBj
b2xvcjAxMCwgY29sb3IxMTAsIGNvbG9yMDAxLCBjb2xvcjEwMSwgY29sb3IwMTEsIGNvbG9yMTEx
LCBhbHBoYSwgYmV0YSwgZ2FtbWFdID0gY29tcHV0ZVRhdShpbWFnZUxldmVsLCBiYXNlQXJyYXlM
YXllciwgdGV4dHVyZSwgc2FtcGxlciwgYWRkcmVzc01vZGVVLCBhZGRyZXNzTW9kZVYsIGFkZHJl
c3NNb2RlVywgZmlsdGVyLCBzLCB0LCByLCBhLCBkZWx0YUksIGRlbHRhSiwgZGVsdGFLKTsKKwor
ICAgIGlmICh0ZXh0dXJlLmRpbWVuc2lvbiAhPSAyKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
IkNhbm5vdCBnYXRoZXIgZnJvbSBhIG5vbi0yRCBpbWFnZSIpOworCisgICAgbGV0IGNvbG9yMDAg
PSBjb2xvcjAwMTsKKyAgICBsZXQgY29sb3IxMCA9IGNvbG9yMTAxOworICAgIGxldCBjb2xvcjAx
ID0gY29sb3IwMTE7CisgICAgbGV0IGNvbG9yMTEgPSBjb2xvcjExMTsKKworICAgIHN3aXRjaCAo
Y2hhbm5lbCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICBpZiAoY29sb3IwMCBpbnN0
YW5jZW9mIEFycmF5KQorICAgICAgICAgICAgICAgIHJldHVybiBbY29sb3IwMVswXSwgY29sb3Ix
MVswXSwgY29sb3IxMFswXSwgY29sb3IwMFswXV07CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgcmV0dXJuIFtjb2xvcjAxLCBjb2xvcjExLCBjb2xvcjEwLCBjb2xvcjAwXTsKKyAg
ICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIFtjb2xvcjAxWzFdLCBjb2xvcjExWzFd
LCBjb2xvcjEwWzFdLCBjb2xvcjAwWzFdXTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAg
cmV0dXJuIFtjb2xvcjAxWzJdLCBjb2xvcjExWzJdLCBjb2xvcjEwWzJdLCBjb2xvcjAwWzJdXTsK
KyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgcmV0dXJuIFtjb2xvcjAxWzNdLCBjb2xvcjEx
WzNdLCBjb2xvcjEwWzNdLCBjb2xvcjAwWzNdXTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBjaGFubmVsIHRvIGdhdGhlciBmcm9tIik7Cisg
ICAgfQorfQorCitmdW5jdGlvbiB0ZXhlbEZpbHRlcmluZygKKyAgICBkZXZpY2VNYXhBbmlzb3Ry
b3B5LAorICAgIGRldmljZU1heFNhbXBsZXJMb2RCaWFzLAorICAgIGJhc2VNaXBMZXZlbCwKKyAg
ICBiYXNlQXJyYXlMYXllciwKKyAgICB0ZXh0dXJlLAorICAgIHNhbXBsZXIsCisgICAgc2FtcGxl
ckJpYXMsCisgICAgcywgdCwgciwgYSwKKyAgICBkZWx0YUksIGRlbHRhSiwgZGVsdGFLLAorICAg
IGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgbG9kTWluRnJvbUZ1bmN0aW9uT3BlcmFuZCwK
KyAgICBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwKKyAgICBkZHgsIGRkeSkKK3sKKyAgICAvLyBW
dWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOS4zCisKKyAgICAvLyBUaGUgc3BlYyB1c2VzIGRpZmZl
cmVudCBuYW1lcyB0aGFuIFdlYkdQVSBkb2VzLgorICAgIGxldCBhZGRyZXNzTW9kZVUgPSBzYW1w
bGVyLnJBZGRyZXNzTW9kZTsKKyAgICBsZXQgYWRkcmVzc01vZGVWID0gc2FtcGxlci5zQWRkcmVz
c01vZGU7CisgICAgbGV0IGFkZHJlc3NNb2RlVyA9IHNhbXBsZXIudEFkZHJlc3NNb2RlOworCisg
ICAgbGV0IGxhbWJkYTsKKyAgICBbcywgdCwgciwgYSwgbGFtYmRhXSA9IGNhbGN1bGF0ZUxhbWJk
YShkZXZpY2VNYXhBbmlzb3Ryb3B5LCBkZXZpY2VNYXhTYW1wbGVyTG9kQmlhcywgdGV4dHVyZSwg
c2FtcGxlciwgc2FtcGxlckJpYXMsIHMsIHQsIHIsIGEsIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQs
IGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQsIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLCBkZHgs
IGRkeSk7CisKKyAgICBsZXQgZmlsdGVyOworICAgIGlmIChsYW1iZGEgPD0gMCkKKyAgICAgICAg
ZmlsdGVyID0gc2FtcGxlci5tYWdGaWx0ZXI7CisgICAgZWxzZQorICAgICAgICBmaWx0ZXIgPSBz
YW1wbGVyLm1pbkZpbHRlcjsKKworICAgIGZ1bmN0aW9uIGNvbXB1dGVDb2xvckZyb21MZXZlbChs
ZXZlbCkKKyAgICB7CisgICAgICAgIGlmIChmaWx0ZXIgPT0gIm5lYXJlc3QiKSB7CisgICAgICAg
ICAgICByZXR1cm4gY29tcHV0ZVRhdShsZXZlbCwgYmFzZUFycmF5TGF5ZXIsIHRleHR1cmUsIHNh
bXBsZXIsIGFkZHJlc3NNb2RlVSwgYWRkcmVzc01vZGVWLCBhZGRyZXNzTW9kZVcsIGZpbHRlciwg
cywgdCwgciwgYSwgZGVsdGFJLCBkZWx0YUosIGRlbHRhSyk7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICBpZiAoZmlsdGVyICE9ICJsaW5lYXIiKQorICAgICAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiVW5rbm93biBmaWx0ZXIiKTsKKyAgICAgICAgICAgIGxldCBbY29sb3IwMDAs
IGNvbG9yMTAwLCBjb2xvcjAxMCwgY29sb3IxMTAsIGNvbG9yMDAxLCBjb2xvcjEwMSwgY29sb3Iw
MTEsIGNvbG9yMTExLCBhbHBoYSwgYmV0YSwgZ2FtbWFdID0gY29tcHV0ZVRhdShsZXZlbCwgYmFz
ZUFycmF5TGF5ZXIsIHRleHR1cmUsIHNhbXBsZXIsIGFkZHJlc3NNb2RlVSwgYWRkcmVzc01vZGVW
LCBhZGRyZXNzTW9kZVcsIGZpbHRlciwgcywgdCwgciwgYSwgZGVsdGFJLCBkZWx0YUosIGRlbHRh
Syk7CisgICAgICAgICAgICBzd2l0Y2ggKHRleHR1cmUuZGltZW5zaW9uKSB7CisgICAgICAgICAg
ICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IwID0gY29sb3IwMTE7
CisgICAgICAgICAgICAgICAgICAgIGxldCBjb2xvcjEgPSBjb2xvcjExMTsKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHJlZHVjZSgxIC0gYWxwaGEsIGNvbG9yMCwgYWxwaGEsIGNvbG9yMSk7
CisgICAgICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3Iw
MCA9IGNvbG9yMDAxOworICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IxMCA9IGNvbG9yMTAx
OworICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IwMSA9IGNvbG9yMDExOworICAgICAgICAg
ICAgICAgICAgICBsZXQgY29sb3IxMSA9IGNvbG9yMTExOworICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVkdWNlKCgxIC0gYWxwaGEpICogKDEgLSBiZXRhKSwgY29sb3IwMCwgYWxwaGEgKiAo
MSAtIGJldGEpLCBjb2xvcjEwLCAoMSAtIGFscGhhKSAqIGJldGEsIGNvbG9yMDEsIGFscGhhICog
YmV0YSwgY29sb3IxMSk7CisgICAgICAgICAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gcmVkdWNlKAorICAgICAgICAgICAgICAgICAgICAgICAgKDEgLSBhbHBoYSkg
KiAoMSAtIGJldGEpICogKDEgLSBnYW1tYSksIGNvbG9yMDAwLAorICAgICAgICAgICAgICAgICAg
ICAgICAgYWxwaGEgKiAoMSAtIGJldGEpICogKDEgLSBnYW1tYSksIGNvbG9yMTAwLAorICAgICAg
ICAgICAgICAgICAgICAgICAgKDEgLSBhbHBoYSkgKiBiZXRhICogKDEgLSBnYW1tYSksIGNvbG9y
MDEwLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxwaGEgKiBiZXRhICogKDEgLSBnYW1tYSks
IGNvbG9yMTEwLAorICAgICAgICAgICAgICAgICAgICAgICAgKDEgLSBhbHBoYSkgKiAoMSAtIGJl
dGEpICogZ2FtbWEsIGNvbG9yMDAxLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxwaGEgKiAo
MSAtIGJldGEpICogZ2FtbWEsIGNvbG9yMTAxLAorICAgICAgICAgICAgICAgICAgICAgICAgKDEg
LSBhbHBoYSkgKiBiZXRhICogZ2FtbWEsIGNvbG9yMDExLAorICAgICAgICAgICAgICAgICAgICAg
ICAgYWxwaGEgKiBiZXRhICogZ2FtbWEsIGNvbG9yMTExKTsKKyAgICAgICAgICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZGltZW5z
aW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoc2FtcGxl
ci5taXBtYXBGaWx0ZXIgPT0gIm5lYXJlc3QiKSB7CisgICAgICAgIGxldCBpbWFnZUxldmVsID0g
aW1hZ2VMZXZlbFNlbGVjdGlvbihiYXNlTWlwTGV2ZWwsIHRleHR1cmUubGV2ZWxDb3VudCwgc2Ft
cGxlci5taXBtYXBGaWx0ZXIsIGxhbWJkYSk7CisgICAgICAgIHJldHVybiBjb21wdXRlQ29sb3JG
cm9tTGV2ZWwoaW1hZ2VMZXZlbCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHNhbXBsZXIu
bWlwbWFwRmlsdGVyICE9ICJsaW5lYXIiKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJV
bmtub3duIGZpbHRlciIpOworICAgICAgICBsZXQgW2RIaSwgZExvdywgZGVsdGFdID0gaW1hZ2VM
ZXZlbFNlbGVjdGlvbihiYXNlTWlwTGV2ZWwsIHRleHR1cmUubGV2ZWxDb3VudCwgc2FtcGxlci5t
aXBtYXBGaWx0ZXIsIGxhbWJkYSk7CisgICAgICAgIHJldHVybiByZWR1Y2UoMSAtIGRlbHRhLCBj
b21wdXRlQ29sb3JGcm9tTGV2ZWwoZEhpKSwgZGVsdGEsIGNvbXB1dGVDb2xvckZyb21MZXZlbChk
TG93KSk7CisgICAgfQorfQorCitmdW5jdGlvbiBjYXN0VG9Jbm5lclR5cGVGb3JHYXRoZXIodmFs
dWUsIGlubmVyVHlwZSkKK3sKKyAgICBzd2l0Y2ggKGlubmVyVHlwZSkgeworICAgICAgICBjYXNl
ICJ1Y2hhciI6CisgICAgICAgIGNhc2UgInVjaGFyMiI6CisgICAgICAgIGNhc2UgInVjaGFyMyI6
CisgICAgICAgIGNhc2UgInVjaGFyNCI6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNh
c3RUb1VjaGFyKTsKKyAgICAgICAgY2FzZSAidXNob3J0IjoKKyAgICAgICAgY2FzZSAidXNob3J0
MiI6CisgICAgICAgIGNhc2UgInVzaG9ydDMiOgorICAgICAgICBjYXNlICJ1c2hvcnQ0IjoKKyAg
ICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoY2FzdFRvVXNob3J0KTsKKyAgICAgICAgY2FzZSAi
dWludCI6CisgICAgICAgIGNhc2UgInVpbnQyIjoKKyAgICAgICAgY2FzZSAidWludDMiOgorICAg
ICAgICBjYXNlICJ1aW50NCI6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb1Vp
bnQpOworICAgICAgICBjYXNlICJjaGFyIjoKKyAgICAgICAgY2FzZSAiY2hhcjIiOgorICAgICAg
ICBjYXNlICJjaGFyMyI6CisgICAgICAgIGNhc2UgImNoYXI0IjoKKyAgICAgICAgICAgIHJldHVy
biB2YWx1ZS5tYXAoY2FzdFRvQ2hhcik7CisgICAgICAgIGNhc2UgInNob3J0IjoKKyAgICAgICAg
Y2FzZSAic2hvcnQyIjoKKyAgICAgICAgY2FzZSAic2hvcnQzIjoKKyAgICAgICAgY2FzZSAic2hv
cnQ0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoY2FzdFRvU2hvcnQpOworICAgICAg
ICBjYXNlICJpbnQiOgorICAgICAgICBjYXNlICJpbnQyIjoKKyAgICAgICAgY2FzZSAiaW50MyI6
CisgICAgICAgIGNhc2UgImludDQiOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcChjYXN0
VG9JbnQpOworICAgICAgICBjYXNlICJoYWxmIjoKKyAgICAgICAgY2FzZSAiaGFsZjIiOgorICAg
ICAgICBjYXNlICJoYWxmMyI6CisgICAgICAgIGNhc2UgImhhbGY0IjoKKyAgICAgICAgICAgIHJl
dHVybiB2YWx1ZS5tYXAoY2FzdFRvSGFsZik7CisgICAgICAgIGNhc2UgImZsb2F0IjoKKyAgICAg
ICAgY2FzZSAiZmxvYXQyIjoKKyAgICAgICAgY2FzZSAiZmxvYXQzIjoKKyAgICAgICAgY2FzZSAi
ZmxvYXQ0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoY2FzdFRvRmxvYXQpOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHRleHR1
cmUgaW5uZXIgdHlwZSIpOworICAgIH0KK30KKworZnVuY3Rpb24gZ2F0aGVyVGV4dHVyZSh0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGVsdGEsIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLCBk
ZHgsIGRkeSwgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwgZHJlZiwgY2hhbm5lbCkKK3sKKyAgICBs
ZXQgcyA9IGxvY2F0aW9uWzBdOworICAgIGxldCB0ID0gbG9jYXRpb25bMV07CisgICAgbGV0IHIg
PSBsb2NhdGlvblsyXTsKKyAgICBsZXQgcSA9IGxvY2F0aW9uWzNdOworICAgIGxldCBhID0gbG9j
YXRpb25bNF07CisKKyAgICBsZXQgZGVsdGFJID0gdW5kZWZpbmVkOworICAgIGxldCBkZWx0YUog
PSB1bmRlZmluZWQ7CisgICAgbGV0IGRlbHRhSyA9IHVuZGVmaW5lZDsKKyAgICBpZiAoZGVsdGEg
IT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGRlbHRhSSA9IGRlbHRhWzBdOworICAgICAgICBkZWx0
YUogPSBkZWx0YVsxXTsKKyAgICAgICAgZGVsdGFLID0gZGVsdGFbMl07CisgICAgfQorCisgICAg
W3MsIHQsIHIsIGRyZWZdID0gcHJvamVjdGlvbk9wZXJhdGlvbihzLCB0LCByLCBkcmVmLCBxKTsK
KyAgICBsZXQgcmVzdWx0ID0gdGV4ZWxHYXRoZXJpbmcoCisgICAgICAgIE51bWJlci5NQVhfVkFM
VUUsCisgICAgICAgIE51bWJlci5NQVhfVkFMVUUsCisgICAgICAgIDAsCisgICAgICAgIDAsCisg
ICAgICAgIHRleHR1cmUsCisgICAgICAgIHNhbXBsZXIsCisgICAgICAgIDAsCisgICAgICAgIHMs
IHQsIHIsIGEsCisgICAgICAgIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUssCisgICAgICAgIGxvZEZy
b21GdW5jdGlvbk9wZXJhbmQsCisgICAgICAgIC1OdW1iZXIuTUFYX1ZBTFVFLAorICAgICAgICBi
aWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwKKyAgICAgICAgZGR4LCBkZHksCisgICAgICAgIGNoYW5u
ZWwpOworICAgIGlmIChkcmVmICE9IHVuZGVmaW5lZCkKKyAgICAgICAgcmVzdWx0ID0gcmVzdWx0
Lm1hcCh2ID0+IGRlcHRoQ29tcGFyZU9wZXJhdGlvbihkcmVmLCB2LCBzYW1wbGVyLmNvbXBhcmVG
dW5jdGlvbikpOworICAgIHJldHVybiBjYXN0VG9Jbm5lclR5cGVGb3JHYXRoZXIocmVzdWx0LCB0
ZXh0dXJlLmlubmVyVHlwZSk7CisgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBkbyB3
aXRoIGFuaXNvdHJvcHkKKyAgICAvLyBGSVhNRTogRmlndXJlIG91dCBob3cgdG8gZG8gbXVsdGlz
YW1wbGluZy4KK30KKworZnVuY3Rpb24gY2FzdFRvSW5uZXJUeXBlKHZhbHVlLCBpbm5lclR5cGUp
Cit7CisgICAgc3dpdGNoIChpbm5lclR5cGUpIHsKKyAgICAgICAgY2FzZSAidWNoYXIiOgorICAg
ICAgICAgICAgcmV0dXJuIGNhc3RUb1VjaGFyKHZhbHVlKTsKKyAgICAgICAgY2FzZSAidXNob3J0
IjoKKyAgICAgICAgICAgIHJldHVybiBjYXN0VG9Vc2hvcnQodmFsdWUpOworICAgICAgICBjYXNl
ICJ1aW50IjoKKyAgICAgICAgICAgIHJldHVybiBjYXN0VG9VaW50KHZhbHVlKTsKKyAgICAgICAg
Y2FzZSAiY2hhciI6CisgICAgICAgICAgICByZXR1cm4gY2FzdFRvQ2hhcih2YWx1ZSk7CisgICAg
ICAgIGNhc2UgInNob3J0IjoKKyAgICAgICAgICAgIHJldHVybiBjYXN0VG9TaG9ydCh2YWx1ZSk7
CisgICAgICAgIGNhc2UgImludCI6CisgICAgICAgICAgICByZXR1cm4gY2FzdFRvSW50KHZhbHVl
KTsKKyAgICAgICAgY2FzZSAiaGFsZiI6CisgICAgICAgICAgICByZXR1cm4gY2FzdFRvSGFsZih2
YWx1ZSk7CisgICAgICAgIGNhc2UgImZsb2F0IjoKKyAgICAgICAgICAgIHJldHVybiBjYXN0VG9G
bG9hdCh2YWx1ZSk7CisgICAgICAgIAorICAgICAgICBjYXNlICJ1Y2hhcjIiOgorICAgICAgICBj
YXNlICJ1Y2hhcjMiOgorICAgICAgICBjYXNlICJ1Y2hhcjQiOgorICAgICAgICAgICAgcmV0dXJu
IHZhbHVlLm1hcChjYXN0VG9VY2hhcik7CisgICAgICAgIGNhc2UgInVzaG9ydDIiOgorICAgICAg
ICBjYXNlICJ1c2hvcnQzIjoKKyAgICAgICAgY2FzZSAidXNob3J0NCI6CisgICAgICAgICAgICBy
ZXR1cm4gdmFsdWUubWFwKGNhc3RUb1VzaG9ydCk7CisgICAgICAgIGNhc2UgInVpbnQyIjoKKyAg
ICAgICAgY2FzZSAidWludDMiOgorICAgICAgICBjYXNlICJ1aW50NCI6CisgICAgICAgICAgICBy
ZXR1cm4gdmFsdWUubWFwKGNhc3RUb1VpbnQpOworICAgICAgICBjYXNlICJjaGFyMiI6CisgICAg
ICAgIGNhc2UgImNoYXIzIjoKKyAgICAgICAgY2FzZSAiY2hhcjQiOgorICAgICAgICAgICAgcmV0
dXJuIHZhbHVlLm1hcChjYXN0VG9DaGFyKTsKKyAgICAgICAgY2FzZSAic2hvcnQyIjoKKyAgICAg
ICAgY2FzZSAic2hvcnQzIjoKKyAgICAgICAgY2FzZSAic2hvcnQ0IjoKKyAgICAgICAgICAgIHJl
dHVybiB2YWx1ZS5tYXAoY2FzdFRvU2hvcnQpOworICAgICAgICBjYXNlICJpbnQyIjoKKyAgICAg
ICAgY2FzZSAiaW50MyI6CisgICAgICAgIGNhc2UgImludDQiOgorICAgICAgICAgICAgcmV0dXJu
IHZhbHVlLm1hcChjYXN0VG9JbnQpOworICAgICAgICBjYXNlICJoYWxmMiI6CisgICAgICAgIGNh
c2UgImhhbGYzIjoKKyAgICAgICAgY2FzZSAiaGFsZjQiOgorICAgICAgICAgICAgcmV0dXJuIHZh
bHVlLm1hcChjYXN0VG9IYWxmKTsKKyAgICAgICAgY2FzZSAiZmxvYXQyIjoKKyAgICAgICAgY2Fz
ZSAiZmxvYXQzIjoKKyAgICAgICAgY2FzZSAiZmxvYXQ0IjoKKyAgICAgICAgICAgIHJldHVybiB2
YWx1ZS5tYXAoY2FzdFRvRmxvYXQpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJVbmtub3duIHRleHR1cmUgaW5uZXIgdHlwZSIpOworICAgIH0KK30KKwor
ZnVuY3Rpb24gc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGVsdGEs
IGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLCBkZHgsIGRkeSwgbG9kRnJvbUZ1bmN0aW9uT3BlcmFu
ZCwgZHJlZikKK3sKKyAgICBsZXQgcyA9IGxvY2F0aW9uWzBdOworICAgIGxldCB0ID0gbG9jYXRp
b25bMV07CisgICAgbGV0IHIgPSBsb2NhdGlvblsyXTsKKyAgICBsZXQgcSA9IGxvY2F0aW9uWzNd
OworICAgIGxldCBhID0gbG9jYXRpb25bNF07CisKKyAgICBsZXQgZGVsdGFJID0gdW5kZWZpbmVk
OworICAgIGxldCBkZWx0YUogPSB1bmRlZmluZWQ7CisgICAgbGV0IGRlbHRhSyA9IHVuZGVmaW5l
ZDsKKyAgICBpZiAoZGVsdGEgIT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGRlbHRhSSA9IGRlbHRh
WzBdOworICAgICAgICBkZWx0YUogPSBkZWx0YVsxXTsKKyAgICAgICAgZGVsdGFLID0gZGVsdGFb
Ml07CisgICAgfQorCisgICAgW3MsIHQsIHIsIGRyZWZdID0gcHJvamVjdGlvbk9wZXJhdGlvbihz
LCB0LCByLCBkcmVmLCBxKTsKKyAgICBsZXQgcmVzdWx0ID0gdGV4ZWxGaWx0ZXJpbmcoCisgICAg
ICAgIE51bWJlci5NQVhfVkFMVUUsCisgICAgICAgIE51bWJlci5NQVhfVkFMVUUsCisgICAgICAg
IDAsCisgICAgICAgIDAsCisgICAgICAgIHRleHR1cmUsCisgICAgICAgIHNhbXBsZXIsCisgICAg
ICAgIDAsCisgICAgICAgIHMsIHQsIHIsIGEsCisgICAgICAgIGRlbHRhSSwgZGVsdGFKLCBkZWx0
YUssCisgICAgICAgIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgICAgIC1OdW1iZXIuTUFY
X1ZBTFVFLAorICAgICAgICBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwKKyAgICAgICAgZGR4LCBk
ZHkpOworICAgIGlmIChkcmVmICE9IHVuZGVmaW5lZCkgeworICAgICAgICBpZiAocmVzdWx0IGlu
c3RhbmNlb2YgQXJyYXkpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkRlcHRoIGNvbXBh
cmlzb24gbm90IHN1cHBvcnRlZCBvbiBtdWx0aWNoYW5uZWwgdGV4dHVyZXMiKTsKKyAgICAgICAg
cmVzdWx0ID0gZGVwdGhDb21wYXJlT3BlcmF0aW9uKGRyZWYsIHJlc3VsdCwgc2FtcGxlci5jb21w
YXJlRnVuY3Rpb24pOworICAgIH0KKyAgICByZXR1cm4gY2FzdFRvSW5uZXJUeXBlKHJlc3VsdCwg
dGV4dHVyZS5pbm5lclR5cGUpOworICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gZG8g
d2l0aCBhbmlzb3Ryb3B5CisgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgaG93IHRvIGRvIG11bHRp
c2FtcGxpbmcuCit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9p
bmRleC5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbAppbmRl
eCA2NWE4NjQxMWIzZTc3MGI1NTdiNDFhY2M3ZTQxNGRlZjQyNDAzMDEzLi5lNmUxM2RmZThkZmE1
YzUzMzJhZDllZjA0OWVjZWEzNTliN2UzYTQyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL2luZGV4Lmh0bWwKQEAgLTI4LDYgKzI4LDcgQEAKIDxzY3JpcHQgc3JjPSJCdWlsdGluVmVj
dG9yU2V0dGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDYWxsRXhwcmVzc2lvbi5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2FsbEZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJDYXN0cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2hlY2suanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IkNoZWNrTGl0ZXJhbFR5cGVzLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJDaGVja0xvb3BzLmpzIj48L3NjcmlwdD4KQEAgLTExNSw2ICsxMTYsNyBAQAogPHNj
cmlwdCBzcmM9IlJldHVybi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUmV0dXJuQ2hlY2tl
ci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUmV0dXJuRXhjZXB0aW9uLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJTYW1wbGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTdGFu
ZGFyZExpYnJhcnkuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN0YXRlbWVudENsb25lci5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3RydWN0TGF5b3V0QnVpbGRlci5qcyI+PC9zY3Jp
cHQ+CkBAIC0xMjcsNiArMTI5LDggQEAKIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplQ29weUNvbnN0
cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVEZWZh
dWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVGVybmFy
eUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlRleHR1cmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IlRleHR1cmVPcGVyYXRpb25zLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJUcmFwU3RhdGVtZW50LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVm
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348800</attachid>
            <date>2018-09-03 19:51:49 -0700</date>
            <delta_ts>2018-09-03 19:56:40 -0700</delta_ts>
            <desc>Needs finishing touches</desc>
            <filename>bug-188940-20180903195148.patch</filename>
            <type>text/plain</type>
            <size>468990</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTg5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWE0MzNhZWVmNTA2YjZmNDY1NTYwMTNiZmJiNDM2MWJm
MjE5YWMxYS4uMjkwODFkNjFjMmUwM2RlNmYwYjE5NWE2NmMzNDg4OTU4YzViYjA2YyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
OSBAQAorMjAxOC0wOS0wMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRleHR1cmUgdHlwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Nhc3RzLmpz
OiBBZGRlZC4KKyAgICAgICAgKGNhc3QpOgorICAgICAgICAoYml0d2lzZUNhc3QpOgorICAgICAg
ICAoY2FzdFRvVWNoYXIpOgorICAgICAgICAoY2FzdFRvVXNob3J0KToKKyAgICAgICAgKGNhc3RU
b1VpbnQpOgorICAgICAgICAoY2FzdFRvQ2hhcik6CisgICAgICAgIChjYXN0VG9TaG9ydCk6Cisg
ICAgICAgIChjYXN0VG9JbnQpOgorICAgICAgICAoY2FzdFRvSGFsZik6CisgICAgICAgIChjYXN0
VG9GbG9hdCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5q
czoKKyAgICAgICAgKEludHJpbnNpY3MuKToKKyAgICAgICAgKEludHJpbnNpY3MuY2hlY2tGYWxz
ZSk6CisgICAgICAgIChJbnRyaW5zaWNzLmJveFZlY3Rvcik6CisgICAgICAgIChJbnRyaW5zaWNz
LnVuYm94VmVjdG9yKToKKyAgICAgICAgKEludHJpbnNpY3MpOgorICAgICAgICAoSW50cmluc2lj
cy5jYXN0KTogRGVsZXRlZC4KKyAgICAgICAgKEludHJpbnNpY3MuYml0d2lzZUNhc3QpOiBEZWxl
dGVkLgorICAgICAgICAoSW50cmluc2ljcy5jYXN0VG9IYWxmKTogRGVsZXRlZC4KKyAgICAgICAg
KiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sOgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1NhbXBsZXIuanM6IEFkZGVkLgorICAgICAgICAoU2FtcGxlcik6Cisg
ICAgICAgIChTYW1wbGVyLnByb3RvdHlwZS5nZXQgckFkZHJlc3NNb2RlKToKKyAgICAgICAgKFNh
bXBsZXIucHJvdG90eXBlLmdldCBzQWRkcmVzc01vZGUpOgorICAgICAgICAoU2FtcGxlci5wcm90
b3R5cGUuZ2V0IHRBZGRyZXNzTW9kZSk6CisgICAgICAgIChTYW1wbGVyLnByb3RvdHlwZS5nZXQg
bWluRmlsdGVyKToKKyAgICAgICAgKFNhbXBsZXIucHJvdG90eXBlLmdldCBtYWdGaWx0ZXIpOgor
ICAgICAgICAoU2FtcGxlci5wcm90b3R5cGUuZ2V0IG1pcG1hcEZpbHRlcik6CisgICAgICAgIChT
YW1wbGVyLnByb3RvdHlwZS5nZXQgbG9kTWluQ2xhbXApOgorICAgICAgICAoU2FtcGxlci5wcm90
b3R5cGUuZ2V0IGxvZE1heENsYW1wKToKKyAgICAgICAgKFNhbXBsZXIucHJvdG90eXBlLmdldCBt
YXhBbmlzb3Ryb3B5KToKKyAgICAgICAgKFNhbXBsZXIucHJvdG90eXBlLmdldCBjb21wYXJlRnVu
Y3Rpb24pOgorICAgICAgICAoU2FtcGxlci5wcm90b3R5cGUuZ2V0IGJvcmRlckNvbG9yKToKKyAg
ICAgICAgKFNhbXBsZXIucHJvdG90eXBlLmNhbGN1bGF0ZUJvcmRlckNvbG9yLmNvbXB1dGVWYWx1
ZXMpOgorICAgICAgICAoU2FtcGxlci5wcm90b3R5cGUuY2FsY3VsYXRlQm9yZGVyQ29sb3IpOgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qczoKKyAg
ICAgICAgKGxldC5zdGFuZGFyZExpYnJhcnkpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0
LmpzOgorICAgICAgICAobWFrZVNhbXBsZXIpOgorICAgICAgICAobWFrZTFEVGV4dHVyZSk6Cisg
ICAgICAgIChtYWtlMURUZXh0dXJlQXJyYXkpOgorICAgICAgICAobWFrZTJEVGV4dHVyZSk6Cisg
ICAgICAgIChtYWtlMkRUZXh0dXJlQXJyYXkpOgorICAgICAgICAobWFrZTNEVGV4dHVyZSk6Cisg
ICAgICAgIChtYWtlVGV4dHVyZUN1YmUpOgorICAgICAgICAobWFrZVJXMURUZXh0dXJlKToKKyAg
ICAgICAgKG1ha2VSVzFEVGV4dHVyZUFycmF5KToKKyAgICAgICAgKG1ha2VSVzJEVGV4dHVyZSk6
CisgICAgICAgIChtYWtlUlcyRFRleHR1cmVBcnJheSk6CisgICAgICAgIChtYWtlUlczRFRleHR1
cmUpOgorICAgICAgICAobWFrZTJERGVwdGhUZXh0dXJlKToKKyAgICAgICAgKG1ha2UyRERlcHRo
VGV4dHVyZUFycmF5KToKKyAgICAgICAgKG1ha2VEZXB0aFRleHR1cmVDdWJlKToKKyAgICAgICAg
KG1ha2VSVzJERGVwdGhUZXh0dXJlKToKKyAgICAgICAgKG1ha2VSVzJERGVwdGhUZXh0dXJlQXJy
YXkpOgorICAgICAgICAoY2hlY2tGbG9hdDQpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1RleHR1cmUuanM6IEFkZGVkLgorICAgICAgICAoVGV4dHVyZSk6CisgICAgICAgIChU
ZXh0dXJlLnByb3RvdHlwZS5nZXQgZGltZW5zaW9uKToKKyAgICAgICAgKFRleHR1cmUucHJvdG90
eXBlLmdldCB3aWR0aCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQgaGVpZ2h0KToK
KyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkZXB0aCk6CisgICAgICAgIChUZXh0dXJl
LnByb3RvdHlwZS5nZXQgbGV2ZWxDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5n
ZXQgbGF5ZXJDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQgaW5uZXJUeXBl
KToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkYXRhKToKKyAgICAgICAgKFRleHR1
cmUucHJvdG90eXBlLmVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBl
LnNldEVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUxRCk6CisgICAgICAgIChUZXh0
dXJlMUQucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMUQucHJvdG90
eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlwZS5kZXB0aEF0
TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAg
KFRleHR1cmUxRC5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMURBcnJh
eSk6CisgICAgICAgIChUZXh0dXJlMURBcnJheS5wcm90b3R5cGUud2lkdGhBdExldmVsKToKKyAg
ICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAgICAgICAg
KFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVy
ZTFEQXJyYXkucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTFEQXJyYXkucHJv
dG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEKToKKyAgICAgICAgKFRleHR1
cmUyRC5wcm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyRC5wcm90b3R5
cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBlLmRlcHRoQXRM
ZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAo
VGV4dHVyZTJELnByb3RvdHlwZS5zZXRFbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUyREFycmF5
KToKKyAgICAgICAgKFRleHR1cmUyREFycmF5LnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAg
ICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAo
VGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJl
MkRBcnJheS5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMkRBcnJheS5wcm90
b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlM0QpOgorICAgICAgICAoVGV4dHVy
ZTNELnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTNELnByb3RvdHlw
ZS5oZWlnaHRBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUuZGVwdGhBdExl
dmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChU
ZXh0dXJlM0QucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZUN1YmUpOgor
ICAgICAgICAoVGV4dHVyZUN1YmUucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlQ3ViZS5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlQ3Vi
ZS5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmVDdWJlLnByb3RvdHlw
ZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmVDdWJlLnByb3RvdHlwZS5zZXRFbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUxRFJXKToKKyAgICAgICAgKFRleHR1cmUxRFJXLnByb3RvdHlwZS53
aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmhlaWdodEF0TGV2
ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAg
ICAgIChUZXh0dXJlMURSVy5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMURS
Vy5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMURBcnJheVJXKToKKyAg
ICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAgICAgICAgKFRl
eHR1cmUxREFycmF5UlcucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJl
MURBcnJheVJXLnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUxREFycmF5Ulcu
cHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEUlcpOgorICAgICAgICAo
VGV4dHVyZTJEUlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkRS
Vy5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkRSVy5wcm90b3R5
cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlwZS5lbGVtZW50
KToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlwZS5zZXRFbGVtZW50KToKKyAgICAgICAg
KFRleHR1cmUyREFycmF5UlcpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUu
d2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90eXBlLmhlaWdo
dEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUuZGVwdGhBdExl
dmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90eXBlLmVsZW1lbnQpOgorICAg
ICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChs
ZXQuVGV4dHVyZURlcHRoMkRBcnJheVJXLlRleHR1cmUyREFycmF5UlcuVGV4dHVyZTNEUlcpOgor
ICAgICAgICAobGV0LlRleHR1cmVEZXB0aDJEQXJyYXlSVy5UZXh0dXJlMkRBcnJheVJXLlRleHR1
cmUzRFJXLnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAobGV0LlRleHR1cmVEZXB0
aDJEQXJyYXlSVy5UZXh0dXJlMkRBcnJheVJXLlRleHR1cmUzRFJXLnByb3RvdHlwZS5oZWlnaHRB
dExldmVsKToKKyAgICAgICAgKGxldC5UZXh0dXJlRGVwdGgyREFycmF5UlcuVGV4dHVyZTJEQXJy
YXlSVy5UZXh0dXJlM0RSVy5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKGxldC5U
ZXh0dXJlRGVwdGgyREFycmF5UlcuVGV4dHVyZTJEQXJyYXlSVy5UZXh0dXJlM0RSVy5wcm90b3R5
cGUuZWxlbWVudCk6CisgICAgICAgIChsZXQuVGV4dHVyZURlcHRoMkRBcnJheVJXLlRleHR1cmUy
REFycmF5UlcuVGV4dHVyZTNEUlcucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1cmVPcGVyYXRpb25zLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGRlcHRoQ29tcGFyZU9wZXJhdGlvbik6CisgICAgICAgIChjb252ZXJzaW9uVG9SR0JBKToK
KyAgICAgICAgKHByb2plY3Rpb25PcGVyYXRpb24pOgorICAgICAgICAoY3ViZU1hcEZhY2VTZWxl
Y3Rpb24pOgorICAgICAgICAoY3ViZU1hcENvb3JkaW5hdGVUcmFuc2Zvcm1hdGlvbik6CisgICAg
ICAgIChjdWJlTWFwRGVyaXZhdGl2ZVRyYW5zZm9ybWF0aW9uKToKKyAgICAgICAgKHNjYWxlRmFj
dG9yT3BlcmF0aW9uKToKKyAgICAgICAgKGxldmVsT2ZEZXRhaWxPcGVyYXRpb24pOgorICAgICAg
ICAobmVhcmVzdCk6CisgICAgICAgIChpbWFnZUxldmVsU2VsZWN0aW9uKToKKyAgICAgICAgKHN0
cnFhVG9VVldBVHJhbnNmb3JtYXRpb24pOgorICAgICAgICAocm5lKToKKyAgICAgICAgKHV2d2FU
b0lKS0xOVHJhbnNmb3JtYXRpb25BbmRBcnJheUxheWVyU2VsZWN0aW9uKToKKyAgICAgICAgKGlu
dGVnZXJUZXhlbENvb3JkaW5hdGVPcGVyYXRpb25zKToKKyAgICAgICAgKG1pcnJvcik6CisgICAg
ICAgICh0cmFuc2Zvcm0pOgorICAgICAgICAod3JhcHBpbmdPcGVyYXRpb24pOgorICAgICAgICAo
Y2FsY3VsYXRlTGFtYmRhKToKKyAgICAgICAgKHNob3VsZEJlQm9yZGVyKToKKyAgICAgICAgKGFj
Y2Vzc0NvbG9yKToKKyAgICAgICAgKGNvbXB1dGVUYXUpOgorICAgICAgICAocmVkdWNlKToKKyAg
ICAgICAgKHRleGVsR2F0aGVyaW5nKToKKyAgICAgICAgKGNvbXB1dGVDb2xvckZyb21MZXZlbCk6
CisgICAgICAgICh0ZXhlbEZpbHRlcmluZyk6CisgICAgICAgIChjYXN0VG9Jbm5lclR5cGVGb3JH
YXRoZXIpOgorICAgICAgICAoZ2F0aGVyVGV4dHVyZSk6CisgICAgICAgIChjYXN0VG9Jbm5lclR5
cGUpOgorICAgICAgICAoc2FtcGxlVGV4dHVyZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAxOC0wOS0wMSAgTWljaGFlbCBDYXRhbnphcm8gIDxt
Y2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV0gMi4yMS45MSBmYWlscyB0byBi
dWlsZCB3aXRoIEVOQUJMRV9NSU5JQlJPV1NFUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvQWxsLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxs
LmpzCmluZGV4IDljMmEzNzE1MGMxZTk3NmI5MjZjZmJlZTIzNDM3NTIwYThkZTRhNDcuLjkwZmM4
NDEzYTY1MTIyNDQ2YmYwMWZkOTY3ZGQ2NTEzOWEwZjg3ZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9BbGwuanMKQEAgLTUxLDYgKzUxLDcgQEAgbG9hZCgiQnVpbHRpblZlY3RvckdldHRl
ci5qcyIpOwogbG9hZCgiQnVpbHRpblZlY3RvclNldHRlci5qcyIpOwogbG9hZCgiQ2FsbEV4cHJl
c3Npb24uanMiKTsKIGxvYWQoIkNhbGxGdW5jdGlvbi5qcyIpOworbG9hZCgiQ2FzdHMuanMiKTsK
IGxvYWQoIkNoZWNrLmpzIik7CiBsb2FkKCJDaGVja0xpdGVyYWxUeXBlcy5qcyIpOwogbG9hZCgi
Q2hlY2tMb29wcy5qcyIpOwpAQCAtMTM4LDYgKzEzOSw3IEBAIGxvYWQoIlJlc29sdmVUeXBlRGVm
cy5qcyIpOwogbG9hZCgiUmV0dXJuLmpzIik7CiBsb2FkKCJSZXR1cm5DaGVja2VyLmpzIik7CiBs
b2FkKCJSZXR1cm5FeGNlcHRpb24uanMiKTsKK2xvYWQoIlNhbXBsZXIuanMiKTsKIGxvYWQoIlN0
YW5kYXJkTGlicmFyeS5qcyIpOwogbG9hZCgiU3RhdGVtZW50Q2xvbmVyLmpzIik7CiBsb2FkKCJT
dHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIik7CkBAIC0xNTAsNiArMTUyLDggQEAgbG9hZCgiU3ludGhl
c2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyIpOwogbG9hZCgiU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rv
ck9wZXJhdG9yLmpzIik7CiBsb2FkKCJTeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0
b3IuanMiKTsKIGxvYWQoIlRlcm5hcnlFeHByZXNzaW9uLmpzIik7Citsb2FkKCJUZXh0dXJlLmpz
Iik7Citsb2FkKCJUZXh0dXJlT3BlcmF0aW9ucy5qcyIpOwogbG9hZCgiVHJhcFN0YXRlbWVudC5q
cyIpOwogbG9hZCgiVHlwZURlZi5qcyIpOwogbG9hZCgiVHlwZURlZlJlc29sdmVyLmpzIik7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYXN0cy5qcyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Nhc3RzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjYmIyZWEwMjg1
MzViNDY3MDQyMzA5N2Y3YTViNTdjYWY2YjhiMWMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYXN0cy5qcwpAQCAtMCwwICsxLDExNSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworInVzZSBzdHJpY3QiOworCitm
dW5jdGlvbiBjYXN0KHR5cGVkQXJyYXlDb25zdHJ1Y3RvciwgbnVtYmVyKQoreworICAgIHZhciBh
cnJheSA9IG5ldyB0eXBlZEFycmF5Q29uc3RydWN0b3IoMSk7CisgICAgYXJyYXlbMF0gPSBudW1i
ZXI7CisgICAgcmV0dXJuIGFycmF5WzBdOworfQorCitmdW5jdGlvbiBiaXR3aXNlQ2FzdCh0eXBl
ZEFycmF5Q29uc3RydWN0b3IxLCB0eXBlZEFycmF5Q29uc3RydWN0b3IyLCB2YWx1ZSkKK3sKKyAg
ICBsZXQgdHlwZWRBcnJheTEgPSBuZXcgdHlwZWRBcnJheUNvbnN0cnVjdG9yMSgxKTsKKyAgICBs
ZXQgdHlwZWRBcnJheTIgPSBuZXcgdHlwZWRBcnJheUNvbnN0cnVjdG9yMih0eXBlZEFycmF5MS5i
dWZmZXIpOworICAgIHR5cGVkQXJyYXkxWzBdID0gdmFsdWU7CisgICAgcmV0dXJuIHR5cGVkQXJy
YXkyWzBdOworfQorCitmdW5jdGlvbiBjYXN0VG9VY2hhcihudW1iZXIpCit7CisgICAgcmV0dXJu
IG51bWJlciAmIDB4RkY7Cit9CisKK2Z1bmN0aW9uIGNhc3RUb1VzaG9ydChudW1iZXIpCit7Cisg
ICAgcmV0dXJuIG51bWJlciAmIDB4RkZGRjsKK30KKworZnVuY3Rpb24gY2FzdFRvVWludChudW1i
ZXIpCit7CisgICAgcmV0dXJuIG51bWJlciA+Pj4gMDsKK30KKworZnVuY3Rpb24gY2FzdFRvQ2hh
cihudW1iZXIpCit7CisgICAgcmV0dXJuIGNhc3QoSW50OEFycmF5LCBudW1iZXIpOworfQorCitm
dW5jdGlvbiBjYXN0VG9TaG9ydChudW1iZXIpCit7CisgICAgcmV0dXJuIGNhc3QoSW50MTZBcnJh
eSwgbnVtYmVyKTsKK30KKworZnVuY3Rpb24gY2FzdFRvSW50KG51bWJlcikKK3sKKyAgICByZXR1
cm4gbnVtYmVyIHwgMDsKK30KKworZnVuY3Rpb24gY2FzdFRvSGFsZihudW1iZXIpCit7CisgICAg
Ly8gRklYTUU6IE1ha2UgdGhpcyBtYXRoIG9iZXkgSUVFRSA3NTQuCisgICAgaWYgKE51bWJlci5p
c05hTihudW1iZXIpKQorICAgICAgIHJldHVybiBudW1iZXIKKyAgICBpZiAobnVtYmVyID4gNjU1
MDQpCisgICAgICAgIHJldHVybiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CisgICAgaWYgKG51
bWJlciA8IC02NTUwNCkKKyAgICAgICAgcmV0dXJuIE51bWJlci5ORUdBVElWRV9JTkZJTklUWTsK
KyAgICBpZiAobnVtYmVyID4gMCAmJiBudW1iZXIgPCBNYXRoLnBvdygyLCAtMjQpKQorICAgICAg
ICByZXR1cm4gMDsKKyAgICBpZiAobnVtYmVyIDwgMCAmJiBudW1iZXIgPiAtTWF0aC5wb3coMiwg
LTI0KSkKKyAgICAgICAgcmV0dXJuIC0wOworICAgIGxldCBkb3VibGVBcnJheSA9IG5ldyBGbG9h
dDY0QXJyYXkoMSk7CisgICAgbGV0IHVpbnRBcnJheSA9IG5ldyBVaW50OEFycmF5KGRvdWJsZUFy
cmF5LmJ1ZmZlcik7CisgICAgZG91YmxlQXJyYXlbMF0gPSBudW1iZXI7CisgICAgbGV0IHNpZ24g
PSB1aW50QXJyYXlbN10gJiAweDgwOworICAgIGxldCBleHBvbmVudCA9ICgodWludEFycmF5Wzdd
ICYgMHg3ZikgPDwgNCkgfCAoKHVpbnRBcnJheVs2XSAmIDB4ZjApID4+PiA0KTsKKyAgICBsZXQg
c2lnbmlmaWNhbmQgPSAoKHVpbnRBcnJheVs2XSAmIDB4MGYpIDw8IDYpIHwgKCh1aW50QXJyYXlb
NV0gJiAweGZjKSA+Pj4gMik7CisKKyAgICBpZiAoKGV4cG9uZW50IC0gMTAyMykgPCAtMTQpIHsK
KyAgICAgICAgZXhwb25lbnQgPSAwOworICAgICAgICBzaWduaWZpY2FuZCA9IChNYXRoLmFicyhu
dW1iZXIpICogTWF0aC5wb3coMiwgMjQpKSA+Pj4gMDsKKyAgICAgICAgbGV0IHZhbHVlID0gTWF0
aC5wb3coMiwgLTE0KSAqIHNpZ25pZmljYW5kIC8gMTAyNDsKKyAgICAgICAgaWYgKHNpZ24gIT0g
MCkKKyAgICAgICAgICAgIHZhbHVlICo9IC0xOworICAgICAgICByZXR1cm4gdmFsdWU7CisgICAg
fQorCisgICAgZG91YmxlQXJyYXlbMF0gPSAwOworCisgICAgdWludEFycmF5WzddIHw9IHNpZ247
CisgICAgdWludEFycmF5WzddIHw9IChleHBvbmVudCA+Pj4gNCk7CisgICAgdWludEFycmF5WzZd
IHw9ICgoZXhwb25lbnQgPDwgNCkgJiAweGYwKTsKKyAgICB1aW50QXJyYXlbNl0gfD0gKHNpZ25p
ZmljYW5kID4+PiA2KTsKKyAgICB1aW50QXJyYXlbNV0gfD0gKChzaWduaWZpY2FuZCA8PCAyKSAm
IDB4ZmMpOworCisgICAgcmV0dXJuIGRvdWJsZUFycmF5WzBdOworfQorCitmdW5jdGlvbiBjYXN0
VG9GbG9hdChudW1iZXIpCit7CisgICAgcmV0dXJuIE1hdGguZnJvdW5kKG51bWJlcik7Cit9CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcwppbmRleCBiMDA0MDY3
ZjVlYmZiM2E4YjRiZDk4ZTQzN2E4YzA3NjhiZTI2ZjFlLi5hNTNkNzliNTVmYWVjN2VhYzA0ZjE1
YWJlMDU4YzAwNTk2ZTcxMjc4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9JbnRyaW5zaWNzLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lu
dHJpbnNpY3MuanMKQEAgLTQ4LDYxICs0OCw2IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBjYXN0KHR5
cGVkQXJyYXlDb25zdHJ1Y3RvciwgbnVtYmVyKQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIg
YXJyYXkgPSBuZXcgdHlwZWRBcnJheUNvbnN0cnVjdG9yKDEpOwotICAgICAgICAgICAgYXJyYXlb
MF0gPSBudW1iZXI7Ci0gICAgICAgICAgICByZXR1cm4gYXJyYXlbMF07Ci0gICAgICAgIH0KLQot
ICAgICAgICBmdW5jdGlvbiBiaXR3aXNlQ2FzdCh0eXBlZEFycmF5Q29uc3RydWN0b3IxLCB0eXBl
ZEFycmF5Q29uc3RydWN0b3IyLCB2YWx1ZSkKLSAgICAgICAgewotICAgICAgICAgICAgbGV0IHR5
cGVkQXJyYXkxID0gbmV3IHR5cGVkQXJyYXlDb25zdHJ1Y3RvcjEoMSk7Ci0gICAgICAgICAgICBs
ZXQgdHlwZWRBcnJheTIgPSBuZXcgdHlwZWRBcnJheUNvbnN0cnVjdG9yMih0eXBlZEFycmF5MS5i
dWZmZXIpOwotICAgICAgICAgICAgdHlwZWRBcnJheTFbMF0gPSB2YWx1ZTsKLSAgICAgICAgICAg
IHJldHVybiB0eXBlZEFycmF5MlswXTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIGNh
c3RUb0hhbGYobnVtYmVyKQotICAgICAgICB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogTWFrZSB0
aGlzIG1hdGggb2JleSBJRUVFIDc1NC4KLSAgICAgICAgICAgIGlmIChOdW1iZXIuaXNOYU4obnVt
YmVyKSkKLSAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIKLSAgICAgICAgICAgIGlmIChudW1i
ZXIgPiA2NTUwNCkKLSAgICAgICAgICAgICAgICByZXR1cm4gTnVtYmVyLlBPU0lUSVZFX0lORklO
SVRZOwotICAgICAgICAgICAgaWYgKG51bWJlciA8IC02NTUwNCkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOwotICAgICAgICAgICAgaWYgKG51bWJlciA+
IDAgJiYgbnVtYmVyIDwgTWF0aC5wb3coMiwgLTI0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4g
MDsKLSAgICAgICAgICAgIGlmIChudW1iZXIgPCAwICYmIG51bWJlciA+IC1NYXRoLnBvdygyLCAt
MjQpKQotICAgICAgICAgICAgICAgIHJldHVybiAtMDsKLSAgICAgICAgICAgIGxldCBkb3VibGVB
cnJheSA9IG5ldyBGbG9hdDY0QXJyYXkoMSk7Ci0gICAgICAgICAgICBsZXQgdWludEFycmF5ID0g
bmV3IFVpbnQ4QXJyYXkoZG91YmxlQXJyYXkuYnVmZmVyKTsKLSAgICAgICAgICAgIGRvdWJsZUFy
cmF5WzBdID0gbnVtYmVyOwotICAgICAgICAgICAgbGV0IHNpZ24gPSB1aW50QXJyYXlbN10gJiAw
eDgwOwotICAgICAgICAgICAgbGV0IGV4cG9uZW50ID0gKCh1aW50QXJyYXlbN10gJiAweDdmKSA8
PCA0KSB8ICgodWludEFycmF5WzZdICYgMHhmMCkgPj4+IDQpOwotICAgICAgICAgICAgbGV0IHNp
Z25pZmljYW5kID0gKCh1aW50QXJyYXlbNl0gJiAweDBmKSA8PCA2KSB8ICgodWludEFycmF5WzVd
ICYgMHhmYykgPj4+IDIpOwotCi0gICAgICAgICAgICBpZiAoKGV4cG9uZW50IC0gMTAyMykgPCAt
MTQpIHsKLSAgICAgICAgICAgICAgICBleHBvbmVudCA9IDA7Ci0gICAgICAgICAgICAgICAgc2ln
bmlmaWNhbmQgPSAoTWF0aC5hYnMobnVtYmVyKSAqIE1hdGgucG93KDIsIDI0KSkgPj4+IDA7Ci0g
ICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gTWF0aC5wb3coMiwgLTE0KSAqIHNpZ25pZmljYW5k
IC8gMTAyNDsKLSAgICAgICAgICAgICAgICBpZiAoc2lnbiAhPSAwKQotICAgICAgICAgICAgICAg
ICAgICB2YWx1ZSAqPSAtMTsKLSAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIGRvdWJsZUFycmF5WzBdID0gMDsKLQotICAgICAgICAgICAg
dWludEFycmF5WzddIHw9IHNpZ247Ci0gICAgICAgICAgICB1aW50QXJyYXlbN10gfD0gKGV4cG9u
ZW50ID4+PiA0KTsKLSAgICAgICAgICAgIHVpbnRBcnJheVs2XSB8PSAoKGV4cG9uZW50IDw8IDQp
ICYgMHhmMCk7Ci0gICAgICAgICAgICB1aW50QXJyYXlbNl0gfD0gKHNpZ25pZmljYW5kID4+PiA2
KTsKLSAgICAgICAgICAgIHVpbnRBcnJheVs1XSB8PSAoKHNpZ25pZmljYW5kIDw8IDIpICYgMHhm
Yyk7Ci0KLSAgICAgICAgICAgIHJldHVybiBkb3VibGVBcnJheVswXTsKLSAgICAgICAgfQotCiAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgdm9pZCIs
CiAgICAgICAgICAgICB0eXBlID0+IHsKQEAgLTEyOCwxNSArNzMsMTUgQEAgY2xhc3MgSW50cmlu
c2ljcyB7CiAgICAgICAgICAgICAgICAgdHlwZS5pc0ludCA9IHRydWU7CiAgICAgICAgICAgICAg
ICAgdHlwZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9
IGZhbHNlOwotICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNC
aXR3aXNlRXF1aXZhbGVudCh2YWx1ZSAmIDB4ZmYsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICB0
eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvVWNo
YXIodmFsdWUpLCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKICAgICAg
ICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5j
cmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3Jp
Z2luLCB2YWx1ZSAmIDB4ZmYsIHR5cGUpOwotICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29y
VmFsdWUgPSB2YWx1ZSA9PiAodmFsdWUgKyAxKSAmIDB4ZmY7CisgICAgICAgICAgICAgICAgdHlw
ZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUo
b3JpZ2luLCBjYXN0VG9VY2hhcih2YWx1ZSksIHR5cGUpOworICAgICAgICAgICAgICAgIHR5cGUu
c3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0VG9VY2hhcih2YWx1ZSArIDEpOwogICAgICAg
ICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKICAgICAgICAg
ICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBi
dWZmZXIuc2V0KG9mZnNldCwgMCk7Ci0gICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZy
b21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAweGZmOwotICAgICAgICAgICAgICAgIHR5
cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmY7Cisg
ICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4g
Y2FzdFRvVWNoYXIodmFsdWUpOworICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9t
VWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9VY2hhcih2YWx1ZSk7CiAgICAgICAgICAgICAg
ICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7CiAgICAgICAgICAgICAgICAgICAgIGZv
ciAobGV0IGkgPSAwOyBpIDw9IDB4ZmY7ICsraSkKICAgICAgICAgICAgICAgICAgICAgICAgIHlp
ZWxkIHt2YWx1ZTogaSwgbmFtZTogaX07CkBAIC0xNTIsMTUgKzk3LDE1IEBAIGNsYXNzIEludHJp
bnNpY3MgewogICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAg
ICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWdu
ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9
PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVlICYgMHhmZmZmLCB2YWx1ZSk7CisgICAgICAgICAg
ICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChj
YXN0VG9Vc2hvcnQodmFsdWUpLCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9
IDE7CiAgICAgICAgICAgICAgICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAg
ICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwu
d2l0aFR5cGUob3JpZ2luLCB2YWx1ZSAmIDB4ZmZmZiwgdHlwZSk7Ci0gICAgICAgICAgICAgICAg
IHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiAodmFsdWUgKyAxKSAmIDB4ZmZmZjsKKyAg
ICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IElu
dExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBjYXN0VG9Vc2hvcnQodmFsdWUpLCB0eXBlKTsKKyAg
ICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+IGNhc3RUb1VzaG9y
dCh2YWx1ZSArIDEpOwogICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIp
ID0+IGEgPT09IGI7CiAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUg
PSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAg
ICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAw
eGZmZmY7Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwg
PSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmZmZjsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRW
YWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvVXNob3J0KHZhbHVlKTsKKyAgICAg
ICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IGNh
c3RUb1VzaG9ydCh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVu
Y3Rpb24qKCkgewogICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhm
ZmZmOyArK2kpCiAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVlOiBpLCBuYW1l
OiBpfTsKQEAgLTE3NSwxNSArMTIwLDE1IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAg
ICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJl
ciA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSBmYWxzZTsKLSAgICAg
ICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFs
ZW50KHZhbHVlID4+PiAwLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVz
ZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0VG9VaW50KHZhbHVlKSwgdmFs
dWUpOwogICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOwogICAgICAgICAgICAgICAgICB0
eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJh
bCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgdmFsdWUg
Pj4+IDAsIHR5cGUpOwotICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFs
dWUgPT4gKHZhbHVlICsgMSkgPj4+IDA7CisgICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0
ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2Fz
dFRvVWludCh2YWx1ZSksIHR5cGUpOworICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZh
bHVlID0gdmFsdWUgPT4gY2FzdFRvVWludCh2YWx1ZSArIDEpOwogICAgICAgICAgICAgICAgICB0
eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7CiAgICAgICAgICAgICAgICAgIHR5
cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQo
b2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRl
cmFsID0gdmFsdWUgPT4gdmFsdWUgPj4+IDA7Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0
VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSA+Pj4gMDsKKyAgICAgICAgICAg
ICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvVWlu
dCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVy
YWwgPSB2YWx1ZSA9PiBjYXN0VG9VaW50KHZhbHVlKTsKICAgICAgICAgICAgICAgICAgdHlwZS5h
bGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBp
ID0gMDsgaSA8PSAweGZmZmZmZmZmOyArK2kpCiAgICAgICAgICAgICAgICAgICAgICAgICAgeWll
bGQge3ZhbHVlOiBpLCBuYW1lOiBpfTsKQEAgLTE5OCwxOCArMTQzLDE4IEBAIGNsYXNzIEludHJp
bnNpY3MgewogICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAg
ICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWdu
ZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+
IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdChJbnQ4QXJyYXksIHZhbHVlKSwgdmFsdWUpOworICAg
ICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2
YWxlbnQoY2FzdFRvQ2hhcih2YWx1ZSksIHZhbHVlKTsKICAgICAgICAgICAgICAgICAgdHlwZS5z
aXplID0gMTsKICAgICAgICAgICAgICAgICAgdHlwZS5kZWZhdWx0VmFsdWUgPSAwOwotICAgICAg
ICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0
ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3QoSW50OEFycmF5LCB2YWx1ZSksIHR5cGUpOwotICAg
ICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdChJbnQ4QXJy
YXksIHZhbHVlICsgMSk7CisgICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChv
cmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2FzdFRvQ2hhcih2
YWx1ZSksIHR5cGUpOworICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFs
dWUgPT4gY2FzdFRvQ2hhcih2YWx1ZSArIDEpOwogICAgICAgICAgICAgICAgICB0eXBlLnZhbHVl
c0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7CiAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxh
dGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAw
KTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFs
dWUgPT4gY2FzdChJbnQ4QXJyYXksIHZhbHVlKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3Jt
YXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3QoSW50OEFycmF5LCB2YWx1ZSk7
CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVl
ID0+IGNhc3RUb0NoYXIodmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVl
RnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvQ2hhcih2YWx1ZSk7CiAgICAgICAgICAg
ICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVuY3Rpb24qKCkgewogICAgICAgICAgICAgICAgICAg
ICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhmZjsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IHZhbHVlID0gY2FzdChJbnQ4QXJyYXksIGkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCB2YWx1ZSA9IGNhc3RUb0NoYXIoaSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgeWllbGQge3ZhbHVlOiB2YWx1ZSwgbmFtZTogdmFsdWV9OwogICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICB9OwpAQCAtMjIzLDE4ICsxNjgsMTggQEAgY2xhc3MgSW50
cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNJbnQgPSB0cnVlOwogICAgICAgICAg
ICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc1Np
Z25lZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUg
PT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0KEludDE2QXJyYXksIHZhbHVlKSwgdmFsdWUpOwor
ICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVx
dWl2YWxlbnQoY2FzdFRvU2hvcnQodmFsdWUpLCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5
cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAgICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAg
ICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IElu
dExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBjYXN0KEludDE2QXJyYXksIHZhbHVlKSwgdHlwZSk7
Ci0gICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0KElu
dDE2QXJyYXksIHZhbHVlICsgMSk7CisgICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJh
bCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2FzdFRv
U2hvcnQodmFsdWUpLCB0eXBlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1
ZSA9IHZhbHVlID0+IGNhc3RUb1Nob3J0KHZhbHVlICsgMSk7CiAgICAgICAgICAgICAgICAgIHR5
cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKICAgICAgICAgICAgICAgICAgdHlw
ZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChv
ZmZzZXQsIDApOwotICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVy
YWwgPSB2YWx1ZSA9PiBjYXN0KEludDE2QXJyYXksIHZhbHVlKTsKLSAgICAgICAgICAgICAgICAg
dHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3QoSW50MTZBcnJh
eSwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVy
YWwgPSB2YWx1ZSA9PiBjYXN0VG9TaG9ydCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUu
Zm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9TaG9ydCh2YWx1ZSk7
CiAgICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVuY3Rpb24qKCkgewogICAgICAg
ICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhmZmZmOyArK2kpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBjYXN0KEludDE2QXJyYXksIGkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGNhc3RUb1Nob3J0KGkpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogdmFsdWUsIG5hbWU6IHZhbHVlfTsKICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfTsKQEAgLTI0OCwxOCArMTkz
LDE4IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0g
dHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAg
ICAgICAgIHR5cGUuaXNTaWduZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICB0eXBlLmNhblJl
cHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQodmFsdWUgfCAwLCB2YWx1ZSk7
CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNl
RXF1aXZhbGVudChjYXN0VG9JbnQodmFsdWUpLCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5
cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAgICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAg
ICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IElu
dExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2YWx1ZSB8IDAsIHR5cGUpOwotICAgICAgICAgICAg
ICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gKHZhbHVlICsgMSkgfCAwOworICAg
ICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50
TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3RUb0ludCh2YWx1ZSksIHR5cGUpOworICAgICAg
ICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdFRvSW50KHZhbHVl
ICsgMSk7CiAgICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9
PT0gYjsKICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZm
ZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOwotICAgICAgICAgICAgICAgICB0
eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSB8IDA7Ci0gICAg
ICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2
YWx1ZSB8IDA7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJh
bCA9IHZhbHVlID0+IGNhc3RUb0ludCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9y
bWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9JbnQodmFsdWUpOwogICAg
ICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsKICAgICAgICAgICAg
ICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmZmZmZmZmY7ICsraSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGkgfCAwOworICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCB2YWx1ZSA9IGNhc3RUb0ludChpKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICB5aWVsZCB7dmFsdWU6IHZhbHVlLCBuYW1lOiB2YWx1ZX07CiAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgIH07CkBAIC0yOTIsNyArMjM3LDcgQEAgY2xhc3MgSW50cmlu
c2ljcyB7CiAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVm
ZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKICAgICAgICAgICAgICAgICAg
dHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWU7CiAgICAgICAg
ICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1
ZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21GbG9hdExpdGVyYWwgPSB2
YWx1ZSA9PiBNYXRoLmZyb3VuZCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0
VmFsdWVGcm9tRmxvYXRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvRmxvYXQodmFsdWUpOwogICAg
ICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCkBAIC0zMzAsNyArMjc1LDgg
QEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgc2FtcGxl
ciIsCiAgICAgICAgICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAgICB0aGlzLnNhbXBsZXIg
PSB0eXBlOwotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gcHV0
IGhlcmUuCisgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICB0
eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0
KG9mZnNldCwge30pOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgZm9yIChsZXQgdGV4dHVy
ZVR5cGUgb2YgWyJUZXh0dXJlMUQiLCAiUldUZXh0dXJlMUQiLCAiVGV4dHVyZTFEQXJyYXkiLCAi
UldUZXh0dXJlMURBcnJheSIsICJUZXh0dXJlMkQiLCAiUldUZXh0dXJlMkQiLCAiVGV4dHVyZTJE
QXJyYXkiLCAiUldUZXh0dXJlMkRBcnJheSIsICJUZXh0dXJlM0QiLCAiUldUZXh0dXJlM0QiLCAi
VGV4dHVyZUN1YmUiXSkgewpAQCAtMzM5LDEyICsyODUsMTYgQEAgY2xhc3MgSW50cmluc2ljcyB7
CiAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdHlwZWRlZiAke3RleHR1cmVUeXBlfTwke3R5
cGVBcmd1bWVudH0+YCwKICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YF0gPSB0
eXBlOworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQp
ID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCB7fSk7CiAgICAgICAgICAgICAgICAgICAgIH0pOwogICAg
ICAgICAgICAgICAgIGZvciAobGV0IGkgPSAyOyBpIDw9IDQ7ICsraSkgewogICAgICAgICAgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0
eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fSR7aX0+YCwKICAgICAgICAgICAg
ICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNb
YCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fSR7aX0+YF0gPSB0eXBlOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVm
ZmVyLnNldChvZmZzZXQsIHt9KTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTM1Niw2ICszMDYsOCBAQCBjbGFzcyBJbnRy
aW5zaWNzIHsKICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5
cGV9PCR7dHlwZUFyZ3VtZW50fT5gLAogICAgICAgICAgICAgICAgICAgICB0eXBlID0+IHsKICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50
fT5gXSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAg
ICAgICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIs
IG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIHt9KTsKICAgICAgICAgICAgICAgICAgICAg
fSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTM2NCw3ICszMTYsNyBAQCBjbGFzcyBJ
bnRyaW5zaWNzIHsKICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAgICAg
YG5hdGl2ZSBvcGVyYXRvciB1Y2hhcigke3ByaW1pdGl2ZVR5cGV9KWAsCiAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgJiAweGZmKTsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChj
YXN0VG9VY2hhcih2YWx1ZS5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgICAgIH0pOwogICAg
ICAgICB9CiAKQEAgLTM3Miw3ICszMjQsNyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciB1c2hv
cnQoJHtwcmltaXRpdmVUeXBlfSlgLAogICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94
KHZhbHVlLmxvYWRWYWx1ZSgpICYgMHhmZmZmKTsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9Vc2hvcnQodmFsdWUu
bG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgfQogCkBAIC0zODAs
NyArMzMyLDcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAogICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgdWludCgke3ByaW1pdGl2ZVR5cGV9
KWAsCiAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkg
Pj4+IDApOworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1
ZV0pID0+IEVQdHIuYm94KGNhc3RUb1VpbnQodmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfQogCkBAIC0zODgsNyArMzQwLDcgQEAgY2xhc3MgSW50cmlu
c2ljcyB7CiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgICAgIGBuYXRp
dmUgb3BlcmF0b3IgY2hhcigke3ByaW1pdGl2ZVR5cGV9KWAsCiAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVl
XSkgPT4gRVB0ci5ib3goY2FzdChJbnQ4QXJyYXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5i
b3goY2FzdFRvQ2hhcih2YWx1ZS5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgICAgIH0pOwog
ICAgICAgICB9CiAKQEAgLTM5Niw3ICszNDgsNyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciBz
aG9ydCgke3ByaW1pdGl2ZVR5cGV9KWAsCiAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5i
b3goY2FzdChJbnQxNkFycmF5LCB2YWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb1No
b3J0KHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgIH0K
IApAQCAtNDIwLDcgKzM3Miw3IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKICAgICAgICAgICAgICAgICBgbmF0aXZlIG9wZXJhdG9yIGZsb2F0KCR7cHJp
bWl0aXZlVHlwZX0pYCwKICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChNYXRoLmZy
b3VuZCh2YWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb0Zsb2F0KHZhbHVlLmxvYWRW
YWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KIApAQCAtNDg0LDI5MiAr
NDM2LDI5MiBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICJuYXRpdmUgaW50IG9w
ZXJhdG9yLShpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goKC12YWx1ZS5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goY2FzdFRvSW50KC12YWx1ZS5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAK
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0
b3ItKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KE1hdGguZnJvdW5kKC12YWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChjYXN0VG9GbG9hdCgtdmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAg
IH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBv
cGVyYXRvcisoaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8
IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5sb2FkVmFs
dWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0
aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3ItKGludCxpbnQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
KGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2Fk
VmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAg
ICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yKihpbnQsaW50KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCBy
aWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgp
ICogcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KGNhc3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAg
ICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZl
IGludCBvcGVyYXRvci8oaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1
ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5s
b2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAg
ICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yKyh1
aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOwor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxlZnQubG9hZFZhbHVlKCkg
KyByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5f
bWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvci0odWludCx1aW50KSIs
CiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChs
ZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWludChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9h
ZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAg
ICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3IqKHVpbnQsdWludCkiLAogICAgICAgICAg
ICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFs
dWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAg
Im5hdGl2ZSB1aW50IG9wZXJhdG9yLyh1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4g
ewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLyByaWdo
dC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0
VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAg
ICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxv
YXQgb3BlcmF0b3IrKGZsb2F0LGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgKyBy
aWdodC5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9G
bG9hdChsZWZ0LmxvYWRWYWx1ZSgpICsgcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAg
IH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0
IG9wZXJhdG9yLShmbG9hdCxmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmln
aHQubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxv
YXQobGVmdC5sb2FkVmFsdWUoKSAtIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9
KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBv
cGVyYXRvciooZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0
LmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0
KGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7
CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3Bl
cmF0b3IvKGZsb2F0LGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5s
b2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChs
ZWZ0LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwog
CiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRv
ciYoaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSAm
IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9t
YXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3J8KGludCxpbnQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQu
bG9hZFZhbHVlKCkgfCByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkgfCByaWdodC5sb2FkVmFsdWUo
KSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAg
ICAgICJuYXRpdmUgaW50IG9wZXJhdG9yXihpbnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+
IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0p
ID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmln
aHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RU
b0ludChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAg
IH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBv
cGVyYXRvcn4oaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KCh+dmFsdWUubG9hZFZh
bHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFs
dWVdKSA9PiBFUHRyLmJveChjYXN0VG9JbnQofnZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAg
ICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBp
bnQgb3BlcmF0b3I8PChpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSA8PCByaWdodC5sb2FkVmFs
dWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQu
bG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcj4+
KGludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpID4+IHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSA+
PiByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5f
bWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvciYodWludCx1aW50KSIs
CiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChs
ZWZ0LmxvYWRWYWx1ZSgpICYgcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWludChsZWZ0LmxvYWRWYWx1ZSgpICYgcmlnaHQubG9h
ZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAg
ICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3J8KHVpbnQsdWludCkiLAogICAgICAgICAg
ICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFs
dWUoKSB8IHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSB8IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAg
Im5hdGl2ZSB1aW50IG9wZXJhdG9yXih1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4g
ewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgXiByaWdo
dC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0
VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgXiByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAg
ICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWlu
dCBvcGVyYXRvcn4odWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCgofnZhbHVlLmxv
YWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9VaW50KH52YWx1ZS5sb2FkVmFsdWUoKSkpOwog
ICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJu
YXRpdmUgdWludCBvcGVyYXRvcjw8KHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7
CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9
PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSA8PCByaWdo
dC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0
VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAg
ICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVp
bnQgb3BlcmF0b3I+Pih1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgPj4+IHJpZ2h0LmxvYWRW
YWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQo
bGVmdC5sb2FkVmFsdWUoKSA+Pj4gcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNv
cyhmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChNYXRoLmZyb3VuZChNYXRoLmNvcyh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5jb3ModmFsdWUubG9hZFZhbHVlKCkp
KSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAg
ICAgIm5hdGl2ZSBmbG9hdCBzaW4oZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5zaW4odmFsdWUubG9hZFZhbHVl
KCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguc2lu
KHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5f
bWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgdGFuKGZsb2F0KSIsCiAgICAgICAg
ICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2
YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgu
dGFuKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChj
YXN0VG9GbG9hdChNYXRoLnRhbih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGFj
b3MoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goTWF0aC5mcm91bmQoTWF0aC5hY29zKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLmFjb3ModmFsdWUubG9hZFZhbHVl
KCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAg
ICAgICAgIm5hdGl2ZSBmbG9hdCBhc2luKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsK
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguYXNpbih2YWx1ZS5sb2Fk
VmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0
aC5hc2luKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAg
dGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgYXRhbihmbG9hdCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3Vu
ZChNYXRoLmF0YW4odmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguYXRhbih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAg
ICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZl
IGZsb2F0IGNvc2goZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5jb3NoKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLmNvc2godmFsdWUu
bG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0
KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBzaW5oKGZsb2F0KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0p
ID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguc2luaCh2
YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRv
RmxvYXQoTWF0aC5zaW5oKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAK
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgdGFuaChm
bG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChN
YXRoLmZyb3VuZChNYXRoLnRhbmgodmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgudGFuaCh2YWx1ZS5sb2FkVmFsdWUoKSkp
KTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAg
ICAibmF0aXZlIGZsb2F0IGNlaWwoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5jZWlsKHZhbHVlLmxvYWRWYWx1
ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLmNl
aWwodmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlz
Ll9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBleHAoZmxvYXQpIiwKICAgICAg
ICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0
aC5leHAodmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KGNhc3RUb0Zsb2F0KE1hdGguZXhwKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAg
fSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQg
Zmxvb3IoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goTWF0aC5mcm91bmQoTWF0aC5mbG9vcih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5mbG9vcih2YWx1ZS5sb2Fk
VmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAg
ICAgICAgICAgICAibmF0aXZlIGZsb2F0IGxvZyhmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9
PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9Pgot
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmxvZyh2YWx1ZS5s
b2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQo
TWF0aC5sb2codmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCByb3VuZChmbG9hdCki
LAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZy
b3VuZChNYXRoLnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwog
ICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJu
YXRpdmUgZmxvYXQgc3FydChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnNxcnQodmFsdWUubG9hZFZhbHVlKCkp
KSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguc3FydCh2
YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21h
cC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IHRydW5jKGZsb2F0KSIsCiAgICAgICAg
ICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2
YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgu
dHJ1bmModmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KGNhc3RUb0Zsb2F0KE1hdGgudHJ1bmModmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAg
ICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KApAQCAtNzg4LDcgKzc0MCw3IEBAIGNsYXNz
IEludHJpbnNpY3MgewogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBwb3coZmxvYXQsZmxvYXQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
TWF0aC5mcm91bmQoTWF0aC5wb3cobGVmdC5sb2FkVmFsdWUoKSwgcmlnaHQubG9hZFZhbHVlKCkp
KSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgucG93KGxl
ZnQubG9hZFZhbHVlKCksIHJpZ2h0LmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAK
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKQEAgLTgzMiw3ICs3ODQsNyBAQCBjbGFzcyBJbnRyaW5z
aWNzIHsKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgYXRhbjIoZmxvYXQsZmxvYXQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQoTWF0aC5hdGFuMihsZWZ0LmxvYWRWYWx1ZSgpLCByaWdodC5sb2FkVmFsdWUoKSkpKTsK
KyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5hdGFuMihsZWZ0
LmxvYWRWYWx1ZSgpLCByaWdodC5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCkBAIC05MTQsNiArODY2LDEzODggQEAgY2xhc3MgSW50cmlu
c2ljcyB7CiAKICAgICAgICAgZm9yIChsZXQgc2V0dGVyIG9mIEJ1aWx0aW5NYXRyaXhTZXR0ZXIu
ZnVuY3Rpb25zKCkpCiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KHNldHRlci50b1N0cmluZygp
LCBmdW5jID0+IHNldHRlci5pbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsKKworICAg
ICAgICBmdW5jdGlvbiBjaGVja1VuZGVmaW5lZChvcmlnaW4sIGV4cGxhbmF0aW9uLCB2YWx1ZSkK
KyAgICAgICAgeworICAgICAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkKKyAgICAgICAg
ICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQg
b2YgYm91bmRzIik7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBjaGVja0ZhbHNlKG9yaWdpbiwgZXhwbGFuYXRpb24sIHZhbHVlKQorICAg
ICAgICB7CisgICAgICAgICAgICBpZiAodmFsdWUgPT0gZmFsc2UpCisgICAgICAgICAgICAgICAg
dGhyb3cgbmV3IFdUcmFwRXJyb3IoIltTdG9yZV0iLCAiVGV4dHVyZSBzdG9yZSBvdXQgb2YgYm91
bmRzIik7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBib3hWZWN0b3IoYSkKKyAgICAg
ICAgeworICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBBcnJheSkgeworICAgICAgICAgICAg
ICAgIGxldCByZXN1bHQgPSBuZXcgRVB0cihuZXcgRUJ1ZmZlcihhLmxlbmd0aCksIDApOworICAg
ICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkKKyAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0LnNldChpLCBhW2ldKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIu
Ym94KGEpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdW5ib3hWZWN0b3IoYSwgbGVu
Z3RoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAobGVuZ3RoICE9ICIiKSB7CisgICAgICAg
ICAgICAgICAgbGVuZ3RoID0gTnVtYmVyLnBhcnNlSW50KGxlbmd0aCk7CisgICAgICAgICAgICAg
ICAgbGV0IHJlc3VsdCA9IFtdOworICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
bGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGEuZ2V0KGkpKTsK
KyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgcmV0dXJuIGEubG9hZFZhbHVlKCk7CisgICAgICAgIH0KKworICAgICAgICBm
b3IgKGxldCB0eXBlIG9mIFsidWNoYXIiLCAidXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9y
dCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICBmb3IgKHZhciBsZW5n
dGhWYXJpYWJsZSBvZiBbYGAsIGAyYCwgYDNgLCBgNGBdKSB7CisgICAgICAgICAgICAgICAgbGV0
IGxlbmd0aCA9IGxlbmd0aFZhcmlhYmxlOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4
dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9u
LmxvYWRWYWx1ZSgpLCAwLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0g
U2FtcGxlKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0IGxvY2F0aW9u
LGludCBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24ubG9hZFZhbHVlKCksIDAsIDAsIDEsIDBdOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5sb2Fk
VmFsdWUoKSwgMCwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVl
KCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1
cmUxRDwke3R5cGV9JHtsZW5ndGh9PixpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1
cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tl
ZCgwLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHts
ZW5ndGh9IExvYWQoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LGludDIgbG9jYXRpb24saW50
IG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0
aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRz
IiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMSks
IDAsIDAsIGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERp
bWVuc2lvbnMoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWludCog
dGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBudW1iZXJPZkxldmVs
c10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2Fk
VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZl
bC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0g
dGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5l
dyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50
IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lk
dGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkp
LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xl
bmd0aH0gU2FtcGxlKFRleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9j
YXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIDAsIDAsIDEsIGxvY2F0aW9uLmdldCgxKV07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0
dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJy
YXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMURBcnJheTwke3R5
cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgMCwgMCwgMSwgbG9jYXRpb24uZ2V0KDEpXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQubG9hZFZhbHVlKCksIDAs
IDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxl
VGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlv
bkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMURBcnJheTwk
e3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVh
ZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2Nh
dGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgbG9jYXRpb24uZ2V0KDApKSkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQz
IGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0
ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQg
b3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRp
b24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSArIG9mZnNl
dC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEQXJyYXk8JHt0eXBl
fSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFk
IEVsZW1lbnRzLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBlbGVtZW50cywgbnVtYmVy
T2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1
cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0g
bWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1p
cElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25l
eGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwo
bWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1
cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24u
Z2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7
bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQy
IGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24u
Z2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFB
cnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2Fk
VmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwg
bG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgp
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHts
ZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSks
IDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxl
VGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlv
bkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4
dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0MiBE
RFgsZmxvYXQyIEREWSlgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEp
LCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBb
ZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0ke2xlbmd0aH0gU2FtcGxlR3JhZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2Ft
cGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0KWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwg
MF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQo
MCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlB
cnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkQ8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9k
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2Fk
VmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5l
ZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0
aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IExPRCxpbnQyIG9mZnNldClgLAorICAg
ICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxv
ZCwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFy
cmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBv
ZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94
VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFs
dWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4
dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxv
Y2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0
KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJh
eSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFs
dWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9j
YXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0
dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJy
YXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xl
bmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0
aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEp
LCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhl
clRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRp
b25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMiIgfHwg
bGVuZ3RoID09ICIzIiB8fCBsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdh
dGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbilgLAorICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEs
IDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdh
dGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9j
YXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgMSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJH
cmVlbihUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24s
aW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
ZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRl
eHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRl
bHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCAxKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjMiIHx8
IGxlbmd0aCA9PSAiNCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVl
KFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVl
KCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9m
ZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlv
bkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNl
dC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAyKSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjQiKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkQ8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAw
LCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ym94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMykpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUy
RDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClg
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQo
MCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0Lmdl
dCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9h
ZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAzKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyRDwke3R5cGV9
JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQg
b2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlv
bi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gTG9hZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4saW50MyBsb2NhdGlvbixp
bnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxv
Y2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91
bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQo
MiksIDAsIGxvY2F0aW9uLmdldCgxKSArIG9mZnNldC5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSAr
IG9mZnNldC5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUyRDwke3R5cGV9JHts
ZW5ndGh9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVp
Z2h0LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIG51bWJlck9mTGV2ZWxz
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRW
YWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVs
LmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0
ZXgubGV2ZWxDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3
IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQg
bWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWln
aHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQp
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1
cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUo
dGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUyREFycmF5PCR7dHlwZX0k
e2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQo
MCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxv
YWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2Ft
cGxlQmlhcyhUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBs
b2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgp
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHts
ZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlhcyxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXMsIG9mZnNl
dF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFts
b2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0
KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5s
b2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgYmlhcy5sb2FkVmFsdWUoKSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVu
Z3RofSBTYW1wbGVHcmFkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSlgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9u
LmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0
KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5
LmdldCgwKSwgZGR5LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIu
bG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBkZHhBcnJh
eSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1w
bGVHcmFkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5LCBv
ZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkg
PSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgy
KV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQo
MCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlB
cnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkRBcnJh
eTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwK
KyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBsb2RdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkg
PSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgy
KV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVU
ZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9u
QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxv
YWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUxldmVsKFRleHR1
cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0
IExPRCxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24u
Z2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVy
ZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5
LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZh
bHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlMkRBcnJheTwke3R5cGV9
JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2Nh
dGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXIoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0
dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJy
YXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCAwKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUyREFycmF5PCR7dHlw
ZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFs
dWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEp
LCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhl
clRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRp
b25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMiIgfHwg
bGVuZ3RoID09ICIzIiB8fCBsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdh
dGhlckdyZWVuKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
MCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBs
ZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDEpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNl
dC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwg
c2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDEpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMyIgfHwgbGVuZ3RoID09ICI0Iikgewor
ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFy
cmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5n
ZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVl
KCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3Ro
fT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxv
Y2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxv
Y2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
ZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVy
ZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5
LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgMikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
bGVuZ3RoID09ICI0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDAp
LCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgMykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAw
LCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBd
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgNCkpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHts
ZW5ndGh9PixpbnQ0IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2Yg
Ym91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQo
MyksIGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkp
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+
LGludDQgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJl
IHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQo
bG9jYXRpb24uZ2V0KDMpLCBsb2NhdGlvbi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSArIG9m
ZnNldC5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5nZXQoMCkpKSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXRE
aW1lbnNpb25zKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWws
dWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIEVsZW1l
bnRzLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRzLCBudW1i
ZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4
dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQg
PSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
bWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5v
bmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHRBdExl
dmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxD
b3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUzRDwke3R5cGV9JHts
ZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCks
IHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHts
ZW5ndGh9IFNhbXBsZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24saW50MyBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgb2Zmc2V0
LmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihz
YW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxv
Y2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUzRDwk
e3R5cGV9JHtsZW5ndGh9PixpbnQ0IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVh
ZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBs
b2NhdGlvbi5nZXQoMyksIGxvY2F0aW9uLmdldCgyKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlv
bi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUzRDwke3R5cGV9JHtsZW5n
dGh9PixpbnQ0IGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4
dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVj
a2VkKDAsIGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIpICsgb2Zmc2V0LmdldCgyKSwg
bG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0
LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+
LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWlu
dCogdGhyZWFkIERlcHRoLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIGRl
cHRoLCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
dGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGlu
ZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGVwdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmRl
cHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWln
aHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQp
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1
cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlQmlhcyhUZXh0dXJlQ3ViZTwke3R5cGV9JHts
ZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5k
ZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4dHVyZUN1YmU8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQzIEREWCxmbG9hdDMg
RERZKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxv
Y2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9u
LmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5
ID0gW2RkeC5nZXQoMCksIGRkeC5nZXQoMSksIGRkeC5nZXQoMildOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCBkZHku
Z2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNh
bXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9j
YXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGRkeEFycmF5LCBkZHlBcnJheSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUxldmVsKFRleHR1cmVD
dWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IExPRClg
LAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIGxvZF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJh
eSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAx
LCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBs
ZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRp
b25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2Qu
bG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlQ3ViZTwke3R5
cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBs
b2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZh
bHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBs
b2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlv
bi5nZXQoMiksIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hW
ZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1
ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGlmIChsZW5ndGgg
PT0gIjIiIHx8IGxlbmd0aCA9PSAiMyIgfHwgbGVuZ3RoID09ICI0IikgeworICAgICAgICAgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAxKSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjMiIHx8IGxlbmd0aCA9PSAiNCIpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmVDdWJlPCR7dHlw
ZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJh
eSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAx
LCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAyKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rv
cihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCks
IGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDMpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAg
YG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4s
dWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50
KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBudW1iZXJPZkxldmVsc10pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFs
dWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4LmxheWVyQ291bnQgIT0g
NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDdWJl
IHRleHR1cmUgZG9lc24ndCBoYXZlIDYgZmFjZXMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGlu
ZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5o
ZWlnaHRBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
ZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQp
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERp
bWVuc2lvbnMoUldUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sdWludCogdGhyZWFkIFdpZHRo
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJX
VGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LGZsb2F0KiB0aHJlYWQgV2lkdGgpYCwKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleHR1
cmUubG9hZFZhbHVlKCkud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoUldUZXh0dXJl
MUQ8JHt0eXBlfSR7bGVuZ3RofT4saW50IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUg
cmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgw
LCAwLCAwLCAwLCBsb2NhdGlvbi5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTFE
PCR7dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0aH0sdWludCBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0ZhbHNlKCJbU3RvcmVdIiwgIlRleHR1
cmUgd3JpdGUgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENo
ZWNrZWQoMCwgMCwgMCwgMCwgbG9jYXRpb24ubG9hZFZhbHVlKCksIHVuYm94VmVjdG9yKHZhbHVl
LCBsZW5ndGgpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIH0pOworCisgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBl
fSR7bGVuZ3RofT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBFbGVtZW50cylgLAor
ICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGVsZW1lbnRzXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1
ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwg
MSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4s
ZmxvYXQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBlbGVtZW50c10pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
ZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gTG9hZChSV1RleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGludDIgbG9j
YXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNr
VW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJl
LmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgMCwgbG9j
YXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5n
dGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBvdXQg
b2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tlZChsb2NhdGlv
bi5nZXQoMSksIDAsIDAsIDAsIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0b3IodmFsdWUsIGxl
bmd0aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3Ro
fT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQpYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lv
bnMoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9h
dCogdGhyZWFkIEhlaWdodClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgd2lkdGgsIGhlaWdodF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4
ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWln
aHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChSV1RleHR1cmUyRDwke3R5cGV9
JHtsZW5ndGh9PixpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQg
b2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCAwLCAwLCBs
b2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTJE
PCR7dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0aH0sdWludDIgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0
dXJlIHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRD
aGVja2VkKDAsIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApLCB1bmJveFZl
Y3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUyREFy
cmF5PCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVp
Z2h0LHVpbnQqIHRocmVhZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
bihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53
aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUyREFycmF5PCR7dHlwZX0ke2xl
bmd0aH0+LGZsb2F0KiB0aHJlYWQgV2lkdGgsZmxvYXQqIHRocmVhZCBIZWlnaHQsZmxvYXQqIHRo
cmVhZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
d2lkdGgsIGhlaWdodCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQp
LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0ke2xlbmd0aH0gTG9hZChSV1RleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGlu
dDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9y
KGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0
ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgyKSwgMCwgMCwg
bG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUy
REFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0aH0sdWludDMgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRp
b25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIs
ICJUZXh0dXJlIHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVs
ZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgyKSwgMCwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2Nh
dGlvbi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVlLCBsZW5ndGgpKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1l
bnNpb25zKFJXVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQqIHRocmVhZCBXaWR0aCx1
aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBEZXB0aClgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZGVwdGhdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4LmRlcHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0Lmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
d2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3Ro
fT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhyZWFkIEhlaWdodCxmbG9hdCogdGhyZWFk
IERlcHRoKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwg
aGVpZ2h0LCBkZXB0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0g
dGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aC5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguZGVwdGgpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9h
ZChSV1RleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRd
IiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVt
ZW50Q2hlY2tlZCgwLCAwLCBsb2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRp
b24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sJHt0
eXBlfSR7bGVuZ3RofSx1aW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjaGVja0ZhbHNlKCJbU3RvcmVdIiwgIlRleHR1cmUgd3JpdGUgb3V0IG9mIGJvdW5k
cyIsIHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQoMCwgMCwgbG9jYXRpb24u
Z2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0b3IodmFs
dWUsIGxlbmd0aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCB0
eXBlIG9mIFsiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkQ8JHt0
eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwg
MSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9j
YXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBs
b2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQo
MCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSlgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVl
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCks
IHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVl
KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlQ21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLCR7
dHlwZX0gQ29tcGFyZVZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUu
bG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJy
YXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZh
bHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSlgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzCisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVy
byhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbiwke3R5cGV9
IENvbXBhcmVWYWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgy
RDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDAp
LCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIu
bG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgYmlhcy5sb2FkVmFsdWUoKSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZURl
cHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgQmlhcyxpbnQyIG9m
ZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgYmlhcywgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9u
QXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zm
c2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9y
KHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwg
bG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgYmlhcy5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZKWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeV0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9u
LmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVy
ZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0
aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHksIG9mZnNldF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdl
dCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCks
IG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVl
KCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFy
cmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Pixz
YW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0
KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Io
c2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBs
b2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IGxvZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IExPRCxpbnQyIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kLCBvZmZzZXRd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0
ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBk
ZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVl
KCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxv
Y2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9j
YXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0
dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClg
LAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9j
YXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwg
MF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJS
ZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBv
ZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5
ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5n
ZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRo
ZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0
aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDAp
LCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIu
bG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCksIDApKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckNt
cChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBj
b21wYXJlX3ZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9j
YXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0
YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZh
bHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZhbHVlLmxv
YWRWYWx1ZSgpLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9h
dDIgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24g
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2Nh
dGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCksIDApKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcFJlZChU
ZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBjb21w
YXJlX3ZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRp
b24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFy
cmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZhbHVlLmxvYWRW
YWx1ZSgpLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9IExvYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4saW50MyBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJl
IHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQo
MCwgbG9jYXRpb24uZ2V0KDIpLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkp
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChU
ZXh0dXJlRGVwdGgyRDwke3R5cGV9PixpbnQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0i
LCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1l
bnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0
LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0LmdldCgwKSkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlRGVw
dGgyRDwke3R5cGV9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJl
YWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgbnVtYmVyT2ZMZXZlbHNd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1
ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0
RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0
dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZy
b20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhB
dExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZl
bHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVw
dGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZz
ZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9m
ZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rv
cihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCks
IGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZh
bHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFs
dWUsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5
ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQo
MildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0Lmdl
dCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ym94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxa
ZXJvKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24s
JHt0eXBlfSBDb21wYXJlVmFsdWUpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZV0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkRBcnJh
eTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSxp
bnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9u
LmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1w
bGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIGJpYXMubG9hZFZhbHVl
KCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlh
cyxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgYmlhcywgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEs
IGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJh
eSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxv
YWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3Jh
ZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZs
b2F0MiBERFgsZmxvYXQyIEREWSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwg
MSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJh
eSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRl
eHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQy
IEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeSwgb2Zmc2V0XSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2Nh
dGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5LmdldCgwKSwgZGR5LmdldCgxKSwg
MF07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0
KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
b3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRW
YWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIGRkeEFycmF5LCBk
ZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoMkRBcnJheTwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9j
YXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCks
IHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwo
VGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9h
dCBMT0QsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFB
cnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1
ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkp
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
KFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQo
MCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIo
VGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQy
IG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJy
YXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdl
dCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQu
Z2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxv
YWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmVEZXB0aDJE
QXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdl
dCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVy
LmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRo
MkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZz
ZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Io
Z2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBs
b2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVl
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVy
ZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbXBhcmVW
YWx1ZS5sb2FkVmFsdWUoKSwgMCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFy
ZVZhbHVlLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25B
cnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24u
Z2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNl
dC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIu
bG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpLCAwKSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJD
bXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxv
YWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpLCAwKSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBS
ZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixm
bG9hdCBjb21wYXJlX3ZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgx
KSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCksIDApKTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlw
ZX0+LGludDQgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9j
YXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNr
VW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJl
LmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0
KDIpLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlRGVwdGgyREFy
cmF5PCR7dHlwZX0+LGludDQgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJl
IHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQo
bG9jYXRpb24uZ2V0KDMpLCBsb2NhdGlvbi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSArIG9m
ZnNldC5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5nZXQoMCkpKSk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVy
ZURlcHRoMkRBcnJheTwke3R5cGV9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1
aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBFbGVtZW50cyx1aW50KiB0aHJlYWQgTnVt
YmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbWlwbGV2ZWws
IHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRzLCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJS
ZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
aGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRo
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwg
MSk7CisgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJv
bShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAg
bnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291
bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0g
U2FtcGxlKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5n
ZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNt
cChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLCR7dHlw
ZX0gQ29tcGFyZVZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9j
YXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hW
ZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1
ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhU
ZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLCR7dHlwZX0g
Q29tcGFyZVZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBG
SVhNRTogSW1wbGVtZW50IHRoaXMKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
bG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
b3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRW
YWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIGJpYXMubG9hZFZhbHVlKCksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aEN1
YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQzIEREWCxmbG9hdDMgRERZ
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBk
ZHgsIGRkeV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBd
OworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCksIGRk
eC5nZXQoMSksIGRkeC5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeUFy
cmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIGRkeS5nZXQoMildOworICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZh
bHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRl
eHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9E
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBs
b2RdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0
dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxvZC5sb2FkVmFsdWUoKSwg
dW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0
aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOworICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1
cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00
IEdhdGhlclJlZChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0
aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVy
ZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgMCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyQ21wKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQo
MSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5s
b2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSwgMCkpOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21w
UmVkKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxv
YXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxv
Y2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94
VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFs
dWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSwgMCkpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1
cmVEZXB0aEN1YmU8JHt0eXBlfT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWlu
dCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIG51bWJlck9m
TGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9h
ZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5s
b2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXgubGF5ZXJDb3VudCAh
PSA2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ3ViZSB0
ZXh0dXJlIGRvZXNuJ3QgaGF2ZSA2IGZhY2VzIik7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9u
ZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZlbCht
aXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJv
eCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBu
YXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sdWludCog
dGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQpYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgd2lkdGgsIGhlaWdodF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVp
Z2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRl
eC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9p
ZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sZmxvYXQqIHRocmVhZCBX
aWR0aCxmbG9hdCogdGhyZWFkIEhlaWdodClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCB3aWR0aCwgaGVpZ2h0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9
IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRo
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExv
YWQoUldUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVh
ZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCAw
LCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlRGVwdGgyRDwke3R5
cGV9Piwke3R5cGV9LHVpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNr
RmFsc2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5s
b2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tlZCgwLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxv
Y2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0b3IodmFsdWUsICIiKSkpOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZURlcHRo
MkRBcnJheTwke3R5cGV9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1
aW50KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwg
d2lkdGgsIGhlaWdodCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
dGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1l
bnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlRGVwdGgy
REFycmF5PCR7dHlwZX0+LGZsb2F0KiB0aHJlYWQgV2lkdGgsZmxvYXQqIHRocmVhZCBIZWlnaHQs
ZmxvYXQqIHRocmVhZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50c10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxl
bWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChSV1RleHR1cmVEZXB0aDJEQXJy
YXk8JHt0eXBlfT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIs
IHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDIpLCAwLCAw
LCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlRGVwdGgyREFycmF5PCR7
dHlwZX0+LCR7dHlwZX0sdWludDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2hl
Y2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0dXJlIHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJl
LmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgyKSwgMCwgMCwgbG9j
YXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVlLCAiIikpKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9CiAg
ICAgfQogCiAgICAgYWRkKHRoaW5nKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvU1BJUlYuaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJW
Lmh0bWwKaW5kZXggNzhkMDA4ZjgzNWY5ZTljMjM0ZWYyZGY2ZDZkZWVhM2Y3NDI2Y2U2NS4uMWIy
NmNmMmIyZTY1MTUyN2ExNTJlZThkOTJmZjI1YmVkYTYxZDMzOSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCkBAIC0zNCw2ICszNCw3IEBAIHRkIHsKICAgICA8c2Ny
aXB0IHNyYz0iQnVpbHRpblZlY3RvclNldHRlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IkNhbGxFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ2FsbEZ1
bmN0aW9uLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iQ2FzdHMuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJDaGVjay5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
IkNoZWNrTGl0ZXJhbFR5cGVzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ2hlY2tM
b29wcy5qcyI+PC9zY3JpcHQ+CkBAIC0xMjEsNiArMTIyLDcgQEAgdGQgewogICAgIDxzY3JpcHQg
c3JjPSJSZXR1cm4uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJSZXR1cm5DaGVja2Vy
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUmV0dXJuRXhjZXB0aW9uLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iU2FtcGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IlN0YW5kYXJkTGlicmFyeS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlN0
YXRlbWVudENsb25lci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlN0cnVjdExheW91
dEJ1aWxkZXIuanMiPjwvc2NyaXB0PgpAQCAtMTMzLDYgKzEzNSw4IEBAIHRkIHsKICAgICA8c2Ny
aXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZURlZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVGVybmFyeUV4cHJlc3Npb24uanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJUZXh0dXJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJU
cmFwU3RhdGVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TYW1wbGVyLmpzIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU2FtcGxlci5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZTc3
MTNkZmM4MWY4M2M1ODQ3MzYyMTIxNzU2NGYzOTU3MmIxNGI4Ci0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU2FtcGxlci5qcwpAQCAtMCwwICsxLDE2MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisidXNlIHN0cmlj
dCI7CisKK2NsYXNzIFNhbXBsZXIgeworICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpCisgICAgewor
ICAgICAgICBpZiAob3B0aW9ucy5yQWRkcmVzc01vZGUgPT0gdW5kZWZpbmVkKQorICAgICAgICAg
ICAgdGhpcy5fckFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgdGhpcy5fckFkZHJlc3NNb2RlID0gb3B0aW9ucy5yQWRkcmVzc01vZGU7CisgICAg
ICAgIGlmIChvcHRpb25zLnNBZGRyZXNzTW9kZSA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0
aGlzLl9zQWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB0aGlzLl9zQWRkcmVzc01vZGUgPSBvcHRpb25zLnNBZGRyZXNzTW9kZTsKKyAgICAgICAg
aWYgKG9wdGlvbnMudEFkZHJlc3NNb2RlID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMu
X3RBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHRoaXMuX3RBZGRyZXNzTW9kZSA9IG9wdGlvbnMudEFkZHJlc3NNb2RlOworICAgICAgICBpZiAo
b3B0aW9ucy5taW5GaWx0ZXIgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fbWluRmls
dGVyID0gIm5lYXJlc3QiOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9taW5GaWx0
ZXIgPSBvcHRpb25zLm1pbkZpbHRlcjsKKyAgICAgICAgaWYgKG9wdGlvbnMubWFnRmlsdGVyID09
IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX21hZ0ZpbHRlciA9ICJuZWFyZXN0IjsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fbWFnRmlsdGVyID0gb3B0aW9ucy5tYWdGaWx0
ZXI7CisgICAgICAgIGlmIChvcHRpb25zLm1pcG1hcEZpbHRlciA9PSB1bmRlZmluZWQpCisgICAg
ICAgICAgICB0aGlzLl9taXBtYXBGaWx0ZXIgPSAibmVhcmVzdCI7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIHRoaXMuX21pcG1hcEZpbHRlciA9IG9wdGlvbnMubWlwbWFwRmlsdGVyOworICAg
ICAgICBpZiAob3B0aW9ucy5sb2RNaW5DbGFtcCA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0
aGlzLl9sb2RNaW5DbGFtcCA9IC1OdW1iZXIuTUFYX1ZBTFVFOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICB0aGlzLl9sb2RNaW5DbGFtcCA9IG9wdGlvbnMubG9kTWluQ2xhbXA7CisgICAgICAg
IGlmIChvcHRpb25zLmxvZE1heENsYW1wID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMu
X2xvZE1heENsYW1wID0gTnVtYmVyLk1BWF9WQUxVRTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgdGhpcy5fbG9kTWF4Q2xhbXAgPSBvcHRpb25zLmxvZE1heENsYW1wOworICAgICAgICBpZiAo
b3B0aW9ucy5tYXhBbmlzb3Ryb3B5ID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX21h
eEFuaXNvdHJvcHkgPSAxOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9tYXhBbmlz
b3Ryb3B5ID0gb3B0aW9ucy5tYXhBbmlzb3Ryb3B5OworICAgICAgICBpZiAob3B0aW9ucy5jb21w
YXJlRnVuY3Rpb24gPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fY29tcGFyZUZ1bmN0
aW9uID0gIm5ldmVyIjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fY29tcGFyZUZ1
bmN0aW9uID0gb3B0aW9ucy5jb21wYXJlRnVuY3Rpb247CisgICAgICAgIGlmIChvcHRpb25zLmJv
cmRlckNvbG9yID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX2JvcmRlckNvbG9yID0g
InRyYW5zcGFyZW50QmxhY2siOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9ib3Jk
ZXJDb2xvciA9IG9wdGlvbnMuYm9yZGVyQ29sb3I7CisgICAgfQorICAgIAorICAgIGdldCByQWRk
cmVzc01vZGUoKSB7IHJldHVybiB0aGlzLl9yQWRkcmVzc01vZGU7IH0KKyAgICBnZXQgc0FkZHJl
c3NNb2RlKCkgeyByZXR1cm4gdGhpcy5fc0FkZHJlc3NNb2RlOyB9CisgICAgZ2V0IHRBZGRyZXNz
TW9kZSgpIHsgcmV0dXJuIHRoaXMuX3RBZGRyZXNzTW9kZTsgfQorICAgIGdldCBtaW5GaWx0ZXIo
KSB7IHJldHVybiB0aGlzLl9taW5GaWx0ZXI7IH0KKyAgICBnZXQgbWFnRmlsdGVyKCkgeyByZXR1
cm4gdGhpcy5fbWFnRmlsdGVyOyB9CisgICAgZ2V0IG1pcG1hcEZpbHRlcigpIHsgcmV0dXJuIHRo
aXMuX21pcG1hcEZpbHRlcjsgfQorICAgIGdldCBsb2RNaW5DbGFtcCgpIHsgcmV0dXJuIHRoaXMu
X2xvZE1pbkNsYW1wOyB9CisgICAgZ2V0IGxvZE1heENsYW1wKCkgeyByZXR1cm4gdGhpcy5fbG9k
TWF4Q2xhbXA7IH0KKyAgICBnZXQgbWF4QW5pc290cm9weSgpIHsgcmV0dXJuIHRoaXMuX21heEFu
aXNvdHJvcHk7IH0KKyAgICBnZXQgY29tcGFyZUZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpcy5fY29t
cGFyZUZ1bmN0aW9uOyB9CisgICAgZ2V0IGJvcmRlckNvbG9yKCkgeyByZXR1cm4gdGhpcy5fYm9y
ZGVyQ29sb3I7IH0KKworICAgIGNhbGN1bGF0ZUJvcmRlckNvbG9yKGlubmVyVHlwZSkKKyAgICB7
CisgICAgICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS4zLjMKKyAgICAgICAgZnVuY3Rp
b24gY29tcHV0ZVZhbHVlcygpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoaW5uZXJUeXBlKSB7Cisg
ICAgICAgICAgICAgICAgY2FzZSAidWNoYXIiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
e3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMHhGRn07
CisgICAgICAgICAgICAgICAgY2FzZSAidXNob3J0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDB4
RkZGRn07CisgICAgICAgICAgICAgICAgY2FzZSAidWludCI6CisgICAgICAgICAgICAgICAgICAg
IHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdoaXRl
OiAweEZGRkZGRkZGfTsKKyAgICAgICAgICAgICAgICBjYXNlICJjaGFyIjoKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazogMCwgb3Bh
cXVlV2hpdGU6IDB4N0Z9OworICAgICAgICAgICAgICAgIGNhc2UgInNob3J0IjoKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazogMCwg
b3BhcXVlV2hpdGU6IDB4N0ZGRn07CisgICAgICAgICAgICAgICAgY2FzZSAiaW50IjoKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazog
MCwgb3BhcXVlV2hpdGU6IDB4N0ZGRkZGRkZ9OworICAgICAgICAgICAgICAgIGNhc2UgImhhbGYi
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1
ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMX07CisgICAgICAgICAgICAgICAgY2FzZSAiZmxvYXQi
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1
ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMX07CisgICAgICAgICAgICAgICAgY2FzZSAidWNoYXIy
IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0s
IG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHhGRiwgMHhGRl19OworICAgICAg
ICAgICAgICAgIGNhc2UgInVzaG9ydDIiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3Ry
YW5zcGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6
IFsweEZGRkYsIDB4RkZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgInVpbnQyIjoKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJs
YWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHhGRkZGRkZGRiwgMHhGRkZGRkZGRl19OworICAg
ICAgICAgICAgICAgIGNhc2UgImNoYXIyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0
cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRl
OiBbMHg3RiwgMHg3Rl19OworICAgICAgICAgICAgICAgIGNhc2UgInNob3J0MiI6CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFj
azogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4N0ZGRiwgMHg3RkZGXX07CisgICAgICAgICAgICAg
ICAgY2FzZSAiaW50MiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRC
bGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4N0ZGRkZG
RkYsIDB4N0ZGRkZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJoYWxmMiI6CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFj
azogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzEsIDFdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJm
bG9hdDIiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFsw
LCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsxLCAxXX07CisgICAgICAg
ICAgICAgICAgY2FzZSAidWNoYXIzIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFu
c3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZVdo
aXRlOiBbMHhGRiwgMHhGRiwgMHhGRl19OworICAgICAgICAgICAgICAgIGNhc2UgInVzaG9ydDMi
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAw
XSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsweEZGRkYsIDB4RkZGRiwg
MHhGRkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAidWludDMiOgorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFsw
LCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsweEZGRkZGRkZGLCAweEZGRkZGRkZGLCAweEZGRkZGRkZG
XX07CisgICAgICAgICAgICAgICAgY2FzZSAiY2hhcjMiOgorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAw
XSwgb3BhcXVlV2hpdGU6IFsweDdGLCAweDdGLCAweDdGXX07CisgICAgICAgICAgICAgICAgY2Fz
ZSAic2hvcnQzIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNr
OiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHg3RkZG
LCAweDdGRkYsIDB4N0ZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgImludDMiOgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVl
QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsweDdGRkZGRkZGLCAweDdGRkZGRkZGLCAw
eDdGRkZGRkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAiaGFsZjMiOgorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6
IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsxLCAxLCAxXX07CisgICAgICAgICAgICAgICAgY2Fz
ZSAiZmxvYXQzIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNr
OiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMSwgMSwg
MV19OworICAgICAgICAgICAgICAgIGNhc2UgInVjaGFyNCI6CisgICAgICAgICAgICAgICAgICAg
IHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAs
IDAsIDAsIDB4RkZdLCBvcGFxdWVXaGl0ZTogWzB4RkYsIDB4RkYsIDB4RkYsIDB4RkZdfTsKKyAg
ICAgICAgICAgICAgICBjYXNlICJ1c2hvcnQ0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwg
MHhGRkZGXSwgb3BhcXVlV2hpdGU6IFsweEZGRkYsIDB4RkZGRiwgMHhGRkZGLCAweEZGRkZdfTsK
KyAgICAgICAgICAgICAgICBjYXNlICJ1aW50NCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVy
biB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDAs
IDB4RkZGRkZGRkZdLCBvcGFxdWVXaGl0ZTogWzB4RkZGRkZGRkYsIDB4RkZGRkZGRkYsIDB4RkZG
RkZGRkYsIDB4RkZGRkZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJjaGFyNCI6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBv
cGFxdWVCbGFjazogWzAsIDAsIDAsIDB4N0ZdLCBvcGFxdWVXaGl0ZTogWzB4N0YsIDB4N0YsIDB4
N0YsIDB4N0ZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJzaG9ydDQiOgorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxh
Y2s6IFswLCAwLCAwLCAweDdGRkZdLCBvcGFxdWVXaGl0ZTogWzB4N0ZGRiwgMHg3RkZGLCAweDdG
RkYsIDB4N0ZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgImludDQiOgorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxh
Y2s6IFswLCAwLCAwLCAweDdGRkZGRkZGXSwgb3BhcXVlV2hpdGU6IFsweDdGRkZGRkZGLCAweDdG
RkZGRkZGLCAweDdGRkZGRkZGLCAweDdGRkZGRkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAi
aGFsZjQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFsw
LCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAxXSwgb3BhcXVlV2hpdGU6IFsxLCAx
LCAxLCAxXX07CisgICAgICAgICAgICAgICAgY2FzZSAiZmxvYXQ0IjoKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJsYWNr
OiBbMCwgMCwgMCwgMV0sIG9wYXF1ZVdoaXRlOiBbMSwgMSwgMSwgMV19OworICAgICAgICAgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93
biB0ZXh0dXJlIGlubmVyIHR5cGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gY29tcHV0ZVZhbHVlcygpW3RoaXMuYm9yZGVyQ29sb3JdOworICAgIH0KK30KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5q
cyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcwppbmRl
eCAzZGQ0ZmVlMTg2MDBkNWNkMmE4OTVhZDVhNDc5NzIxZGE3Nzg4Y2MxLi44MTgxNmRmMWM1ZWE4
NmRlNTZmYzNhYTRjZDBkYjVkNjdkMGZjYmRhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCkBAIC01Nyw3ICs1Nyw3IEBAIGxldCBzdGFu
ZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgIH0KICAgICAgICAgcHJpbnQoYG5h
dGl2ZSB0eXBlZGVmIHNhbXBsZXI7YCk7CiAgICAgICAgIGZvciAodmFyIHR5cGUgb2YgW2BUZXh0
dXJlMURgLCBgUldUZXh0dXJlMURgLCBgVGV4dHVyZTFEQXJyYXlgLCBgUldUZXh0dXJlMURBcnJh
eWAsIGBUZXh0dXJlMkRgLCBgUldUZXh0dXJlMkRgLCBgVGV4dHVyZTJEQXJyYXlgLCBgUldUZXh0
dXJlMkRBcnJheWAsIGBUZXh0dXJlM0RgLCBgUldUZXh0dXJlM0RgLCBgVGV4dHVyZUN1YmVgXSkg
ewotICAgICAgICAgICAgZm9yICh2YXIgdHlwZUFyZ3VtZW50QmFzZSBvZiBbYGJvb2xgLCBgdWNo
YXJgLCBgdXNob3J0YCwgYHVpbnRgLCBgY2hhcmAsIGBzaG9ydGAsIGBpbnRgLCBgaGFsZmAsIGBm
bG9hdGBdKSB7CisgICAgICAgICAgICBmb3IgKHZhciB0eXBlQXJndW1lbnRCYXNlIG9mIFtgdWNo
YXJgLCBgdXNob3J0YCwgYHVpbnRgLCBgY2hhcmAsIGBzaG9ydGAsIGBpbnRgLCBgaGFsZmAsIGBm
bG9hdGBdKSB7CiAgICAgICAgICAgICAgICAgZm9yICh2YXIgc2l6ZSBvZiBbYGAsIGAyYCwgYDNg
LCBgNGBdKSB7CiAgICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdHlwZWRlZiAke3R5
cGV9PCR7dHlwZUFyZ3VtZW50QmFzZX0ke3NpemV9PjtgKTsKICAgICAgICAgICAgICAgICB9CkBA
IC0xODk3LDcgKzE4OTcsOCBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewog
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdl
KHRocmVhZCBhdG9taWNfJHt0eXBlfSosICR7dHlwZX0sICR7dHlwZX0sIHRocmVhZCAke3R5cGV9
Kik7YCk7CiAgICAgICAgIH0KICAgICAgICAgcHJpbnQoKTsKLSAgICAgICAgCisgICAgICAgICov
CisKICAgICAgICAgZm9yICh2YXIgdHlwZSBvZiBbYHVjaGFyYCwgYHVzaG9ydGAsIGB1aW50YCwg
YGNoYXJgLCBgc2hvcnRgLCBgaW50YCwgYGhhbGZgLCBgZmxvYXRgXSkgewogICAgICAgICAgICAg
Zm9yICh2YXIgbGVuZ3RoIG9mIFtgYCwgYDJgLCBgM2AsIGA0YF0pIHsKICAgICAgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUxRDwke3R5cGV9
JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQgbG9jYXRpb24pO2ApOwpAQCAtMTkyNCwxMiArMTky
NSwxOCBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyRDwke3R5cGV9JHtsZW5n
dGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEPCR7dHlw
ZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwogICAgICAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUyRDwke3R5cGV9JHts
ZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAg
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkQ8
JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7Ci0gICAgICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkQ8JHt0
eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2Ap
OwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0
dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7Ci0g
ICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUy
RDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNl
dCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBo
YShUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7
YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShU
ZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50
MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjIiIHx8IGxlbmd0
aCA9PSAiMyIgfHwgbGVuZ3RoID09ICI0IikgeworICAgICAgICAgICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwg
c2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4s
IHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAg
ICAgICAgICBpZiAobGVuZ3RoID09ICIzIiB8fCBsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJE
PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOworICAgICAg
ICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1
cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9m
ZnNldCk7YCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09ICI0Iikgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
QWxwaGEoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRp
b24pO2ApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9h
dDIgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMkQ8JHt0eXBlfSR7
bGVuZ3RofT4sIGludDMgbG9jYXRpb24pO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PiwgaW50
MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PiwgdWludCBN
aXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogSGVpZ2h0LCB0aHJlYWQg
dWludCogTnVtYmVyT2ZMZXZlbHMpO2ApOwpAQCAtMTk0NiwyOCArMTk1MywyNCBAQCBsZXQgc3Rh
bmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1w
bGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHts
ZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHts
ZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAg
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkRB
cnJheTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAg
ICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUy
REFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIg
b2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBs
b2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJCbHVlKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMg
bG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBz
YW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4s
IHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAg
ICAgIGlmIChsZW5ndGggPT0gIjIiIHx8IGxlbmd0aCA9PSAiMyIgfHwgbGVuZ3RoID09ICI0Iikg
eworICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVu
KFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRp
b24pO2ApOworICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhl
ckdyZWVuKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMg
bG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0
aCA9PSAiMyIgfHwgbGVuZ3RoID09ICI0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xl
bmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyREFycmF5PCR7
dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtg
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjQiKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShU
ZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9u
KTtgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00
IEdhdGhlckFscGhhKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBm
bG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMkRBcnJheTwk
e3R5cGV9JHtsZW5ndGh9PiwgaW50NCBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7
bGVuZ3RofT4sIGludDQgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgICAg
ICBwcmludChgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMkRBcnJheTwke3R5cGV9
JHtsZW5ndGh9PiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWlu
dCogSGVpZ2h0LCB0aHJlYWQgdWludCogRWxlbWVudHMsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxl
dmVscyk7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUzRDwke3R5cGV9JHtsZW5n
dGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUzRDwke3R5cGV9JHtsZW5n
dGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7Ci0gICAgICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTNEPCR7dHlwZX0k
e2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7Ci0gICAgICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTNEPCR7dHlwZX0k
e2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUzRDwke3R5cGV9JHtsZW5n
dGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7Ci0gICAgICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlM0Q8JHt0
eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlM0Q8JHt0eXBl
fSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwot
ICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJl
M0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAg
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUzRDwk
e3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7
YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShU
ZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7
Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0
dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MyBv
ZmZzZXQpO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3Ro
fSBMb2FkKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PiwgaW50NCBsb2NhdGlvbik7YCk7CiAg
ICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVy
ZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBpbnQ0IGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7CiAg
ICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTNE
PCR7dHlwZX0ke2xlbmd0aH0+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRo
cmVhZCB1aW50KiBIZWlnaHQsIHRocmVhZCB1aW50KiBEZXB0aCwgdGhyZWFkIHVpbnQqIE51bWJl
ck9mTGV2ZWxzKTtgKTsKQEAgLTE5NzgsOSArMTk4MSwxNCBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5
ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7
bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxl
ciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBMT0QpO2ApOwogICAgICAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LCBz
YW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1w
bGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBs
ZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVy
LCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIs
IGZsb2F0MyBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMiIg
fHwgbGVuZ3RoID09ICIzIiB8fCBsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZUN1YmU8JHt0eXBlfSR7
bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChsZW5ndGggPT0gIjMiIHx8IGxlbmd0aCA9PSAiNCIpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlQ3ViZTwk
e3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjQiKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZUN1YmU8JHt0
eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sIHVp
bnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIEhlaWdodCwgdGhy
ZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTtgKTsKICAgICAgICAgICAgICAgICBwcmludCgpOwog
ICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVy
ZTFEPCR7dHlwZX0ke2xlbmd0aH0+LCB0aHJlYWQgdWludCogV2lkdGgpO2ApOwpAQCAtMjAxMCw5
NyArMjAxOCw2NiBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAg
ICAgICAgICAgIHByaW50KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgCisK
ICAgICAgICAgZm9yICh2YXIgdHlwZSBvZiBbYGhhbGZgLCBgZmxvYXRgXSkgewogICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwg
c2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBs
b2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25T
dGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUpO2ApOwotICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9
PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJl
VmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJDb21w
YXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgQ29tcGFyZVZhbHVlKTtgKTsKLSAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVy
ZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlv
biwgZmxvYXQgQ29tcGFyZVZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDIgbG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlKTtgKTsKKyAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgJHt0eXBlfSBDb21wYXJlVmFsdWUsIGludDIg
b2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBM
ZXZlbFplcm8oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlv
biwgJHt0eXBlfSBDb21wYXJlVmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxl
ciwgZmxvYXQyIGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1ZSwgaW50MiBvZmZzZXQpO2Ap
OwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZURl
cHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgQmlhcyk7YCk7
CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVw
dGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBCaWFzLCBpbnQy
IG9mZnNldCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3Jh
ZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9h
dDIgRERYLCBmbG9hdDIgRERZKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9j
YXRpb24sIGZsb2F0MiBERFgsIGZsb2F0MiBERFksIGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlRGVwdGgyRDwke3R5
cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBMT0QpO2ApOwogICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0aDJEPCR7dHlw
ZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IExPRCwgaW50MiBvZmZzZXQpO2Ap
OwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlcihUZXh0dXJlRGVwdGgy
RDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXIoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBs
ZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxl
ciwgZmxvYXQyIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2Nh
dGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
IEdhdGhlckdyZWVuKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9j
YXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckdyZWVu
KFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGludDIg
b2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJCbHVl
KFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwot
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckJsdWUoVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwot
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckFscGhhKFRleHR1cmVEZXB0
aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckFscGhhKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+
LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4s
IFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92
YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wKFRl
eHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9j
YXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFy
ZV92YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21w
UmVkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9h
dDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBHcmVlbihUZXh0dXJlRGVwdGgy
RDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9h
dCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBH
YXRoZXJDbXBHcmVlbihUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25T
dGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7
YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wQmx1ZShUZXh0
dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0
aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfSBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29t
cGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIg
b2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBB
bHBoYShUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxv
YXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBBbHBoYShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwg
U2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3Zh
bHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00
IEdhdGhlcihUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9u
KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVE
ZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtg
KTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmVE
ZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOworICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Cisg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGgy
RDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVl
LCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdh
dGhlckNtcFJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0
aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBm
bG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmVEZXB0aDJEPCR7dHlw
ZX0+LCBpbnQzIGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSBMb2FkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBpbnQzIGxvY2F0aW9uLCBpbnQyIG9mZnNl
dCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0
dXJlRGVwdGgyRDwke3R5cGV9PiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0
aHJlYWQgdWludCogSGVpZ2h0LCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpO2ApOwogICAg
ICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1w
bGUoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9u
KTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURl
cHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNl
dCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBs
b2NhdGlvbiwgZmxvYXQgQ29tcGFyZVZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxl
ckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUsIGlu
dDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVD
bXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlz
b25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUpO2ApOwotICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVw
dGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRp
b24sIGZsb2F0IENvbXBhcmVWYWx1ZSwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+
LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlKTtgKTsKKyAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVW
YWx1ZSwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVy
LCBmbG9hdDMgbG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlKTtgKTsKKyAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVW
YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
IFNhbXBsZUJpYXMoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uLCBmbG9hdCBCaWFzKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZs
b2F0MyBsb2NhdGlvbiwgZmxvYXQgQmlhcywgaW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5
cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdDIgRERYLCBmbG9hdDIgRERZKTtg
KTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmVE
ZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQyIERE
WCwgZmxvYXQyIEREWSwgaW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBs
ZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgTE9EKTtgKTsKICAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBz
YW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IExPRCwgaW50MiBvZmZzZXQpO2ApOwotICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlcihUZXh0dXJlRGVwdGgyREFycmF5
PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlcihUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBz
YW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxl
ciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX0gR2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwg
c2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfSBHYXRoZXJHcmVlbihUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVy
LCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfSBHYXRoZXJCbHVlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gR2F0aGVyQmx1ZShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBm
bG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBHYXRoZXJBbHBoYShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IEdhdGhlckFscGhhKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZs
b2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVy
Q29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2Ap
OwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcChUZXh0dXJlRGVw
dGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRp
b24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5
cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21w
YXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJD
bXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0
ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7
Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wR3JlZW4oVGV4dHVy
ZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxv
Y2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBHYXRoZXJDbXBHcmVlbihUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBT
YW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFs
dWUsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBH
YXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJp
c29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAg
ICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wQmx1ZShUZXh0dXJlRGVwdGgy
REFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24s
IGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBBbHBoYShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlw
ZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBh
cmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNt
cEFscGhhKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3Rh
dGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2Ap
OworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRo
MkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkRBcnJh
eTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBl
fT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAg
ICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkRBcnJheTwk
e3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtg
KTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVE
ZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29t
cGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxl
ciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKKyAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8
JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwg
aW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IExvYWQo
VGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgaW50NCBsb2NhdGlvbik7YCk7CiAgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlw
ZX0+LCBpbnQ0IGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAgICAgICBwcmludChg
bmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCB1
aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBIZWlnaHQsIHRo
cmVhZCB1aW50KiBFbGVtZW50cywgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTtgKTsKICAg
ICAgICAgICAgIHByaW50KCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7
YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVE
ZXB0aEN1YmU8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlv
biwgZmxvYXQgQ29tcGFyZVZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxl
ckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUpO2Ap
OworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVw
dGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sICR7dHlwZX0gQ29tcGFy
ZVZhbHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBM
ZXZlbFplcm8oVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0
aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1ZSk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBm
bG9hdDMgbG9jYXRpb24sIGZsb2F0IEJpYXMpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwg
ZmxvYXQzIGxvY2F0aW9uLCBmbG9hdDIgRERYLCBmbG9hdDIgRERZKTtgKTsKKyAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBl
fT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQzIEREWCwgZmxvYXQzIEREWSk7YCk7
CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURl
cHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBMT0QpO2Ap
OwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlcihUZXh0dXJlRGVwdGhD
dWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlclJlZChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+
LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IEdhdGhlckdyZWVuKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIs
IGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0g
R2F0aGVyQmx1ZShUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9j
YXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckFscGhh
KFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7
Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wKFRleHR1cmVEZXB0
aEN1YmU8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwg
ZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX0gR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJp
c29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAg
ICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wR3JlZW4oVGV4dHVyZURlcHRo
Q3ViZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBm
bG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJp
c29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAg
ICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wQWxwaGEoVGV4dHVyZURlcHRo
Q3ViZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBm
bG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSBMb2FkKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIGludDQgbG9jYXRpb24pO2ApOworICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRoQ3ViZTwk
e3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9h
dDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwg
c2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKICAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmVEZXB0aEN1YmU8
JHt0eXBlfT4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQq
IEhlaWdodCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTtgKTsKICAgICAgICAgICAgIHBy
aW50KCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1Rl
eHR1cmVEZXB0aDJEPCR7dHlwZX0+LCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBI
ZWlnaHQpO2ApOwpAQCAtMjExNCw3ICsyMDkxLDYgQEAgbGV0IHN0YW5kYXJkTGlicmFyeSA9IChm
dW5jdGlvbigpIHsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sICR7dHlwZX0sIHVpbnQzIGxvY2F0aW9uKTtgKTsKICAg
ICAgICAgICAgIHByaW50KCk7CiAgICAgICAgIH0KLSAgICAgICAgKi8KICAgICB9KSgpOwogICAg
IHJldHVybiByZXN1bHQ7CiB9KSgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVGVzdC5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5o
dG1sCmluZGV4IDYwN2E2OTUzMjUzZGE3MjdiMWRlMzc2NzhlYzM4OGI0ZmEyNDA0MDUuLmZiMTAx
NWYxOTM4MWNmNmVhYzczMTdiNDg1ZWYwMGMzZWMxY2I5NmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKQEAgLTI4LDYgKzI4LDcgQEAKIDxzY3JpcHQgc3JjPSJCdWls
dGluVmVjdG9yU2V0dGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDYWxsRXhwcmVzc2lv
bi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2FsbEZ1bmN0aW9uLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJDYXN0cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2hlY2suanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNoZWNrTGl0ZXJhbFR5cGVzLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJDaGVja0xvb3BzLmpzIj48L3NjcmlwdD4KQEAgLTExNSw2ICsxMTYsNyBA
QAogPHNjcmlwdCBzcmM9IlJldHVybi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUmV0dXJu
Q2hlY2tlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUmV0dXJuRXhjZXB0aW9uLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJTYW1wbGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJTdGFuZGFyZExpYnJhcnkuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN0YXRlbWVudENs
b25lci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3RydWN0TGF5b3V0QnVpbGRlci5qcyI+
PC9zY3JpcHQ+CkBAIC0xMjcsNiArMTI5LDggQEAKIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplQ29w
eUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN5bnRoZXNp
emVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
VGVybmFyeUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlRleHR1cmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlRleHR1cmVPcGVyYXRpb25zLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJUcmFwU3RhdGVtZW50LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJU
eXBlRGVmLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5q
cyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKaW5kZXggNGExMWMxODU4
NTk5Nzc4ZmYzOTFiMDRmMjYzNWM1YjcxMDA1ZGY3Zi4uYWY4Njg1MjM2N2ZkZGQ1NjY1ODY5YjNj
MjQ3MWU5MDRiNmUwNjJhMSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVGVzdC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCkBA
IC05NCw2ICs5NCwxMzMgQEAgZnVuY3Rpb24gbWFrZUVudW0ocHJvZ3JhbSwgZW51bU5hbWUsIHZh
bHVlKQogICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChlbnVtVHlwZSwgZW51bU1lbWJlci52YWx1
ZS51bmlmeU5vZGUudmFsdWVGb3JTZWxlY3RlZFR5cGUpOwogfQogCitmdW5jdGlvbiBtYWtlU2Ft
cGxlcihwcm9ncmFtLCBvcHRpb25zKQoreworICAgIC8vIGVudW0gV2ViR1BVQWRkcmVzc01vZGUg
eworICAgIC8vICAgICAiY2xhbXBUb0VkZ2UiLAorICAgIC8vICAgICAicmVwZWF0IiwKKyAgICAv
LyAgICAgIm1pcnJvclJlcGVhdCIsCisgICAgLy8gICAgICJjbGFtcFRvQm9yZGVyQ29sb3IiCisg
ICAgLy8gfQorICAgIC8vCisgICAgLy8gZW51bSBXZWJHUFVGaWx0ZXJNb2RlIHsKKyAgICAvLyAg
ICAgIm5lYXJlc3QiLAorICAgIC8vICAgICAibGluZWFyIgorICAgIC8vIH0KKyAgICAvLworICAg
IC8vIGVudW0gV2ViR1BVQ29tcGFyZUZ1bmN0aW9uIHsKKyAgICAvLyAgICAgIm5ldmVyIiwKKyAg
ICAvLyAgICAgImxlc3MiLAorICAgIC8vICAgICAiZXF1YWwiLAorICAgIC8vICAgICAibGVzc0Vx
dWFsIiwKKyAgICAvLyAgICAgImdyZWF0ZXIiLAorICAgIC8vICAgICAibm90RXF1YWwiLAorICAg
IC8vICAgICAiZ3JlYXRlckVxdWFsIiwKKyAgICAvLyAgICAgImFsd2F5cyIKKyAgICAvLyB9Cisg
ICAgLy8KKyAgICAvLyBlbnVtIFdlYkdQVUJvcmRlckNvbG9yIHsKKyAgICAvLyAgICAgInRyYW5z
cGFyZW50QmxhY2siLAorICAgIC8vICAgICAib3BhcXVlQmxhY2siLAorICAgIC8vICAgICAib3Bh
cXVlV2hpdGUiCisgICAgLy8gfQorICAgIC8vCisgICAgLy8gZGljdGlvbmFyeSBXZWJHUFVTYW1w
bGVyRGVzY3JpcHRvciB7CisgICAgLy8gICAgIFdlYkdQVWRkcmVzc01vZGUgckFkZHJlc3NNb2Rl
ID0gImNsYW1wVG9FZGdlIjsKKyAgICAvLyAgICAgV2ViR1BVZGRyZXNzTW9kZSBzQWRkcmVzc01v
ZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgIC8vICAgICBXZWJHUFVkZHJlc3NNb2RlIHRBZGRyZXNz
TW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAgLy8gICAgIFdlYkdQVUZpbHRlck1vZGVFbnVtIG1h
Z0ZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICAvLyAgICAgV2ViR1BVRmlsdGVyTW9kZUVudW0gbWlu
RmlsdGVyID0gIm5lYXJlc3QiOworICAgIC8vICAgICBXZWJHUFVGaWx0ZXJNb2RlRW51bSBtaXBt
YXBGaWx0ZXIgPSAibmVhcmVzdCI7CisgICAgLy8gICAgIGZsb2F0IGxvZE1pbkNsYW1wID0gMDsK
KyAgICAvLyAgICAgZmxvYXQgbG9kTWF4Q2xhbXAgPSBOdW1iZXIuTUFYX1ZBTFVFOworICAgIC8v
ICAgICB1bnNpZ25lZCBsb25nIG1heEFuaXNvdHJvcHkgPSAxOworICAgIC8vICAgICBXZWJHUFVD
b21wYXJlRnVuY3Rpb24gY29tcGFyZUZ1bmN0aW9uID0gIm5ldmVyIjsKKyAgICAvLyAgICAgV2Vi
R1BVQm9yZGVyQ29sb3IgYm9yZGVyQ29sb3IgPSAidHJhbnNwYXJlbnRCbGFjayI7CisgICAgLy8g
fTsKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzLnNhbXBsZXIs
IG5ldyBTYW1wbGVyKG9wdGlvbnMpKTsKK30KKworZnVuY3Rpb24gbWFrZTFEVGV4dHVyZShwcm9n
cmFtLCBtaXBtYXBzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3go
cHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlMUQ8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0
dXJlMUQoZWxlbWVudFR5cGUsIG1pcG1hcHMpKTsKK30KKworZnVuY3Rpb24gbWFrZTFEVGV4dHVy
ZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRW
YWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlMURBcnJheTwke2VsZW1lbnRUeXBl
fT5gXSwgbmV3IFRleHR1cmUxREFycmF5KGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQorCitmdW5j
dGlvbiBtYWtlMkRUZXh0dXJlKHByb2dyYW0sIG1pcG1hcHMsIGVsZW1lbnRUeXBlKQoreworICAg
IHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmUyRDwke2Vs
ZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUyRChlbGVtZW50VHlwZSwgbWlwbWFwcykpOworfQor
CitmdW5jdGlvbiBtYWtlMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBl
KQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1
cmUyREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTJEQXJyYXkoZWxlbWVudFR5
cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UzRFRleHR1cmUocHJvZ3JhbSwgbWlwbWFw
cywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50
cmluc2ljc1tgVGV4dHVyZTNEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTNEKGVsZW1l
bnRUeXBlLCBtaXBtYXBzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VUZXh0dXJlQ3ViZShwcm9ncmFt
LCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dy
YW0uaW50cmluc2ljc1tgVGV4dHVyZUN1YmU8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJl
Q3ViZShlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24gbWFrZVJXMURUZXh0dXJl
KHByb2dyYW0sIGVsZW1lbnRzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1
ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUxRDwke2VsZW1lbnRUeXBlfT5gXSwg
bmV3IFRleHR1cmUxRFJXKGVsZW1lbnRUeXBlLCBlbGVtZW50cykpOworfQorCitmdW5jdGlvbiBt
YWtlUlcxRFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAg
cmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldUZXh0dXJlMURBcnJh
eTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUxREFycmF5UlcoZWxlbWVudFR5cGUsIGFy
cmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzJEVGV4dHVyZShwcm9ncmFtLCByb3dzLCBlbGVt
ZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNz
W2BSV1RleHR1cmUyRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUyRFJXKGVsZW1lbnRU
eXBlLCByb3dzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzJEVGV4dHVyZUFycmF5KHByb2dyYW0s
IGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3Jh
bS5pbnRyaW5zaWNzW2BSV1RleHR1cmUyREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4
dHVyZTJEQXJyYXlSVyhlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24gbWFrZVJX
M0RUZXh0dXJlKHByb2dyYW0sIGRlcHRoU2xpY2VzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1
cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUzRDwke2VsZW1l
bnRUeXBlfT5gXSwgbmV3IFRleHR1cmUzRFJXKGVsZW1lbnRUeXBlLCBkZXB0aFNsaWNlcykpOwor
fQorCitmdW5jdGlvbiBtYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgbWlwbWFwcywgZWxlbWVu
dFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tg
VGV4dHVyZURlcHRoMkQ8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlRGVwdGgyRChlbGVt
ZW50VHlwZSwgbWlwbWFwcykpOworfQorCitmdW5jdGlvbiBtYWtlMkREZXB0aFRleHR1cmVBcnJh
eShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUu
Ym94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZURlcHRoMkRBcnJheTwke2VsZW1lbnRUeXBl
fT5gXSwgbmV3IFRleHR1cmVEZXB0aDJEQXJyYXkoZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9CisK
K2Z1bmN0aW9uIG1ha2VEZXB0aFRleHR1cmVDdWJlKHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlw
ZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0
dXJlRGVwdGhDdWJlPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZURlcHRoQ3ViZShlbGVt
ZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24gbWFrZVJXMkREZXB0aFRleHR1cmUocHJv
Z3JhbSwgcm93cywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHBy
b2dyYW0uaW50cmluc2ljc1tgUldUZXh0dXJlRGVwdGgyRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3
IFRleHR1cmVEZXB0aDJEUlcoZWxlbWVudFR5cGUsIHJvd3MpKTsKK30KKworZnVuY3Rpb24gbWFr
ZVJXMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7Cisg
ICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldUZXh0dXJlRGVw
dGgyREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZURlcHRoMkRBcnJheVJXKGVs
ZW1lbnRUeXBlLCBhcnJheSkpOworfQorCiBmdW5jdGlvbiBjaGVja051bWJlcihwcm9ncmFtLCBy
ZXN1bHQsIGV4cGVjdGVkKQogewogICAgIGlmICghcmVzdWx0LnR5cGUudW5pZnlOb2RlLmlzTnVt
YmVyKQpAQCAtMTU3LDYgKzI4NCwxNCBAQCBmdW5jdGlvbiBjaGVja0hhbGYocHJvZ3JhbSwgcmVz
dWx0LCBleHBlY3RlZCkKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJXcm9uZyByZXN1bHQ6ICIg
KyByZXN1bHQudmFsdWUgKyAiIChleHBlY3RlZCAiICsgZXhwZWN0ZWQgKyAiKSIpOwogfQogCitm
dW5jdGlvbiBjaGVja0Zsb2F0NChwcm9ncmFtLCByZXN1bHQsIGV4cGVjdGVkKQoreworICAgIGlm
ICghcmVzdWx0LnR5cGUuZXF1YWxzKHByb2dyYW0uaW50cmluc2ljc1sidmVjdG9yPGZsb2F0LCA0
PiJdKSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJXcm9uZyByZXN1bHQgdHlwZTogIiArIHJl
c3VsdC50eXBlKTsKKyAgICBpZiAocmVzdWx0LmVQdHIuZ2V0KDApICE9IGV4cGVjdGVkWzBdIHx8
IHJlc3VsdC5lUHRyLmdldCgxKSAhPSBleHBlY3RlZFsxXSB8fCByZXN1bHQuZVB0ci5nZXQoMikg
IT0gZXhwZWN0ZWRbMl0gfHwgcmVzdWx0LmVQdHIuZ2V0KDMpICE9IGV4cGVjdGVkWzNdKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJlc3VsdDogWyIgKyByZXN1bHQuZVB0ci5nZXQo
MCkgKyAiLCAiICsgcmVzdWx0LmVQdHIuZ2V0KDEpICsgIiwgIiArIHJlc3VsdC5lUHRyLmdldCgy
KSArICIsICIgKyByZXN1bHQuZVB0ci5nZXQoMykgKyAiXSAoZXhwZWN0ZWQgWyIgKyBleHBlY3Rl
ZFswXSArICIsICIgKyBleHBlY3RlZFsxXSArICIsICIgKyBleHBlY3RlZFsyXSArICIsICIgKyBl
eHBlY3RlZFszXSArICJdKSIpOworfQorCiBmdW5jdGlvbiBjaGVja0xleGVyVG9rZW4ocmVzdWx0
LCBleHBlY3RlZEluZGV4LCBleHBlY3RlZEtpbmQsIGV4cGVjdGVkVGV4dCkKIHsKICAgICBpZiAo
cmVzdWx0Ll9pbmRleCAhPSBleHBlY3RlZEluZGV4KQpAQCAtNTU4Miw3ICs1NzE3LDE3OTcgQEAg
dGVzdHMuYXJyYXlJbmRleCA9IGZ1bmN0aW9uKCkgewogICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VVaW50KHByb2dyYW0sIDIpIF0pLCAzKTsKICAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5kZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0s
IDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSBdKSwgNCk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSkgXSksIDUpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDIpIF0pLCA2KTsgICAgCisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMikgXSksIDYpOworfQorCitmdW5jdGlvbiBj
cmVhdGVUZXh0dXJlc0ZvclRlc3RpbmcocHJvZ3JhbSkKK3sKKyAgICBsZXQgdGV4dHVyZTFEID0g
bWFrZTFEVGV4dHVyZShwcm9ncmFtLCBbWzEsIDcsIDE0LCA3OV0sIFsxMywgMTZdLCBbMTVdXSwg
ImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmUxREFycmF5ID0gbWFrZTFEVGV4dHVyZUFycmF5KHBy
b2dyYW0sIFtbWzEsIDcsIDE0LCA3OV0sIFsxMywgMTZdLCBbMTVdXSwgW1sxNiwgMTcsIDE4LCAx
OV0sIFsyMCwgMjFdLCBbMjJdXV0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlMkQgPSBtYWtl
MkRUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwK
KyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAx
OCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjks
IDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNl0sCisgICAgICAgIFszNywg
MzgsIDM5LCA0MF1dLAorICAgICAgICBbWzQxLCA0Ml1dCisgICAgXSwgImZsb2F0Iik7CisgICAg
bGV0IHRleHR1cmUyREFycmF5ID0gbWFrZTJEVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbCisgICAg
ICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAx
MywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRd
LAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtb
MzMsIDM0LCAzNSwgMzZdLAorICAgICAgICBbMzcsIDM4LCAzOSwgNDBdXSwKKyAgICAgICAgW1s0
MSwgNDJdXQorICAgIF0sIFsKKyAgICAgICAgW1s0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4LCA0OSwg
NTBdLAorICAgICAgICBbNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTcsIDU4XSwKKyAgICAgICAg
WzU5LCA2MCwgNjEsIDYyLCA2MywgNjQsIDY1LCA2Nl0sCisgICAgICAgIFs2NywgNjgsIDY5LCA3
MCwgNzEsIDcyLCA3MywgNzRdXSwKKyAgICAgICAgW1s3NSwgNzYsIDc3LCA3OF0sCisgICAgICAg
IFs3OSwgODAsIDgxLCA4Ml1dLAorICAgICAgICBbWzgzLCA4NF1dCisgICAgXV0sICJmbG9hdCIp
OworICAgIGxldCB0ZXh0dXJlM0QgPSBtYWtlM0RUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAgICAg
W1tbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywg
MTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAor
ICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMs
IDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwXSwKKyAgICAgICAgWzQxLCA0MiwgNDMsIDQ0LCA0
NSwgNDYsIDQ3LCA0OF0sCisgICAgICAgIFs0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTZd
LAorICAgICAgICBbNTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjMsIDY0XV1dLAorICAgICAgICBb
W1s2NSwgNjYsIDY3LCA2OF0sCisgICAgICAgIFs2OSwgNzAsIDcxLCA3Ml1dXQorICAgIF0sICJm
bG9hdCIpOworICAgIGxldCB0ZXh0dXJlQ3ViZSA9IG1ha2VUZXh0dXJlQ3ViZShwcm9ncmFtLCBb
WworICAgICAgICBbWzEsIDJdLAorICAgICAgICBbMywgNF0sCisgICAgICAgIFs1LCA2XSwKKyAg
ICAgICAgWzcsIDhdXSwKKyAgICAgICAgW1s5XSwKKyAgICAgICAgWzEwXV0sCisgICAgXSwgWwor
ICAgICAgICBbWzExLCAxMl0sCisgICAgICAgIFsxMywgMTRdLAorICAgICAgICBbMTUsIDE2XSwK
KyAgICAgICAgWzE3LCAxOF1dLAorICAgICAgICBbWzE5XSwKKyAgICAgICAgWzIwXV0sCisgICAg
XSwgWworICAgICAgICBbWzIxLCAyMl0sCisgICAgICAgIFsyMywgMjRdLAorICAgICAgICBbMjUs
IDI2XSwKKyAgICAgICAgWzI3LCAyOF1dLAorICAgICAgICBbWzI5XSwKKyAgICAgICAgWzMwXV0s
CisgICAgXSwgWworICAgICAgICBbWzMxLCAzMl0sCisgICAgICAgIFszMywgMzRdLAorICAgICAg
ICBbMzUsIDM2XSwKKyAgICAgICAgWzM3LCAzOF1dLAorICAgICAgICBbWzM5XSwKKyAgICAgICAg
WzQwXV0sCisgICAgXSwgWworICAgICAgICBbWzQxLCA0Ml0sCisgICAgICAgIFs0MywgNDRdLAor
ICAgICAgICBbNDUsIDQ2XSwKKyAgICAgICAgWzQ3LCA0OF1dLAorICAgICAgICBbWzQ5XSwKKyAg
ICAgICAgWzUwXV0sCisgICAgXSwgWworICAgICAgICBbWzUxLCA1Ml0sCisgICAgICAgIFs1Mywg
NTRdLAorICAgICAgICBbNTUsIDU2XSwKKyAgICAgICAgWzU3LCA1OF1dLAorICAgICAgICBbWzU5
XSwKKyAgICAgICAgWzYwXV0sCisgICAgXV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmUx
RCA9IG1ha2VSVzFEVGV4dHVyZShwcm9ncmFtLCBbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sICJm
bG9hdCIpOworICAgIGxldCByd1RleHR1cmUxREFycmF5ID0gbWFrZVJXMURUZXh0dXJlQXJyYXko
cHJvZ3JhbSwgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwgWzksIDEwLCAxMSwgMTIsIDEzLCAx
NCwgMTUsIDE2XSwgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF1dLCAiZmxvYXQiKTsK
KyAgICBsZXQgcndUZXh0dXJlMkQgPSBtYWtlUlcyRFRleHR1cmUocHJvZ3JhbSwgWworICAgICAg
ICBbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywg
MTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAor
ICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sICJmbG9hdCIpOworICAg
IGxldCByd1RleHR1cmUyREFycmF5ID0gbWFrZVJXMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwgWwor
ICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAx
MiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMs
IDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAg
ICBbWzMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MF0sCisgICAgICAgIFs0MSwgNDIsIDQz
LCA0NCwgNDUsIDQ2LCA0NywgNDhdLAorICAgICAgICBbNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwg
NTUsIDU2XSwKKyAgICAgICAgWzU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLCA2NF1dXSwgImZs
b2F0Iik7CisgICAgbGV0IHJ3VGV4dHVyZTNEID0gbWFrZVJXM0RUZXh0dXJlKHByb2dyYW0sIFsK
KyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwg
MTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIz
LCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAg
ICAgW1szMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDBdLAorICAgICAgICBbNDEsIDQyLCA0
MywgNDQsIDQ1LCA0NiwgNDcsIDQ4XSwKKyAgICAgICAgWzQ5LCA1MCwgNTEsIDUyLCA1MywgNTQs
IDU1LCA1Nl0sCisgICAgICAgIFs1NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2MywgNjRdXV0sICJm
bG9hdCIpOworICAgIGxldCB0ZXh0dXJlRGVwdGgyRCA9IG1ha2UyRERlcHRoVGV4dHVyZShwcm9n
cmFtLCBbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAx
MCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEs
IDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0s
CisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzZdLAorICAgICAgICBbMzcsIDM4LCAzOSwgNDBdXSwK
KyAgICAgICAgW1s0MSwgNDJdXQorICAgIF0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlRGVw
dGgyREFycmF5ID0gbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1sKKyAgICAgICAg
W1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAx
NCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisg
ICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywg
MzQsIDM1LCAzNl0sCisgICAgICAgIFszNywgMzgsIDM5LCA0MF1dLAorICAgICAgICBbWzQxLCA0
Ml1dCisgICAgXSwgWworICAgICAgICBbWzQzLCA0NCwgNDUsIDQ2LCA0NywgNDgsIDQ5LCA1MF0s
CisgICAgICAgIFs1MSwgNTIsIDUzLCA1NCwgNTUsIDU2LCA1NywgNThdLAorICAgICAgICBbNTks
IDYwLCA2MSwgNjIsIDYzLCA2NCwgNjUsIDY2XSwKKyAgICAgICAgWzY3LCA2OCwgNjksIDcwLCA3
MSwgNzIsIDczLCA3NF1dLAorICAgICAgICBbWzc1LCA3NiwgNzcsIDc4XSwKKyAgICAgICAgWzc5
LCA4MCwgODEsIDgyXV0sCisgICAgICAgIFtbODMsIDg0XV0KKyAgICBdXSwgImZsb2F0Iik7Cisg
ICAgbGV0IHRleHR1cmVEZXB0aEN1YmUgPSBtYWtlRGVwdGhUZXh0dXJlQ3ViZShwcm9ncmFtLCBb
WworICAgICAgICBbWzEsIDJdLAorICAgICAgICBbMywgNF0sCisgICAgICAgIFs1LCA2XSwKKyAg
ICAgICAgWzcsIDhdXSwKKyAgICAgICAgW1s5XSwKKyAgICAgICAgWzEwXV0sCisgICAgXSwgWwor
ICAgICAgICBbWzExLCAxMl0sCisgICAgICAgIFsxMywgMTRdLAorICAgICAgICBbMTUsIDE2XSwK
KyAgICAgICAgWzE3LCAxOF1dLAorICAgICAgICBbWzE5XSwKKyAgICAgICAgWzIwXV0sCisgICAg
XSwgWworICAgICAgICBbWzIxLCAyMl0sCisgICAgICAgIFsyMywgMjRdLAorICAgICAgICBbMjUs
IDI2XSwKKyAgICAgICAgWzI3LCAyOF1dLAorICAgICAgICBbWzI5XSwKKyAgICAgICAgWzMwXV0s
CisgICAgXSwgWworICAgICAgICBbWzMxLCAzMl0sCisgICAgICAgIFszMywgMzRdLAorICAgICAg
ICBbMzUsIDM2XSwKKyAgICAgICAgWzM3LCAzOF1dLAorICAgICAgICBbWzM5XSwKKyAgICAgICAg
WzQwXV0sCisgICAgXSwgWworICAgICAgICBbWzQxLCA0Ml0sCisgICAgICAgIFs0MywgNDRdLAor
ICAgICAgICBbNDUsIDQ2XSwKKyAgICAgICAgWzQ3LCA0OF1dLAorICAgICAgICBbWzQ5XSwKKyAg
ICAgICAgWzUwXV0sCisgICAgXSwgWworICAgICAgICBbWzUxLCA1Ml0sCisgICAgICAgIFs1Mywg
NTRdLAorICAgICAgICBbNTUsIDU2XSwKKyAgICAgICAgWzU3LCA1OF1dLAorICAgICAgICBbWzU5
XSwKKyAgICAgICAgWzYwXV0sCisgICAgXV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmVE
ZXB0aDJEID0gbWFrZVJXMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgWworICAgICAgICBbMSwgMiwg
MywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAx
Nl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBb
MjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sICJmbG9hdCIpOworICAgIGxldCByd1Rl
eHR1cmVEZXB0aDJEQXJyYXkgPSBtYWtlUlcyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFsK
KyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwg
MTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIz
LCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAg
ICAgW1szMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDBdLAorICAgICAgICBbNDEsIDQyLCA0
MywgNDQsIDQ1LCA0NiwgNDcsIDQ4XSwKKyAgICAgICAgWzQ5LCA1MCwgNTEsIDUyLCA1MywgNTQs
IDU1LCA1Nl0sCisgICAgICAgIFs1NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2MywgNjRdXV0sICJm
bG9hdCIpOworICAgIHJldHVybiBbdGV4dHVyZTFELCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJE
LCB0ZXh0dXJlMkRBcnJheSwgdGV4dHVyZTNELCB0ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3
VGV4dHVyZTFEQXJyYXksIHJ3VGV4dHVyZTJELCByd1RleHR1cmUyREFycmF5LCByd1RleHR1cmUz
RCwgdGV4dHVyZURlcHRoMkQsIHRleHR1cmVEZXB0aDJEQXJyYXksIHRleHR1cmVEZXB0aEN1YmUs
IHJ3VGV4dHVyZURlcHRoMkQsIHJ3VGV4dHVyZURlcHRoMkRBcnJheV07Cit9CisKK3Rlc3RzLnRl
eHR1cmVEaW1lbnNpb25zID0gZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAo
YAorICAgICAgICB1aW50IGZvbzEoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAg
ICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAg
ICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmbnVtYmVyT2ZMZXZlbHMp
OworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9v
MihUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7Cisg
ICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9u
cyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1
cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28zKFRleHR1cmUx
REFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAg
ICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7Cisg
ICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmVsZW1lbnRzLCAm
bnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9Cisg
ICAgICAgIHVpbnQgZm9vNChUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAg
ICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAg
ICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJl
LCAwLCAmd2lkdGgsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJl
dHVybiBlbGVtZW50czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzUoVGV4dHVyZTFEQXJy
YXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAg
ICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAg
ICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmZWxlbWVudHMsICZudW1i
ZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAg
IH0KKyAgICAgICAgdWludCBmb282KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAg
ICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAg
dWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwg
MCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJu
IHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNyhUZXh0dXJlMkQ8ZmxvYXQ+IHRl
eHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdo
dDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1l
bnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAg
ICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb284KFRl
eHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAg
ICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAg
ICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVt
YmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAg
ICB9CisgICAgICAgIHVpbnQgZm9vOShUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgewor
ICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAg
ICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7Cisg
ICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVs
ZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAg
ICAgICB9CisgICAgICAgIHVpbnQgZm9vMTAoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUp
IHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAg
ICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxz
OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQs
ICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7
CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xMShUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4
dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0
OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZM
ZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhl
aWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGVs
ZW1lbnRzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTIoVGV4dHVyZTJEQXJyYXk8Zmxv
YXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50
IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51
bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lk
dGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJl
dHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzEzKFRleHR1
cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAg
ICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIHVp
bnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAs
ICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAg
cmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTQoVGV4dHVyZTNEPGZs
b2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWlu
dCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgdWludCBudW1i
ZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRo
LCAmaGVpZ2h0LCAmZGVwdGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4g
aGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTUoVGV4dHVyZTNEPGZsb2F0PiB0
ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWln
aHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxl
dmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVp
Z2h0LCAmZGVwdGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gZGVwdGg7
CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xNihUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUp
IHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAg
ICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZk
ZXB0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVs
czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE3KFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0
dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7
CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5z
aW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAg
ICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xOChUZXh0
dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAg
ICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAg
ICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVt
YmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAg
ICAgICB1aW50IGZvbzE5KFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAg
ICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50
IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAm
d2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVt
YmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yMChSV1RleHR1cmUxRDxm
bG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIEdl
dERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIxKFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRl
eHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVsZW1l
bnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZlbGVtZW50
cyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBm
b28yMihSV1RleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50
IHdpZHRoOworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVu
c2lvbnModGV4dHVyZSwgJndpZHRoLCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJuIGVs
ZW1lbnRzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjMoUldUZXh0dXJlMkQ8ZmxvYXQ+
IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhl
aWdodDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0
KTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZv
bzI0KFJXVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRo
OworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRl
eHR1cmUsICZ3aWR0aCwgJmhlaWdodCk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAg
ICAgICB9CisgICAgICAgIHVpbnQgZm9vMjUoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVy
ZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0Owor
ICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4
dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJuIHdp
ZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjYoUldUZXh0dXJlMkRBcnJheTxmbG9h
dD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQg
aGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVu
c2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMpOworICAgICAgICAgICAg
cmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI3KFJXVGV4dHVyZTJE
QXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAg
ICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAg
ICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAg
ICAgICAgICAgIHJldHVybiBlbGVtZW50czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI4
KFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOwor
ICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAg
ICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCk7Cisg
ICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yOShS
V1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAg
ICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAg
ICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgpOworICAg
ICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzMwKFJX
VGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAg
ICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAg
ICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCk7CisgICAg
ICAgICAgICByZXR1cm4gZGVwdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28zMShUZXh0
dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAg
ICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsK
KyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAm
bnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9Cisg
ICAgICAgIHVpbnQgZm9vMzIoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAg
ICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAg
IHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUs
IDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVy
biBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28zMyhUZXh0dXJlRGVwdGgyRDxm
bG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVp
bnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAg
IEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZl
bHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAg
ICAgIHVpbnQgZm9vMzQoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAg
ICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAg
ICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1l
bnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAg
ICB9CisgICAgICAgIHVpbnQgZm9vMzUoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVy
ZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0Owor
ICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZl
bHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdo
dCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdo
dDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzM2KFRleHR1cmVEZXB0aDJEQXJyYXk8Zmxv
YXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50
IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51
bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lk
dGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJl
dHVybiBlbGVtZW50czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzM3KFRleHR1cmVEZXB0
aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAg
ICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAg
ICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0
dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAg
ICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50
IGZvbzM4KFRleHR1cmVEZXB0aEN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVp
bnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVt
YmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0
aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzM5KFRleHR1cmVEZXB0aEN1YmU8ZmxvYXQ+IHRl
eHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdo
dDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1l
bnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAg
ICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb280MChU
ZXh0dXJlRGVwdGhDdWJlPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRo
OworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2
ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWln
aHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7
CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb280MShSV1RleHR1cmVEZXB0aDJEPGZsb2F0PiB0
ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWln
aHQ7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCk7
CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb280
MihSV1RleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdp
ZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICBHZXREaW1lbnNpb25z
KHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0Owor
ICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNDMoUldUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5z
aW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cyk7CisgICAgICAgICAgICBy
ZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb280NChSV1RleHR1cmVEZXB0
aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAg
ICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAg
ICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsK
KyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb280
NShSV1RleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVp
bnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxl
bWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdo
dCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50czsKKyAgICAgICAgfQor
ICAgIGApOworICAgIGxldCBbdGV4dHVyZTFELCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0
ZXh0dXJlMkRBcnJheSwgdGV4dHVyZTNELCB0ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4
dHVyZTFEQXJyYXksIHJ3VGV4dHVyZTJELCByd1RleHR1cmUyREFycmF5LCByd1RleHR1cmUzRCwg
dGV4dHVyZURlcHRoMkQsIHRleHR1cmVEZXB0aDJEQXJyYXksIHRleHR1cmVEZXB0aEN1YmUsIHJ3
VGV4dHVyZURlcHRoMkQsIHJ3VGV4dHVyZURlcHRoMkRBcnJheV0gPSBjcmVhdGVUZXh0dXJlc0Zv
clRlc3RpbmcocHJvZ3JhbSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMURdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJlMURdKSwgMyk7CisgICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURB
cnJheV0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280IiwgW3RleHR1cmUxREFycmF5XSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTFEQXJyYXldKSwgMyk7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJl
MkRdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNyIsIFt0ZXh0dXJlMkRdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRdKSwgMyk7CisgICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlMkRBcnJheV0pLCA4
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIs
IFt0ZXh0dXJlMkRBcnJheV0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlMkRBcnJheV0pLCAyKTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFt0ZXh0dXJlMkRBcnJh
eV0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMyIsIFt0ZXh0dXJlM0RdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVyZTNEXSksIDQpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3RleHR1cmUzRF0pLCAyKTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0
ZXh0dXJlM0RdKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTciLCBbdGV4dHVyZUN1YmVdKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZUN1YmVdKSwgNCk7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVy
ZUN1YmVdKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjAiLCBbcndUZXh0dXJlMURdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbcndUZXh0dXJlMURBcnJheV0pLCA4KTsKKyAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMiIsIFtyd1Rl
eHR1cmUxREFycmF5XSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIzIiwgW3J3VGV4dHVyZTJEXSksIDgpOworICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI0IiwgW3J3VGV4dHVyZTJEXSksIDQpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI1IiwgW3J3
VGV4dHVyZTJEQXJyYXldKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjYiLCBbcndUZXh0dXJlMkRBcnJheV0pLCA0KTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNyIsIFtyd1RleHR1cmUyREFy
cmF5XSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzI4IiwgW3J3VGV4dHVyZTNEXSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI5IiwgW3J3VGV4dHVyZTNEXSksIDQpOworICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMwIiwgW3J3VGV4dHVyZTNE
XSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMxIiwgW3RleHR1cmVEZXB0aDJEXSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMyIiwgW3RleHR1cmVEZXB0aDJEXSksIDQpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMzIiwgW3RleHR1cmVE
ZXB0aDJEXSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzM0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXldKSwgOCk7CisgICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzUiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eV0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zNiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5XSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM3IiwgW3RleHR1cmVEZXB0aDJEQXJyYXldKSwg
Myk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzgi
LCBbdGV4dHVyZURlcHRoQ3ViZV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zOSIsIFt0ZXh0dXJlRGVwdGhDdWJlXSksIDQpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQwIiwgW3RleHR1cmVE
ZXB0aEN1YmVdKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNDEiLCBbcndUZXh0dXJlRGVwdGgyRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFtyd1RleHR1cmVEZXB0aDJEXSks
IDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQz
IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheV0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXldKSwg
NCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUi
LCBbcndUZXh0dXJlRGVwdGgyREFycmF5XSksIDIpOworfQorCit0ZXN0cy50ZXh0dXJlTG9hZCA9
IGZ1bmN0aW9uKCkgeworICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKKyAgICAgICAgZmxvYXQg
Zm9vMShUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50IG1pcG1hcCkg
eworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Mihsb2NhdGlvbiwgbWlwbWFw
KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMihUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1
cmUsIGludCBsb2NhdGlvbiwgaW50IG1pcG1hcCwgaW50IG9mZnNldCkgeworICAgICAgICAgICAg
cmV0dXJuIExvYWQodGV4dHVyZSwgaW50Mihsb2NhdGlvbiwgbWlwbWFwKSwgb2Zmc2V0KTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb28zKFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJl
LCBpbnQgbG9jYXRpb24sIGludCBtaXBtYXAsIGludCBsYXllcikgeworICAgICAgICAgICAgcmV0
dXJuIExvYWQodGV4dHVyZSwgaW50Myhsb2NhdGlvbiwgbWlwbWFwLCBsYXllcikpOworICAgICAg
ICB9CisgICAgICAgIGZsb2F0IGZvbzQoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGlu
dCBsb2NhdGlvbiwgaW50IG1pcG1hcCwgaW50IGxheWVyLCBpbnQgb2Zmc2V0KSB7CisgICAgICAg
ICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKGxvY2F0aW9uLCBtaXBtYXAsIGxheWVyKSwg
b2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb281KFRleHR1cmUyRDxmbG9hdD4g
dGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbWlwbWFwKSB7CisgICAgICAgICAgICByZXR1cm4g
TG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIG1pcG1hcCkpOworICAgICAgICB9CisgICAgICAgIGZs
b2F0IGZvbzYoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBt
YXAsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQo
dGV4dHVyZSwgaW50Myh4LCB5LCBtaXBtYXApLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb283KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJl
LCBpbnQgeCwgaW50IHksIGludCBtaXBtYXAsIGludCBsYXllcikgeworICAgICAgICAgICAgcmV0
dXJuIExvYWQodGV4dHVyZSwgaW50NCh4LCB5LCBtaXBtYXAsIGxheWVyKSk7CisgICAgICAgIH0K
KyAgICAgICAgZmxvYXQgZm9vOChUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IHgs
IGludCB5LCBpbnQgbWlwbWFwLCBpbnQgbGF5ZXIsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkg
eworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50NCh4LCB5LCBtaXBtYXAsIGxh
eWVyKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQg
Zm9vOShUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IHosIGludCBt
aXBtYXApIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDQoeCwgeSwgeiwg
bWlwbWFwKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTAoVGV4dHVyZTNEPGZsb2F0
PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCB6LCBpbnQgbWlwbWFwLCBpbnQgb2Zmc2V0WCwg
aW50IG9mZnNldFksIGludCBvZmZzZXRaKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0
dXJlLCBpbnQ0KHgsIHksIHosIG1pcG1hcCksIGludDMob2Zmc2V0WCwgb2Zmc2V0WSwgb2Zmc2V0
WikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzExKFJXVGV4dHVyZTFEPGZsb2F0PiB0
ZXh0dXJlLCBpbnQgbG9jYXRpb24pIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUs
IGxvY2F0aW9uKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xMihSV1RleHR1cmUxREFy
cmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgbG9jYXRpb24sIGludCBsYXllcikgeworICAgICAgICAg
ICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Mihsb2NhdGlvbiwgbGF5ZXIpKTsKKyAgICAgICAg
fQorICAgICAgICBmbG9hdCBmb28xMyhSV1RleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgs
IGludCB5KSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKHgsIHkpKTsK
KyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xNChSV1RleHR1cmUyREFycmF5PGZsb2F0PiB0
ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIExv
YWQodGV4dHVyZSwgaW50Myh4LCB5LCBsYXllcikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0
IGZvbzE1KFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCB6KSB7
CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIHopKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb28xNihUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwg
aW50IHgsIGludCB5LCBpbnQgbWlwbWFwKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0
dXJlLCBpbnQzKHgsIHksIG1pcG1hcCkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE3
KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXAs
IGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4
dHVyZSwgaW50Myh4LCB5LCBtaXBtYXApLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb28xOChUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0
dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXAsIGludCBsYXllcikgeworICAgICAgICAgICAg
cmV0dXJuIExvYWQodGV4dHVyZSwgaW50NCh4LCB5LCBtaXBtYXAsIGxheWVyKSk7CisgICAgICAg
IH0KKyAgICAgICAgZmxvYXQgZm9vMTkoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVy
ZSwgaW50IHgsIGludCB5LCBpbnQgbWlwbWFwLCBpbnQgbGF5ZXIsIGludCBvZmZzZXRYLCBpbnQg
b2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50NCh4LCB5LCBt
aXBtYXAsIGxheWVyKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAg
ICAgZmxvYXQgZm9vMjAoUldUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGlu
dCB5KSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKHgsIHkpKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb28yMShSV1RleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+
IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IGxheWVyKSB7CisgICAgICAgICAgICByZXR1cm4g
TG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIGxheWVyKSk7CisgICAgICAgIH0KKyAgICBgKTsKKyAg
ICBsZXQgW3RleHR1cmUxRCwgdGV4dHVyZTFEQXJyYXksIHRleHR1cmUyRCwgdGV4dHVyZTJEQXJy
YXksIHRleHR1cmUzRCwgdGV4dHVyZUN1YmUsIHJ3VGV4dHVyZTFELCByd1RleHR1cmUxREFycmF5
LCByd1RleHR1cmUyRCwgcndUZXh0dXJlMkRBcnJheSwgcndUZXh0dXJlM0QsIHRleHR1cmVEZXB0
aDJELCB0ZXh0dXJlRGVwdGgyREFycmF5LCB0ZXh0dXJlRGVwdGhDdWJlLCByd1RleHR1cmVEZXB0
aDJELCByd1RleHR1cmVEZXB0aDJEQXJyYXldID0gY3JlYXRlVGV4dHVyZXNGb3JUZXN0aW5nKHBy
b2dyYW0pOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwg
W3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAxMyk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNyk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDE2KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTcpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDIwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAyMSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgLTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAt
MSldKSwgMTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE3
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIs
IFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMTYpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1
cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDIxKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMjApOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAx
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIs
IFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281Iiwg
W3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCAzNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM4KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4
dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTgpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4
dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAt
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAzNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJE
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNyk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBb
dGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAt
MSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzOCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDMpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQ0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgNTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDc1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCA3Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNzkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDgwKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAx
MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgi
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgMTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCAxOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTEp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzgpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDM1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzOSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IC0xKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIC0xKV0pLCAzNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDUyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCA0NSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTMpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDUyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA2MCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDYxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3Nik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgODApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDc3KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA4MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgODApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCA3Nik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgODEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCA3Nyk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBb
dGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEw
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIs
IFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzMpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDQxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA2NSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVy
ZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDY2KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgNjkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCA3MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0
ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJl
M0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMyk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAxNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCA0MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAxMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxOCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwg
W3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0Mik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1
cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0MSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAzNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCA0Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAtMSldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCA0Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEw
IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgOSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3Rl
eHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0Myk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUz
RCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA1MCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNjYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgNjkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgNjcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgNzApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgNzApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDY1
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAi
LCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcxKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4
dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2Nik7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVy
ZTFELCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3
VGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUlu
dChwcm9ncmFtLCA0KV0pLCA1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwg
Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEx
IiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDYpXSksIDcpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwg
bWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURB
cnJheSwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndU
ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCA1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCA2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFt
LCA2KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA4KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0
dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAx
MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEy
IiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgMTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDEyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFt
LCA0KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE1KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndU
ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMildKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDIpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9n
cmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxOSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjApOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUx
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIxKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBb
cndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAy
KV0pLCAyMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQo
cHJvZ3JhbSwgMildKSwgMjMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDcp
LCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDI0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUlu
dChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJE
LCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1
cmUyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndU
ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNyk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwg
W3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAxMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDEyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFt
LCA1KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHBy
b2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE1KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxNyk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVy
ZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE4KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndU
ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIs
IFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAyKV0p
LCAyMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0s
IDIpXSksIDIxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJv
Z3JhbSwgMildKSwgMjIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUlu
dChwcm9ncmFtLCAyKV0pLCAyMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDcpLCBt
YWtlSW50KHByb2dyYW0sIDIpXSksIDI0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyNik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI3KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjgpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyOSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4
dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDMwKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBb
cndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwg
MzEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAz
KV0pLCAzMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJl
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1Rl
eHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDQyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4
dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0Qs
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0
Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2
IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYi
LCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEw
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYi
LCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAz
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2
IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
MzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
NyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0
aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTci
LCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRo
MkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE3
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTci
LCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzMyk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0
aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAz
Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3
IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM3KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURl
cHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0p
LCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4Iiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMzKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzcpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM4KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0Myk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDUxKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1Mik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDc2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgODApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCAxMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAxMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
MTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
OSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgMzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgLTEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzOSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5Iiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDM1KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCA0NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgNTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQ1KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURl
cHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgNTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDYwKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4
dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA1Myk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgNjEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDc2
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTki
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA4MCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgNzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDgxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA4MCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDc2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCA4MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDc3KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBb
cndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAyKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9n
cmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFr
ZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA1KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVw
dGgyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndU
ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCA4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTEpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0
aDJELCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEyKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndU
ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDE1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9n
cmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTcpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVE
ZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE4KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBb
cndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAy
KV0pLCAxOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQo
cHJvZ3JhbSwgMildKSwgMjApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDQp
LCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChw
cm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQs
IG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjMpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1
cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDI0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAi
LCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAzKV0pLCAyNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMyldKSwgMjYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0s
IDIpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUlu
dChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyOCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRo
MkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1Rl
eHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDMpXSks
IDMwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9n
cmFtLCAzKV0pLCAzMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1h
a2VJbnQocHJvZ3JhbSwgMyldKSwgMzIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIx
IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbcndUZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yMSIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDEpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgNDIpOworfQorCit0ZXN0cy50ZXh0dXJlU3RvcmUgPSBmdW5j
dGlvbigpIHsKKyAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCisgICAgICAgIGZsb2F0IGZvbzEo
UldUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIHVpbnQgbG9jYXRpb24sIGZsb2F0IHZhbHVlKSB7
CisgICAgICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb24pOworICAgICAgICAg
ICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50KGxvY2F0aW9uKSk7CisgICAgICAgIH0KKyAgICAg
ICAgZmxvYXQgZm9vMihSV1RleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlLCB1aW50IGxvY2F0
aW9uLCB1aW50IGxheWVyLCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4dHVy
ZSwgdmFsdWUsIHVpbnQyKGxvY2F0aW9uLCBsYXllcikpOworICAgICAgICAgICAgcmV0dXJuIExv
YWQodGV4dHVyZSwgaW50MihpbnQobG9jYXRpb24pLCBpbnQobGF5ZXIpKSk7CisgICAgICAgIH0K
KyAgICAgICAgZmxvYXQgZm9vMyhSV1RleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgdWludCB4LCB1
aW50IHksIGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwg
dWludDIoeCwgeSkpOworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MihpbnQo
eCksIGludCh5KSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQoUldUZXh0dXJlMkRB
cnJheTxmbG9hdD4gdGV4dHVyZSwgdWludCB4LCB1aW50IHksIHVpbnQgbGF5ZXIsIGZsb2F0IHZh
bHVlKSB7CisgICAgICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDMoeCwgeSwgbGF5
ZXIpKTsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoaW50KHgpLCBpbnQo
eSksIGludChsYXllcikpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb281KFJXVGV4dHVy
ZTNEPGZsb2F0PiB0ZXh0dXJlLCB1aW50IHgsIHVpbnQgeSwgdWludCB6LCBmbG9hdCB2YWx1ZSkg
eworICAgICAgICAgICAgU3RvcmUodGV4dHVyZSwgdmFsdWUsIHVpbnQzKHgsIHksIHopKTsKKyAg
ICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoaW50KHgpLCBpbnQoeSksIGludCh6
KSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzYoUldUZXh0dXJlRGVwdGgyRDxmbG9h
dD4gdGV4dHVyZSwgdWludCB4LCB1aW50IHksIGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICBT
dG9yZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDIoeCwgeSkpOworICAgICAgICAgICAgcmV0dXJuIExv
YWQodGV4dHVyZSwgaW50MihpbnQoeCksIGludCh5KSkpOworICAgICAgICB9CisgICAgICAgIGZs
b2F0IGZvbzcoUldUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCB1aW50IHgsIHVp
bnQgeSwgdWludCBsYXllciwgZmxvYXQgdmFsdWUpIHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1
cmUsIHZhbHVlLCB1aW50Myh4LCB5LCBsYXllcikpOworICAgICAgICAgICAgcmV0dXJuIExvYWQo
dGV4dHVyZSwgaW50MyhpbnQoeCksIGludCh5KSwgaW50KGxheWVyKSkpOworICAgICAgICB9Cisg
ICAgYCk7CisgICAgbGV0IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRl
eHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0
dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNELCB0
ZXh0dXJlRGVwdGgyRCwgdGV4dHVyZURlcHRoMkRBcnJheSwgdGV4dHVyZURlcHRoQ3ViZSwgcndU
ZXh0dXJlRGVwdGgyRCwgcndUZXh0dXJlRGVwdGgyREFycmF5XSA9IGNyZWF0ZVRleHR1cmVzRm9y
VGVzdGluZyhwcm9ncmFtKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWlu
dChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUx
RCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBb
cndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dy
YW0sIDcpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXks
IG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBb
cndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1h
a2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA0KSwg
bWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndU
ZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VV
aW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0
dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50
KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJl
MURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHBy
b2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURB
cnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dy
YW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJh
eSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0s
IDIpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIs
IFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwg
bWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDUp
LCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFty
d1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwg
MiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFr
ZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJl
MkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiks
IG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3
VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dy
YW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWlu
dChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwg
bWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0
dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwg
MyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwg
W3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHBy
b2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtl
VWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWlu
dChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUy
RCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAyKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndU
ZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28z
IiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwg
MiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50
KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHBy
b2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBt
YWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
VWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1
cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAz
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBb
cndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAzKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJv
Z3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VV
aW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0s
IDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
VWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWlu
dChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9n
cmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRo
MkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFt
LCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYi
LCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQs
IG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA1
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBb
cndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1h
a2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndU
ZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VV
aW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0
dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50
KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVp
bnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJl
RGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHBy
b2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVw
dGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dy
YW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJv
Z3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgy
RCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0s
IDYpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIs
IFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwg
bWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDEp
LCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFty
d1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFr
ZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBt
YWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1Rl
eHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVp
bnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtl
VWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtyd1RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBb
cndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b283IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VV
aW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEp
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzciLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVVp
bnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbcndUZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VV
aW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworfQorCit0
ZXN0cy50ZXh0dXJlU2FtcGxlID0gZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1By
ZXAoYAorICAgICAgICBmbG9hdCBmb28xKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxl
ciBzLCBmbG9hdCBsb2NhdGlvbikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJl
LCBzLCBsb2NhdGlvbik7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMihUZXh0dXJlMUQ8
ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpIHsK
KyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgbG9jYXRpb24sIG9mZnNldCk7
CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMyhUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4
dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCBsYXllcikgeworICAgICAgICAgICAgcmV0
dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgbGF5ZXIpKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmb280KFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMs
IGZsb2F0IHgsIGZsb2F0IGxheWVyLCBpbnQgb2Zmc2V0KSB7CisgICAgICAgICAgICByZXR1cm4g
U2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Mih4LCBsYXllciksIG9mZnNldCk7CisgICAgICAgIH0K
KyAgICAgICAgZmxvYXQgZm9vNShUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywg
ZmxvYXQgeCwgZmxvYXQgeSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBz
LCBmbG9hdDIoeCwgeSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzYoVGV4dHVyZTJE
PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGludCBvZmZzZXRY
LCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBm
bG9hdDIoeCwgeSksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAg
IGZsb2F0IGZvbzcoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxv
YXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUo
dGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxv
YXQgZm9vOChUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4
LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAg
ICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGlu
dDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzkoVGV4
dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0
IHopIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQzKHgsIHks
IHopKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xMChUZXh0dXJlM0Q8ZmxvYXQ+IHRl
eHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgaW50IG9mZnNldFgs
IGludCBvZmZzZXRZLCBpbnQgb2Zmc2V0WikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0
ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeiksIGludDMob2Zmc2V0WCwgb2Zmc2V0WSwgb2Zmc2V0
WikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzExKFRleHR1cmVDdWJlPGZsb2F0PiB0
ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopIHsKKyAgICAgICAg
ICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopKTsKKyAgICAgICAg
fQorICAgICAgICBmbG9hdCBmb28xMihUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIg
cywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgQmlhcykgeworICAgICAgICAgICAgcmV0dXJuIFNh
bXBsZUJpYXModGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBCaWFzKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmb28xMyhUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxv
YXQgeCwgZmxvYXQgeSwgZmxvYXQgQmlhcywgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7Cisg
ICAgICAgICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIEJp
YXMsIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZv
bzE0KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5
LCBmbG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHkwLCBmbG9hdCBkZHkxKSB7CisgICAg
ICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGZsb2F0
MihkZHgwLCBkZHgxKSwgZmxvYXQyKGRkeTAsIGRkeTEpKTsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdCBmb28xNShUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwg
ZmxvYXQgeSwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSwg
aW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlR3Jh
ZCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGZsb2F0MihkZHgwLCBkZHgxKSwgZmxvYXQyKGRk
eTAsIGRkeTEpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdCBmb28xNihUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwg
ZmxvYXQgeSwgZmxvYXQgTE9EKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4
dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBMT0QpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZv
bzE3KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5
LCBmbG9hdCBMT0QsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0
dXJuIFNhbXBsZUxldmVsKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgTE9ELCBpbnQyKG9mZnNl
dFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xOChUZXh0dXJlMkRB
cnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBs
YXllciwgZmxvYXQgQmlhcykgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVy
ZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgQmlhcyk7CisgICAgICAgIH0KKyAgICAgICAgZmxv
YXQgZm9vMTkoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQg
eCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IEJpYXMsIGludCBvZmZzZXRYLCBpbnQgb2Zm
c2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVyZSwgcywgZmxvYXQz
KHgsIHksIGxheWVyKSwgQmlhcywgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0K
KyAgICAgICAgZmxvYXQgZm9vMjAoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBs
ZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IGRkeDAsIGZsb2F0IGRk
eDEsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVH
cmFkKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGZsb2F0MihkZHgwLCBkZHgxKSwg
ZmxvYXQyKGRkeTAsIGRkeTEpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28yMShUZXh0
dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBm
bG9hdCBsYXllciwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5
MSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxl
R3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBmbG9hdDIoZGR4MCwgZGR4MSks
IGZsb2F0MihkZHkwLCBkZHkxKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0K
KyAgICAgICAgZmxvYXQgZm9vMjIoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBs
ZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IExPRCkgeworICAgICAg
ICAgICAgcmV0dXJuIFNhbXBsZUxldmVsKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciks
IExPRCk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMjMoVGV4dHVyZTJEQXJyYXk8Zmxv
YXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZs
b2F0IExPRCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4g
U2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgTE9ELCBpbnQyKG9m
ZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgZm9vMjQoVGV4dHVyZTFE
PGludDQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgbG9jYXRpb24pIHsKKyAgICAgICAgICAg
IHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgbG9jYXRpb24pLng7CisgICAgICAgIH0KKyAgICAg
ICAgaW50IGZvbzI1KFRleHR1cmUxRDxpbnQ0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IGxv
Y2F0aW9uKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGxvY2F0aW9u
KS55OworICAgICAgICB9CisgICAgICAgIGludCBmb28yNihUZXh0dXJlMUQ8aW50ND4gdGV4dHVy
ZSwgc2FtcGxlciBzLCBmbG9hdCBsb2NhdGlvbikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBs
ZSh0ZXh0dXJlLCBzLCBsb2NhdGlvbikuejsKKyAgICAgICAgfQorICAgICAgICBpbnQgZm9vMjco
VGV4dHVyZTFEPGludDQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgbG9jYXRpb24pIHsKKyAg
ICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgbG9jYXRpb24pLnc7CisgICAgICAg
IH0KKyAgICAgICAgZmxvYXQgZm9vMjgoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNh
bXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0
ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzI5
KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0
IHksIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBs
ZSh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAg
ICAgICB9CisgICAgICAgIGZsb2F0IGZvbzMwKFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRl
eHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIpIHsKKyAgICAg
ICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSk7Cisg
ICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMzEoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4g
dGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgaW50IG9m
ZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUs
IHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAg
ICB9CisgICAgICAgIGZsb2F0IGZvbzMyKFRleHR1cmVEZXB0aEN1YmU8ZmxvYXQ+IHRleHR1cmUs
IHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeikgeworICAgICAgICAgICAgcmV0
dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeikpOworICAgICAgICB9CisgICAg
ICAgIGZsb2F0IGZvbzMzKFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMs
IGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IEJpYXMpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1w
bGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgQmlhcyk7CisgICAgICAgIH0KKyAgICAg
ICAgZmxvYXQgZm9vMzQoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywg
ZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgQmlhcywgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7
CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSks
IEJpYXMsIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0
IGZvbzM1KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgs
IGZsb2F0IHksIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEp
IHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5
KSwgZmxvYXQyKGRkeDAsIGRkeDEpLCBmbG9hdDIoZGR5MCwgZGR5MSkpOworICAgICAgICB9Cisg
ICAgICAgIGZsb2F0IGZvbzM2KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVy
IHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0IGRkeTAs
IGZsb2F0IGRkeTEsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0
dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBmbG9hdDIoZGR4MCwgZGR4
MSksIGZsb2F0MihkZHkwLCBkZHkxKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAg
IH0KKyAgICAgICAgZmxvYXQgZm9vMzcoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNh
bXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgTE9EKSB7CisgICAgICAgICAgICByZXR1
cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBMT0QpOworICAgICAgICB9
CisgICAgICAgIGZsb2F0IGZvbzM4KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1w
bGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IExPRCwgaW50IG9mZnNldFgsIGludCBvZmZz
ZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQy
KHgsIHkpLCBMT0QsIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAg
IGZsb2F0IGZvbzM5KFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIg
cywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IEJpYXMpIHsKKyAgICAgICAg
ICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIEJp
YXMpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQwKFRleHR1cmVEZXB0aDJEQXJyYXk8
ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIs
IGZsb2F0IEJpYXMsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0
dXJuIFNhbXBsZUJpYXModGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgQmlhcywgaW50
MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDEoVGV4
dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9h
dCB5LCBmbG9hdCBsYXllciwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxv
YXQgZGR5MSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxv
YXQzKHgsIHksIGxheWVyKSwgZmxvYXQyKGRkeDAsIGRkeDEpLCBmbG9hdDIoZGR5MCwgZGR5MSkp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQyKFRleHR1cmVEZXB0aDJEQXJyYXk8Zmxv
YXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZs
b2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEsIGludCBvZmZzZXRY
LCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwg
cywgZmxvYXQzKHgsIHksIGxheWVyKSwgZmxvYXQyKGRkeDAsIGRkeDEpLCBmbG9hdDIoZGR5MCwg
ZGR5MSksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0
IGZvbzQzKFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxv
YXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IExPRCkgeworICAgICAgICAgICAgcmV0
dXJuIFNhbXBsZUxldmVsKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIExPRCk7Cisg
ICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDQoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4g
dGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQg
TE9ELCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1w
bGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBMT0QsIGludDIob2Zmc2V0
WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQ1KFRleHR1cmVEZXB0
aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGNv
bXBhcmVWYWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUNtcCh0ZXh0dXJlLCBzLCBm
bG9hdDIoeCwgeSksIGNvbXBhcmVWYWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9v
NDYoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxv
YXQgeSwgZmxvYXQgY29tcGFyZVZhbHVlLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAg
ICAgICAgICAgIHJldHVybiBTYW1wbGVDbXAodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBjb21w
YXJlVmFsdWUsIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZs
b2F0IGZvbzQ3KFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywg
ZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IGNvbXBhcmVWYWx1ZSkgeworICAg
ICAgICAgICAgcmV0dXJuIFNhbXBsZUNtcCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIp
LCBjb21wYXJlVmFsdWUpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQ4KFRleHR1cmVE
ZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgbGF5ZXIsIGZsb2F0IGNvbXBhcmVWYWx1ZSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZ
KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQ21wKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5
LCBsYXllciksIGNvbXBhcmVWYWx1ZSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAg
IH0KKyAgICAgICAgZmxvYXQgZm9vNDkoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUsIHNhbXBs
ZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgZmxvYXQgYmlhcykgeworICAgICAgICAg
ICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopLCBiaWFzKTsK
KyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb281MChUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVy
ZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBmbG9hdCBkZHgwLCBmbG9h
dCBkZHgxLCBmbG9hdCBkZHgyLCBmbG9hdCBkZHkwLCBmbG9hdCBkZHkxLCBmbG9hdCBkZHkyKSB7
CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwg
eiksIGZsb2F0MyhkZHgwLCBkZHgxLCBkZHgyKSwgZmxvYXQzKGRkeTAsIGRkeTEsIGRkeTIpKTsK
KyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb281MShUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVy
ZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBmbG9hdCBsb2QpIHsKKyAg
ICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeiks
IGxvZCk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNTIoVGV4dHVyZURlcHRoQ3ViZTxm
bG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBmbG9h
dCBiaWFzKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9h
dDMoeCwgeSwgeiksIGJpYXMpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzUzKFRleHR1
cmVEZXB0aEN1YmU8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgeiwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR4MiwgZmxvYXQgZGR5MCwg
ZmxvYXQgZGR5MSwgZmxvYXQgZGR5MikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQo
dGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopLCBmbG9hdDMoZGR4MCwgZGR4MSwgZGR4MiksIGZs
b2F0MyhkZHkwLCBkZHkxLCBkZHkyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNTQo
VGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9h
dCB5LCBmbG9hdCB6LCBmbG9hdCBsb2QpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZl
bCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeiksIGxvZCk7CisgICAgICAgIH0KKyAgICBgKTsK
KyAgICBsZXQgW3RleHR1cmUxRCwgdGV4dHVyZTFEQXJyYXksIHRleHR1cmUyRCwgdGV4dHVyZTJE
QXJyYXksIHRleHR1cmUzRCwgdGV4dHVyZUN1YmUsIHJ3VGV4dHVyZTFELCByd1RleHR1cmUxREFy
cmF5LCByd1RleHR1cmUyRCwgcndUZXh0dXJlMkRBcnJheSwgcndUZXh0dXJlM0QsIHRleHR1cmVE
ZXB0aDJELCB0ZXh0dXJlRGVwdGgyREFycmF5LCB0ZXh0dXJlRGVwdGhDdWJlLCByd1RleHR1cmVE
ZXB0aDJELCByd1RleHR1cmVEZXB0aDJEQXJyYXldID0gY3JlYXRlVGV4dHVyZXNGb3JUZXN0aW5n
KHByb2dyYW0pOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge30pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC4zNzUpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge30p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC40Mzc1KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHt9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNTYyNSldKSwgMTQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUx
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge30pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC42MjUpXSks
IDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjM3NSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC40
Mzc1KV0pLCAoMyAqIDcgKyAxICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAo
NyArIDE0KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNTYyNSldKSwgKDEgKiA3ICsgMyAqIDE0
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNjI1KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBU
b0JvcmRlckNvbG9yIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC4zNzUpXSksIDcpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUx
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9k
ZTogImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNDM3NSldKSwg
KDMgKiA3ICsgMSAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDcgKyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFt
cFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjU2MjUpXSksICgxICogNyAr
IDMgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjYyNSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEgKyAwLjM3NSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSArIDAuNDM3NSldKSwgKDMgKiA3ICsgMSAqIDE0KSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUx
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9k
ZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjUpXSksICg3ICsgMTQpIC8g
Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEi
LCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwg
ckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuNTYyNSld
KSwgKDEgKiA3ICsgMyAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEgKyAwLjYyNSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDIgKyAwLjM3NSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMiArIDAuNDM3NSldKSwgKDMgKiA3ICsgMSAqIDE0KSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1
cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNz
TW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjUpXSksICg3ICsgMTQp
IC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
IiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuNTYy
NSldKSwgKDEgKiA3ICsgMyAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDIgKyAwLjYyNSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjYyNSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9y
UmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuNTYyNSldKSwgKDMgKiA3ICsgMSAq
IDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEgKyAwLjUpXSksICg3ICsgMTQpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuNDM3NSldKSwgKDEgKiA3ICsgMyAqIDE0KSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3Rl
eHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRy
ZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjM3NSld
KSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIg
KyAwLjM3NSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMiArIDAuNDM3NSldKSwgKDMgKiA3ICsgMSAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1p
cnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjUpXSksICg3ICsgMTQpIC8g
Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEi
LCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwg
ckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAu
NTYyNSldKSwgKDEgKiA3ICsgMyAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjYyNSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IC0wLjM3NSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMS4zNzUpXSksIDc5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6
ICJjbGFtcFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMC4zNzUpXSksIDAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJB
ZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEu
Mzc1KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IiLCBib3JkZXJDb2xvcjog
Im9wYXF1ZUJsYWNrIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTAuMzc1KV0pLCAwKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJl
MUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01v
ZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IiLCBib3JkZXJDb2xvcjogIm9wYXF1ZUJsYWNrIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMS4zNzUpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJD
b2xvciIsIGJvcmRlckNvbG9yOiAib3BhcXVlV2hpdGUifSksIG1ha2VGbG9hdChwcm9ncmFtLCAt
MC4zNzUpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciIsIGJvcmRlckNvbG9y
OiAib3BhcXVlV2hpdGUifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxLjM3NSldKSwgMSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVy
ZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NN
b2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIiwgYm9yZGVyQ29sb3I6ICJvcGFxdWVXaGl0ZSJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg3OSArIDEpIC8gMik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbG9kTWluQ2xhbXA6IDF9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEzICsgMTYpIC8gMik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTFELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMTQgKyA3OSkgLyAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNyArIDE0KSAvIDIpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3Rl
eHR1cmUxREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICgxNyAr
IDE4KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgxNCArIDc5KSAvIDIpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksICgxOCArIDE5KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
MCAvIDE2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281
IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCldKSwg
KDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgx
MiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDU0ICsgNTUgKyA2
MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgyMCAr
IDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAoNjIgKyA2MyArIDcwICsgNzEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMiArIDEzICsg
MjAgKyAyMSArIDQ0ICsgNDUgKyA1MiArIDUzKSAvIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8g
MTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwg
KDEzICsgMTQgKyAyMSArIDIyICsgNDUgKyA0NiArIDUzICsgNTQpIC8gOCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSldKSwgKDIwICsgMjEgKyAyOCArIDI5ICsgNTIgKyA1MyArIDYwICsgNjEpIC8gOCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4
dHVyZTNELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCA1IC8gOCldKSwgKDEyICsgMTMgKyAyMCArIDIxICsgKDQ0ICsgNDUgKyA1MiArIDUz
KSAqIDMpIC8gMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIy
ICsgNDUgKyA0NiArIDUzICsgNTQpIC8gOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMjAg
KyAyMSArIDI4ICsgMjkgKyA1MiArIDUzICsgNjAgKyA2MSkgLyA4KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjI1
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCAoNDQgKyA0NSArIDUyICsgNTMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3RleHR1cmVDdWJlLCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzICsg
NCArIDUgKyA2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAxNSArIDE2KSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIs
IFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoMjMgKyAyNCArIDI1ICsgMjYpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3RleHR1cmVDdWJlLCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0p
LCAoMzMgKyAzNCArIDM1ICsgMzYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg0MyArIDQ0ICsgNDUg
KyA0NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpXSksICg1MyArIDU0ICsgNTUgKyA1NikgLyA0KTsKKyAg
ICAvLyBVbmZvcnR1bmF0ZWx5LCB3ZSBjYW4ndCBhY3R1YWxseSB0ZXN0IHRoZSAiQmlhcyIgYXJn
dW1lbnQsIGJlY2F1c2UgaXQgaXMgc3VwcG9zZWQgdG8gYmUgYXBwbGllZAorICAgIC8vIHRvIHRo
ZSB1bmNsYW1wZWQgTE9ELCB3aGljaCBmb3IgdXMgaXMgLUluZmluaXR5IChiZWNhdXNlIG91ciBk
ZXJpdmF0aXZlcyBhcmUgYWxsIDApCisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIx
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3Rl
eHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3RleHR1cmUyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAy
MSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVyZTJELCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmUyRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRl
eHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQ
dHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1
cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMzQgKyAzNSArIDM4ICsgMzkp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE0IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2Fk
VmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVy
ZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJE
LmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0
dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAv
IDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTIg
KyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE1IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
NSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIs
IFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFt0
ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
d2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZh
bHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRo
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
aGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgx
MyArIDE0ICsgMjEgKyAyMikgLyA0KSArICgoMzUgKyAzNiArIDM5ICsgNDApIC8gNCkpIC8gMik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2Iiwg
W3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
XSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMiArIDEz
ICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmls
dGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
XSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0
KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM0ICsgMzUgKyAzOCArIDM5
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgKCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5
KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMzUgKyAzNiArIDM5
ICsgNDApIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE3IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmUyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoKCgxMyArIDE0ICsgMjEgKyAyMikgLyA0KSArICgoMzUgKyAzNiArIDM5
ICsgNDApIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
MCAvIDE2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMjAgKyAyMSArIDI4ICsg
MjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE4IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1
NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNjIgKyA2MyArIDcwICsgNzEpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICg2MiArIDYzICsgNzAgKyA3MSkgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEy
ICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0
ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgxMiArIDEzICsgMjAgKyAyMSkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjAiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9h
ZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJE
LmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIw
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGlu
ZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53
aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1
ZSgpLmhlaWdodCldKSwgKCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAz
OCArIDM5KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUo
KS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCld
KSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICg3NiArIDc3ICsgODAg
KyA4MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5w
b3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
TWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSks
ICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1
cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoKCg1NCArIDU1ICsgNjIgKyA2
MykgLyA0KSArICgoNzYgKyA3NyArIDgwICsgODEpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIy
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMzUgKyAzNiArIDM5ICsgNDApIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwg
W3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUp
IC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIs
IDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwg
W3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
IiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0
aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgp
LmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgo
MTMgKyAxNCArIDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYy
ICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1
NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1cmUy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFs
dWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdo
dCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDc3ICsgNzgg
KyA4MSArIDgyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21p
bkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCBN
YXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdo
dCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYg
KyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21p
bkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIu
bG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQu
ZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICgoKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpICsgKCg3NyArIDc4ICsgODEg
KyA4MikgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxp
bmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1
ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNzYgKyA3NyArIDgwICsgODEpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3RleHR1
cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDU0ICsgNTUgKyA2MiAr
IDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRl
cjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgoKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpICsgKCg3
NiArIDc3ICsgODAgKyA4MSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsg
KCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoMzUgKyAzNiArIDM5ICsgNDApIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDEzICsgMTQgKyAyMSArIDIyKSAvIDQp
ICsgKCgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAoNzYgKyA3NyArIDgwICsgODEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDU0ICsgNTUgKyA2MiArIDYzKSAv
IDQpICsgKCg3NiArIDc3ICsgODAgKyA4MSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAoNzcgKyA3OCArIDgxICsgODIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDU1ICsgNTYgKyA2MyArIDY0
KSAvIDQpICsgKCg3NyArIDc4ICsgODEgKyA4MikgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZTJELCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbG9kTWluQ2xhbXA6IDEsIGxv
ZE1heENsYW1wOiAxfSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIpXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYi
LCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwg
bG9kTWluQ2xhbXA6IDEsIGxvZE1heENsYW1wOiAxfSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzNCAr
IDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWlu
RmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAy
IC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJl
MkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBb
dGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlw
bWFwRmlsdGVyOiAibGluZWFyIiwgbWF4QW5pc290cm9weTogMn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA0IC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sICg0LzMpIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7
CisgICAgbGV0IHRleHR1cmUxREludDQgPSBtYWtlMURUZXh0dXJlKHByb2dyYW0sIFtbWzEsIDIs
IDMsIDRdLCBbMTAwLCAyMDAsIDMwMCwgNDAwXSwgWzEwMSwgMjAyLCAzMDEsIDQwMV0sIFsxMywg
MTQsIDE1LCAxNl1dLCBbWzE3LCAxOCwgMTksIDIwXSwgWzIxLCAyMiwgMjMsIDI0XV0sIFtbMjUs
IDI2LCAyNywgMjhdXV0sICJpbnQ0Iik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yNCIsIFt0ZXh0dXJlMURJbnQ0LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAxMDAp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjUiLCBb
dGV4dHVyZTFESW50NCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgMjAxKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI2IiwgW3RleHR1cmUxREludDQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpXSksIDMwMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yNyIsIFt0ZXh0dXJlMURJbnQ0LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCA0MDApOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOCIsIFt0ZXh0dXJlRGVw
dGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMiArIDEzICsg
MjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOCIsIFt0ZXh0dXJlRGVwdGgy
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCldKSwgKDIwICsgMjEgKyAy
OCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yOSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgx
MyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjkiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMwIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
XSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzAiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwg
KDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zMSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
KDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zMSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoNjIgKyA2MyArIDcwICsgNzEp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMyIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMgKyA0ICsgNSArIDYpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMyIiwgW3RleHR1cmVE
ZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApXSksICgxMyArIDE0ICsgMTUgKyAxNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzIiLCBbdGV4dHVyZURlcHRoQ3ViZSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0p
LCAoMjMgKyAyNCArIDI1ICsgMjYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMyIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzMyArIDM0
ICsgMzUgKyAzNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMzIiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNDMgKyA0NCArIDQ1ICsgNDYp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMyIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpXSksICg1MyArIDU0ICsgNTUgKyA1NikgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjgiLCBbdGV4
dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTIg
KyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzI4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjgiLCBbdGV4dHVy
ZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpXSksICgyMCAr
IDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjkiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI5IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMCIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMwIiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAy
MSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zMSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDYyICsgNjMgKyA3
MCArIDcxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zMyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28z
MyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzMiLCBb
dGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNCIsIFt0ZXh0dXJl
RGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
KDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zNCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNSIs
IFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28z
NSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRo
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMTIg
KyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzM1IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIu
bG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUo
KS5oZWlnaHQpXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzUiLCBbdGV4dHVyZURlcHRoMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1h
dGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0
KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM1IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2Fk
VmFsdWUoKS5oZWlnaHQpXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1
ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMzYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAg
KyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMzYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzYiLCBb
dGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNiIs
IFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMzUgKyAzNiArIDM5ICsgNDApIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM2
IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5l
UHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQ
dHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAoKCgxMyArIDE0ICsgMjEgKyAyMikgLyA0KSArICgoMzUgKyAzNiArIDM5ICsg
NDApIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzM3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzM3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM3IiwgW3Rl
eHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzciLCBbdGV4dHVyZURl
cHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKCgoMTIgKyAxMyArIDIwICsg
MjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOCIsIFt0ZXh0dXJlRGVwdGgy
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsg
MTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOCIsIFt0ZXh0
dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkg
LyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMzgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzgiLCBbdGV4dHVyZURlcHRo
MkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNSAr
IDM2ICsgMzkgKyA0MCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMzgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOCIsIFt0
ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIs
IG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMyArIDE0ICsgMjEgKyAyMikgLyA0
KSArICgoMzUgKyAzNiArIDM5ICsgNDApIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOSIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTMg
KyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzM5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM5IiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28z
OSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0p
LCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNjIgKyA2MyArIDcwICsgNzEpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQwIiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MCIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDAiLCBb
dGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQw
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDYyICsgNjMgKyA3MCArIDcx
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280MSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
d2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSks
ICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgzNCArIDM1ICsg
MzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNDEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhl
aWdodCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIs
IDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5w
b3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKCgoMTIg
KyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAvIDIpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MSIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
XSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICg1NCArIDU1
ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0
ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICg3NiArIDc3ICsgODAgKyA4MSkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBv
dygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBN
YXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwg
KDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280MSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0
ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41
KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKCgoNTQgKyA1NSArIDYy
ICsgNjMpIC8gNCkgKyAoKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpKSAvIDIpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMg
KyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAx
IC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRy
LmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
MzUgKyAzNiArIDM5ICsgNDApIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUo
KS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2Fk
VmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUp
IC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIs
IDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDEzICsgMTQgKyAyMSArIDIyKSAvIDQp
ICsgKCgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyAr
IDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUo
KS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDc3ICsgNzggKyA4
MSArIDgyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVp
Z2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1
NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAoKCg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KSArICgoNzcgKyA3
OCArIDgxICsgODIpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MyIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICgzNCArIDM1ICsgMzggKyAzOSkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSks
ICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgoKDEyICsgMTMg
KyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDMiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYy
ICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSldKSwgKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MyIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
IiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSldKSwgKCgoNTQgKyA1NSArIDYyICsgNjMpIC8gNCkgKyAoKDc2ICsgNzcgKyA4
MCArIDgxKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgx
MiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMiArIDEzICsgMjAgKyAy
MSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBb
dGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxp
bmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksICgoKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpICsgKCgzNSArIDM2ICsgMzkgKyA0MCkgLyA0
KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYy
ICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDc2ICsgNzcg
KyA4MCArIDgxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU0
ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoNTQgKyA1NSArIDYyICsgNjMpIC8gNCkgKyAo
KDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoNzcgKyA3OCArIDgxICsgODIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBt
YXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCg1NSAr
IDU2ICsgNjMgKyA2NCkgLyA0KSArICgoNzcgKyA3OCArIDgxICsgODIpIC8gNCkpIC8gMik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21h
a2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSks
IDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDE3KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQi
KSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5ldmVyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAyMyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwg
ImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNzIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sx
N11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJs
ZXNzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFt
LCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rp
b246ICJsZXNzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShw
cm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJl
RnVuY3Rpb246ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDApOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRl
eHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
Y29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJE
RGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1Iiwg
W21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNzRXF1YWwifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDExKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQi
KSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMTcpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTdd
XV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVz
c0VxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9n
cmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVu
Y3Rpb246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4
dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtj
b21wYXJlRnVuY3Rpb246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2Uy
RERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwg
MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1
IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9h
dCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibm90RXF1YWwifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDE3KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3
XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5v
dEVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9n
cmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVu
Y3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAwKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVw
dGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSks
IDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAyMyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwg
ImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJhbHdheXMi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDExKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtb
WzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjog
ImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJv
Z3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1
bmN0aW9uOiAiYWx3YXlzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4
dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMTEpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBb
W1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlv
bjogIm5ldmVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAw
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDci
LCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0Iiks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVy
ZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAxMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sx
N11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAi
bGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21h
a2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5
KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29t
cGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMTEpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1d
LCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImVxdWFs
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJE
RGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHBy
b2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFy
ZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDExKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1d
XSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNz
RXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDEpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFtt
YWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVy
ZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAxMSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtb
W1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9u
OiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwg
MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3
IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIp
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4
dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibm90RXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFt
LCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5j
dGlvbjogIm5vdEVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3
KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZs
b2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJub3RFcXVhbCJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERl
cHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJy
YXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtj
b21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMTcpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBb
W1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlv
bjogImdyZWF0ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAy
MyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJm
bG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiYWx3YXlzIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAxKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVw
dGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9n
cmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVG
dW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAy
MyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQ5IiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMgKyA0ICsg
NSArIDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ5IiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyAr
IDE0ICsgMTUgKyAxNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNDkiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0p
LCAoMjMgKyAyNCArIDI1ICsgMjYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ5IiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApXSksICgzMyArIDM0ICsgMzUgKyAzNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDkiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoNDMgKyA0NCArIDQ1ICsgNDYpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ5IiwgW3RleHR1cmVDdWJlLCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1MyArIDU0ICsgNTUgKyA1NikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTAiLCBbdGV4dHVy
ZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMgKyA0ICsgNSArIDYpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3Rl
eHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDE1ICsgMTYp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgyMyArIDI0ICsg
MjUgKyAyNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNTAiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgz
MyArIDM0ICsgMzUgKyAzNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNTAiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCldKSwgKDQzICsgNDQgKyA0NSArIDQ2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCldKSwgKDUzICsgNTQgKyA1NSArIDU2KSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAtNCAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtNCAvIHRleHR1cmVDdWJlLmVQdHIubG9h
ZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg5ICsgMTApIC8gMik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwg
W3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLCAwLCA0IC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFs
dWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC00
IC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCldKSwgKDE5ICsgMjApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
NCAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA0IC8gdGV4dHVyZUN1YmUuZVB0
ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgyOSArIDMwKSAvIDIpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCA0IC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC00
IC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgzOSArIDQwKSAvIDIp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MCIs
IFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxv
YWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC00IC8gdGV4
dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgKDQ5ICsgNTApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWlu
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIC00IC8g
dGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAtNCAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApXSksICg1OSArIDYwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApXSksICgzICsgNCArIDUgKyA2KSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDE1ICsgMTYpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUxIiwgW3RleHR1cmVD
dWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIzICsgMjQgKyAyNSArIDI2KSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MSIsIFt0
ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMzMgKyAzNCArIDM1ICsgMzYp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzUxIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDQzICsgNDQgKyA0
NSArIDQ2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTMg
KyA1NCArIDU1ICsgNTYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzUxIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSld
KSwgKDkgKyAxMCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwg
KDE5ICsgMjApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzUxIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDI5
ICsgMzApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUxIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAt
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICgzOSAr
IDQwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg0OSArIDUw
KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNTkgKyA2MCkg
LyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NTIiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzICsgNCAr
IDUgKyA2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb281MiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSks
ICgxMyArIDE0ICsgMTUgKyAxNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNTIiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApXSksICgyMyArIDI0ICsgMjUgKyAyNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTIiLCBbdGV4dHVyZURlcHRoQ3ViZSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMzMgKyAzNCArIDM1ICsgMzYpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUyIiwgW3RleHR1
cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNDMgKyA0NCArIDQ1ICsgNDYp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzUyIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDUzICsg
NTQgKyA1NSArIDU2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb281MyIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApXSksICgzICsgNCArIDUgKyA2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281MyIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDE1ICsgMTYpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1
YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIzICsgMjQgKyAyNSArIDI2KSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MyIsIFt0
ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMzMgKyAzNCArIDM1
ICsgMzYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDQzICsgNDQgKyA0NSArIDQ2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281MyIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKV0pLCAoNTMgKyA1NCArIDU1ICsgNTYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgLTQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTQgLyB0ZXh0dXJlQ3ViZS5lUHRy
LmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoOSArIDEwKSAv
IDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281
MyIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLCAwLCA0IC8gdGV4dHVyZURlcHRoQ3Vi
ZS5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgLTQgLyB0ZXh0dXJlRGVwdGhDdWJlLmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxOSArIDIwKSAvIDIpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MyIsIFt0ZXh0dXJlRGVwdGhD
dWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgNCAvIHRleHR1cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFs
dWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDQgLyB0ZXh0dXJlRGVwdGhDdWJlLmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0p
LCAoMjkgKyAzMCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA0
IC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTQgLyB0ZXh0dXJlRGVw
dGhDdWJlLmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMzkgKyA0MCkgLyAyKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVy
ZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDQgLyB0ZXh0dXJlRGVwdGhDdWJlLmVQdHIu
bG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTQgLyB0
ZXh0dXJlRGVwdGhDdWJlLmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApXSksICg0OSArIDUwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281MyIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIC00IC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC00IC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRyLmxv
YWRWYWx1ZSgpLmhlaWdodCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTkgKyA2MCkgLyAy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQi
LCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzICsgNCArIDUg
KyA2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgx
MyArIDE0ICsgMTUgKyAxNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApXSksICgyMyArIDI0ICsgMjUgKyAyNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMzMgKyAzNCArIDM1ICsgMzYpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU0IiwgW3RleHR1cmVE
ZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNDMgKyA0NCArIDQ1ICsgNDYpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU0
IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDUzICsgNTQg
KyA1NSArIDU2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSld
KSwgKDkgKyAxMCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KV0pLCAoMTkgKyAyMCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpXSksICgyOSArIDMwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpXSksICgzOSArIDQwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSldKSwgKDQ5ICsgNTApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSldKSwgKDU5ICsgNjApIC8gMik7Cit9CisKK3Rlc3RzLnRleHR1cmVHYXRoZXIg
PSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCisgICAgICAgIGZsb2F0
NCBmb28xKFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9h
dCB5KSB7CisgICAgICAgICAgICByZXR1cm4gR2F0aGVyKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5
KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQ0IGZvbzIoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0
dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0
WSkgeworICAgICAgICAgICAgcmV0dXJuIEdhdGhlcih0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSks
IGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0NCBmb28z
KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0
IHksIGZsb2F0IGxheWVyKSB7CisgICAgICAgICAgICByZXR1cm4gR2F0aGVyKHRleHR1cmUsIHMs
IGZsb2F0Myh4LCB5LCBsYXllcikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0NCBmb280KFRl
eHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHks
IGZsb2F0IGxheWVyLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJl
dHVybiBHYXRoZXIodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgaW50MihvZmZzZXRY
LCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQ0IGZvbzUoVGV4dHVyZUN1YmU8
ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeikgewor
ICAgICAgICAgICAgcmV0dXJuIEdhdGhlcih0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeikpOwor
ICAgICAgICB9CisgICAgICAgIGZsb2F0NCBmb282KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0
dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHkpIHsKKyAgICAgICAgICAgIHJldHVybiBH
YXRoZXIodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dDQgZm9vNyhUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4
LCBmbG9hdCB5LCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVy
biBHYXRoZXIodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkp
KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdDQgZm9vOChUZXh0dXJlRGVwdGgyREFycmF5PGZs
b2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyKSB7
CisgICAgICAgICAgICByZXR1cm4gR2F0aGVyKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXll
cikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0NCBmb285KFRleHR1cmVEZXB0aDJEQXJyYXk8
ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIs
IGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIEdhdGhlcih0
ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsK
KyAgICAgICAgfQorICAgICAgICBmbG9hdDQgZm9vMTAoVGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4g
dGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KSB7CisgICAgICAg
ICAgICByZXR1cm4gR2F0aGVyKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSk7CisgICAgICAg
IH0KKyAgICAgICAgZmxvYXQ0IGZvbzExKFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBz
YW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGNvbXBhcmVWYWx1ZSkgeworICAgICAg
ICAgICAgcmV0dXJuIEdhdGhlckNtcCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGNvbXBhcmVW
YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQ0IGZvbzEyKFRleHR1cmVEZXB0aDJEPGZs
b2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGNvbXBhcmVW
YWx1ZSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gR2F0
aGVyQ21wKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgY29tcGFyZVZhbHVlLCBpbnQyKG9mZnNl
dFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdDQgZm9vMTMoVGV4dHVyZURl
cHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBm
bG9hdCBsYXllciwgZmxvYXQgY29tcGFyZVZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4gR2F0
aGVyQ21wKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGNvbXBhcmVWYWx1ZSk7Cisg
ICAgICAgIH0KKyAgICAgICAgZmxvYXQ0IGZvbzE0KFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+
IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0
IGNvbXBhcmVWYWx1ZSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICBy
ZXR1cm4gR2F0aGVyQ21wKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGNvbXBhcmVW
YWx1ZSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICBgKTsKKyAgICBs
ZXQgW3RleHR1cmUxRCwgdGV4dHVyZTFEQXJyYXksIHRleHR1cmUyRCwgdGV4dHVyZTJEQXJyYXks
IHRleHR1cmUzRCwgdGV4dHVyZUN1YmUsIHJ3VGV4dHVyZTFELCByd1RleHR1cmUxREFycmF5LCBy
d1RleHR1cmUyRCwgcndUZXh0dXJlMkRBcnJheSwgcndUZXh0dXJlM0QsIHRleHR1cmVEZXB0aDJE
LCB0ZXh0dXJlRGVwdGgyREFycmF5LCB0ZXh0dXJlRGVwdGhDdWJlLCByd1RleHR1cmVEZXB0aDJE
LCByd1RleHR1cmVEZXB0aDJEQXJyYXldID0gY3JlYXRlVGV4dHVyZXNGb3JUZXN0aW5nKHByb2dy
YW0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCBb
MjAsIDIxLCAxMywgMTJdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpXSksIFsyMSwgMjIsIDE0LCAxM10pOworICAgIGNoZWNrRmxvYXQ0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpXSksIFsyOCwgMjksIDIxLCAyMF0pOworICAgIGNo
ZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJl
MkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBbMjEsIDIyLCAxNCwgMTNdKTsKKyAgICBjaGVj
a0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTJE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgWzI4LCAyOSwgMjEsIDIwXSk7CisgICAgY2hlY2tG
bG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKV0pLCBbMjAsIDIxLCAxMywgMTJdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksIFs2Miwg
NjMsIDU1LCA1NF0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgWzIxLCAyMiwgMTQsIDEzXSk7CisgICAgY2hlY2tGbG9hdDQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCBbMjgsIDI5LCAy
MSwgMjBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIFs2MywgNjQsIDU2LCA1NV0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgWzcwLCA3MSwgNjMsIDYy
XSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281
IiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApXSksIFs1LCA2LCA0LCAzXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCBbMTUsIDE2
LCAxNCwgMTNdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgWzI1LCAyNiwgMjQsIDIzXSk7CisgICAgY2hlY2tG
bG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmVDdWJl
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KV0pLCBbMzUsIDM2LCAzNCwgMzNdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgWzQ1LCA0NiwgNDQsIDQzXSk7
CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281Iiwg
W3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIC0xKV0pLCBbNTUsIDU2LCA1NCwgNTNdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCBbMjAsIDIxLCAxMywgMTJdKTsKKyAg
ICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4
dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwg
WzIxLCAyMiwgMTQsIDEzXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb282IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDYgLyA4KV0pLCBbMjgsIDI5LCAyMSwgMjBdKTsKKyAgICBjaGVja0Zsb2F0NChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZURlcHRoMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCBbMjEsIDIyLCAxNCwgMTNdKTsKKyAgICBjaGVja0Zsb2F0
NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZURlcHRoMkQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCBbMjgsIDI5LCAyMSwgMjBdKTsKKyAgICBjaGVja0Zs
b2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCldKSwgWzIwLCAyMSwgMTMsIDEyXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
XSksIFs2MiwgNjMsIDU1LCA1NF0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBbMjEsIDIyLCAxNCwgMTNdKTsKKyAg
ICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4
dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgWzI4LCAyOSwgMjEsIDIwXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIFs2MywgNjQsIDU2LCA1NV0p
OworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCBbNzAsIDcxLCA2MywgNjJdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgWzUs
IDYsIDQsIDNdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEwIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksIFsxNSwgMTYsIDE0LCAxM10pOworICAg
IGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4
dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCBbMjUsIDI2LCAyNCwgMjNdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSks
IFszNSwgMzYsIDM0LCAzM10pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCBbNDUsIDQ2LCA0NCwgNDNd
KTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEw
IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgLTEpXSksIFs1NSwgNTYsIDU0LCA1M10pOworICAgIGNoZWNrRmxv
YXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZURlcHRo
MkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVu
Y3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTMpXSksIFswLCAwLCAwLCAwXSk7CisgICAg
Y2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0
dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNv
bXBhcmVGdW5jdGlvbjogImxlc3MifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEzKV0pLCBbMSwgMSwgMCwgMF0p
OworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEi
LCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIiLCBjb21wYXJlRnVuY3Rpb246ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTMpXSksIFswLCAw
LCAxLCAwXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MTMpXSksIFsxLCAxLCAxLCAwXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEzKV0pLCBbMCwgMCwgMCwgMV0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJub3RF
cXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMTMpXSksIFsxLCAxLCAwLCAxXSk7CisgICAgY2hlY2tGbG9h
dDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlRGVwdGgy
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5j
dGlvbjogImdyZWF0ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTMpXSksIFswLCAwLCAxLCAxXSk7
CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIs
IFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciIsIGNvbXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTMpXSksIFsxLCAx
LCAxLCAxXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogIm5ldmVyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzAsIDAsIDAsIDBd
KTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEy
IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTQpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIFsxLCAxLCAwLCAwXSk7CisgICAg
Y2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFt0ZXh0
dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNv
bXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzAsIDAsIDEsIDBdKTsKKyAgICBjaGVja0Zs
b2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1cmVEZXB0
aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1
bmN0aW9uOiAibGVzc0VxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzEsIDEsIDEsIDBdKTsKKyAgICBjaGVja0Zsb2F0
NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1cmVEZXB0aDJE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0
aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIFswLCAwLCAwLCAxXSk7CisgICAgY2hlY2tGbG9hdDQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjog
Im5vdEVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgWzEsIDEsIDAsIDFdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiZ3Jl
YXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgWzAsIDAsIDEsIDFdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiYWx3
YXlzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxNCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgWzEsIDEsIDEsIDFdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJuZXZl
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA1NSldKSwgWzAsIDAsIDAs
IDBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJsZXNzIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDU1KV0pLCBbMSwgMSwgMCwgMF0pOworICAgIGNoZWNrRmxvYXQ0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVG
dW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDU1
KV0pLCBbMCwgMCwgMSwgMF0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA1NSldKSwgWzEsIDEsIDEsIDBd
KTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEz
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDU1KV0pLCBbMCwgMCwgMCwgMV0pOworICAgIGNoZWNrRmxvYXQ0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVG
dW5jdGlvbjogIm5vdEVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDU1KV0pLCBbMSwgMSwgMCwgMV0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXJF
cXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA1NSldKSwgWzAsIDAs
IDEsIDFdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNTUpXSksIFsxLCAxLCAxLCAxXSk7CisgICAgY2hlY2tG
bG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29t
cGFyZUZ1bmN0aW9uOiAibmV2ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgNTYpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIFswLCAw
LCAwLCAwXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCA1NiksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgWzEsIDEsIDAsIDBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJl
cXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA1NiksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzAsIDAsIDEsIDBdKTsKKyAgICBj
aGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
LCBjb21wYXJlRnVuY3Rpb246ICJsZXNzRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgNTYpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIFsxLCAxLCAxLCAwXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA1NiksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzAsIDAsIDAsIDFdKTsKKyAgICBjaGVja0Zsb2F0
NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJl
RnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCA1NiksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzEsIDEs
IDAsIDFdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNTYpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIFswLCAwLCAxLCAxXSk7CisgICAgY2hlY2tGbG9hdDQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0
aW9uOiAiYWx3YXlzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDU2KSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBbMSwgMSwgMSwgMV0p
OworICAgIC8vIEZJWE1FOiBHYXRoZXIgb3RoZXIgY29tcG9uZW50cwogfQogCiBva1RvVGVzdCA9
IHRydWU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJl
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kMDc2OTRmYWMyNjdhNzc4MzY1Yjk0YTY4YzAyMTM3MDI1NGNhNTBmCi0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZS5qcwpAQCAtMCwwICsx
LDU0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisidXNl
IHN0cmljdCI7CisKK2NsYXNzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGRpbWVuc2lvbiwg
d2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwg
ZGF0YSkKKyAgICB7CisgICAgICAgIHRoaXMuX2RpbWVuc2lvbiA9IGRpbWVuc2lvbjsKKyAgICAg
ICAgdGhpcy5fd2lkdGggPSB3aWR0aDsKKyAgICAgICAgdGhpcy5faGVpZ2h0ID0gaGVpZ2h0Owor
ICAgICAgICB0aGlzLl9kZXB0aCA9IGRlcHRoOworICAgICAgICB0aGlzLl9sZXZlbENvdW50ID0g
bGV2ZWxDb3VudDsKKyAgICAgICAgdGhpcy5fbGF5ZXJDb3VudCA9IGxheWVyQ291bnQ7CisgICAg
ICAgIHRoaXMuX2lubmVyVHlwZSA9IGlubmVyVHlwZTsKKyAgICAgICAgdGhpcy5fZGF0YSA9IGRh
dGE7CisgICAgfQorCisgICAgZ2V0IGRpbWVuc2lvbigpIHsgcmV0dXJuIHRoaXMuX2RpbWVuc2lv
bjsgfQorICAgIGdldCB3aWR0aCgpIHsgcmV0dXJuIHRoaXMuX3dpZHRoOyB9CisgICAgZ2V0IGhl
aWdodCgpIHsgcmV0dXJuIHRoaXMuX2hlaWdodDsgfQorICAgIGdldCBkZXB0aCgpIHsgcmV0dXJu
IHRoaXMuX2RlcHRoOyB9CisgICAgZ2V0IGxldmVsQ291bnQoKSB7IHJldHVybiB0aGlzLl9sZXZl
bENvdW50OyB9CisgICAgZ2V0IGxheWVyQ291bnQoKSB7IHJldHVybiB0aGlzLl9sYXllckNvdW50
OyB9CisgICAgZ2V0IGlubmVyVHlwZSgpIHsgcmV0dXJuIHRoaXMuX2lubmVyVHlwZTsgfQorICAg
IGdldCBkYXRhKCkgeyByZXR1cm4gdGhpcy5fZGF0YTsgfQorCisgICAgZWxlbWVudENoZWNrZWQo
bGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgaWYgKGxheWVyIDwgMCB8fCBs
YXllciA+PSB0aGlzLmxheWVyQ291bnQKKyAgICAgICAgICAgIHx8IGxldmVsIDwgMCB8fCBsZXZl
bCA+PSB0aGlzLmxldmVsQ291bnQKKyAgICAgICAgICAgIHx8IGsgPCAwIHx8IGsgPj0gdGhpcy5k
ZXB0aAorICAgICAgICAgICAgfHwgaiA8IDAgfHwgaiA+PSB0aGlzLmhlaWdodAorICAgICAgICAg
ICAgfHwgaSA8IDAgfHwgaSA+PSB0aGlzLndpZHRoKQorICAgICAgICAgICAgcmV0dXJuIHVuZGVm
aW5lZDsKKyAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkp
OworICAgIH0KKworICAgIHNldEVsZW1lbnRDaGVja2VkKGxheWVyLCBsZXZlbCwgaywgaiwgaSwg
dmFsdWUpCisgICAgeworICAgICAgICBpZiAobGF5ZXIgPCAwIHx8IGxheWVyID49IHRoaXMubGF5
ZXJDb3VudAorICAgICAgICAgICAgfHwgbGV2ZWwgPCAwIHx8IGxldmVsID49IHRoaXMubGV2ZWxD
b3VudAorICAgICAgICAgICAgfHwgayA8IDAgfHwgayA+PSB0aGlzLmRlcHRoCisgICAgICAgICAg
ICB8fCBqIDwgMCB8fCBqID49IHRoaXMuaGVpZ2h0CisgICAgICAgICAgICB8fCBpIDwgMCB8fCBp
ID49IHRoaXMud2lkdGgpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHRoaXMu
c2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKTsKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlMUQgZXh0ZW5kcyBUZXh0dXJlIHsKKyAg
ICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIg
aXMgYW4gYXJyYXkgb2YgbWlwbWFwcy4KKyAgICAgICAgLy8gVGhlIGZpcnN0IG1pcG1hcCBpcyBh
biBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBhIHNj
YWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRoIG11
c3QgYmUgYSBwb3dlci1vZi10d28uCisgICAgICAgIC8vIEVhY2ggbWlwbWFwIGlzIGhhbGYtc2l6
ZSBvZiB0aGUgcHJldmlvdXMgc2l6ZS4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMTsKKyAg
ICAgICAgbGV0IHdpZHRoID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSAx
OworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGEu
bGVuZ3RoOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IDE7CisgICAgICAgIHN1cGVyKGRpbWVu
c2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVy
VHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdo
dEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBk
ZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAg
ICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLmRhdGFbbGV2ZWxdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVs
LCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsZXZlbF1baV0gPSB2
YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUxREFycmF5IGV4dGVuZHMgVGV4dHVyZSB7
CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAgICAgLy8gImRh
dGEiIGlzIGFuIGFycmF5IG9mIDFEIHRleHR1cmVzLgorICAgICAgICAvLyBBbGwgdGV4dHVyZXMg
bXVzdCBoYXZlIHRoZSBzYW1lIHdpZHRoIGFuZCBudW1iZXIgb2YgbWlwbWFwcy4KKworICAgICAg
ICBsZXQgZGltZW5zaW9uID0gMTsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXVswXS5sZW5n
dGg7CisgICAgICAgIGxldCBoZWlnaHQgPSAxOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAg
ICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgbGF5ZXJD
b3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWln
aHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAg
IH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
LmRhdGFbMF1bbGV2ZWxdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVs
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxl
dmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXll
ciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xheWVy
XVtsZXZlbF1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGos
IGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1baV0gPSB2
YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUyRCBleHRlbmRzIFRleHR1cmUgeworICAg
IGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBp
cyBhbiBhcnJheSBvZiBtaXBtYXBzLgorICAgICAgICAvLyBUaGUgZmlyc3QgbWlwbWFwIGlzIGEg
cmVjdGFuZ3VsYXIgYXJyYXkgb2Ygcm93cywgd2hlcmUgZWFjaCByb3cgaXMgYW4gYXJyYXkgb2Yg
ZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2FsYXIgb3IgYW4g
YXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IG11
c3QgYmUgcG93ZXJzLW9mLXR3by4KKyAgICAgICAgLy8gRWFjaCBtaXBtYXAgaXMgaGFsZi13aWR0
aCBhbmQgaGFsZi1oZWlnaHQgb2YgdGhlIHByZXZpb3VzIHNpemUuCisKKyAgICAgICAgbGV0IGRp
bWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAg
ICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0aCA9IDE7
CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIGxldCBsYXll
ckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0
aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAg
ICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xl
dmVsXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdLmxlbmd0aDsKKyAgICB9CisKKyAgICBk
ZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAg
ICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLmRhdGFbbGV2ZWxdW2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxl
dmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsZXZlbF1bal1b
aV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2xldCBUZXh0dXJlRGVwdGgyRCA9IFRleHR1cmUyRDsK
KworY2xhc3MgVGV4dHVyZTJEQXJyYXkgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rv
cihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkg
b2YgMkQgdGV4dHVyZXMuCisgICAgICAgIC8vIEFsbCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNh
bWUgd2lkdGgsIGhlaWdodCBhbmQgbnVtYmVyIG9mIG1pcG1hcHMuCisKKyAgICAgICAgbGV0IGRp
bWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF1bMF0ubGVuZ3RoOwor
ICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0
aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAg
IGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwg
d2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwg
ZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF1bMF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdo
dEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdW2xldmVs
XS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkp
CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1bal1baV07Cisg
ICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAg
IHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1bal1baV0gPSB2YWx1ZTsKKyAgICB9
Cit9CisKK2xldCBUZXh0dXJlRGVwdGgyREFycmF5ID0gVGV4dHVyZTJEQXJyYXk7CisKK2NsYXNz
IFRleHR1cmUzRCBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwg
ZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiBtaXBtYXBzLgor
ICAgICAgICAvLyBUaGUgZmlyc3QgbWlwbWFwIGlzIGFuIGFycmF5IG9mIGRlcHRoIHNsaWNlcywg
ZWFjaCBkZXB0aCBzbGljZSBpcyBhbiBhcnJheSBvZiByb3dzLCBhbmQgZWFjaCByb3cgaXMgYW4g
YXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2Fs
YXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCwgaGVp
Z2h0LCBhbmQgZGVwdGggbXVzdCBiZSBwb3dlcnMtb2YtdHdvLgorICAgICAgICAvLyBFYWNoIG1p
cG1hcCBpcyBoYWxmLXdpZHRoLCBoYWxmLWhlaWdodCwgYW5kIGhhbGYtZGVwdGggb2YgdGhlIHBy
ZXZpb3VzIHNpemUuCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDM7CisgICAgICAgIGxldCB3
aWR0aCA9IGRhdGFbMF1bMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVsw
XVswXS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0aCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAg
ICBsZXQgbGV2ZWxDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9
IDE7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVs
Q291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhB
dExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1bMF1b
MF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgZGVw
dGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF0u
bGVuZ3RoOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1ba11bal1baV07CisgICAgfQorCisg
ICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAg
ICAgdGhpcy5kYXRhW2xldmVsXVtrXVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3Mg
VGV4dHVyZUN1YmUgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUs
IGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgNiAyRCB0ZXh0
dXJlcy4KKyAgICAgICAgLy8gQWxsIHRleHR1cmVzIG11c3QgaGF2ZSB0aGUgc2FtZSB3aWR0aCwg
aGVpZ2h0LCBkZXB0aCwgYW5kIG51bWJlciBvZiBtaXBtYXBzLgorCisgICAgICAgIGxldCBkaW1l
bnNpb24gPSAyOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdWzBdLmxlbmd0aDsKKyAg
ICAgICAgbGV0IGhlaWdodCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGgg
PSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBs
ZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdp
ZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRh
dGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB0aGlzLmRhdGFbMF1bbGV2ZWxdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRB
dExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF0u
bGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAg
IHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2pdW2ldOworICAg
IH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7
CisgICAgICAgIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2pdW2ldID0gdmFsdWU7CisgICAgfQor
fQorCitsZXQgVGV4dHVyZURlcHRoQ3ViZSA9IFRleHR1cmVDdWJlOworCitjbGFzcyBUZXh0dXJl
MURSVyBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkK
KyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAg
ICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2Nh
bGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRoIG11c3QgYmUgYSBwb3dlci1vZi10d28uCisKKyAg
ICAgICAgbGV0IGRpbWVuc2lvbiA9IDE7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGEubGVuZ3Ro
OworICAgICAgICBsZXQgaGVpZ2h0ID0gMTsKKyAgICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAg
ICAgbGV0IGxldmVsQ291bnQgPSAxOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IDE7CisgICAg
ICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxh
eWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxl
dmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5sZW5ndGg7CisgICAgfQorCisg
ICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0K
KworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAg
IH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuZGF0YVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZl
bCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbaV0gPSB2YWx1ZTsK
KyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUxREFycmF5UlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAg
ICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIg
aXMgYW4gYXJyYXkgb2YgMUQgUlcgdGV4dHVyZXMuCisgICAgICAgIC8vIEFsbCB0ZXh0dXJlcyBt
dXN0IGhhdmUgdGhlIHNhbWUgc2l6ZS4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMTsKKyAg
ICAgICAgbGV0IHdpZHRoID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSAx
OworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7Cisg
ICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIHN1cGVyKGRpbWVu
c2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVy
VHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRM
ZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGRlcHRo
QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVs
ZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
ZGF0YVtsYXllcl1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGss
IGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtpXSA9IHZhbHVl
OworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTJEUlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBj
b25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMg
YSByZWN0YW5ndWxhciBhcnJheSBvZiByb3dzLCB3aGVyZSBlYWNoIHJvdyBpcyBhbiBhcnJheSBv
ZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBhIHNjYWxhciBvciBh
biBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRoIGFuZCBoZWlnaHQg
bXVzdCBiZSBwb3dlcnMtb2YtdHdvLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAyOworICAg
ICAgICBsZXQgd2lkdGggPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRh
dGEubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3Vu
dCA9IDE7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5z
aW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJU
eXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpcy5kYXRhWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExl
dmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5sZW5ndGg7CisgICAg
fQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7Cisg
ICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5kYXRhW2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIs
IGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtqXVtpXSA9
IHZhbHVlOworICAgIH0KK30KKworbGV0IFRleHR1cmVEZXB0aDJEUlcgPSBUZXh0dXJlMkRSVzsK
KworY2xhc3MgVGV4dHVyZTJEQXJyYXlSVyBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVj
dG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJh
eSBvZiAyRCBSVyB0ZXh0dXJlcy4KKyAgICAgICAgLy8gQWxsIHRleHR1cmVzIG11c3QgaGF2ZSB0
aGUgc2FtZSB3aWR0aCBhbmQgaGVpZ2h0LgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAyOwor
ICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdo
dCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQg
bGV2ZWxDb3VudCA9IDE7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7Cisg
ICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQs
IGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVs
KGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVswXS5sZW5ndGg7Cisg
ICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLmRhdGFbMF0ubGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAg
ICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVs
LCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsYXllcl1bal1baV07
CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQor
ICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30K
KworbGV0IFRleHR1cmVEZXB0aDJEQXJyYXlSVyA9IFRleHR1cmUyREFycmF5UlcKKworY2xhc3Mg
VGV4dHVyZTNEUlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUs
IGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgZGVwdGggc2xp
Y2VzLCBlYWNoIGRlcHRoIHNsaWNlIGlzIGFuIGFycmF5IG9mIHJvd3MsIGFuZCBlYWNoIHJvdyBp
cyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBh
IHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRo
LCBoZWlnaHQsIGFuZCBkZXB0aCBtdXN0IGJlIHBvd2Vycy1vZi10d28uCisKKyAgICAgICAgbGV0
IGRpbWVuc2lvbiA9IDM7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF0ubGVuZ3RoOwor
ICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0aCA9
IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7CisgICAgICAgIGxldCBs
YXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBk
ZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisK
KyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRh
WzBdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhB
dExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5sZW5ndGg7Cisg
ICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5kYXRhW2tdW2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5
ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtrXVtq
XVtpXSA9IHZhbHVlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1RleHR1cmVPcGVyYXRpb25zLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmRhZGI4NTAwOTA0MTAxYmZl
NGI0NzgwMjg5NTMwOWRlZThkMTc4MgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1RleHR1cmVPcGVyYXRpb25zLmpzCkBAIC0wLDAgKzEsNzg0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyJ1c2Ugc3RyaWN0IjsK
KworZnVuY3Rpb24gZGVwdGhDb21wYXJlT3BlcmF0aW9uKGRyZWYsIGQsIGNvbXBhcmVGdW5jdGlv
bikKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuMy40CisgICAgc3dpdGNoIChj
b21wYXJlRnVuY3Rpb24pIHsKKyAgICAgICAgY2FzZSAibmV2ZXIiOgorICAgICAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIGNhc2UgImxlc3MiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYgPCBk
ID8gMSA6IDA7CisgICAgICAgIGNhc2UgImVxdWFsIjoKKyAgICAgICAgICAgIHJldHVybiBkcmVm
ID09IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAibGVzc0VxdWFsIjoKKyAgICAgICAgICAgIHJl
dHVybiBkcmVmIDw9IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAiZ3JlYXRlciI6CisgICAgICAg
ICAgICByZXR1cm4gZHJlZiA+IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAibm90RXF1YWwiOgor
ICAgICAgICAgICAgcmV0dXJuIGRyZWYgIT0gZCA/IDEgOiAwOworICAgICAgICBjYXNlICJncmVh
dGVyRXF1YWwiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYgPj0gZCA/IDEgOiAwOworICAgICAg
ICBjYXNlICJhbHdheXMiOgorICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZGVwdGggY29tcGFyaXNvbiBm
dW5jdGlvbiIpOworICAgIH0KK30KKworZnVuY3Rpb24gY29udmVyc2lvblRvUkdCQSh2YWx1ZSkK
K3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuMy41CisgICAgaWYgKHZhbHVlIGlu
c3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IFtdOworICAgICAgICBmb3Ig
KGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgcmVzdWx0LnB1
c2godmFsdWVbaV0pOworICAgICAgICB3aGlsZSAocmVzdWx0Lmxlbmd0aCAhPSA0KQorICAgICAg
ICAgICAgcmVzdWx0LnB1c2gocmVzdWx0Lmxlbmd0aCA9PSAzID8gMSA6IDApOworICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgIH0gZWxzZQorICAgICAgICByZXR1cm4gW3ZhbHVlLCAwLCAwLCAx
XTsKK30KKworZnVuY3Rpb24gcHJvamVjdGlvbk9wZXJhdGlvbihzLCB0LCByLCBkcmVmLCBxKQor
eworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjEKKyAgICByZXR1cm4gW3MgLyBx
LCB0IC8gcSwgciAvIHEsIGRyZWYgIT0gdW5kZWZpbmVkID8gZHJlZiAvIHEgOiB1bmRlZmluZWRd
OworfQorCitmdW5jdGlvbiBjdWJlTWFwRmFjZVNlbGVjdGlvbihzLCB0LCByLCBwYXJ0aWFsUnhX
aXRoUmVzcGVjdFRvWCwgcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSeVdpdGhSZXNw
ZWN0VG9YLCBwYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1gs
IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlv
biAxNS42LjQKKyAgICBsZXQgcnggPSBzOworICAgIGxldCByeSA9IHQ7CisgICAgbGV0IHJ6ID0g
cjsKKyAgICBsZXQgd2lubmVyID0gMDsKKyAgICBpZiAoTWF0aC5hYnMocnopID49IE1hdGguYWJz
KHJ5KSAmJiBNYXRoLmFicyhyeikgPj0gTWF0aC5hYnMocngpKQorICAgICAgICB3aW5uZXIgPSAy
OworICAgIGVsc2UgaWYgKE1hdGguYWJzKHJ5KSA+PSBNYXRoLmFicyhyeCkgJiYgTWF0aC5hYnMo
cnkpID49IE1hdGguYWJzKHJ6KSkKKyAgICAgICAgd2lubmVyID0gMTsKKworICAgIGxldCBsYXll
ck51bWJlcjsKKyAgICBsZXQgc2M7CisgICAgbGV0IHRjOworICAgIGxldCByYzsKKyAgICBsZXQg
cGFydGlhbFNjV2l0aFJlc3BlY3RUb1g7CisgICAgbGV0IHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9Z
OworICAgIGxldCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWDsKKyAgICBsZXQgcGFydGlhbFRjV2l0
aFJlc3BlY3RUb1k7CisgICAgbGV0IHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YOworICAgIGxldCBw
YXJ0aWFsUmNXaXRoUmVzcGVjdFRvWTsKKyAgICBpZiAod2lubmVyID09IDAgJiYgcnggPj0gMCkg
eworICAgICAgICBsYXllck51bWJlciA9IDA7CisgICAgICAgIHNjID0gLXJ6OworICAgICAgICB0
YyA9IC1yeTsKKyAgICAgICAgcmMgPSByeDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RU
b1ggPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNw
ZWN0VG9ZID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRo
UmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRj
V2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRp
YWxSY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBh
cnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgfSBl
bHNlIGlmICh3aW5uZXIgPT0gMCkgeworICAgICAgICBsYXllck51bWJlciA9IDE7CisgICAgICAg
IHNjID0gcno7CisgICAgICAgIHRjID0gLXJ5OworICAgICAgICByYyA9IHJ4OworICAgICAgICBw
YXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAg
ICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAg
ICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsK
KyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RU
b1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeFdpdGhSZXNw
ZWN0VG9YOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnhXaXRo
UmVzcGVjdFRvWTsKKyAgICB9IGVsc2UgaWYgKHdpbm5lciA9PSAxICYmIHJ5ID49IDApIHsKKyAg
ICAgICAgbGF5ZXJOdW1iZXIgPSAyOworICAgICAgICBzYyA9IHJ4OworICAgICAgICB0YyA9IC1y
ejsKKyAgICAgICAgcmMgPSByeTsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSBw
YXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kg
PSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RU
b1ggPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3Bl
Y3RUb1kgPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJl
c3BlY3RUb1ggPSBwYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJjV2l0
aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICB9IGVsc2UgaWYgKHdp
bm5lciA9PSAxKSB7CisgICAgICAgIGxheWVyTnVtYmVyID0gMzsKKyAgICAgICAgc2MgPSByeDsK
KyAgICAgICAgdGMgPSAtcno7CisgICAgICAgIHJjID0gcnk7CisgICAgICAgIHBhcnRpYWxTY1dp
dGhSZXNwZWN0VG9YID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxT
Y1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRp
YWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBw
YXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAg
ICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7Cisg
ICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9Z
OworICAgIH0gZWxzZSBpZiAod2lubmVyID09IDIgJiYgcnogPj0gMCkgeworICAgICAgICBsYXll
ck51bWJlciA9IDQ7CisgICAgICAgIHNjID0gcng7CisgICAgICAgIHRjID0gLXJ5OworICAgICAg
ICByYyA9IHJ6OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeFdp
dGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxS
eFdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0
aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgPSAt
cGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9Y
ID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0
VG9ZID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbGF5
ZXJOdW1iZXIgPSA1OworICAgICAgICBzYyA9IC1yeDsKKyAgICAgICAgdGMgPSAtcnk7CisgICAg
ICAgIHJjID0gcno7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxS
eFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0
aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAt
cGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9Z
ID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVj
dFRvWCA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJl
c3BlY3RUb1kgPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgfQorICAgIHJldHVybiBb
bGF5ZXJOdW1iZXIsIHNjLCB0YywgcmMsIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFs
U2NXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxUY1dpdGhS
ZXNwZWN0VG9ZLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJjV2l0aFJlc3BlY3RU
b1ldCit9CisKK2Z1bmN0aW9uIGN1YmVNYXBDb29yZGluYXRlVHJhbnNmb3JtYXRpb24oc2MsIHRj
LCByYykKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi41CisgICAgbGV0IHNG
YWNlID0gKDEgLyAyKSAqIHNjIC8gTWF0aC5hYnMocmMpICsgKDEgLyAyKTsKKyAgICBsZXQgdEZh
Y2UgPSAoMSAvIDIpICogdGMgLyBNYXRoLmFicyhyYykgKyAoMSAvIDIpOworICAgIHJldHVybiBb
c0ZhY2UsIHRGYWNlXTsKK30KKworZnVuY3Rpb24gY3ViZU1hcERlcml2YXRpdmVUcmFuc2Zvcm1h
dGlvbihzYywgdGMsIHJjLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNjV2l0aFJl
c3BlY3RUb1ksIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRv
WSwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZKQorewor
ICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjYKKyAgICBsZXQgcGFydGlhbFNGYWNl
V2l0aFJlc3BlY3RUb1ggPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFsU2NXaXRo
UmVzcGVjdFRvWCAtIHNjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gpIC8gTWF0aC5wb3cocmMs
IDIpKTsKKyAgICBsZXQgcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1kgPSAoMSAvIDIpICogKChN
YXRoLmFicyhyYykgKiBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSAtIHNjICogcGFydGlhbFJjV2l0
aFJlc3BlY3RUb1kpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICBsZXQgcGFydGlhbFRGYWNlV2l0
aFJlc3BlY3RUb1ggPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFsVGNXaXRoUmVz
cGVjdFRvWCAtIHRjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gpIC8gTWF0aC5wb3cocmMsIDIp
KTsKKyAgICBsZXQgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1kgPSAoMSAvIDIpICogKChNYXRo
LmFicyhyYykgKiBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSAtIHRjICogcGFydGlhbFJjV2l0aFJl
c3BlY3RUb1kpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICByZXR1cm4gW3BhcnRpYWxTRmFjZVdp
dGhSZXNwZWN0VG9YLCBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRGYWNlV2l0
aFJlc3BlY3RUb1gsIHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0VG9ZXTsKK30KKworZnVuY3Rpb24g
c2NhbGVGYWN0b3JPcGVyYXRpb24oZGV2aWNlTWF4QW5pc290cm9weSwgd2lkdGgsIGhlaWdodCwg
ZGVwdGgsIHNhbXBsZXJNYXhBbmlzb3Ryb3B5LCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9YLCBwYXJ0
aWFsVFdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU1dpdGhS
ZXNwZWN0VG9ZLCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9Z
KQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjcKKyAgICBsZXQgbXV4ID0g
TWF0aC5hYnMocGFydGlhbFNXaXRoUmVzcGVjdFRvWCkgKiB3aWR0aDsKKyAgICBsZXQgbXZ4ID0g
TWF0aC5hYnMocGFydGlhbFRXaXRoUmVzcGVjdFRvWCkgKiBoZWlnaHQ7CisgICAgbGV0IG13eCA9
IE1hdGguYWJzKHBhcnRpYWxSV2l0aFJlc3BlY3RUb1gpICogZGVwdGg7CisgICAgbGV0IG11eSA9
IE1hdGguYWJzKHBhcnRpYWxTV2l0aFJlc3BlY3RUb1kpICogd2lkdGg7CisgICAgbGV0IG12eSA9
IE1hdGguYWJzKHBhcnRpYWxUV2l0aFJlc3BlY3RUb1kpICogaGVpZ2h0OworICAgIGxldCBtd3kg
PSBNYXRoLmFicyhwYXJ0aWFsUldpdGhSZXNwZWN0VG9ZKSAqIGRlcHRoOworCisgICAgLy8gSSBt
YWRlIHRoaXMgdXAuIFRoZSBmb3JtdWxhIGlzbid0IGxpc3RlZCBpbiB0aGUgc3BlYy4KKyAgICBs
ZXQgZnggPSBNYXRoLnNxcnQobXV4ICogbXV4ICsgbXZ4ICogbXZ4ICsgbXd4ICogbXd4KTsKKyAg
ICBsZXQgZnkgPSBNYXRoLnNxcnQobXV5ICogbXV5ICsgbXZ5ICogbXZ5ICsgbXd5ICogbXd5KTsK
KworICAgIGxldCByaG9YID0gZng7CisgICAgbGV0IHJob1kgPSBmeTsKKyAgICBsZXQgcmhvTWF4
ID0gTWF0aC5tYXgocmhvWCwgcmhvWSk7CisgICAgbGV0IHJob01pbiA9IE1hdGgubWluKHJob1gs
IHJob1kpOworCisgICAgbGV0IG1heEFuaXNvID0gTWF0aC5taW4oc2FtcGxlck1heEFuaXNvdHJv
cHksIGRldmljZU1heEFuaXNvdHJvcHkpOworCisgICAgbGV0IGV0YTsKKyAgICBpZiAocmhvTWF4
ID09IDAgJiYgcmhvTWluID09IDApCisgICAgICAgIGV0YSA9IDE7CisgICAgZWxzZSBpZiAocmhv
TWluID09IDApCisgICAgICAgIGV0YSA9IG1heEFuaXNvOworICAgIGVsc2UKKyAgICAgICAgZXRh
ID0gTWF0aC5taW4ocmhvTWF4IC8gcmhvTWluLCBtYXhBbmlzbyk7CisKKyAgICBsZXQgTiA9IE1h
dGguY2VpbChldGEpOworICAgIHJldHVybiBbcmhvTWF4LCByaG9NaW4sIGV0YSwgTl07Cit9CisK
K2Z1bmN0aW9uIGxldmVsT2ZEZXRhaWxPcGVyYXRpb24oZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMs
IGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQsIGJpYXNG
cm9tRnVuY3Rpb25PcGVyYW5kLCBzYW1wbGVyQmlhcywgc2FtcGxlckxvZE1pbiwgc2FtcGxlckxv
ZE1heCwgcmhvTWF4LCBldGEpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYu
NworICAgIGlmIChiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCA9PSB1bmRlZmluZWQpCisgICAgICAg
IGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kID0gMDsKKworICAgIGxldCBsYW1iZGFCYXNlID0gbG9k
RnJvbUZ1bmN0aW9uT3BlcmFuZCAhPSB1bmRlZmluZWQgPyBsb2RGcm9tRnVuY3Rpb25PcGVyYW5k
IDogTWF0aC5sb2cyKHJob01heCAvIGV0YSk7CisgICAgbGV0IGxhbWJkYVByaW1lID0gbGFtYmRh
QmFzZSArIE1hdGgubWluKE1hdGgubWF4KHNhbXBsZXJCaWFzICsgYmlhc0Zyb21GdW5jdGlvbk9w
ZXJhbmQsIC1kZXZpY2VNYXhTYW1wbGVyTG9kQmlhcyksIGRldmljZU1heFNhbXBsZXJMb2RCaWFz
KTsKKyAgICBsZXQgbG9kTWluID0gTWF0aC5tYXgoc2FtcGxlckxvZE1pbiwgbG9kTWluRnJvbUZ1
bmN0aW9uT3BlcmFuZCk7CisgICAgbGV0IGxvZE1heCA9IHNhbXBsZXJMb2RNYXg7CisgICAgbGV0
IGxhbWJkYTsKKyAgICBpZiAobGFtYmRhUHJpbWUgPiBsb2RNYXgpCisgICAgICAgIGxhbWJkYSA9
IGxvZE1heDsKKyAgICBlbHNlIGlmIChsb2RNaW4gPD0gbGFtYmRhUHJpbWUgJiYgbGFtYmRhUHJp
bWUgPD0gbG9kTWF4KQorICAgICAgICBsYW1iZGEgPSBsYW1iZGFQcmltZTsKKyAgICBlbHNlIGlm
IChsYW1iZGFQcmltZSA8IGxvZE1pbikKKyAgICAgICAgbGFtYmRhID0gbG9kTWluOworICAgIGVs
c2UKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJsb2RNaW4gPj0gbG9kTWF4Iik7CisgICAgcmV0
dXJuIGxhbWJkYTsKK30KKworZnVuY3Rpb24gaW1hZ2VMZXZlbFNlbGVjdGlvbihiYXNlTWlwTGV2
ZWwsIGxldmVsQ291bnQsIG1pcG1hcE1vZGUsIGxhbWJkYSkKK3sKKyAgICAvLyBWdWxrYW4gMS4x
LjgzIHNlY3Rpb24gMTUuNi43CisgICAgZnVuY3Rpb24gbmVhcmVzdChkUHJpbWUpCisgICAgewor
ICAgICAgICByZXR1cm4gTWF0aC5jZWlsKGRQcmltZSArIDAuNSkgLSAxOworICAgIH0KKworICAg
IGxldCBxID0gbGV2ZWxDb3VudCAtIDE7CisgICAgbGV0IGRQcmltZSA9IGJhc2VNaXBMZXZlbCAr
IE1hdGgubWluKE1hdGgubWF4KGxhbWJkYSwgMCksIHEpOworICAgIGxldCBkbDsKKyAgICBpZiAo
bWlwbWFwTW9kZSA9PSAibmVhcmVzdCIpCisgICAgICAgIGRsID0gbmVhcmVzdChkUHJpbWUpOwor
ICAgIGVsc2UKKyAgICAgICAgZGwgPSBkUHJpbWU7CisgICAgaWYgKG1pcG1hcE1vZGUgPT0gIm5l
YXJlc3QiKQorICAgICAgICByZXR1cm4gZGw7CisgICAgZWxzZSB7CisgICAgICAgIGxldCBkSGkg
PSBNYXRoLmZsb29yKGRsKTsKKyAgICAgICAgbGV0IGRMb3cgPSBNYXRoLm1pbihkSGkgKyAxLCBx
KTsKKyAgICAgICAgbGV0IGRlbHRhID0gZGwgLSBkSGk7CisgICAgICAgIHJldHVybiBbZEhpLCBk
TG93LCBkZWx0YV07CisgICAgfQorfQorCitmdW5jdGlvbiBzdHJxYVRvVVZXQVRyYW5zZm9ybWF0
aW9uKHMsIHQsIHIsIHdpZHRoLCBoZWlnaHQsIGRlcHRoKQoreworICAgIC8vIFZ1bGthbiAxLjEu
ODMgc2VjdGlvbiAxNS42LjgKKyAgICBsZXQgdSA9IHMgKiB3aWR0aDsKKyAgICBsZXQgdiA9IHQg
KiBoZWlnaHQ7CisgICAgbGV0IHcgPSByICogZGVwdGg7CisgICAgcmV0dXJuIFt1LCB2LCB3XTsK
K30KKworZnVuY3Rpb24gdXZ3YVRvSUpLTE5UcmFuc2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJTZWxl
Y3Rpb24obGF5ZXJDb3VudCwgYmFzZUFycmF5TGF5ZXIsIGZpbHRlciwgdSwgdiwgdywgYSwgZGVs
dGFJLCBkZWx0YUosIGRlbHRhSykKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUu
Ny4xCisKKyAgICBpZiAoZGVsdGFJID09IHVuZGVmaW5lZCkKKyAgICAgICAgZGVsdGFJID0gMDsK
KyAgICBpZiAoZGVsdGFKID09IHVuZGVmaW5lZCkKKyAgICAgICAgZGVsdGFKID0gMDsKKyAgICBp
ZiAoZGVsdGFLID09IHVuZGVmaW5lZCkKKyAgICAgICAgZGVsdGFLID0gMDsKKworICAgIGZ1bmN0
aW9uIHJuZShhKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoYSArIDAuNSk7Cisg
ICAgfQorICAgIGxldCBsID0gTWF0aC5taW4oTWF0aC5tYXgocm5lKGEpLCAwKSwgbGF5ZXJDb3Vu
dCAtIDEpICsgYmFzZUFycmF5TGF5ZXI7CisgICAgbGV0IGk7CisgICAgbGV0IGo7CisgICAgbGV0
IGs7CisgICAgaWYgKGZpbHRlciA9PSAibmVhcmVzdCIpIHsKKyAgICAgICAgaSA9IE1hdGguZmxv
b3IodSk7CisgICAgICAgIGogPSBNYXRoLmZsb29yKHYpOworICAgICAgICBrID0gTWF0aC5mbG9v
cih3KTsKKyAgICAgICAgCisgICAgICAgIGkgKz0gZGVsdGFJOworICAgICAgICBqICs9IGRlbHRh
SjsKKyAgICAgICAgayArPSBkZWx0YUs7CisgICAgICAgIAorICAgICAgICByZXR1cm4gW2ksIGos
IGssIGxdOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChmaWx0ZXIgIT0gImxpbmVhciIpCisg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZmlsdGVyIik7CisgICAgICAgIGxl
dCBpMCA9IE1hdGguZmxvb3IodSAtIDAuNSk7CisgICAgICAgIGxldCBpMSA9IGkwICsgMTsKKyAg
ICAgICAgbGV0IGowID0gTWF0aC5mbG9vcih2IC0gMC41KTsKKyAgICAgICAgbGV0IGoxID0gajAg
KyAxOworICAgICAgICBsZXQgazAgPSBNYXRoLmZsb29yKHcgLSAwLjUpOworICAgICAgICBsZXQg
azEgPSBrMCArIDE7CisgICAgICAgIGxldCBhbHBoYSA9ICh1IC0gMC41KSAtIGkwOworICAgICAg
ICBsZXQgYmV0YSA9ICh2IC0gMC41KSAtIGowOworICAgICAgICBsZXQgZ2FtbWEgPSAodyAtIDAu
NSkgLSBrMDsKKyAgICAgICAgCisgICAgICAgIGkwICs9IGRlbHRhSTsKKyAgICAgICAgaTEgKz0g
ZGVsdGFJOworICAgICAgICBqMCArPSBkZWx0YUo7CisgICAgICAgIGoxICs9IGRlbHRhSjsKKyAg
ICAgICAgazAgKz0gZGVsdGFLOworICAgICAgICBrMSArPSBkZWx0YUs7CisgICAgICAgIAorICAg
ICAgICByZXR1cm4gW2kwLCBpMSwgajAsIGoxLCBrMCwgazEsIGwsIGFscGhhLCBiZXRhLCBnYW1t
YV07CisgICAgfQorfQorCitmdW5jdGlvbiBpbnRlZ2VyVGV4ZWxDb29yZGluYXRlT3BlcmF0aW9u
cyhiYXNlTWlwTGV2ZWwsIGxldmVsQ291bnQsIGxldmVsQmFzZSwgbG9kRnJvbUZ1bmN0aW9uT3Bl
cmFuZCkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOAorICAgIGxldCBkID0g
bGV2ZWxCYXNlICsgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZDsKKyAgICBpZiAoZCA8IGJhc2VNaXBM
ZXZlbCB8fCBkID49IGJhc2VNaXBMZXZlbCArIGxldmVsQ291bnQpCisgICAgICAgIHRocm93IG5l
dyBFcnJvcigiU2VsZWN0ZWQgbGV2ZWwgZG9lcyBub3QgbGllIGluc2lkZSB0aGUgaW1hZ2UiKTsK
KyAgICByZXR1cm4gZDsKK30KKworZnVuY3Rpb24gd3JhcHBpbmdPcGVyYXRpb24od2lkdGgsIGhl
aWdodCwgZGVwdGgsIGFkZHJlc3NNb2RlVSwgYWRkcmVzc01vZGVWLCBhZGRyZXNzTW9kZVcsIGks
IGosIGspCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjkuMQorICAgIC8vIEZJ
WE1FOiAiQ3ViZSBpbWFnZXMgaWdub3JlIHRoZSB3cmFwIG1vZGVzIHNwZWNpZmllZCBpbiB0aGUg
c2FtcGxlci4gSW5zdGVhZCwgaWYgVktfRklMVEVSX05FQVJFU1QgaXMgdXNlZCB3aXRoaW4gYSBt
aXAgbGV2ZWwgdGhlbiBWS19TQU1QTEVSX0FERFJFU1NfTU9ERV9DTEFNUF9UT19FREdFIGlzIHVz
ZWQsIGFuZCBpZiBWS19GSUxURVJfTElORUFSIGlzIHVzZWQgd2l0aGluIGEgbWlwIGxldmVsIHRo
ZW4gc2FtcGxpbmcgYXQgdGhlIGVkZ2VzIGlzIHBlcmZvcm1lZCBhcyBkZXNjcmliZWQgZWFybGll
ciBpbiB0aGUgQ3ViZSBtYXAgZWRnZSBoYW5kbGluZyBzZWN0aW9uLiIKKyAgICBmdW5jdGlvbiB0
cmFuc2Zvcm0oYWRkcmVzc01vZGUsIHNpemUsIGkpCisgICAgeworICAgICAgICBmdW5jdGlvbiBt
aXJyb3IobikgeworICAgICAgICAgICAgaWYgKG4gPj0gMCkKKyAgICAgICAgICAgICAgICByZXR1
cm4gbjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gLSgxICsgbik7
CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoIChhZGRyZXNzTW9kZSkgeworICAgICAgICAgICAg
Y2FzZSAiY2xhbXBUb0VkZ2UiOgorICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLm1pbihNYXRo
Lm1heChpLCAwKSwgc2l6ZSAtIDEpOworICAgICAgICAgICAgY2FzZSAicmVwZWF0IjoKKyAgICAg
ICAgICAgICAgICByZXR1cm4gaSAlIHNpemU7CisgICAgICAgICAgICBjYXNlICJtaXJyb3JSZXBl
YXQiOgorICAgICAgICAgICAgICAgIHJldHVybiAoc2l6ZSAtIDEpIC0gbWlycm9yKChpICUgKDIg
KiBzaXplKSkgLSBzaXplKTsKKyAgICAgICAgICAgIGNhc2UgImNsYW1wVG9Cb3JkZXJDb2xvciI6
CisgICAgICAgICAgICAgICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGksIC0xKSwgc2l6ZSk7
CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigi
VW5rbm93biBhZGRyZXNzIG1vZGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gW3Ry
YW5zZm9ybShhZGRyZXNzTW9kZVUsIHdpZHRoLCBpKSwgdHJhbnNmb3JtKGFkZHJlc3NNb2RlViwg
aGVpZ2h0LCBqKSwgdHJhbnNmb3JtKGFkZHJlc3NNb2RlVywgZGVwdGgsIGspXTsKK30KKworZnVu
Y3Rpb24gY2FsY3VsYXRlTGFtYmRhKGRldmljZU1heEFuaXNvdHJvcHksIGRldmljZU1heFNhbXBs
ZXJMb2RCaWFzLCB0ZXh0dXJlLCBzYW1wbGVyLCBzYW1wbGVyQmlhcywgcywgdCwgciwgYSwgbG9k
RnJvbUZ1bmN0aW9uT3BlcmFuZCwgbG9kTWluRnJvbUZ1bmN0aW9uT3BlcmFuZCwgYmlhc0Zyb21G
dW5jdGlvbk9wZXJhbmQsIGRkeCwgZGR5KQoreworICAgIGxldCBwYXJ0aWFsU1dpdGhSZXNwZWN0
VG9YID0gMDsKKyAgICBsZXQgcGFydGlhbFRXaXRoUmVzcGVjdFRvWCA9IDA7CisgICAgbGV0IHBh
cnRpYWxSV2l0aFJlc3BlY3RUb1ggPSAwOworICAgIGlmIChkZHggIT0gdW5kZWZpbmVkKSB7Cisg
ICAgICAgIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1ggPSBkZHhbMF07CisgICAgICAgIHBhcnRpYWxU
V2l0aFJlc3BlY3RUb1ggPSBkZHhbMV07CisgICAgICAgIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1gg
PSBkZHhbMl07CisgICAgfQorICAgIGxldCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9ZID0gMDsKKyAg
ICBsZXQgcGFydGlhbFRXaXRoUmVzcGVjdFRvWSA9IDA7CisgICAgbGV0IHBhcnRpYWxSV2l0aFJl
c3BlY3RUb1kgPSAwOworICAgIGlmIChkZHkgIT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHBhcnRp
YWxTV2l0aFJlc3BlY3RUb1kgPSBkZHlbMF07CisgICAgICAgIHBhcnRpYWxUV2l0aFJlc3BlY3RU
b1kgPSBkZHlbMV07CisgICAgICAgIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kgPSBkZHlbMl07Cisg
ICAgfQorCisgICAgaWYgKHRleHR1cmUgaW5zdGFuY2VvZiBUZXh0dXJlQ3ViZSkgeworICAgICAg
ICAvLyBGSVhNRTogSGFuZGxlIGN1YmVtYXAgZWRnZS9jb3JuZXJzIGNvcnJlY3RseQorICAgICAg
ICBsZXQgW2xheWVyTnVtYmVyLCBzYywgdGMsIHJjLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCwg
cGFydGlhbFNjV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFs
VGNXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSY1dpdGhS
ZXNwZWN0VG9ZXSA9IGN1YmVNYXBGYWNlU2VsZWN0aW9uKHMsIHQsIHIsIHBhcnRpYWxTV2l0aFJl
c3BlY3RUb1gsIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1gs
IHBhcnRpYWxUV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxS
V2l0aFJlc3BlY3RUb1kpCisgICAgICAgIGxldCBbc0ZhY2UsIHRGYWNlXSA9IGN1YmVNYXBDb29y
ZGluYXRlVHJhbnNmb3JtYXRpb24oc2MsIHRjLCByYykKKyAgICAgICAgbGV0IFtwYXJ0aWFsU0Zh
Y2VXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxURmFj
ZVdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRvWV0gPSBjdWJlTWFwRGVy
aXZhdGl2ZVRyYW5zZm9ybWF0aW9uKHNjLCB0YywgcmMsIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9Y
LCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1gsIHBhcnRp
YWxUY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJjV2l0
aFJlc3BlY3RUb1kpCisgICAgICAgIHMgPSBzRmFjZTsKKyAgICAgICAgdCA9IHRGYWNlOworICAg
ICAgICByID0gMDsKKyAgICAgICAgYSA9IGxheWVyTnVtYmVyOworICAgICAgICBwYXJ0aWFsU1dp
dGhSZXNwZWN0VG9YID0gcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRp
YWxTV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAg
cGFydGlhbFRXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0VG9YOworICAg
ICAgICBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1k7
CisgICAgICAgIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1ggPSAwOworICAgICAgICBwYXJ0aWFsUldp
dGhSZXNwZWN0VG9ZID0gMDsKKyAgICB9CisKKyAgICBsZXQgW3Job01heCwgcmhvTWluLCBldGEs
IE5dID0gc2NhbGVGYWN0b3JPcGVyYXRpb24oZGV2aWNlTWF4QW5pc290cm9weSwgdGV4dHVyZS53
aWR0aCwgdGV4dHVyZS5oZWlnaHQsIHRleHR1cmUuZGVwdGgsIHNhbXBsZXIubWF4QW5pc290cm9w
eSwgcGFydGlhbFNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRXaXRoUmVzcGVjdFRvWCwgcGFydGlh
bFJXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRXaXRoUmVz
cGVjdFRvWSwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWSk7CisgICAgbGV0IGxhbWJkYSA9IGxldmVs
T2ZEZXRhaWxPcGVyYXRpb24oZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMsIGxvZEZyb21GdW5jdGlv
bk9wZXJhbmQsIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQsIGJpYXNGcm9tRnVuY3Rpb25PcGVy
YW5kLCBzYW1wbGVyQmlhcywgc2FtcGxlci5sb2RNaW5DbGFtcCwgc2FtcGxlci5sb2RNYXhDbGFt
cCwgcmhvTWF4LCBldGEpOworICAgIHJldHVybiBbcywgdCwgciwgYSwgbGFtYmRhXTsKK30KKwor
ZnVuY3Rpb24gY29tcHV0ZVRhdShsZXZlbCwgYmFzZUFycmF5TGF5ZXIsIHRleHR1cmUsIHNhbXBs
ZXIsIGFkZHJlc3NNb2RlVSwgYWRkcmVzc01vZGVWLCBhZGRyZXNzTW9kZVcsIGZpbHRlciwgcywg
dCwgciwgYSwgZGVsdGFJLCBkZWx0YUosIGRlbHRhSykKK3sKKyAgICBmdW5jdGlvbiBhY2Nlc3ND
b2xvcih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbCwgaSwgaiwgaykKKyAgICB7CisgICAgICAgIGZ1
bmN0aW9uIHNob3VsZEJlQm9yZGVyKHZhbHVlLCBtYXgpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGlmICh2YWx1ZSA8IC0xIHx8IHZhbHVlID4gbWF4KQorICAgICAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigiT3V0LW9mLWJvdW5kcyB0ZXh0dXJlIHJlYWQiKTsKKyAgICAgICAgICAgIHJldHVy
biB2YWx1ZSA9PSAtMSB8fCB2YWx1ZSA9PSBtYXg7CisgICAgICAgIH0KKworICAgICAgICBsZXQg
W3dyYXBwZWRJLCB3cmFwcGVkSiwgd3JhcHBlZEtdID0gd3JhcHBpbmdPcGVyYXRpb24od2lkdGgs
IGhlaWdodCwgZGVwdGgsIGFkZHJlc3NNb2RlVSwgYWRkcmVzc01vZGVWLCBhZGRyZXNzTW9kZVcs
IGksIGosIGspCisgICAgICAgIGlmIChzaG91bGRCZUJvcmRlcih3cmFwcGVkSSwgd2lkdGgpIHx8
IHNob3VsZEJlQm9yZGVyKHdyYXBwZWRKLCBoZWlnaHQpIHx8IHNob3VsZEJlQm9yZGVyKHdyYXBw
ZWRLLCBkZXB0aCkpCisgICAgICAgICAgICByZXR1cm4gc2FtcGxlci5jYWxjdWxhdGVCb3JkZXJD
b2xvcih0ZXh0dXJlLmlubmVyVHlwZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVy
biB0ZXh0dXJlLmVsZW1lbnQobCwgbGV2ZWwsIHdyYXBwZWRLLCB3cmFwcGVkSiwgd3JhcHBlZEkp
OworICAgIH0KKworICAgIGxldCBbdSwgdiwgd10gPSBzdHJxYVRvVVZXQVRyYW5zZm9ybWF0aW9u
KHMsIHQsIHIsIHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExl
dmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpKTsKKyAgICBpZiAoZmlsdGVy
ID09ICJuZWFyZXN0IikgeworICAgICAgICBsZXQgW2ksIGosIGssIGxdID0gdXZ3YVRvSUpLTE5U
cmFuc2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJTZWxlY3Rpb24odGV4dHVyZS5sYXllckNvdW50LCBi
YXNlQXJyYXlMYXllciwgZmlsdGVyLCB1LCB2LCB3LCBhLCBkZWx0YUksIGRlbHRhSiwgZGVsdGFL
KTsKKyAgICAgICAgcmV0dXJuIGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVs
KSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2
ZWwpLCBsLCBpLCBqLCBrKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoZmlsdGVyICE9ICJs
aW5lYXIiKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGZpbHRlciIpOwor
ICAgICAgICBsZXQgW2kwLCBpMSwgajAsIGoxLCBrMCwgazEsIGwsIGFscGhhLCBiZXRhLCBnYW1t
YV0gPSB1dndhVG9JSktMTlRyYW5zZm9ybWF0aW9uQW5kQXJyYXlMYXllclNlbGVjdGlvbih0ZXh0
dXJlLmxheWVyQ291bnQsIGJhc2VBcnJheUxheWVyLCBmaWx0ZXIsIHUsIHYsIHcsIGEsIGRlbHRh
SSwgZGVsdGFKLCBkZWx0YUspOworICAgICAgICBsZXQgY29sb3IwMDAgPSBhY2Nlc3NDb2xvcih0
ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCks
IHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTAsIGowLCBrMCk7CisgICAgICAgIGxl
dCBjb2xvcjEwMCA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4
dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBs
LCBpMSwgajAsIGswKTsKKyAgICAgICAgbGV0IGNvbG9yMDEwID0gYWNjZXNzQ29sb3IodGV4dHVy
ZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0
dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGkwLCBqMSwgazApOworICAgICAgICBsZXQgY29s
b3IxMTAgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUu
aGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTEs
IGoxLCBrMCk7CisgICAgICAgIGxldCBjb2xvcjAwMSA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lk
dGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5k
ZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMCwgajAsIGsxKTsKKyAgICAgICAgbGV0IGNvbG9yMTAx
ID0gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdo
dEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGkxLCBqMCwg
azEpOworICAgICAgICBsZXQgY29sb3IwMTEgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRM
ZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhB
dExldmVsKGxldmVsKSwgbCwgaTAsIGoxLCBrMSk7CisgICAgICAgIGxldCBjb2xvcjExMSA9IGFj
Y2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExl
dmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMSwgajEsIGsxKTsK
KyAgICAgICAgcmV0dXJuIFtjb2xvcjAwMCwgY29sb3IxMDAsIGNvbG9yMDEwLCBjb2xvcjExMCwg
Y29sb3IwMDEsIGNvbG9yMTAxLCBjb2xvcjAxMSwgY29sb3IxMTEsIGFscGhhLCBiZXRhLCBnYW1t
YV07CisgICAgfQorfQorCitmdW5jdGlvbiByZWR1Y2UoLi4udmFsdWVzKQoreworICAgIGlmICh2
YWx1ZXMubGVuZ3RoICUgMiAhPSAwKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkRvbid0IGhh
dmUgYSB3ZWlnaHQgY29ycmVzcG9uZGluZyB0byBlYWNoIHZhbHVlIik7CisgICAgaWYgKHZhbHVl
cy5sZW5ndGggPCAyKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkRvbid0IGhhdmUgZW5vdWdo
IHRoaW5ncyB0byBjYWxjdWxhdGUgYW4gYXZlcmFnZSIpOworICAgIGxldCBzdW07CisgICAgaWYg
KHZhbHVlc1sxXSBpbnN0YW5jZW9mIEFycmF5KSB7CisgICAgICAgIHN1bSA9IFtdOworICAgICAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlc1sxXS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAg
IHN1bS5wdXNoKDApOworICAgIH0gZWxzZQorICAgICAgICBzdW0gPSAwOworICAgIGZvciAobGV0
IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aCAvIDI7ICsraSkgeworICAgICAgICBsZXQgd2VpZ2h0
ID0gdmFsdWVzWzIgKiBpXTsKKyAgICAgICAgbGV0IGNvbG9yID0gdmFsdWVzWzIgKiBpICsgMV07
CisgICAgICAgIGlmIChjb2xvciBpbnN0YW5jZW9mIEFycmF5KSB7CisgICAgICAgICAgICBmb3Ig
KGxldCBpID0gMDsgaSA8IGNvbG9yLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgICAgIHN1bVtp
XSArPSB3ZWlnaHQgKiBjb2xvcltpXTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBzdW0g
Kz0gd2VpZ2h0ICogY29sb3I7CisgICAgfQorICAgIHJldHVybiBzdW07Cit9CisKK2Z1bmN0aW9u
IHRleGVsR2F0aGVyaW5nKAorICAgIGRldmljZU1heEFuaXNvdHJvcHksCisgICAgZGV2aWNlTWF4
U2FtcGxlckxvZEJpYXMsCisgICAgYmFzZU1pcExldmVsLAorICAgIGJhc2VBcnJheUxheWVyLAor
ICAgIHRleHR1cmUsCisgICAgc2FtcGxlciwKKyAgICBzYW1wbGVyQmlhcywKKyAgICBzLCB0LCBy
LCBhLAorICAgIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUssCisgICAgbG9kRnJvbUZ1bmN0aW9uT3Bl
cmFuZCwKKyAgICBsb2RNaW5Gcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgIGJpYXNGcm9tRnVuY3Rp
b25PcGVyYW5kLAorICAgIGRkeCwgZGR5LAorICAgIGNoYW5uZWwpCit7CisgICAgLy8gVnVsa2Fu
IDEuMS44MyBzZWN0aW9uIDE1LjkuMgorCisgICAgLy8gVGhlIHNwZWMgdXNlcyBkaWZmZXJlbnQg
bmFtZXMgdGhhbiBXZWJHUFUgZG9lcy4KKyAgICBsZXQgYWRkcmVzc01vZGVVID0gc2FtcGxlci5y
QWRkcmVzc01vZGU7CisgICAgbGV0IGFkZHJlc3NNb2RlViA9IHNhbXBsZXIuc0FkZHJlc3NNb2Rl
OworICAgIGxldCBhZGRyZXNzTW9kZVcgPSBzYW1wbGVyLnRBZGRyZXNzTW9kZTsKKworICAgIGxl
dCBsYW1iZGE7CisgICAgW3MsIHQsIHIsIGEsIGxhbWJkYV0gPSBjYWxjdWxhdGVMYW1iZGEoZGV2
aWNlTWF4QW5pc290cm9weSwgZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMsIHRleHR1cmUsIHNhbXBs
ZXIsIHNhbXBsZXJCaWFzLCBzLCB0LCByLCBhLCBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLCBsb2RN
aW5Gcm9tRnVuY3Rpb25PcGVyYW5kLCBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwgZGR4LCBkZHkp
OworCisgICAgbGV0IGZpbHRlciA9ICJsaW5lYXIiOworCisgICAgbGV0IGltYWdlTGV2ZWwgPSBp
bWFnZUxldmVsU2VsZWN0aW9uKGJhc2VNaXBMZXZlbCwgdGV4dHVyZS5sZXZlbENvdW50LCAibmVh
cmVzdCIsIGxhbWJkYSk7CisKKyAgICBsZXQgW2NvbG9yMDAwLCBjb2xvcjEwMCwgY29sb3IwMTAs
IGNvbG9yMTEwLCBjb2xvcjAwMSwgY29sb3IxMDEsIGNvbG9yMDExLCBjb2xvcjExMSwgYWxwaGEs
IGJldGEsIGdhbW1hXSA9IGNvbXB1dGVUYXUoaW1hZ2VMZXZlbCwgYmFzZUFycmF5TGF5ZXIsIHRl
eHR1cmUsIHNhbXBsZXIsIGFkZHJlc3NNb2RlVSwgYWRkcmVzc01vZGVWLCBhZGRyZXNzTW9kZVcs
IGZpbHRlciwgcywgdCwgciwgYSwgZGVsdGFJLCBkZWx0YUosIGRlbHRhSyk7CisKKyAgICBpZiAo
dGV4dHVyZS5kaW1lbnNpb24gIT0gMikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qg
Z2F0aGVyIGZyb20gYSBub24tMkQgaW1hZ2UiKTsKKworICAgIGxldCBjb2xvcjAwID0gY29sb3Iw
MDE7CisgICAgbGV0IGNvbG9yMTAgPSBjb2xvcjEwMTsKKyAgICBsZXQgY29sb3IwMSA9IGNvbG9y
MDExOworICAgIGxldCBjb2xvcjExID0gY29sb3IxMTE7CisKKyAgICBzd2l0Y2ggKGNoYW5uZWwp
IHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgaWYgKGNvbG9yMDAgaW5zdGFuY2VvZiBB
cnJheSkKKyAgICAgICAgICAgICAgICByZXR1cm4gW2NvbG9yMDFbMF0sIGNvbG9yMTFbMF0sIGNv
bG9yMTBbMF0sIGNvbG9yMDBbMF1dOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IHJldHVybiBbY29sb3IwMSwgY29sb3IxMSwgY29sb3IxMCwgY29sb3IwMF07CisgICAgICAgIGNh
c2UgMToKKyAgICAgICAgICAgIHJldHVybiBbY29sb3IwMVsxXSwgY29sb3IxMVsxXSwgY29sb3Ix
MFsxXSwgY29sb3IwMFsxXV07CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVybiBb
Y29sb3IwMVsyXSwgY29sb3IxMVsyXSwgY29sb3IxMFsyXSwgY29sb3IwMFsyXV07CisgICAgICAg
IGNhc2UgMzoKKyAgICAgICAgICAgIHJldHVybiBbY29sb3IwMVszXSwgY29sb3IxMVszXSwgY29s
b3IxMFszXSwgY29sb3IwMFszXV07CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIlVua25vd24gY2hhbm5lbCB0byBnYXRoZXIgZnJvbSIpOworICAgIH0KK30K
KworZnVuY3Rpb24gdGV4ZWxGaWx0ZXJpbmcoCisgICAgZGV2aWNlTWF4QW5pc290cm9weSwKKyAg
ICBkZXZpY2VNYXhTYW1wbGVyTG9kQmlhcywKKyAgICBiYXNlTWlwTGV2ZWwsCisgICAgYmFzZUFy
cmF5TGF5ZXIsCisgICAgdGV4dHVyZSwKKyAgICBzYW1wbGVyLAorICAgIHNhbXBsZXJCaWFzLAor
ICAgIHMsIHQsIHIsIGEsCisgICAgZGVsdGFJLCBkZWx0YUosIGRlbHRhSywKKyAgICBsb2RGcm9t
RnVuY3Rpb25PcGVyYW5kLAorICAgIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgYmlh
c0Zyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgZGR4LCBkZHkpCit7CisgICAgLy8gVnVsa2FuIDEu
MS44MyBzZWN0aW9uIDE1LjkuMworCisgICAgLy8gVGhlIHNwZWMgdXNlcyBkaWZmZXJlbnQgbmFt
ZXMgdGhhbiBXZWJHUFUgZG9lcy4KKyAgICBsZXQgYWRkcmVzc01vZGVVID0gc2FtcGxlci5yQWRk
cmVzc01vZGU7CisgICAgbGV0IGFkZHJlc3NNb2RlViA9IHNhbXBsZXIuc0FkZHJlc3NNb2RlOwor
ICAgIGxldCBhZGRyZXNzTW9kZVcgPSBzYW1wbGVyLnRBZGRyZXNzTW9kZTsKKworICAgIGxldCBs
YW1iZGE7CisgICAgW3MsIHQsIHIsIGEsIGxhbWJkYV0gPSBjYWxjdWxhdGVMYW1iZGEoZGV2aWNl
TWF4QW5pc290cm9weSwgZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMsIHRleHR1cmUsIHNhbXBsZXIs
IHNhbXBsZXJCaWFzLCBzLCB0LCByLCBhLCBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLCBsb2RNaW5G
cm9tRnVuY3Rpb25PcGVyYW5kLCBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwgZGR4LCBkZHkpOwor
CisgICAgbGV0IGZpbHRlcjsKKyAgICBpZiAobGFtYmRhIDw9IDApCisgICAgICAgIGZpbHRlciA9
IHNhbXBsZXIubWFnRmlsdGVyOworICAgIGVsc2UKKyAgICAgICAgZmlsdGVyID0gc2FtcGxlci5t
aW5GaWx0ZXI7CisKKyAgICBmdW5jdGlvbiBjb21wdXRlQ29sb3JGcm9tTGV2ZWwobGV2ZWwpCisg
ICAgeworICAgICAgICBpZiAoZmlsdGVyID09ICJuZWFyZXN0IikgeworICAgICAgICAgICAgcmV0
dXJuIGNvbXB1dGVUYXUobGV2ZWwsIGJhc2VBcnJheUxheWVyLCB0ZXh0dXJlLCBzYW1wbGVyLCBh
ZGRyZXNzTW9kZVUsIGFkZHJlc3NNb2RlViwgYWRkcmVzc01vZGVXLCBmaWx0ZXIsIHMsIHQsIHIs
IGEsIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUspOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgaWYgKGZpbHRlciAhPSAibGluZWFyIikKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIlVua25vd24gZmlsdGVyIik7CisgICAgICAgICAgICBsZXQgW2NvbG9yMDAwLCBjb2xvcjEw
MCwgY29sb3IwMTAsIGNvbG9yMTEwLCBjb2xvcjAwMSwgY29sb3IxMDEsIGNvbG9yMDExLCBjb2xv
cjExMSwgYWxwaGEsIGJldGEsIGdhbW1hXSA9IGNvbXB1dGVUYXUobGV2ZWwsIGJhc2VBcnJheUxh
eWVyLCB0ZXh0dXJlLCBzYW1wbGVyLCBhZGRyZXNzTW9kZVUsIGFkZHJlc3NNb2RlViwgYWRkcmVz
c01vZGVXLCBmaWx0ZXIsIHMsIHQsIHIsIGEsIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUspOworICAg
ICAgICAgICAgc3dpdGNoICh0ZXh0dXJlLmRpbWVuc2lvbikgeworICAgICAgICAgICAgICAgIGNh
c2UgMToKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMCA9IGNvbG9yMDExOworICAgICAg
ICAgICAgICAgICAgICBsZXQgY29sb3IxID0gY29sb3IxMTE7CisgICAgICAgICAgICAgICAgICAg
IHJldHVybiByZWR1Y2UoMSAtIGFscGhhLCBjb2xvcjAsIGFscGhhLCBjb2xvcjEpOworICAgICAg
ICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMDAgPSBjb2xv
cjAwMTsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMTAgPSBjb2xvcjEwMTsKKyAgICAg
ICAgICAgICAgICAgICAgbGV0IGNvbG9yMDEgPSBjb2xvcjAxMTsKKyAgICAgICAgICAgICAgICAg
ICAgbGV0IGNvbG9yMTEgPSBjb2xvcjExMTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJl
ZHVjZSgoMSAtIGFscGhhKSAqICgxIC0gYmV0YSksIGNvbG9yMDAsIGFscGhhICogKDEgLSBiZXRh
KSwgY29sb3IxMCwgKDEgLSBhbHBoYSkgKiBiZXRhLCBjb2xvcjAxLCBhbHBoYSAqIGJldGEsIGNv
bG9yMTEpOworICAgICAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHJlZHVjZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICgxIC0gYWxwaGEpICogKDEgLSBi
ZXRhKSAqICgxIC0gZ2FtbWEpLCBjb2xvcjAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFs
cGhhICogKDEgLSBiZXRhKSAqICgxIC0gZ2FtbWEpLCBjb2xvcjEwMCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICgxIC0gYWxwaGEpICogYmV0YSAqICgxIC0gZ2FtbWEpLCBjb2xvcjAxMCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGFscGhhICogYmV0YSAqICgxIC0gZ2FtbWEpLCBjb2xvcjEx
MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICgxIC0gYWxwaGEpICogKDEgLSBiZXRhKSAqIGdh
bW1hLCBjb2xvcjAwMSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFscGhhICogKDEgLSBiZXRh
KSAqIGdhbW1hLCBjb2xvcjEwMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICgxIC0gYWxwaGEp
ICogYmV0YSAqIGdhbW1hLCBjb2xvcjAxMSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFscGhh
ICogYmV0YSAqIGdhbW1hLCBjb2xvcjExMSk7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGRpbWVuc2lvbiIpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHNhbXBsZXIubWlwbWFw
RmlsdGVyID09ICJuZWFyZXN0IikgeworICAgICAgICBsZXQgaW1hZ2VMZXZlbCA9IGltYWdlTGV2
ZWxTZWxlY3Rpb24oYmFzZU1pcExldmVsLCB0ZXh0dXJlLmxldmVsQ291bnQsIHNhbXBsZXIubWlw
bWFwRmlsdGVyLCBsYW1iZGEpOworICAgICAgICByZXR1cm4gY29tcHV0ZUNvbG9yRnJvbUxldmVs
KGltYWdlTGV2ZWwpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChzYW1wbGVyLm1pcG1hcEZp
bHRlciAhPSAibGluZWFyIikKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBm
aWx0ZXIiKTsKKyAgICAgICAgbGV0IFtkSGksIGRMb3csIGRlbHRhXSA9IGltYWdlTGV2ZWxTZWxl
Y3Rpb24oYmFzZU1pcExldmVsLCB0ZXh0dXJlLmxldmVsQ291bnQsIHNhbXBsZXIubWlwbWFwRmls
dGVyLCBsYW1iZGEpOworICAgICAgICByZXR1cm4gcmVkdWNlKDEgLSBkZWx0YSwgY29tcHV0ZUNv
bG9yRnJvbUxldmVsKGRIaSksIGRlbHRhLCBjb21wdXRlQ29sb3JGcm9tTGV2ZWwoZExvdykpOwor
ICAgIH0KK30KKworZnVuY3Rpb24gY2FzdFRvSW5uZXJUeXBlRm9yR2F0aGVyKHZhbHVlLCBpbm5l
clR5cGUpCit7CisgICAgc3dpdGNoIChpbm5lclR5cGUpIHsKKyAgICAgICAgY2FzZSAidWNoYXIi
OgorICAgICAgICBjYXNlICJ1Y2hhcjIiOgorICAgICAgICBjYXNlICJ1Y2hhcjMiOgorICAgICAg
ICBjYXNlICJ1Y2hhcjQiOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcChjYXN0VG9VY2hh
cik7CisgICAgICAgIGNhc2UgInVzaG9ydCI6CisgICAgICAgIGNhc2UgInVzaG9ydDIiOgorICAg
ICAgICBjYXNlICJ1c2hvcnQzIjoKKyAgICAgICAgY2FzZSAidXNob3J0NCI6CisgICAgICAgICAg
ICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb1VzaG9ydCk7CisgICAgICAgIGNhc2UgInVpbnQiOgor
ICAgICAgICBjYXNlICJ1aW50MiI6CisgICAgICAgIGNhc2UgInVpbnQzIjoKKyAgICAgICAgY2Fz
ZSAidWludDQiOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcChjYXN0VG9VaW50KTsKKyAg
ICAgICAgY2FzZSAiY2hhciI6CisgICAgICAgIGNhc2UgImNoYXIyIjoKKyAgICAgICAgY2FzZSAi
Y2hhcjMiOgorICAgICAgICBjYXNlICJjaGFyNCI6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUu
bWFwKGNhc3RUb0NoYXIpOworICAgICAgICBjYXNlICJzaG9ydCI6CisgICAgICAgIGNhc2UgInNo
b3J0MiI6CisgICAgICAgIGNhc2UgInNob3J0MyI6CisgICAgICAgIGNhc2UgInNob3J0NCI6Cisg
ICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb1Nob3J0KTsKKyAgICAgICAgY2FzZSAi
aW50IjoKKyAgICAgICAgY2FzZSAiaW50MiI6CisgICAgICAgIGNhc2UgImludDMiOgorICAgICAg
ICBjYXNlICJpbnQ0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoY2FzdFRvSW50KTsK
KyAgICAgICAgY2FzZSAiaGFsZiI6CisgICAgICAgIGNhc2UgImhhbGYyIjoKKyAgICAgICAgY2Fz
ZSAiaGFsZjMiOgorICAgICAgICBjYXNlICJoYWxmNCI6CisgICAgICAgICAgICByZXR1cm4gdmFs
dWUubWFwKGNhc3RUb0hhbGYpOworICAgICAgICBjYXNlICJmbG9hdCI6CisgICAgICAgIGNhc2Ug
ImZsb2F0MiI6CisgICAgICAgIGNhc2UgImZsb2F0MyI6CisgICAgICAgIGNhc2UgImZsb2F0NCI6
CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb0Zsb2F0KTsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biB0ZXh0dXJlIGlubmVy
IHR5cGUiKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGdhdGhlclRleHR1cmUodGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb24sIGRlbHRhLCBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwgZGR4LCBkZHks
IGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsIGRyZWYsIGNoYW5uZWwpCit7CisgICAgbGV0IHMgPSBs
b2NhdGlvblswXTsKKyAgICBsZXQgdCA9IGxvY2F0aW9uWzFdOworICAgIGxldCByID0gbG9jYXRp
b25bMl07CisgICAgbGV0IHEgPSBsb2NhdGlvblszXTsKKyAgICBsZXQgYSA9IGxvY2F0aW9uWzRd
OworCisgICAgbGV0IGRlbHRhSSA9IHVuZGVmaW5lZDsKKyAgICBsZXQgZGVsdGFKID0gdW5kZWZp
bmVkOworICAgIGxldCBkZWx0YUsgPSB1bmRlZmluZWQ7CisgICAgaWYgKGRlbHRhICE9IHVuZGVm
aW5lZCkgeworICAgICAgICBkZWx0YUkgPSBkZWx0YVswXTsKKyAgICAgICAgZGVsdGFKID0gZGVs
dGFbMV07CisgICAgICAgIGRlbHRhSyA9IGRlbHRhWzJdOworICAgIH0KKworICAgIFtzLCB0LCBy
LCBkcmVmXSA9IHByb2plY3Rpb25PcGVyYXRpb24ocywgdCwgciwgZHJlZiwgcSk7CisgICAgbGV0
IHJlc3VsdCA9IHRleGVsR2F0aGVyaW5nKAorICAgICAgICBOdW1iZXIuTUFYX1ZBTFVFLAorICAg
ICAgICBOdW1iZXIuTUFYX1ZBTFVFLAorICAgICAgICAwLAorICAgICAgICAwLAorICAgICAgICB0
ZXh0dXJlLAorICAgICAgICBzYW1wbGVyLAorICAgICAgICAwLAorICAgICAgICBzLCB0LCByLCBh
LAorICAgICAgICBkZWx0YUksIGRlbHRhSiwgZGVsdGFLLAorICAgICAgICBsb2RGcm9tRnVuY3Rp
b25PcGVyYW5kLAorICAgICAgICAtTnVtYmVyLk1BWF9WQUxVRSwKKyAgICAgICAgYmlhc0Zyb21G
dW5jdGlvbk9wZXJhbmQsCisgICAgICAgIGRkeCwgZGR5LAorICAgICAgICBjaGFubmVsKTsKKyAg
ICBpZiAoZHJlZiAhPSB1bmRlZmluZWQpCisgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5tYXAodiA9
PiBkZXB0aENvbXBhcmVPcGVyYXRpb24oZHJlZiwgdiwgc2FtcGxlci5jb21wYXJlRnVuY3Rpb24p
KTsKKyAgICByZXR1cm4gY2FzdFRvSW5uZXJUeXBlRm9yR2F0aGVyKHJlc3VsdCwgdGV4dHVyZS5p
bm5lclR5cGUpOworICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gZG8gd2l0aCBhbmlz
b3Ryb3B5CisgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgaG93IHRvIGRvIG11bHRpc2FtcGxpbmcu
Cit9CisKK2Z1bmN0aW9uIGNhc3RUb0lubmVyVHlwZSh2YWx1ZSwgaW5uZXJUeXBlKQoreworICAg
IHN3aXRjaCAoaW5uZXJUeXBlKSB7CisgICAgICAgIGNhc2UgInVjaGFyIjoKKyAgICAgICAgICAg
IHJldHVybiBjYXN0VG9VY2hhcih2YWx1ZSk7CisgICAgICAgIGNhc2UgInVzaG9ydCI6CisgICAg
ICAgICAgICByZXR1cm4gY2FzdFRvVXNob3J0KHZhbHVlKTsKKyAgICAgICAgY2FzZSAidWludCI6
CisgICAgICAgICAgICByZXR1cm4gY2FzdFRvVWludCh2YWx1ZSk7CisgICAgICAgIGNhc2UgImNo
YXIiOgorICAgICAgICAgICAgcmV0dXJuIGNhc3RUb0NoYXIodmFsdWUpOworICAgICAgICBjYXNl
ICJzaG9ydCI6CisgICAgICAgICAgICByZXR1cm4gY2FzdFRvU2hvcnQodmFsdWUpOworICAgICAg
ICBjYXNlICJpbnQiOgorICAgICAgICAgICAgcmV0dXJuIGNhc3RUb0ludCh2YWx1ZSk7CisgICAg
ICAgIGNhc2UgImhhbGYiOgorICAgICAgICAgICAgcmV0dXJuIGNhc3RUb0hhbGYodmFsdWUpOwor
ICAgICAgICBjYXNlICJmbG9hdCI6CisgICAgICAgICAgICByZXR1cm4gY2FzdFRvRmxvYXQodmFs
dWUpOworICAgICAgICAKKyAgICAgICAgY2FzZSAidWNoYXIyIjoKKyAgICAgICAgY2FzZSAidWNo
YXIzIjoKKyAgICAgICAgY2FzZSAidWNoYXI0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5t
YXAoY2FzdFRvVWNoYXIpOworICAgICAgICBjYXNlICJ1c2hvcnQyIjoKKyAgICAgICAgY2FzZSAi
dXNob3J0MyI6CisgICAgICAgIGNhc2UgInVzaG9ydDQiOgorICAgICAgICAgICAgcmV0dXJuIHZh
bHVlLm1hcChjYXN0VG9Vc2hvcnQpOworICAgICAgICBjYXNlICJ1aW50MiI6CisgICAgICAgIGNh
c2UgInVpbnQzIjoKKyAgICAgICAgY2FzZSAidWludDQiOgorICAgICAgICAgICAgcmV0dXJuIHZh
bHVlLm1hcChjYXN0VG9VaW50KTsKKyAgICAgICAgY2FzZSAiY2hhcjIiOgorICAgICAgICBjYXNl
ICJjaGFyMyI6CisgICAgICAgIGNhc2UgImNoYXI0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1
ZS5tYXAoY2FzdFRvQ2hhcik7CisgICAgICAgIGNhc2UgInNob3J0MiI6CisgICAgICAgIGNhc2Ug
InNob3J0MyI6CisgICAgICAgIGNhc2UgInNob3J0NCI6CisgICAgICAgICAgICByZXR1cm4gdmFs
dWUubWFwKGNhc3RUb1Nob3J0KTsKKyAgICAgICAgY2FzZSAiaW50MiI6CisgICAgICAgIGNhc2Ug
ImludDMiOgorICAgICAgICBjYXNlICJpbnQ0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5t
YXAoY2FzdFRvSW50KTsKKyAgICAgICAgY2FzZSAiaGFsZjIiOgorICAgICAgICBjYXNlICJoYWxm
MyI6CisgICAgICAgIGNhc2UgImhhbGY0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAo
Y2FzdFRvSGFsZik7CisgICAgICAgIGNhc2UgImZsb2F0MiI6CisgICAgICAgIGNhc2UgImZsb2F0
MyI6CisgICAgICAgIGNhc2UgImZsb2F0NCI6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFw
KGNhc3RUb0Zsb2F0KTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBF
cnJvcigiVW5rbm93biB0ZXh0dXJlIGlubmVyIHR5cGUiKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9u
IHNhbXBsZVRleHR1cmUodGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRlbHRhLCBiaWFzRnJv
bUZ1bmN0aW9uT3BlcmFuZCwgZGR4LCBkZHksIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsIGRyZWYp
Cit7CisgICAgbGV0IHMgPSBsb2NhdGlvblswXTsKKyAgICBsZXQgdCA9IGxvY2F0aW9uWzFdOwor
ICAgIGxldCByID0gbG9jYXRpb25bMl07CisgICAgbGV0IHEgPSBsb2NhdGlvblszXTsKKyAgICBs
ZXQgYSA9IGxvY2F0aW9uWzRdOworCisgICAgbGV0IGRlbHRhSSA9IHVuZGVmaW5lZDsKKyAgICBs
ZXQgZGVsdGFKID0gdW5kZWZpbmVkOworICAgIGxldCBkZWx0YUsgPSB1bmRlZmluZWQ7CisgICAg
aWYgKGRlbHRhICE9IHVuZGVmaW5lZCkgeworICAgICAgICBkZWx0YUkgPSBkZWx0YVswXTsKKyAg
ICAgICAgZGVsdGFKID0gZGVsdGFbMV07CisgICAgICAgIGRlbHRhSyA9IGRlbHRhWzJdOworICAg
IH0KKworICAgIFtzLCB0LCByLCBkcmVmXSA9IHByb2plY3Rpb25PcGVyYXRpb24ocywgdCwgciwg
ZHJlZiwgcSk7CisgICAgbGV0IHJlc3VsdCA9IHRleGVsRmlsdGVyaW5nKAorICAgICAgICBOdW1i
ZXIuTUFYX1ZBTFVFLAorICAgICAgICBOdW1iZXIuTUFYX1ZBTFVFLAorICAgICAgICAwLAorICAg
ICAgICAwLAorICAgICAgICB0ZXh0dXJlLAorICAgICAgICBzYW1wbGVyLAorICAgICAgICAwLAor
ICAgICAgICBzLCB0LCByLCBhLAorICAgICAgICBkZWx0YUksIGRlbHRhSiwgZGVsdGFLLAorICAg
ICAgICBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgICAgICAtTnVtYmVyLk1BWF9WQUxVRSwK
KyAgICAgICAgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgICAgIGRkeCwgZGR5KTsKKyAg
ICBpZiAoZHJlZiAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9m
IEFycmF5KQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJEZXB0aCBjb21wYXJpc29uIG5v
dCBzdXBwb3J0ZWQgb24gbXVsdGljaGFubmVsIHRleHR1cmVzIik7CisgICAgICAgIHJlc3VsdCA9
IGRlcHRoQ29tcGFyZU9wZXJhdGlvbihkcmVmLCByZXN1bHQsIHNhbXBsZXIuY29tcGFyZUZ1bmN0
aW9uKTsKKyAgICB9CisgICAgcmV0dXJuIGNhc3RUb0lubmVyVHlwZShyZXN1bHQsIHRleHR1cmUu
aW5uZXJUeXBlKTsKKyAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRvIGRvIHdpdGggYW5p
c290cm9weQorICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IGhvdyB0byBkbyBtdWx0aXNhbXBsaW5n
LgorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRt
bCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKaW5kZXggNjVhODY0
MTFiM2U3NzBiNTU3YjQxYWNjN2U0MTRkZWY0MjQwMzAxMy4uZTZlMTNkZmU4ZGZhNWM1MzMyYWQ5
ZWYwNDllY2VhMzU5YjdlM2E0MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvaW5kZXguaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRl
eC5odG1sCkBAIC0yOCw2ICsyOCw3IEBACiA8c2NyaXB0IHNyYz0iQnVpbHRpblZlY3RvclNldHRl
ci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2FsbEV4cHJlc3Npb24uanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IkNhbGxGdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Q2FzdHMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNoZWNrLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJDaGVja0xpdGVyYWxUeXBlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
Q2hlY2tMb29wcy5qcyI+PC9zY3JpcHQ+CkBAIC0xMTUsNiArMTE2LDcgQEAKIDxzY3JpcHQgc3Jj
PSJSZXR1cm4uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJldHVybkNoZWNrZXIuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IlJldHVybkV4Y2VwdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iU2FtcGxlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3RhbmRhcmRMaWJy
YXJ5LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTdGF0ZW1lbnRDbG9uZXIuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IlN0cnVjdExheW91dEJ1aWxkZXIuanMiPjwvc2NyaXB0PgpAQCAt
MTI3LDYgKzEyOSw4IEBACiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9w
ZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRGVmYXVsdENvbnN0
cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRlcm5hcnlFeHByZXNz
aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUZXh0dXJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJUZXh0dXJlT3BlcmF0aW9ucy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
VHJhcFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348801</attachid>
            <date>2018-09-03 19:56:42 -0700</date>
            <delta_ts>2018-09-03 21:39:00 -0700</delta_ts>
            <desc>Needs tests for SampleCmpLevelZero</desc>
            <filename>bug-188940-20180903195641.patch</filename>
            <type>text/plain</type>
            <size>470328</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTg5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWE0MzNhZWVmNTA2YjZmNDY1NTYwMTNiZmJiNDM2MWJm
MjE5YWMxYS4uMjkwODFkNjFjMmUwM2RlNmYwYjE5NWE2NmMzNDg4OTU4YzViYjA2YyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
OSBAQAorMjAxOC0wOS0wMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRleHR1cmUgdHlwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Nhc3RzLmpz
OiBBZGRlZC4KKyAgICAgICAgKGNhc3QpOgorICAgICAgICAoYml0d2lzZUNhc3QpOgorICAgICAg
ICAoY2FzdFRvVWNoYXIpOgorICAgICAgICAoY2FzdFRvVXNob3J0KToKKyAgICAgICAgKGNhc3RU
b1VpbnQpOgorICAgICAgICAoY2FzdFRvQ2hhcik6CisgICAgICAgIChjYXN0VG9TaG9ydCk6Cisg
ICAgICAgIChjYXN0VG9JbnQpOgorICAgICAgICAoY2FzdFRvSGFsZik6CisgICAgICAgIChjYXN0
VG9GbG9hdCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5q
czoKKyAgICAgICAgKEludHJpbnNpY3MuKToKKyAgICAgICAgKEludHJpbnNpY3MuY2hlY2tGYWxz
ZSk6CisgICAgICAgIChJbnRyaW5zaWNzLmJveFZlY3Rvcik6CisgICAgICAgIChJbnRyaW5zaWNz
LnVuYm94VmVjdG9yKToKKyAgICAgICAgKEludHJpbnNpY3MpOgorICAgICAgICAoSW50cmluc2lj
cy5jYXN0KTogRGVsZXRlZC4KKyAgICAgICAgKEludHJpbnNpY3MuYml0d2lzZUNhc3QpOiBEZWxl
dGVkLgorICAgICAgICAoSW50cmluc2ljcy5jYXN0VG9IYWxmKTogRGVsZXRlZC4KKyAgICAgICAg
KiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sOgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1NhbXBsZXIuanM6IEFkZGVkLgorICAgICAgICAoU2FtcGxlcik6Cisg
ICAgICAgIChTYW1wbGVyLnByb3RvdHlwZS5nZXQgckFkZHJlc3NNb2RlKToKKyAgICAgICAgKFNh
bXBsZXIucHJvdG90eXBlLmdldCBzQWRkcmVzc01vZGUpOgorICAgICAgICAoU2FtcGxlci5wcm90
b3R5cGUuZ2V0IHRBZGRyZXNzTW9kZSk6CisgICAgICAgIChTYW1wbGVyLnByb3RvdHlwZS5nZXQg
bWluRmlsdGVyKToKKyAgICAgICAgKFNhbXBsZXIucHJvdG90eXBlLmdldCBtYWdGaWx0ZXIpOgor
ICAgICAgICAoU2FtcGxlci5wcm90b3R5cGUuZ2V0IG1pcG1hcEZpbHRlcik6CisgICAgICAgIChT
YW1wbGVyLnByb3RvdHlwZS5nZXQgbG9kTWluQ2xhbXApOgorICAgICAgICAoU2FtcGxlci5wcm90
b3R5cGUuZ2V0IGxvZE1heENsYW1wKToKKyAgICAgICAgKFNhbXBsZXIucHJvdG90eXBlLmdldCBt
YXhBbmlzb3Ryb3B5KToKKyAgICAgICAgKFNhbXBsZXIucHJvdG90eXBlLmdldCBjb21wYXJlRnVu
Y3Rpb24pOgorICAgICAgICAoU2FtcGxlci5wcm90b3R5cGUuZ2V0IGJvcmRlckNvbG9yKToKKyAg
ICAgICAgKFNhbXBsZXIucHJvdG90eXBlLmNhbGN1bGF0ZUJvcmRlckNvbG9yLmNvbXB1dGVWYWx1
ZXMpOgorICAgICAgICAoU2FtcGxlci5wcm90b3R5cGUuY2FsY3VsYXRlQm9yZGVyQ29sb3IpOgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qczoKKyAg
ICAgICAgKGxldC5zdGFuZGFyZExpYnJhcnkpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0
LmpzOgorICAgICAgICAobWFrZVNhbXBsZXIpOgorICAgICAgICAobWFrZTFEVGV4dHVyZSk6Cisg
ICAgICAgIChtYWtlMURUZXh0dXJlQXJyYXkpOgorICAgICAgICAobWFrZTJEVGV4dHVyZSk6Cisg
ICAgICAgIChtYWtlMkRUZXh0dXJlQXJyYXkpOgorICAgICAgICAobWFrZTNEVGV4dHVyZSk6Cisg
ICAgICAgIChtYWtlVGV4dHVyZUN1YmUpOgorICAgICAgICAobWFrZVJXMURUZXh0dXJlKToKKyAg
ICAgICAgKG1ha2VSVzFEVGV4dHVyZUFycmF5KToKKyAgICAgICAgKG1ha2VSVzJEVGV4dHVyZSk6
CisgICAgICAgIChtYWtlUlcyRFRleHR1cmVBcnJheSk6CisgICAgICAgIChtYWtlUlczRFRleHR1
cmUpOgorICAgICAgICAobWFrZTJERGVwdGhUZXh0dXJlKToKKyAgICAgICAgKG1ha2UyRERlcHRo
VGV4dHVyZUFycmF5KToKKyAgICAgICAgKG1ha2VEZXB0aFRleHR1cmVDdWJlKToKKyAgICAgICAg
KG1ha2VSVzJERGVwdGhUZXh0dXJlKToKKyAgICAgICAgKG1ha2VSVzJERGVwdGhUZXh0dXJlQXJy
YXkpOgorICAgICAgICAoY2hlY2tGbG9hdDQpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1RleHR1cmUuanM6IEFkZGVkLgorICAgICAgICAoVGV4dHVyZSk6CisgICAgICAgIChU
ZXh0dXJlLnByb3RvdHlwZS5nZXQgZGltZW5zaW9uKToKKyAgICAgICAgKFRleHR1cmUucHJvdG90
eXBlLmdldCB3aWR0aCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQgaGVpZ2h0KToK
KyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkZXB0aCk6CisgICAgICAgIChUZXh0dXJl
LnByb3RvdHlwZS5nZXQgbGV2ZWxDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5n
ZXQgbGF5ZXJDb3VudCk6CisgICAgICAgIChUZXh0dXJlLnByb3RvdHlwZS5nZXQgaW5uZXJUeXBl
KToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkYXRhKToKKyAgICAgICAgKFRleHR1
cmUucHJvdG90eXBlLmVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBl
LnNldEVsZW1lbnRDaGVja2VkKToKKyAgICAgICAgKFRleHR1cmUxRCk6CisgICAgICAgIChUZXh0
dXJlMUQucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMUQucHJvdG90
eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlwZS5kZXB0aEF0
TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAg
KFRleHR1cmUxRC5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMURBcnJh
eSk6CisgICAgICAgIChUZXh0dXJlMURBcnJheS5wcm90b3R5cGUud2lkdGhBdExldmVsKToKKyAg
ICAgICAgKFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAgICAgICAg
KFRleHR1cmUxREFycmF5LnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVy
ZTFEQXJyYXkucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTFEQXJyYXkucHJv
dG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEKToKKyAgICAgICAgKFRleHR1
cmUyRC5wcm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyRC5wcm90b3R5
cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBlLmRlcHRoQXRM
ZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAo
VGV4dHVyZTJELnByb3RvdHlwZS5zZXRFbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUyREFycmF5
KToKKyAgICAgICAgKFRleHR1cmUyREFycmF5LnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAg
ICAgICAoVGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAo
VGV4dHVyZTJEQXJyYXkucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJl
MkRBcnJheS5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMkRBcnJheS5wcm90
b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlM0QpOgorICAgICAgICAoVGV4dHVy
ZTNELnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTNELnByb3RvdHlw
ZS5oZWlnaHRBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUuZGVwdGhBdExl
dmVsKToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChU
ZXh0dXJlM0QucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZUN1YmUpOgor
ICAgICAgICAoVGV4dHVyZUN1YmUucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlQ3ViZS5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlQ3Vi
ZS5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmVDdWJlLnByb3RvdHlw
ZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmVDdWJlLnByb3RvdHlwZS5zZXRFbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUxRFJXKToKKyAgICAgICAgKFRleHR1cmUxRFJXLnByb3RvdHlwZS53
aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmhlaWdodEF0TGV2
ZWwpOgorICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAg
ICAgIChUZXh0dXJlMURSVy5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMURS
Vy5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMURBcnJheVJXKToKKyAg
ICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAg
IChUZXh0dXJlMURBcnJheVJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAgICAgICAgKFRl
eHR1cmUxREFycmF5UlcucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJl
MURBcnJheVJXLnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUxREFycmF5Ulcu
cHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEUlcpOgorICAgICAgICAo
VGV4dHVyZTJEUlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkRS
Vy5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkRSVy5wcm90b3R5
cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlwZS5lbGVtZW50
KToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlwZS5zZXRFbGVtZW50KToKKyAgICAgICAg
KFRleHR1cmUyREFycmF5UlcpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUu
d2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90eXBlLmhlaWdo
dEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUuZGVwdGhBdExl
dmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5UlcucHJvdG90eXBlLmVsZW1lbnQpOgorICAg
ICAgICAoVGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgIChs
ZXQuVGV4dHVyZURlcHRoMkRBcnJheVJXLlRleHR1cmUyREFycmF5UlcuVGV4dHVyZTNEUlcpOgor
ICAgICAgICAobGV0LlRleHR1cmVEZXB0aDJEQXJyYXlSVy5UZXh0dXJlMkRBcnJheVJXLlRleHR1
cmUzRFJXLnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAobGV0LlRleHR1cmVEZXB0
aDJEQXJyYXlSVy5UZXh0dXJlMkRBcnJheVJXLlRleHR1cmUzRFJXLnByb3RvdHlwZS5oZWlnaHRB
dExldmVsKToKKyAgICAgICAgKGxldC5UZXh0dXJlRGVwdGgyREFycmF5UlcuVGV4dHVyZTJEQXJy
YXlSVy5UZXh0dXJlM0RSVy5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKGxldC5U
ZXh0dXJlRGVwdGgyREFycmF5UlcuVGV4dHVyZTJEQXJyYXlSVy5UZXh0dXJlM0RSVy5wcm90b3R5
cGUuZWxlbWVudCk6CisgICAgICAgIChsZXQuVGV4dHVyZURlcHRoMkRBcnJheVJXLlRleHR1cmUy
REFycmF5UlcuVGV4dHVyZTNEUlcucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1cmVPcGVyYXRpb25zLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGRlcHRoQ29tcGFyZU9wZXJhdGlvbik6CisgICAgICAgIChjb252ZXJzaW9uVG9SR0JBKToK
KyAgICAgICAgKHByb2plY3Rpb25PcGVyYXRpb24pOgorICAgICAgICAoY3ViZU1hcEZhY2VTZWxl
Y3Rpb24pOgorICAgICAgICAoY3ViZU1hcENvb3JkaW5hdGVUcmFuc2Zvcm1hdGlvbik6CisgICAg
ICAgIChjdWJlTWFwRGVyaXZhdGl2ZVRyYW5zZm9ybWF0aW9uKToKKyAgICAgICAgKHNjYWxlRmFj
dG9yT3BlcmF0aW9uKToKKyAgICAgICAgKGxldmVsT2ZEZXRhaWxPcGVyYXRpb24pOgorICAgICAg
ICAobmVhcmVzdCk6CisgICAgICAgIChpbWFnZUxldmVsU2VsZWN0aW9uKToKKyAgICAgICAgKHN0
cnFhVG9VVldBVHJhbnNmb3JtYXRpb24pOgorICAgICAgICAocm5lKToKKyAgICAgICAgKHV2d2FU
b0lKS0xOVHJhbnNmb3JtYXRpb25BbmRBcnJheUxheWVyU2VsZWN0aW9uKToKKyAgICAgICAgKGlu
dGVnZXJUZXhlbENvb3JkaW5hdGVPcGVyYXRpb25zKToKKyAgICAgICAgKG1pcnJvcik6CisgICAg
ICAgICh0cmFuc2Zvcm0pOgorICAgICAgICAod3JhcHBpbmdPcGVyYXRpb24pOgorICAgICAgICAo
Y2FsY3VsYXRlTGFtYmRhKToKKyAgICAgICAgKHNob3VsZEJlQm9yZGVyKToKKyAgICAgICAgKGFj
Y2Vzc0NvbG9yKToKKyAgICAgICAgKGNvbXB1dGVUYXUpOgorICAgICAgICAocmVkdWNlKToKKyAg
ICAgICAgKHRleGVsR2F0aGVyaW5nKToKKyAgICAgICAgKGNvbXB1dGVDb2xvckZyb21MZXZlbCk6
CisgICAgICAgICh0ZXhlbEZpbHRlcmluZyk6CisgICAgICAgIChjYXN0VG9Jbm5lclR5cGVGb3JH
YXRoZXIpOgorICAgICAgICAoZ2F0aGVyVGV4dHVyZSk6CisgICAgICAgIChjYXN0VG9Jbm5lclR5
cGUpOgorICAgICAgICAoc2FtcGxlVGV4dHVyZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAxOC0wOS0wMSAgTWljaGFlbCBDYXRhbnphcm8gIDxt
Y2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV0gMi4yMS45MSBmYWlscyB0byBi
dWlsZCB3aXRoIEVOQUJMRV9NSU5JQlJPV1NFUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvQWxsLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxs
LmpzCmluZGV4IDljMmEzNzE1MGMxZTk3NmI5MjZjZmJlZTIzNDM3NTIwYThkZTRhNDcuLjkwZmM4
NDEzYTY1MTIyNDQ2YmYwMWZkOTY3ZGQ2NTEzOWEwZjg3ZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9BbGwuanMKQEAgLTUxLDYgKzUxLDcgQEAgbG9hZCgiQnVpbHRpblZlY3RvckdldHRl
ci5qcyIpOwogbG9hZCgiQnVpbHRpblZlY3RvclNldHRlci5qcyIpOwogbG9hZCgiQ2FsbEV4cHJl
c3Npb24uanMiKTsKIGxvYWQoIkNhbGxGdW5jdGlvbi5qcyIpOworbG9hZCgiQ2FzdHMuanMiKTsK
IGxvYWQoIkNoZWNrLmpzIik7CiBsb2FkKCJDaGVja0xpdGVyYWxUeXBlcy5qcyIpOwogbG9hZCgi
Q2hlY2tMb29wcy5qcyIpOwpAQCAtMTM4LDYgKzEzOSw3IEBAIGxvYWQoIlJlc29sdmVUeXBlRGVm
cy5qcyIpOwogbG9hZCgiUmV0dXJuLmpzIik7CiBsb2FkKCJSZXR1cm5DaGVja2VyLmpzIik7CiBs
b2FkKCJSZXR1cm5FeGNlcHRpb24uanMiKTsKK2xvYWQoIlNhbXBsZXIuanMiKTsKIGxvYWQoIlN0
YW5kYXJkTGlicmFyeS5qcyIpOwogbG9hZCgiU3RhdGVtZW50Q2xvbmVyLmpzIik7CiBsb2FkKCJT
dHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIik7CkBAIC0xNTAsNiArMTUyLDggQEAgbG9hZCgiU3ludGhl
c2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyIpOwogbG9hZCgiU3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rv
ck9wZXJhdG9yLmpzIik7CiBsb2FkKCJTeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0
b3IuanMiKTsKIGxvYWQoIlRlcm5hcnlFeHByZXNzaW9uLmpzIik7Citsb2FkKCJUZXh0dXJlLmpz
Iik7Citsb2FkKCJUZXh0dXJlT3BlcmF0aW9ucy5qcyIpOwogbG9hZCgiVHJhcFN0YXRlbWVudC5q
cyIpOwogbG9hZCgiVHlwZURlZi5qcyIpOwogbG9hZCgiVHlwZURlZlJlc29sdmVyLmpzIik7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYXN0cy5qcyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Nhc3RzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjYmIyZWEwMjg1
MzViNDY3MDQyMzA5N2Y3YTViNTdjYWY2YjhiMWMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYXN0cy5qcwpAQCAtMCwwICsxLDExNSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworInVzZSBzdHJpY3QiOworCitm
dW5jdGlvbiBjYXN0KHR5cGVkQXJyYXlDb25zdHJ1Y3RvciwgbnVtYmVyKQoreworICAgIHZhciBh
cnJheSA9IG5ldyB0eXBlZEFycmF5Q29uc3RydWN0b3IoMSk7CisgICAgYXJyYXlbMF0gPSBudW1i
ZXI7CisgICAgcmV0dXJuIGFycmF5WzBdOworfQorCitmdW5jdGlvbiBiaXR3aXNlQ2FzdCh0eXBl
ZEFycmF5Q29uc3RydWN0b3IxLCB0eXBlZEFycmF5Q29uc3RydWN0b3IyLCB2YWx1ZSkKK3sKKyAg
ICBsZXQgdHlwZWRBcnJheTEgPSBuZXcgdHlwZWRBcnJheUNvbnN0cnVjdG9yMSgxKTsKKyAgICBs
ZXQgdHlwZWRBcnJheTIgPSBuZXcgdHlwZWRBcnJheUNvbnN0cnVjdG9yMih0eXBlZEFycmF5MS5i
dWZmZXIpOworICAgIHR5cGVkQXJyYXkxWzBdID0gdmFsdWU7CisgICAgcmV0dXJuIHR5cGVkQXJy
YXkyWzBdOworfQorCitmdW5jdGlvbiBjYXN0VG9VY2hhcihudW1iZXIpCit7CisgICAgcmV0dXJu
IG51bWJlciAmIDB4RkY7Cit9CisKK2Z1bmN0aW9uIGNhc3RUb1VzaG9ydChudW1iZXIpCit7Cisg
ICAgcmV0dXJuIG51bWJlciAmIDB4RkZGRjsKK30KKworZnVuY3Rpb24gY2FzdFRvVWludChudW1i
ZXIpCit7CisgICAgcmV0dXJuIG51bWJlciA+Pj4gMDsKK30KKworZnVuY3Rpb24gY2FzdFRvQ2hh
cihudW1iZXIpCit7CisgICAgcmV0dXJuIGNhc3QoSW50OEFycmF5LCBudW1iZXIpOworfQorCitm
dW5jdGlvbiBjYXN0VG9TaG9ydChudW1iZXIpCit7CisgICAgcmV0dXJuIGNhc3QoSW50MTZBcnJh
eSwgbnVtYmVyKTsKK30KKworZnVuY3Rpb24gY2FzdFRvSW50KG51bWJlcikKK3sKKyAgICByZXR1
cm4gbnVtYmVyIHwgMDsKK30KKworZnVuY3Rpb24gY2FzdFRvSGFsZihudW1iZXIpCit7CisgICAg
Ly8gRklYTUU6IE1ha2UgdGhpcyBtYXRoIG9iZXkgSUVFRSA3NTQuCisgICAgaWYgKE51bWJlci5p
c05hTihudW1iZXIpKQorICAgICAgIHJldHVybiBudW1iZXIKKyAgICBpZiAobnVtYmVyID4gNjU1
MDQpCisgICAgICAgIHJldHVybiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CisgICAgaWYgKG51
bWJlciA8IC02NTUwNCkKKyAgICAgICAgcmV0dXJuIE51bWJlci5ORUdBVElWRV9JTkZJTklUWTsK
KyAgICBpZiAobnVtYmVyID4gMCAmJiBudW1iZXIgPCBNYXRoLnBvdygyLCAtMjQpKQorICAgICAg
ICByZXR1cm4gMDsKKyAgICBpZiAobnVtYmVyIDwgMCAmJiBudW1iZXIgPiAtTWF0aC5wb3coMiwg
LTI0KSkKKyAgICAgICAgcmV0dXJuIC0wOworICAgIGxldCBkb3VibGVBcnJheSA9IG5ldyBGbG9h
dDY0QXJyYXkoMSk7CisgICAgbGV0IHVpbnRBcnJheSA9IG5ldyBVaW50OEFycmF5KGRvdWJsZUFy
cmF5LmJ1ZmZlcik7CisgICAgZG91YmxlQXJyYXlbMF0gPSBudW1iZXI7CisgICAgbGV0IHNpZ24g
PSB1aW50QXJyYXlbN10gJiAweDgwOworICAgIGxldCBleHBvbmVudCA9ICgodWludEFycmF5Wzdd
ICYgMHg3ZikgPDwgNCkgfCAoKHVpbnRBcnJheVs2XSAmIDB4ZjApID4+PiA0KTsKKyAgICBsZXQg
c2lnbmlmaWNhbmQgPSAoKHVpbnRBcnJheVs2XSAmIDB4MGYpIDw8IDYpIHwgKCh1aW50QXJyYXlb
NV0gJiAweGZjKSA+Pj4gMik7CisKKyAgICBpZiAoKGV4cG9uZW50IC0gMTAyMykgPCAtMTQpIHsK
KyAgICAgICAgZXhwb25lbnQgPSAwOworICAgICAgICBzaWduaWZpY2FuZCA9IChNYXRoLmFicyhu
dW1iZXIpICogTWF0aC5wb3coMiwgMjQpKSA+Pj4gMDsKKyAgICAgICAgbGV0IHZhbHVlID0gTWF0
aC5wb3coMiwgLTE0KSAqIHNpZ25pZmljYW5kIC8gMTAyNDsKKyAgICAgICAgaWYgKHNpZ24gIT0g
MCkKKyAgICAgICAgICAgIHZhbHVlICo9IC0xOworICAgICAgICByZXR1cm4gdmFsdWU7CisgICAg
fQorCisgICAgZG91YmxlQXJyYXlbMF0gPSAwOworCisgICAgdWludEFycmF5WzddIHw9IHNpZ247
CisgICAgdWludEFycmF5WzddIHw9IChleHBvbmVudCA+Pj4gNCk7CisgICAgdWludEFycmF5WzZd
IHw9ICgoZXhwb25lbnQgPDwgNCkgJiAweGYwKTsKKyAgICB1aW50QXJyYXlbNl0gfD0gKHNpZ25p
ZmljYW5kID4+PiA2KTsKKyAgICB1aW50QXJyYXlbNV0gfD0gKChzaWduaWZpY2FuZCA8PCAyKSAm
IDB4ZmMpOworCisgICAgcmV0dXJuIGRvdWJsZUFycmF5WzBdOworfQorCitmdW5jdGlvbiBjYXN0
VG9GbG9hdChudW1iZXIpCit7CisgICAgcmV0dXJuIE1hdGguZnJvdW5kKG51bWJlcik7Cit9CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcwppbmRleCBiMDA0MDY3
ZjVlYmZiM2E4YjRiZDk4ZTQzN2E4YzA3NjhiZTI2ZjFlLi4xYjBhMTJhZjQwMDJhOTBiZTYzNWU3
MzhmMWQ1ZTdkOTBkY2IwNGQzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9JbnRyaW5zaWNzLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lu
dHJpbnNpY3MuanMKQEAgLTQ4LDYxICs0OCw2IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBjYXN0KHR5
cGVkQXJyYXlDb25zdHJ1Y3RvciwgbnVtYmVyKQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIg
YXJyYXkgPSBuZXcgdHlwZWRBcnJheUNvbnN0cnVjdG9yKDEpOwotICAgICAgICAgICAgYXJyYXlb
MF0gPSBudW1iZXI7Ci0gICAgICAgICAgICByZXR1cm4gYXJyYXlbMF07Ci0gICAgICAgIH0KLQot
ICAgICAgICBmdW5jdGlvbiBiaXR3aXNlQ2FzdCh0eXBlZEFycmF5Q29uc3RydWN0b3IxLCB0eXBl
ZEFycmF5Q29uc3RydWN0b3IyLCB2YWx1ZSkKLSAgICAgICAgewotICAgICAgICAgICAgbGV0IHR5
cGVkQXJyYXkxID0gbmV3IHR5cGVkQXJyYXlDb25zdHJ1Y3RvcjEoMSk7Ci0gICAgICAgICAgICBs
ZXQgdHlwZWRBcnJheTIgPSBuZXcgdHlwZWRBcnJheUNvbnN0cnVjdG9yMih0eXBlZEFycmF5MS5i
dWZmZXIpOwotICAgICAgICAgICAgdHlwZWRBcnJheTFbMF0gPSB2YWx1ZTsKLSAgICAgICAgICAg
IHJldHVybiB0eXBlZEFycmF5MlswXTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIGNh
c3RUb0hhbGYobnVtYmVyKQotICAgICAgICB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogTWFrZSB0
aGlzIG1hdGggb2JleSBJRUVFIDc1NC4KLSAgICAgICAgICAgIGlmIChOdW1iZXIuaXNOYU4obnVt
YmVyKSkKLSAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIKLSAgICAgICAgICAgIGlmIChudW1i
ZXIgPiA2NTUwNCkKLSAgICAgICAgICAgICAgICByZXR1cm4gTnVtYmVyLlBPU0lUSVZFX0lORklO
SVRZOwotICAgICAgICAgICAgaWYgKG51bWJlciA8IC02NTUwNCkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOwotICAgICAgICAgICAgaWYgKG51bWJlciA+
IDAgJiYgbnVtYmVyIDwgTWF0aC5wb3coMiwgLTI0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4g
MDsKLSAgICAgICAgICAgIGlmIChudW1iZXIgPCAwICYmIG51bWJlciA+IC1NYXRoLnBvdygyLCAt
MjQpKQotICAgICAgICAgICAgICAgIHJldHVybiAtMDsKLSAgICAgICAgICAgIGxldCBkb3VibGVB
cnJheSA9IG5ldyBGbG9hdDY0QXJyYXkoMSk7Ci0gICAgICAgICAgICBsZXQgdWludEFycmF5ID0g
bmV3IFVpbnQ4QXJyYXkoZG91YmxlQXJyYXkuYnVmZmVyKTsKLSAgICAgICAgICAgIGRvdWJsZUFy
cmF5WzBdID0gbnVtYmVyOwotICAgICAgICAgICAgbGV0IHNpZ24gPSB1aW50QXJyYXlbN10gJiAw
eDgwOwotICAgICAgICAgICAgbGV0IGV4cG9uZW50ID0gKCh1aW50QXJyYXlbN10gJiAweDdmKSA8
PCA0KSB8ICgodWludEFycmF5WzZdICYgMHhmMCkgPj4+IDQpOwotICAgICAgICAgICAgbGV0IHNp
Z25pZmljYW5kID0gKCh1aW50QXJyYXlbNl0gJiAweDBmKSA8PCA2KSB8ICgodWludEFycmF5WzVd
ICYgMHhmYykgPj4+IDIpOwotCi0gICAgICAgICAgICBpZiAoKGV4cG9uZW50IC0gMTAyMykgPCAt
MTQpIHsKLSAgICAgICAgICAgICAgICBleHBvbmVudCA9IDA7Ci0gICAgICAgICAgICAgICAgc2ln
bmlmaWNhbmQgPSAoTWF0aC5hYnMobnVtYmVyKSAqIE1hdGgucG93KDIsIDI0KSkgPj4+IDA7Ci0g
ICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gTWF0aC5wb3coMiwgLTE0KSAqIHNpZ25pZmljYW5k
IC8gMTAyNDsKLSAgICAgICAgICAgICAgICBpZiAoc2lnbiAhPSAwKQotICAgICAgICAgICAgICAg
ICAgICB2YWx1ZSAqPSAtMTsKLSAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIGRvdWJsZUFycmF5WzBdID0gMDsKLQotICAgICAgICAgICAg
dWludEFycmF5WzddIHw9IHNpZ247Ci0gICAgICAgICAgICB1aW50QXJyYXlbN10gfD0gKGV4cG9u
ZW50ID4+PiA0KTsKLSAgICAgICAgICAgIHVpbnRBcnJheVs2XSB8PSAoKGV4cG9uZW50IDw8IDQp
ICYgMHhmMCk7Ci0gICAgICAgICAgICB1aW50QXJyYXlbNl0gfD0gKHNpZ25pZmljYW5kID4+PiA2
KTsKLSAgICAgICAgICAgIHVpbnRBcnJheVs1XSB8PSAoKHNpZ25pZmljYW5kIDw8IDIpICYgMHhm
Yyk7Ci0KLSAgICAgICAgICAgIHJldHVybiBkb3VibGVBcnJheVswXTsKLSAgICAgICAgfQotCiAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgdm9pZCIs
CiAgICAgICAgICAgICB0eXBlID0+IHsKQEAgLTEyOCwxNSArNzMsMTUgQEAgY2xhc3MgSW50cmlu
c2ljcyB7CiAgICAgICAgICAgICAgICAgdHlwZS5pc0ludCA9IHRydWU7CiAgICAgICAgICAgICAg
ICAgdHlwZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9
IGZhbHNlOwotICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNC
aXR3aXNlRXF1aXZhbGVudCh2YWx1ZSAmIDB4ZmYsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICB0
eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvVWNo
YXIodmFsdWUpLCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKICAgICAg
ICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5j
cmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3Jp
Z2luLCB2YWx1ZSAmIDB4ZmYsIHR5cGUpOwotICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29y
VmFsdWUgPSB2YWx1ZSA9PiAodmFsdWUgKyAxKSAmIDB4ZmY7CisgICAgICAgICAgICAgICAgdHlw
ZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUo
b3JpZ2luLCBjYXN0VG9VY2hhcih2YWx1ZSksIHR5cGUpOworICAgICAgICAgICAgICAgIHR5cGUu
c3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0VG9VY2hhcih2YWx1ZSArIDEpOwogICAgICAg
ICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKICAgICAgICAg
ICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBi
dWZmZXIuc2V0KG9mZnNldCwgMCk7Ci0gICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZy
b21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAweGZmOwotICAgICAgICAgICAgICAgIHR5
cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmY7Cisg
ICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4g
Y2FzdFRvVWNoYXIodmFsdWUpOworICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9t
VWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9VY2hhcih2YWx1ZSk7CiAgICAgICAgICAgICAg
ICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7CiAgICAgICAgICAgICAgICAgICAgIGZv
ciAobGV0IGkgPSAwOyBpIDw9IDB4ZmY7ICsraSkKICAgICAgICAgICAgICAgICAgICAgICAgIHlp
ZWxkIHt2YWx1ZTogaSwgbmFtZTogaX07CkBAIC0xNTIsMTUgKzk3LDE1IEBAIGNsYXNzIEludHJp
bnNpY3MgewogICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAg
ICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWdu
ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9
PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVlICYgMHhmZmZmLCB2YWx1ZSk7CisgICAgICAgICAg
ICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChj
YXN0VG9Vc2hvcnQodmFsdWUpLCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9
IDE7CiAgICAgICAgICAgICAgICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAg
ICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwu
d2l0aFR5cGUob3JpZ2luLCB2YWx1ZSAmIDB4ZmZmZiwgdHlwZSk7Ci0gICAgICAgICAgICAgICAg
IHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiAodmFsdWUgKyAxKSAmIDB4ZmZmZjsKKyAg
ICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IElu
dExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBjYXN0VG9Vc2hvcnQodmFsdWUpLCB0eXBlKTsKKyAg
ICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+IGNhc3RUb1VzaG9y
dCh2YWx1ZSArIDEpOwogICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIp
ID0+IGEgPT09IGI7CiAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUg
PSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAg
ICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAw
eGZmZmY7Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwg
PSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmZmZjsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRW
YWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvVXNob3J0KHZhbHVlKTsKKyAgICAg
ICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IGNh
c3RUb1VzaG9ydCh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVu
Y3Rpb24qKCkgewogICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhm
ZmZmOyArK2kpCiAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVlOiBpLCBuYW1l
OiBpfTsKQEAgLTE3NSwxNSArMTIwLDE1IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAg
ICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJl
ciA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSBmYWxzZTsKLSAgICAg
ICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFs
ZW50KHZhbHVlID4+PiAwLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVz
ZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0VG9VaW50KHZhbHVlKSwgdmFs
dWUpOwogICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOwogICAgICAgICAgICAgICAgICB0
eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJh
bCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgdmFsdWUg
Pj4+IDAsIHR5cGUpOwotICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFs
dWUgPT4gKHZhbHVlICsgMSkgPj4+IDA7CisgICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0
ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2Fz
dFRvVWludCh2YWx1ZSksIHR5cGUpOworICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZh
bHVlID0gdmFsdWUgPT4gY2FzdFRvVWludCh2YWx1ZSArIDEpOwogICAgICAgICAgICAgICAgICB0
eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7CiAgICAgICAgICAgICAgICAgIHR5
cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQo
b2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRl
cmFsID0gdmFsdWUgPT4gdmFsdWUgPj4+IDA7Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0
VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSA+Pj4gMDsKKyAgICAgICAgICAg
ICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvVWlu
dCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVy
YWwgPSB2YWx1ZSA9PiBjYXN0VG9VaW50KHZhbHVlKTsKICAgICAgICAgICAgICAgICAgdHlwZS5h
bGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBp
ID0gMDsgaSA8PSAweGZmZmZmZmZmOyArK2kpCiAgICAgICAgICAgICAgICAgICAgICAgICAgeWll
bGQge3ZhbHVlOiBpLCBuYW1lOiBpfTsKQEAgLTE5OCwxOCArMTQzLDE4IEBAIGNsYXNzIEludHJp
bnNpY3MgewogICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKICAgICAgICAgICAg
ICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWdu
ZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+
IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdChJbnQ4QXJyYXksIHZhbHVlKSwgdmFsdWUpOworICAg
ICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2
YWxlbnQoY2FzdFRvQ2hhcih2YWx1ZSksIHZhbHVlKTsKICAgICAgICAgICAgICAgICAgdHlwZS5z
aXplID0gMTsKICAgICAgICAgICAgICAgICAgdHlwZS5kZWZhdWx0VmFsdWUgPSAwOwotICAgICAg
ICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0
ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3QoSW50OEFycmF5LCB2YWx1ZSksIHR5cGUpOwotICAg
ICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdChJbnQ4QXJy
YXksIHZhbHVlICsgMSk7CisgICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChv
cmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2FzdFRvQ2hhcih2
YWx1ZSksIHR5cGUpOworICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFs
dWUgPT4gY2FzdFRvQ2hhcih2YWx1ZSArIDEpOwogICAgICAgICAgICAgICAgICB0eXBlLnZhbHVl
c0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7CiAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxh
dGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAw
KTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFs
dWUgPT4gY2FzdChJbnQ4QXJyYXksIHZhbHVlKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3Jt
YXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3QoSW50OEFycmF5LCB2YWx1ZSk7
CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVl
ID0+IGNhc3RUb0NoYXIodmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVl
RnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvQ2hhcih2YWx1ZSk7CiAgICAgICAgICAg
ICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVuY3Rpb24qKCkgewogICAgICAgICAgICAgICAgICAg
ICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhmZjsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IHZhbHVlID0gY2FzdChJbnQ4QXJyYXksIGkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCB2YWx1ZSA9IGNhc3RUb0NoYXIoaSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgeWllbGQge3ZhbHVlOiB2YWx1ZSwgbmFtZTogdmFsdWV9OwogICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICB9OwpAQCAtMjIzLDE4ICsxNjgsMTggQEAgY2xhc3MgSW50
cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNJbnQgPSB0cnVlOwogICAgICAgICAg
ICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc1Np
Z25lZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUg
PT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0KEludDE2QXJyYXksIHZhbHVlKSwgdmFsdWUpOwor
ICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVx
dWl2YWxlbnQoY2FzdFRvU2hvcnQodmFsdWUpLCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5
cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAgICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAg
ICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IElu
dExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBjYXN0KEludDE2QXJyYXksIHZhbHVlKSwgdHlwZSk7
Ci0gICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0KElu
dDE2QXJyYXksIHZhbHVlICsgMSk7CisgICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJh
bCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2FzdFRv
U2hvcnQodmFsdWUpLCB0eXBlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1
ZSA9IHZhbHVlID0+IGNhc3RUb1Nob3J0KHZhbHVlICsgMSk7CiAgICAgICAgICAgICAgICAgIHR5
cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKICAgICAgICAgICAgICAgICAgdHlw
ZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChv
ZmZzZXQsIDApOwotICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVy
YWwgPSB2YWx1ZSA9PiBjYXN0KEludDE2QXJyYXksIHZhbHVlKTsKLSAgICAgICAgICAgICAgICAg
dHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3QoSW50MTZBcnJh
eSwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVy
YWwgPSB2YWx1ZSA9PiBjYXN0VG9TaG9ydCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUu
Zm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9TaG9ydCh2YWx1ZSk7
CiAgICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVuY3Rpb24qKCkgewogICAgICAg
ICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhmZmZmOyArK2kpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBjYXN0KEludDE2QXJyYXksIGkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGNhc3RUb1Nob3J0KGkpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogdmFsdWUsIG5hbWU6IHZhbHVlfTsKICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfTsKQEAgLTI0OCwxOCArMTkz
LDE4IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0g
dHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAg
ICAgICAgIHR5cGUuaXNTaWduZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICB0eXBlLmNhblJl
cHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQodmFsdWUgfCAwLCB2YWx1ZSk7
CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNl
RXF1aXZhbGVudChjYXN0VG9JbnQodmFsdWUpLCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5
cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAgICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAg
ICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IElu
dExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2YWx1ZSB8IDAsIHR5cGUpOwotICAgICAgICAgICAg
ICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gKHZhbHVlICsgMSkgfCAwOworICAg
ICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50
TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3RUb0ludCh2YWx1ZSksIHR5cGUpOworICAgICAg
ICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdFRvSW50KHZhbHVl
ICsgMSk7CiAgICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9
PT0gYjsKICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZm
ZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOwotICAgICAgICAgICAgICAgICB0
eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSB8IDA7Ci0gICAg
ICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2
YWx1ZSB8IDA7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJh
bCA9IHZhbHVlID0+IGNhc3RUb0ludCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9y
bWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9JbnQodmFsdWUpOwogICAg
ICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsKICAgICAgICAgICAg
ICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmZmZmZmZmY7ICsraSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGkgfCAwOworICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCB2YWx1ZSA9IGNhc3RUb0ludChpKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICB5aWVsZCB7dmFsdWU6IHZhbHVlLCBuYW1lOiB2YWx1ZX07CiAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgIH07CkBAIC0yOTIsNyArMjM3LDcgQEAgY2xhc3MgSW50cmlu
c2ljcyB7CiAgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVm
ZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKICAgICAgICAgICAgICAgICAg
dHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWU7CiAgICAgICAg
ICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1
ZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21GbG9hdExpdGVyYWwgPSB2
YWx1ZSA9PiBNYXRoLmZyb3VuZCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0
VmFsdWVGcm9tRmxvYXRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvRmxvYXQodmFsdWUpOwogICAg
ICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCkBAIC0zMzAsNyArMjc1LDgg
QEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgc2FtcGxl
ciIsCiAgICAgICAgICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAgICB0aGlzLnNhbXBsZXIg
PSB0eXBlOwotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gcHV0
IGhlcmUuCisgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICB0
eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0
KG9mZnNldCwge30pOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgZm9yIChsZXQgdGV4dHVy
ZVR5cGUgb2YgWyJUZXh0dXJlMUQiLCAiUldUZXh0dXJlMUQiLCAiVGV4dHVyZTFEQXJyYXkiLCAi
UldUZXh0dXJlMURBcnJheSIsICJUZXh0dXJlMkQiLCAiUldUZXh0dXJlMkQiLCAiVGV4dHVyZTJE
QXJyYXkiLCAiUldUZXh0dXJlMkRBcnJheSIsICJUZXh0dXJlM0QiLCAiUldUZXh0dXJlM0QiLCAi
VGV4dHVyZUN1YmUiXSkgewpAQCAtMzM5LDEyICsyODUsMTYgQEAgY2xhc3MgSW50cmluc2ljcyB7
CiAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdHlwZWRlZiAke3RleHR1cmVUeXBlfTwke3R5
cGVBcmd1bWVudH0+YCwKICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YF0gPSB0
eXBlOworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQp
ID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCB7fSk7CiAgICAgICAgICAgICAgICAgICAgIH0pOwogICAg
ICAgICAgICAgICAgIGZvciAobGV0IGkgPSAyOyBpIDw9IDQ7ICsraSkgewogICAgICAgICAgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0
eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fSR7aX0+YCwKICAgICAgICAgICAg
ICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNb
YCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fSR7aX0+YF0gPSB0eXBlOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVm
ZmVyLnNldChvZmZzZXQsIHt9KTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTM1Niw2ICszMDYsOCBAQCBjbGFzcyBJbnRy
aW5zaWNzIHsKICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5
cGV9PCR7dHlwZUFyZ3VtZW50fT5gLAogICAgICAgICAgICAgICAgICAgICB0eXBlID0+IHsKICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50
fT5gXSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAg
ICAgICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIs
IG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIHt9KTsKICAgICAgICAgICAgICAgICAgICAg
fSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTM2NCw3ICszMTYsNyBAQCBjbGFzcyBJ
bnRyaW5zaWNzIHsKICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAgICAg
YG5hdGl2ZSBvcGVyYXRvciB1Y2hhcigke3ByaW1pdGl2ZVR5cGV9KWAsCiAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgJiAweGZmKTsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChj
YXN0VG9VY2hhcih2YWx1ZS5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgICAgIH0pOwogICAg
ICAgICB9CiAKQEAgLTM3Miw3ICszMjQsNyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciB1c2hv
cnQoJHtwcmltaXRpdmVUeXBlfSlgLAogICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94
KHZhbHVlLmxvYWRWYWx1ZSgpICYgMHhmZmZmKTsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9Vc2hvcnQodmFsdWUu
bG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgfQogCkBAIC0zODAs
NyArMzMyLDcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAogICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgdWludCgke3ByaW1pdGl2ZVR5cGV9
KWAsCiAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkg
Pj4+IDApOworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1
ZV0pID0+IEVQdHIuYm94KGNhc3RUb1VpbnQodmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfQogCkBAIC0zODgsNyArMzQwLDcgQEAgY2xhc3MgSW50cmlu
c2ljcyB7CiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgICAgIGBuYXRp
dmUgb3BlcmF0b3IgY2hhcigke3ByaW1pdGl2ZVR5cGV9KWAsCiAgICAgICAgICAgICAgICAgZnVu
YyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVl
XSkgPT4gRVB0ci5ib3goY2FzdChJbnQ4QXJyYXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5i
b3goY2FzdFRvQ2hhcih2YWx1ZS5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgICAgIH0pOwog
ICAgICAgICB9CiAKQEAgLTM5Niw3ICszNDgsNyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciBz
aG9ydCgke3ByaW1pdGl2ZVR5cGV9KWAsCiAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5i
b3goY2FzdChJbnQxNkFycmF5LCB2YWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb1No
b3J0KHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgIH0K
IApAQCAtNDIwLDcgKzM3Miw3IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKICAgICAgICAgICAgICAgICBgbmF0aXZlIG9wZXJhdG9yIGZsb2F0KCR7cHJp
bWl0aXZlVHlwZX0pYCwKICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChNYXRoLmZy
b3VuZCh2YWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb0Zsb2F0KHZhbHVlLmxvYWRW
YWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KIApAQCAtNDg0LDI5MiAr
NDM2LDI5MiBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICJuYXRpdmUgaW50IG9w
ZXJhdG9yLShpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goKC12YWx1ZS5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goY2FzdFRvSW50KC12YWx1ZS5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAK
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0
b3ItKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KE1hdGguZnJvdW5kKC12YWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChjYXN0VG9GbG9hdCgtdmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAg
IH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBv
cGVyYXRvcisoaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8
IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5sb2FkVmFs
dWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0
aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3ItKGludCxpbnQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
KGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2Fk
VmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAg
ICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yKihpbnQsaW50KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCBy
aWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgp
ICogcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KGNhc3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAg
ICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZl
IGludCBvcGVyYXRvci8oaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1
ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5s
b2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAg
ICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yKyh1
aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOwor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxlZnQubG9hZFZhbHVlKCkg
KyByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5f
bWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvci0odWludCx1aW50KSIs
CiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChs
ZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWludChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9h
ZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAg
ICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3IqKHVpbnQsdWludCkiLAogICAgICAgICAg
ICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFs
dWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAg
Im5hdGl2ZSB1aW50IG9wZXJhdG9yLyh1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4g
ewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLyByaWdo
dC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0
VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAg
ICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxv
YXQgb3BlcmF0b3IrKGZsb2F0LGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgKyBy
aWdodC5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9G
bG9hdChsZWZ0LmxvYWRWYWx1ZSgpICsgcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAg
IH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0
IG9wZXJhdG9yLShmbG9hdCxmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmln
aHQubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxv
YXQobGVmdC5sb2FkVmFsdWUoKSAtIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9
KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBv
cGVyYXRvciooZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0
LmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0
KGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7
CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3Bl
cmF0b3IvKGZsb2F0LGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5s
b2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChs
ZWZ0LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwog
CiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRv
ciYoaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSAm
IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9t
YXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3J8KGludCxpbnQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQu
bG9hZFZhbHVlKCkgfCByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkgfCByaWdodC5sb2FkVmFsdWUo
KSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAg
ICAgICJuYXRpdmUgaW50IG9wZXJhdG9yXihpbnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+
IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0p
ID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmln
aHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RU
b0ludChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAg
IH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBv
cGVyYXRvcn4oaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KCh+dmFsdWUubG9hZFZh
bHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFs
dWVdKSA9PiBFUHRyLmJveChjYXN0VG9JbnQofnZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAg
ICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBp
bnQgb3BlcmF0b3I8PChpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSA8PCByaWdodC5sb2FkVmFs
dWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQu
bG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcj4+
KGludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpID4+IHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSA+
PiByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5f
bWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvciYodWludCx1aW50KSIs
CiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChs
ZWZ0LmxvYWRWYWx1ZSgpICYgcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWludChsZWZ0LmxvYWRWYWx1ZSgpICYgcmlnaHQubG9h
ZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAg
ICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3J8KHVpbnQsdWludCkiLAogICAgICAgICAg
ICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFs
dWUoKSB8IHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSB8IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAg
Im5hdGl2ZSB1aW50IG9wZXJhdG9yXih1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4g
ewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgXiByaWdo
dC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0
VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgXiByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAg
ICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWlu
dCBvcGVyYXRvcn4odWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCgofnZhbHVlLmxv
YWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9VaW50KH52YWx1ZS5sb2FkVmFsdWUoKSkpOwog
ICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJu
YXRpdmUgdWludCBvcGVyYXRvcjw8KHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7
CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9
PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSA8PCByaWdo
dC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0
VG9VaW50KGxlZnQubG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAg
ICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVp
bnQgb3BlcmF0b3I+Pih1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgPj4+IHJpZ2h0LmxvYWRW
YWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQo
bGVmdC5sb2FkVmFsdWUoKSA+Pj4gcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNv
cyhmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChNYXRoLmZyb3VuZChNYXRoLmNvcyh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5jb3ModmFsdWUubG9hZFZhbHVlKCkp
KSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAg
ICAgIm5hdGl2ZSBmbG9hdCBzaW4oZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5zaW4odmFsdWUubG9hZFZhbHVl
KCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguc2lu
KHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5f
bWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgdGFuKGZsb2F0KSIsCiAgICAgICAg
ICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2
YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgu
dGFuKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChj
YXN0VG9GbG9hdChNYXRoLnRhbih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGFj
b3MoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goTWF0aC5mcm91bmQoTWF0aC5hY29zKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLmFjb3ModmFsdWUubG9hZFZhbHVl
KCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAg
ICAgICAgIm5hdGl2ZSBmbG9hdCBhc2luKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsK
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguYXNpbih2YWx1ZS5sb2Fk
VmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0
aC5hc2luKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAg
dGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgYXRhbihmbG9hdCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3Vu
ZChNYXRoLmF0YW4odmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguYXRhbih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAg
ICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZl
IGZsb2F0IGNvc2goZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5jb3NoKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLmNvc2godmFsdWUu
bG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0
KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBzaW5oKGZsb2F0KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0p
ID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguc2luaCh2
YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRv
RmxvYXQoTWF0aC5zaW5oKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAK
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgdGFuaChm
bG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChN
YXRoLmZyb3VuZChNYXRoLnRhbmgodmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgudGFuaCh2YWx1ZS5sb2FkVmFsdWUoKSkp
KTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAg
ICAibmF0aXZlIGZsb2F0IGNlaWwoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5jZWlsKHZhbHVlLmxvYWRWYWx1
ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLmNl
aWwodmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlz
Ll9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBleHAoZmxvYXQpIiwKICAgICAg
ICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0
aC5leHAodmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KGNhc3RUb0Zsb2F0KE1hdGguZXhwKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAg
fSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQg
Zmxvb3IoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goTWF0aC5mcm91bmQoTWF0aC5mbG9vcih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5mbG9vcih2YWx1ZS5sb2Fk
VmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAg
ICAgICAgICAgICAibmF0aXZlIGZsb2F0IGxvZyhmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9
PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9Pgot
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmxvZyh2YWx1ZS5s
b2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQo
TWF0aC5sb2codmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCByb3VuZChmbG9hdCki
LAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZy
b3VuZChNYXRoLnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwog
ICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJu
YXRpdmUgZmxvYXQgc3FydChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnNxcnQodmFsdWUubG9hZFZhbHVlKCkp
KSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGguc3FydCh2
YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21h
cC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IHRydW5jKGZsb2F0KSIsCiAgICAgICAg
ICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2
YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgu
dHJ1bmModmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KGNhc3RUb0Zsb2F0KE1hdGgudHJ1bmModmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAg
ICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KApAQCAtNzg4LDcgKzc0MCw3IEBAIGNsYXNz
IEludHJpbnNpY3MgewogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBwb3coZmxvYXQsZmxvYXQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
TWF0aC5mcm91bmQoTWF0aC5wb3cobGVmdC5sb2FkVmFsdWUoKSwgcmlnaHQubG9hZFZhbHVlKCkp
KSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgucG93KGxl
ZnQubG9hZFZhbHVlKCksIHJpZ2h0LmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAK
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKQEAgLTgzMiw3ICs3ODQsNyBAQCBjbGFzcyBJbnRyaW5z
aWNzIHsKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgYXRhbjIoZmxvYXQsZmxvYXQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQoTWF0aC5hdGFuMihsZWZ0LmxvYWRWYWx1ZSgpLCByaWdodC5sb2FkVmFsdWUoKSkpKTsK
KyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5hdGFuMihsZWZ0
LmxvYWRWYWx1ZSgpLCByaWdodC5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCkBAIC05MTQsNiArODY2LDEzOTUgQEAgY2xhc3MgSW50cmlu
c2ljcyB7CiAKICAgICAgICAgZm9yIChsZXQgc2V0dGVyIG9mIEJ1aWx0aW5NYXRyaXhTZXR0ZXIu
ZnVuY3Rpb25zKCkpCiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KHNldHRlci50b1N0cmluZygp
LCBmdW5jID0+IHNldHRlci5pbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpKTsKKworICAg
ICAgICBmdW5jdGlvbiBjaGVja1VuZGVmaW5lZChvcmlnaW4sIGV4cGxhbmF0aW9uLCB2YWx1ZSkK
KyAgICAgICAgeworICAgICAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkKKyAgICAgICAg
ICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQg
b2YgYm91bmRzIik7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBjaGVja0ZhbHNlKG9yaWdpbiwgZXhwbGFuYXRpb24sIHZhbHVlKQorICAg
ICAgICB7CisgICAgICAgICAgICBpZiAodmFsdWUgPT0gZmFsc2UpCisgICAgICAgICAgICAgICAg
dGhyb3cgbmV3IFdUcmFwRXJyb3IoIltTdG9yZV0iLCAiVGV4dHVyZSBzdG9yZSBvdXQgb2YgYm91
bmRzIik7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBib3hWZWN0b3IoYSkKKyAgICAg
ICAgeworICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBBcnJheSkgeworICAgICAgICAgICAg
ICAgIGxldCByZXN1bHQgPSBuZXcgRVB0cihuZXcgRUJ1ZmZlcihhLmxlbmd0aCksIDApOworICAg
ICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkKKyAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0LnNldChpLCBhW2ldKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIu
Ym94KGEpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdW5ib3hWZWN0b3IoYSwgbGVu
Z3RoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAobGVuZ3RoICE9ICIiKSB7CisgICAgICAg
ICAgICAgICAgbGVuZ3RoID0gTnVtYmVyLnBhcnNlSW50KGxlbmd0aCk7CisgICAgICAgICAgICAg
ICAgbGV0IHJlc3VsdCA9IFtdOworICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
bGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGEuZ2V0KGkpKTsK
KyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgcmV0dXJuIGEubG9hZFZhbHVlKCk7CisgICAgICAgIH0KKworICAgICAgICBm
b3IgKGxldCB0eXBlIG9mIFsidWNoYXIiLCAidXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9y
dCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICBmb3IgKHZhciBsZW5n
dGhWYXJpYWJsZSBvZiBbYGAsIGAyYCwgYDNgLCBgNGBdKSB7CisgICAgICAgICAgICAgICAgbGV0
IGxlbmd0aCA9IGxlbmd0aFZhcmlhYmxlOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4
dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9u
LmxvYWRWYWx1ZSgpLCAwLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0g
U2FtcGxlKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0IGxvY2F0aW9u
LGludCBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24ubG9hZFZhbHVlKCksIDAsIDAsIDEsIDBdOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5sb2Fk
VmFsdWUoKSwgMCwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVl
KCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1
cmUxRDwke3R5cGV9JHtsZW5ndGh9PixpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1
cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tl
ZCgwLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHts
ZW5ndGh9IExvYWQoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LGludDIgbG9jYXRpb24saW50
IG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0
aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRz
IiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQoMSks
IDAsIDAsIGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERp
bWVuc2lvbnMoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWludCog
dGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBudW1iZXJPZkxldmVs
c10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2Fk
VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZl
bC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0g
dGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5l
dyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50
IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lk
dGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkp
LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xl
bmd0aH0gU2FtcGxlKFRleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9j
YXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIDAsIDAsIDEsIGxvY2F0aW9uLmdldCgxKV07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0
dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJy
YXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMURBcnJheTwke3R5
cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgMCwgMCwgMSwgbG9jYXRpb24uZ2V0KDEpXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQubG9hZFZhbHVlKCksIDAs
IDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxl
VGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlv
bkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMURBcnJheTwk
e3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVh
ZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2Nh
dGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgbG9jYXRpb24uZ2V0KDApKSkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9PixpbnQz
IGxvY2F0aW9uLGludCBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0
ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQg
b3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRp
b24uZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIDAsIDAsIGxvY2F0aW9uLmdldCgwKSArIG9mZnNl
dC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTFEQXJyYXk8JHt0eXBl
fSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFk
IEVsZW1lbnRzLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBlbGVtZW50cywgbnVtYmVy
T2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1
cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0g
bWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1p
cElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25l
eGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwo
bWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1
cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24u
Z2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7
bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQy
IGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24u
Z2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFB
cnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2Fk
VmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9JHtsZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwg
bG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgp
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHts
ZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSks
IDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxl
VGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlv
bkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4
dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0MiBE
RFgsZmxvYXQyIEREWSlgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEp
LCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBb
ZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0ke2xlbmd0aH0gU2FtcGxlR3JhZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2Ft
cGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZLGludDIgb2Zmc2V0KWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwg
MF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQo
MCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlB
cnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkQ8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9k
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2Fk
VmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5l
ZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0
aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IExPRCxpbnQyIG9mZnNldClgLAorICAg
ICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxv
ZCwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFy
cmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBv
ZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94
VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFs
dWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4
dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxv
Y2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0
KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJh
eSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFs
dWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9j
YXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0
dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJy
YXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xl
bmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0
aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEp
LCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhl
clRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRp
b25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMiIgfHwg
bGVuZ3RoID09ICIzIiB8fCBsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdh
dGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbilgLAorICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEs
IDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdh
dGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9j
YXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgMSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJH
cmVlbihUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24s
aW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
ZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRl
eHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRl
bHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCAxKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjMiIHx8
IGxlbmd0aCA9PSAiNCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVl
KFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVl
KCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9m
ZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlv
bkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNl
dC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAyKSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjQiKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkQ8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAw
LCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ym94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMykpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUy
RDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClg
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQo
MCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0Lmdl
dCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9h
ZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAzKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyRDwke3R5cGV9
JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQg
b2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlv
bi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gTG9hZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4saW50MyBsb2NhdGlvbixp
bnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxv
Y2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91
bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQo
MiksIDAsIGxvY2F0aW9uLmdldCgxKSArIG9mZnNldC5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSAr
IG9mZnNldC5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUyRDwke3R5cGV9JHts
ZW5ndGh9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVp
Z2h0LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIG51bWJlck9mTGV2ZWxz
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRW
YWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVs
LmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0
ZXgubGV2ZWxDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3
IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQg
bWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWln
aHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQp
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1
cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUo
dGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUyREFycmF5PCR7dHlwZX0k
e2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQo
MCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxv
YWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2Ft
cGxlQmlhcyhUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBs
b2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgp
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHts
ZW5ndGh9IFNhbXBsZUJpYXMoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlhcyxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXMsIG9mZnNl
dF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFts
b2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0
KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5s
b2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgYmlhcy5sb2FkVmFsdWUoKSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVu
Z3RofSBTYW1wbGVHcmFkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIs
ZmxvYXQzIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSlgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9u
LmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0
KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5
LmdldCgwKSwgZGR5LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIu
bG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBkZHhBcnJh
eSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1w
bGVHcmFkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5LCBv
ZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkg
PSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgy
KV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQo
MCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlB
cnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlMkRBcnJh
eTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwK
KyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBsb2RdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkg
PSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgy
KV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVU
ZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9u
QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxv
YWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUxldmVsKFRleHR1
cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0
IExPRCxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24u
Z2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVy
ZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5
LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZh
bHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlMkRBcnJheTwke3R5cGV9
JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2Nh
dGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXIoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0
dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJy
YXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCAwKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUyREFycmF5PCR7dHlw
ZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFs
dWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEp
LCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhl
clRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRp
b25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMiIgfHwg
bGVuZ3RoID09ICIzIiB8fCBsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdh
dGhlckdyZWVuKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
MCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBs
ZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDEpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNl
dC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwg
c2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDEpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMyIgfHwgbGVuZ3RoID09ICI0Iikgewor
ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFy
cmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5n
ZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVl
KCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3Ro
fT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxv
Y2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxv
Y2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
ZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVy
ZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5
LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgMikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
bGVuZ3RoID09ICI0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDAp
LCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgMykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAw
LCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBd
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgNCkpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHts
ZW5ndGh9PixpbnQ0IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2Yg
Ym91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQo
MyksIGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkp
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+
LGludDQgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJl
IHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQo
bG9jYXRpb24uZ2V0KDMpLCBsb2NhdGlvbi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSArIG9m
ZnNldC5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSArIG9mZnNldC5nZXQoMCkpKSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXRE
aW1lbnNpb25zKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWws
dWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIEVsZW1l
bnRzLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRzLCBudW1i
ZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4
dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQg
PSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
bWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5v
bmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHRBdExl
dmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxD
b3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUzRDwke3R5cGV9JHts
ZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCks
IHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHts
ZW5ndGh9IFNhbXBsZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24saW50MyBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgb2Zmc2V0
LmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihz
YW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxv
Y2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUzRDwk
e3R5cGV9JHtsZW5ndGh9PixpbnQ0IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVh
ZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBs
b2NhdGlvbi5nZXQoMyksIGxvY2F0aW9uLmdldCgyKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlv
bi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUzRDwke3R5cGV9JHtsZW5n
dGh9PixpbnQ0IGxvY2F0aW9uLGludDMgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4
dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVj
a2VkKDAsIGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIpICsgb2Zmc2V0LmdldCgyKSwg
bG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0
LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+
LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWlu
dCogdGhyZWFkIERlcHRoLHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIGRl
cHRoLCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
dGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGlu
ZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGVwdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmRl
cHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWln
aHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQp
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1
cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlQmlhcyhUZXh0dXJlQ3ViZTwke3R5cGV9JHts
ZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhc10pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5k
ZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4dHVyZUN1YmU8JHt0
eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQzIEREWCxmbG9hdDMg
RERZKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxv
Y2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9u
LmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5
ID0gW2RkeC5nZXQoMCksIGRkeC5nZXQoMSksIGRkeC5nZXQoMildOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCBkZHku
Z2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNh
bXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9j
YXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGRkeEFycmF5LCBkZHlBcnJheSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUxldmVsKFRleHR1cmVD
dWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IExPRClg
LAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIGxvZF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJh
eSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAx
LCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBs
ZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRp
b25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2Qu
bG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlQ3ViZTwke3R5
cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBs
b2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZh
bHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBs
b2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlv
bi5nZXQoMiksIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hW
ZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1
ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGlmIChsZW5ndGgg
PT0gIjIiIHx8IGxlbmd0aCA9PSAiMyIgfHwgbGVuZ3RoID09ICI0IikgeworICAgICAgICAgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgp
LCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAxKSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjMiIHx8IGxlbmd0aCA9PSAiNCIpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmVDdWJlPCR7dHlw
ZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJh
eSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAx
LCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAyKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1w
bGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rv
cihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCks
IGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDMpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAg
YG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4s
dWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50
KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBudW1iZXJPZkxldmVsc10pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFs
dWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4LmxheWVyQ291bnQgIT0g
NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDdWJl
IHRleHR1cmUgZG9lc24ndCBoYXZlIDYgZmFjZXMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGlu
ZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5o
ZWlnaHRBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
ZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQp
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERp
bWVuc2lvbnMoUldUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sdWludCogdGhyZWFkIFdpZHRo
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXh0dXJlLmxvYWRWYWx1ZSgpLndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJX
VGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LGZsb2F0KiB0aHJlYWQgV2lkdGgpYCwKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleHR1
cmUubG9hZFZhbHVlKCkud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoUldUZXh0dXJl
MUQ8JHt0eXBlfSR7bGVuZ3RofT4saW50IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUg
cmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgw
LCAwLCAwLCAwLCBsb2NhdGlvbi5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTFE
PCR7dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0aH0sdWludCBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0ZhbHNlKCJbU3RvcmVdIiwgIlRleHR1
cmUgd3JpdGUgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENo
ZWNrZWQoMCwgMCwgMCwgMCwgbG9jYXRpb24ubG9hZFZhbHVlKCksIHVuYm94VmVjdG9yKHZhbHVl
LCBsZW5ndGgpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIH0pOworCisgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBl
fSR7bGVuZ3RofT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBFbGVtZW50cylgLAor
ICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGVsZW1lbnRzXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1
ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwg
MSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4s
ZmxvYXQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBlbGVtZW50c10pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
ZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0k
e2xlbmd0aH0gTG9hZChSV1RleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGludDIgbG9j
YXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNr
VW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJl
LmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgMCwgbG9j
YXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5n
dGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBvdXQg
b2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tlZChsb2NhdGlv
bi5nZXQoMSksIDAsIDAsIDAsIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0b3IodmFsdWUsIGxl
bmd0aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3Ro
fT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQpYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHRdKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lv
bnMoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9h
dCogdGhyZWFkIEhlaWdodClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgd2lkdGgsIGhlaWdodF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4
ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWln
aHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChSV1RleHR1cmUyRDwke3R5cGV9
JHtsZW5ndGh9PixpbnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQg
b2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCAwLCAwLCBs
b2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZTJE
PCR7dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0aH0sdWludDIgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb25dKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0
dXJlIHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRD
aGVja2VkKDAsIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApLCB1bmJveFZl
Y3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUyREFy
cmF5PCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVp
Z2h0LHVpbnQqIHRocmVhZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
bihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9h
ZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53
aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUyREFycmF5PCR7dHlwZX0ke2xl
bmd0aH0+LGZsb2F0KiB0aHJlYWQgV2lkdGgsZmxvYXQqIHRocmVhZCBIZWlnaHQsZmxvYXQqIHRo
cmVhZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwg
d2lkdGgsIGhlaWdodCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQp
LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0ke2xlbmd0aH0gTG9hZChSV1RleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGlu
dDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBs
b2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9y
KGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0
ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgyKSwgMCwgMCwg
bG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUy
REFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0aH0sdWludDMgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRp
b25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIs
ICJUZXh0dXJlIHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVs
ZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgyKSwgMCwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2Nh
dGlvbi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVlLCBsZW5ndGgpKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1l
bnNpb25zKFJXVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQqIHRocmVhZCBXaWR0aCx1
aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBEZXB0aClgLAorICAgICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZGVwdGhdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4LmRlcHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0Lmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
d2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3Ro
fT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhyZWFkIEhlaWdodCxmbG9hdCogdGhyZWFk
IERlcHRoKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwg
aGVpZ2h0LCBkZXB0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0g
dGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aC5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguZGVwdGgpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1
ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9h
ZChSV1RleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRd
IiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVt
ZW50Q2hlY2tlZCgwLCAwLCBsb2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRp
b24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
ICAgICBgbmF0aXZlIHZvaWQgU3RvcmUoUldUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sJHt0
eXBlfSR7bGVuZ3RofSx1aW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjaGVja0ZhbHNlKCJbU3RvcmVdIiwgIlRleHR1cmUgd3JpdGUgb3V0IG9mIGJvdW5k
cyIsIHRleHR1cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQoMCwgMCwgbG9jYXRpb24u
Z2V0KDIpLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0b3IodmFs
dWUsIGxlbmd0aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCB0
eXBlIG9mIFsiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkQ8JHt0
eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwg
MSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9j
YXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBs
b2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQo
MCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSlgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVl
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCks
IHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVl
KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlQ21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLCR7
dHlwZX0gQ29tcGFyZVZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUu
bG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJy
YXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZh
bHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSlgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0
KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBs
ZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgMCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVy
byhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbiwke3R5cGV9
IENvbXBhcmVWYWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVs
dGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwLCBjb21wYXJlVmFsdWUubG9hZFZhbHVl
KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlQmlhcyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixm
bG9hdCBCaWFzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uLCBiaWFzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJy
YXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUu
bG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5l
ZCwgYmlhcy5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
IFNhbXBsZUJpYXMoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRp
b24sZmxvYXQgQmlhcyxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhcywgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkg
PSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwg
c2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgYmlhcy5sb2Fk
VmFsdWUoKSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQo
VGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQyIERE
WCxmbG9hdDIgRERZKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uLCBkZHgsIGRkeV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHgu
Z2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHku
Z2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
b3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRW
YWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRk
eUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSxpbnQyIG9mZnNl
dClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
ZGR4LCBkZHksIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlv
bkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0
KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0
KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFy
cmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVm
aW5lZCwgZGR4QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0
dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBMT0QpYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9u
LmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBz
YW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIGxvZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRl
eHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IExPRCxp
bnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgbG9kLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9j
YXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDAp
LCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hW
ZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1
ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVEZXB0aDJEPCR7dHlw
ZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEs
IDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0
dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJy
YXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX00IEdhdGhlcihUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBs
b2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEs
IDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0Lmdl
dCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ym94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyRDwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24g
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAw
LCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVy
VGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlv
bkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEp
LCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29m
ZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBs
ZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXAoVGV4dHVyZURl
cHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1
ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwg
Y29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJy
YXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUu
bG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFs
dWUubG9hZFZhbHVlKCksIDApKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZs
b2F0MiBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUs
IG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQo
MSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJU
ZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9u
QXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpLCAwKSk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkQ8
JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFy
ZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZh
bHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9h
ZFZhbHVlKCksIDApKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MiBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9m
ZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xv
Y2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSks
IDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0
dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJy
YXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4saW50
MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmlu
ZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZh
bHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDIpLCAwLCBsb2NhdGlvbi5nZXQo
MSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixpbnQzIGxvY2F0aW9u
LGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9u
LCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNo
ZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0
dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgyKSwgMCwgbG9j
YXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0Lmdl
dCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0
RGltZW5zaW9ucyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9Pix1aW50IE1pcExldmVsLHVpbnQqIHRo
cmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVs
cylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhl
aWdodCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4
ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJ
RCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1p
cElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93
IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0
YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWln
aHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQp
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJv
bShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAg
ICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9
IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIp
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVy
ZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwg
bG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5
ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCks
IHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJl
RGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29t
cGFyZVZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9j
YXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9j
YXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Io
c2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBs
b2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyREFy
cmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVl
LGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEp
LCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRl
bHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2Fk
VmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUu
bG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2Ft
cGxlcixmbG9hdDMgbG9jYXRpb24sJHt0eXBlfSBDb21wYXJlVmFsdWUpYCwKKyAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZV0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdl
dCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9h
ZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1
ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNh
bXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxv
YXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUs
IG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMild
OworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgw
KSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94
VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFs
dWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgMCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzKWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0
KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2Fk
VmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCBi
aWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlQmlhcyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0
aW9uLGZsb2F0IEJpYXMsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXMsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24u
Z2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVy
ZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFB
cnJheSwgYmlhcy5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MyBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBERFkpYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07CisgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5LmdldCgwKSwgZGR5LmdldCgxKSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUo
dGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIGRkeEFycmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0g
U2FtcGxlR3JhZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHksIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9u
LmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0gW2RkeC5nZXQoMCksIGRkeC5nZXQoMSks
IDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCks
IGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkg
PSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwg
c2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVk
LCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmVE
ZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9EKWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2Rd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxvZC5sb2FkVmFsdWUoKSwgdW5k
ZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24sZmxvYXQgTE9ELGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2QsIG9mZnNldF0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRp
b24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07Cisg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVs
dGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgp
LCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX00IEdhdGhlcihUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQz
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBb
bG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUo
dGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgMCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwg
c2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAx
LCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJy
YXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUo
KSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChU
ZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDAp
LCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFs
dWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVk
KFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50
MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFy
cmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5n
ZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0
LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5s
b2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGgy
REFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFs
dWUpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24s
IGNvbXBhcmVWYWx1ZV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFy
cmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5n
ZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJU
ZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9u
QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCksIDApKTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyREFycmF5
PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFsdWUsaW50
MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIGNvbXBhcmVWYWx1ZSwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFB
cnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1
ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2Fk
VmFsdWUoKSwgMCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBs
b2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUo
KSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFs
dWUoKSwgMCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBv
ZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFts
b2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCks
IG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZl
Y3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVl
KCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpLCAwKSk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRo
MkRBcnJheTwke3R5cGV9PixpbnQ0IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91
bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMyks
IGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4
dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixpbnQ0IGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9h
ZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVs
ZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIpLCAwLCBsb2NhdGlv
bi5nZXQoMSkgKyBvZmZzZXQuZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkgKyBvZmZzZXQuZ2V0KDAp
KSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1l
bnNpb25zKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sdWludCBNaXBMZXZlbCx1aW50KiB0
aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRWxlbWVudHMsdWlu
dCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1
cmUsIG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50cywgbnVtYmVyT2ZMZXZlbHNdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgp
OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGlt
ZW5zaW9uc10iLCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJl
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20o
RVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExl
dmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94
KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxv
YXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkg
PSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwg
MF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0
eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBs
b2NhdGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSkp
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVD
bXBMZXZlbFplcm8oVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2Nh
dGlvbiwke3R5cGV9IENvbXBhcmVWYWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxl
ci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCAwLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJl
RGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwK
KyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXNd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmlu
ZWQsIGJpYXMubG9hZFZhbHVlKCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9j
YXRpb24sZmxvYXQzIEREWCxmbG9hdDMgRERZKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeV0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0
KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGRkeEFycmF5ID0gW2RkeC5nZXQoMCksIGRkeC5nZXQoMSksIGRkeC5nZXQoMildOworICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSks
IGRkeS5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihz
YW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxv
Y2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDMgbG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2RdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
bG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
b3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRW
YWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIGxvZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRoQ3ViZTwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24g
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBs
b2NhdGlvbi5nZXQoMiksIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGhDdWJlPCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxv
Y2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94
VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFs
dWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aEN1YmU8JHt0
eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZh
bHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9j
YXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07Cisg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4
dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbXBh
cmVWYWx1ZS5sb2FkVmFsdWUoKSwgMCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24u
Z2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5s
b2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1
ZS5sb2FkVmFsdWUoKSwgMCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sdWludCBNaXBM
ZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQg
TnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbWlwbGV2
ZWwsIHdpZHRoLCBoZWlnaHQsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICh0ZXgubGF5ZXJDb3VudCAhPSA2KQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiQ3ViZSB0ZXh0dXJlIGRvZXNuJ3QgaGF2ZSA2IGZhY2VzIik7
CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXREaW1l
bnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUi
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2
ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4
dHVyZURlcHRoMkQ8JHt0eXBlfT4sdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWln
aHQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgd2lkdGgsIGhlaWdodF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIu
Ym94KHRleC5oZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhyZWFkIEhlaWdodClgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0XSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCku
Y29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IExvYWQoUldUZXh0dXJlRGVwdGgyRDwke3R5cGV9Pixp
bnQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9u
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVm
aW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2Fk
VmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9u
LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQg
U3RvcmUoUldUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwke3R5cGV9LHVpbnQyIGxvY2F0aW9uKWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3cml0
ZSBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tlZCgw
LCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0b3IodmFs
dWUsICIiKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBH
ZXREaW1lbnNpb25zKFJXVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Pix1aW50KiB0aHJlYWQg
V2lkdGgsdWludCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRWxlbWVudHMpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgd2lkdGgsIGhlaWdodCwgZWxlbWVudHNdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIu
Ym94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQu
bG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAg
ICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4Lndp
ZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdl
dERpbWVuc2lvbnMoUldUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LGZsb2F0KiB0aHJlYWQg
V2lkdGgsZmxvYXQqIHRocmVhZCBIZWlnaHQsZmxvYXQqIHRocmVhZCBFbGVtZW50cylgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50c10pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdo
dC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
d2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX0gTG9hZChSV1RleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4saW50MyBsb2NhdGlvbilgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJU
ZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENo
ZWNrZWQobG9jYXRpb24uZ2V0KDIpLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdl
dCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgU3Rv
cmUoUldUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCR7dHlwZX0sdWludDMgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIsICJUZXh0dXJlIHdy
aXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVsZW1lbnRDaGVja2Vk
KGxvY2F0aW9uLmdldCgyKSwgMCwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCks
IHVuYm94VmVjdG9yKHZhbHVlLCAiIikpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICB9CiAgICAgfQogCiAgICAgYWRkKHRoaW5nKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbCBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKaW5kZXggNzhkMDA4ZjgzNWY5ZTljMjM0
ZWYyZGY2ZDZkZWVhM2Y3NDI2Y2U2NS4uMWIyNmNmMmIyZTY1MTUyN2ExNTJlZThkOTJmZjI1YmVk
YTYxZDMzOSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYu
aHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCkBAIC0z
NCw2ICszNCw3IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iQnVpbHRpblZlY3RvclNldHRlci5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNhbGxFeHByZXNzaW9uLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iQ2FsbEZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0iQ2FzdHMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDaGVjay5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNoZWNrTGl0ZXJhbFR5cGVzLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iQ2hlY2tMb29wcy5qcyI+PC9zY3JpcHQ+CkBAIC0xMjEsNiAr
MTIyLDcgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJSZXR1cm4uanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJSZXR1cm5DaGVja2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iUmV0dXJuRXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iU2FtcGxl
ci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlN0YW5kYXJkTGlicmFyeS5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlN0YXRlbWVudENsb25lci5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IlN0cnVjdExheW91dEJ1aWxkZXIuanMiPjwvc2NyaXB0PgpAQCAtMTMz
LDYgKzEzNSw4IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlDb25zdHJ1
Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZURl
ZmF1bHRDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
VGVybmFyeUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJUZXh0dXJl
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUcmFwU3RhdGVtZW50LmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlR5
cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9TYW1wbGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U2FtcGxlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZTc3MTNkZmM4MWY4M2M1ODQ3MzYyMTIxNzU2NGYzOTU3
MmIxNGI4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U2FtcGxlci5qcwpAQCAtMCwwICsxLDE2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisidXNlIHN0cmljdCI7CisKK2NsYXNzIFNhbXBsZXIgeworICAgIGNv
bnN0cnVjdG9yKG9wdGlvbnMpCisgICAgeworICAgICAgICBpZiAob3B0aW9ucy5yQWRkcmVzc01v
ZGUgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fckFkZHJlc3NNb2RlID0gImNsYW1w
VG9FZGdlIjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fckFkZHJlc3NNb2RlID0g
b3B0aW9ucy5yQWRkcmVzc01vZGU7CisgICAgICAgIGlmIChvcHRpb25zLnNBZGRyZXNzTW9kZSA9
PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9zQWRkcmVzc01vZGUgPSAiY2xhbXBUb0Vk
Z2UiOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9zQWRkcmVzc01vZGUgPSBvcHRp
b25zLnNBZGRyZXNzTW9kZTsKKyAgICAgICAgaWYgKG9wdGlvbnMudEFkZHJlc3NNb2RlID09IHVu
ZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX3RBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX3RBZGRyZXNzTW9kZSA9IG9wdGlvbnMu
dEFkZHJlc3NNb2RlOworICAgICAgICBpZiAob3B0aW9ucy5taW5GaWx0ZXIgPT0gdW5kZWZpbmVk
KQorICAgICAgICAgICAgdGhpcy5fbWluRmlsdGVyID0gIm5lYXJlc3QiOworICAgICAgICBlbHNl
CisgICAgICAgICAgICB0aGlzLl9taW5GaWx0ZXIgPSBvcHRpb25zLm1pbkZpbHRlcjsKKyAgICAg
ICAgaWYgKG9wdGlvbnMubWFnRmlsdGVyID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMu
X21hZ0ZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5f
bWFnRmlsdGVyID0gb3B0aW9ucy5tYWdGaWx0ZXI7CisgICAgICAgIGlmIChvcHRpb25zLm1pcG1h
cEZpbHRlciA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9taXBtYXBGaWx0ZXIgPSAi
bmVhcmVzdCI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX21pcG1hcEZpbHRlciA9
IG9wdGlvbnMubWlwbWFwRmlsdGVyOworICAgICAgICBpZiAob3B0aW9ucy5sb2RNaW5DbGFtcCA9
PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9sb2RNaW5DbGFtcCA9IC1OdW1iZXIuTUFY
X1ZBTFVFOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9sb2RNaW5DbGFtcCA9IG9w
dGlvbnMubG9kTWluQ2xhbXA7CisgICAgICAgIGlmIChvcHRpb25zLmxvZE1heENsYW1wID09IHVu
ZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX2xvZE1heENsYW1wID0gTnVtYmVyLk1BWF9WQUxV
RTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fbG9kTWF4Q2xhbXAgPSBvcHRpb25z
LmxvZE1heENsYW1wOworICAgICAgICBpZiAob3B0aW9ucy5tYXhBbmlzb3Ryb3B5ID09IHVuZGVm
aW5lZCkKKyAgICAgICAgICAgIHRoaXMuX21heEFuaXNvdHJvcHkgPSAxOworICAgICAgICBlbHNl
CisgICAgICAgICAgICB0aGlzLl9tYXhBbmlzb3Ryb3B5ID0gb3B0aW9ucy5tYXhBbmlzb3Ryb3B5
OworICAgICAgICBpZiAob3B0aW9ucy5jb21wYXJlRnVuY3Rpb24gPT0gdW5kZWZpbmVkKQorICAg
ICAgICAgICAgdGhpcy5fY29tcGFyZUZ1bmN0aW9uID0gIm5ldmVyIjsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgdGhpcy5fY29tcGFyZUZ1bmN0aW9uID0gb3B0aW9ucy5jb21wYXJlRnVuY3Rp
b247CisgICAgICAgIGlmIChvcHRpb25zLmJvcmRlckNvbG9yID09IHVuZGVmaW5lZCkKKyAgICAg
ICAgICAgIHRoaXMuX2JvcmRlckNvbG9yID0gInRyYW5zcGFyZW50QmxhY2siOworICAgICAgICBl
bHNlCisgICAgICAgICAgICB0aGlzLl9ib3JkZXJDb2xvciA9IG9wdGlvbnMuYm9yZGVyQ29sb3I7
CisgICAgfQorICAgIAorICAgIGdldCByQWRkcmVzc01vZGUoKSB7IHJldHVybiB0aGlzLl9yQWRk
cmVzc01vZGU7IH0KKyAgICBnZXQgc0FkZHJlc3NNb2RlKCkgeyByZXR1cm4gdGhpcy5fc0FkZHJl
c3NNb2RlOyB9CisgICAgZ2V0IHRBZGRyZXNzTW9kZSgpIHsgcmV0dXJuIHRoaXMuX3RBZGRyZXNz
TW9kZTsgfQorICAgIGdldCBtaW5GaWx0ZXIoKSB7IHJldHVybiB0aGlzLl9taW5GaWx0ZXI7IH0K
KyAgICBnZXQgbWFnRmlsdGVyKCkgeyByZXR1cm4gdGhpcy5fbWFnRmlsdGVyOyB9CisgICAgZ2V0
IG1pcG1hcEZpbHRlcigpIHsgcmV0dXJuIHRoaXMuX21pcG1hcEZpbHRlcjsgfQorICAgIGdldCBs
b2RNaW5DbGFtcCgpIHsgcmV0dXJuIHRoaXMuX2xvZE1pbkNsYW1wOyB9CisgICAgZ2V0IGxvZE1h
eENsYW1wKCkgeyByZXR1cm4gdGhpcy5fbG9kTWF4Q2xhbXA7IH0KKyAgICBnZXQgbWF4QW5pc290
cm9weSgpIHsgcmV0dXJuIHRoaXMuX21heEFuaXNvdHJvcHk7IH0KKyAgICBnZXQgY29tcGFyZUZ1
bmN0aW9uKCkgeyByZXR1cm4gdGhpcy5fY29tcGFyZUZ1bmN0aW9uOyB9CisgICAgZ2V0IGJvcmRl
ckNvbG9yKCkgeyByZXR1cm4gdGhpcy5fYm9yZGVyQ29sb3I7IH0KKworICAgIGNhbGN1bGF0ZUJv
cmRlckNvbG9yKGlubmVyVHlwZSkKKyAgICB7CisgICAgICAgIC8vIFZ1bGthbiAxLjEuODMgc2Vj
dGlvbiAxNS4zLjMKKyAgICAgICAgZnVuY3Rpb24gY29tcHV0ZVZhbHVlcygpIHsKKyAgICAgICAg
ICAgIHN3aXRjaCAoaW5uZXJUeXBlKSB7CisgICAgICAgICAgICAgICAgY2FzZSAidWNoYXIiOgor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJs
YWNrOiAwLCBvcGFxdWVXaGl0ZTogMHhGRn07CisgICAgICAgICAgICAgICAgY2FzZSAidXNob3J0
IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiAwLCBvcGFx
dWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDB4RkZGRn07CisgICAgICAgICAgICAgICAgY2FzZSAi
dWludCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwg
b3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdoaXRlOiAweEZGRkZGRkZGfTsKKyAgICAgICAgICAgICAg
ICBjYXNlICJjaGFyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJs
YWNrOiAwLCBvcGFxdWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDB4N0Z9OworICAgICAgICAgICAg
ICAgIGNhc2UgInNob3J0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVu
dEJsYWNrOiAwLCBvcGFxdWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDB4N0ZGRn07CisgICAgICAg
ICAgICAgICAgY2FzZSAiaW50IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3Bh
cmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDB4N0ZGRkZGRkZ9Owor
ICAgICAgICAgICAgICAgIGNhc2UgImhhbGYiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
e3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMX07Cisg
ICAgICAgICAgICAgICAgY2FzZSAiZmxvYXQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
e3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMX07Cisg
ICAgICAgICAgICAgICAgY2FzZSAidWNoYXIyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdo
aXRlOiBbMHhGRiwgMHhGRl19OworICAgICAgICAgICAgICAgIGNhc2UgInVzaG9ydDIiOgorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVl
QmxhY2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsweEZGRkYsIDB4RkZGRl19OworICAgICAgICAg
ICAgICAgIGNhc2UgInVpbnQyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3Bh
cmVudEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHhG
RkZGRkZGRiwgMHhGRkZGRkZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgImNoYXIyIjoKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9wYXF1
ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHg3RiwgMHg3Rl19OworICAgICAgICAgICAg
ICAgIGNhc2UgInNob3J0MiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJl
bnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4N0ZG
RiwgMHg3RkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAiaW50MiI6CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazogWzAs
IDBdLCBvcGFxdWVXaGl0ZTogWzB4N0ZGRkZGRkYsIDB4N0ZGRkZGRkZdfTsKKyAgICAgICAgICAg
ICAgICBjYXNlICJoYWxmMiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJl
bnRCbGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzEsIDFd
fTsKKyAgICAgICAgICAgICAgICBjYXNlICJmbG9hdDIiOgorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwXSwgb3Bh
cXVlV2hpdGU6IFsxLCAxXX07CisgICAgICAgICAgICAgICAgY2FzZSAidWNoYXIzIjoKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1
ZUJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHhGRiwgMHhGRiwgMHhGRl19OworICAg
ICAgICAgICAgICAgIGNhc2UgInVzaG9ydDMiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
e3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3Bh
cXVlV2hpdGU6IFsweEZGRkYsIDB4RkZGRiwgMHhGRkZGXX07CisgICAgICAgICAgICAgICAgY2Fz
ZSAidWludDMiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6
IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsweEZGRkZG
RkZGLCAweEZGRkZGRkZGLCAweEZGRkZGRkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAiY2hh
cjMiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAw
LCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsweDdGLCAweDdGLCAw
eDdGXX07CisgICAgICAgICAgICAgICAgY2FzZSAic2hvcnQzIjoKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwg
MCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHg3RkZGLCAweDdGRkYsIDB4N0ZGRl19OworICAgICAgICAg
ICAgICAgIGNhc2UgImludDMiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFy
ZW50QmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6
IFsweDdGRkZGRkZGLCAweDdGRkZGRkZGLCAweDdGRkZGRkZGXX07CisgICAgICAgICAgICAgICAg
Y2FzZSAiaGFsZjMiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50Qmxh
Y2s6IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsxLCAx
LCAxXX07CisgICAgICAgICAgICAgICAgY2FzZSAiZmxvYXQzIjoKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwg
MCwgMF0sIG9wYXF1ZVdoaXRlOiBbMSwgMSwgMV19OworICAgICAgICAgICAgICAgIGNhc2UgInVj
aGFyNCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAs
IDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDAsIDB4RkZdLCBvcGFxdWVXaGl0ZTogWzB4
RkYsIDB4RkYsIDB4RkYsIDB4RkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1c2hvcnQ0IjoK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwg
MF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMHhGRkZGXSwgb3BhcXVlV2hpdGU6IFsweEZGRkYs
IDB4RkZGRiwgMHhGRkZGLCAweEZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1aW50NCI6
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAs
IDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDAsIDB4RkZGRkZGRkZdLCBvcGFxdWVXaGl0ZTogWzB4
RkZGRkZGRkYsIDB4RkZGRkZGRkYsIDB4RkZGRkZGRkYsIDB4RkZGRkZGRkZdfTsKKyAgICAgICAg
ICAgICAgICBjYXNlICJjaGFyNCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNw
YXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDAsIDB4N0ZdLCBv
cGFxdWVXaGl0ZTogWzB4N0YsIDB4N0YsIDB4N0YsIDB4N0ZdfTsKKyAgICAgICAgICAgICAgICBj
YXNlICJzaG9ydDQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50Qmxh
Y2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAweDdGRkZdLCBvcGFxdWVX
aGl0ZTogWzB4N0ZGRiwgMHg3RkZGLCAweDdGRkYsIDB4N0ZGRl19OworICAgICAgICAgICAgICAg
IGNhc2UgImludDQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50Qmxh
Y2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAweDdGRkZGRkZGXSwgb3Bh
cXVlV2hpdGU6IFsweDdGRkZGRkZGLCAweDdGRkZGRkZGLCAweDdGRkZGRkZGLCAweDdGRkZGRkZG
XX07CisgICAgICAgICAgICAgICAgY2FzZSAiaGFsZjQiOgorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAw
LCAwLCAxXSwgb3BhcXVlV2hpdGU6IFsxLCAxLCAxLCAxXX07CisgICAgICAgICAgICAgICAgY2Fz
ZSAiZmxvYXQ0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNr
OiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMV0sIG9wYXF1ZVdoaXRlOiBb
MSwgMSwgMSwgMV19OworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biB0ZXh0dXJlIGlubmVyIHR5cGUiKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY29tcHV0ZVZhbHVlcygpW3RoaXMu
Ym9yZGVyQ29sb3JdOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1N0YW5kYXJkTGlicmFyeS5qcwppbmRleCAzZGQ0ZmVlMTg2MDBkNWNkMmE4OTVhZDVhNDc5
NzIxZGE3Nzg4Y2MxLi44MTgxNmRmMWM1ZWE4NmRlNTZmYzNhYTRjZDBkYjVkNjdkMGZjYmRhIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnku
anMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5Lmpz
CkBAIC01Nyw3ICs1Nyw3IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAg
ICAgICAgIH0KICAgICAgICAgcHJpbnQoYG5hdGl2ZSB0eXBlZGVmIHNhbXBsZXI7YCk7CiAgICAg
ICAgIGZvciAodmFyIHR5cGUgb2YgW2BUZXh0dXJlMURgLCBgUldUZXh0dXJlMURgLCBgVGV4dHVy
ZTFEQXJyYXlgLCBgUldUZXh0dXJlMURBcnJheWAsIGBUZXh0dXJlMkRgLCBgUldUZXh0dXJlMkRg
LCBgVGV4dHVyZTJEQXJyYXlgLCBgUldUZXh0dXJlMkRBcnJheWAsIGBUZXh0dXJlM0RgLCBgUldU
ZXh0dXJlM0RgLCBgVGV4dHVyZUN1YmVgXSkgewotICAgICAgICAgICAgZm9yICh2YXIgdHlwZUFy
Z3VtZW50QmFzZSBvZiBbYGJvb2xgLCBgdWNoYXJgLCBgdXNob3J0YCwgYHVpbnRgLCBgY2hhcmAs
IGBzaG9ydGAsIGBpbnRgLCBgaGFsZmAsIGBmbG9hdGBdKSB7CisgICAgICAgICAgICBmb3IgKHZh
ciB0eXBlQXJndW1lbnRCYXNlIG9mIFtgdWNoYXJgLCBgdXNob3J0YCwgYHVpbnRgLCBgY2hhcmAs
IGBzaG9ydGAsIGBpbnRgLCBgaGFsZmAsIGBmbG9hdGBdKSB7CiAgICAgICAgICAgICAgICAgZm9y
ICh2YXIgc2l6ZSBvZiBbYGAsIGAyYCwgYDNgLCBgNGBdKSB7CiAgICAgICAgICAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgdHlwZWRlZiAke3R5cGV9PCR7dHlwZUFyZ3VtZW50QmFzZX0ke3NpemV9
PjtgKTsKICAgICAgICAgICAgICAgICB9CkBAIC0xODk3LDcgKzE4OTcsOCBAQCBsZXQgc3RhbmRh
cmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lk
IEludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlKHRocmVhZCBhdG9taWNfJHt0eXBlfSosICR7dHlw
ZX0sICR7dHlwZX0sIHRocmVhZCAke3R5cGV9Kik7YCk7CiAgICAgICAgIH0KICAgICAgICAgcHJp
bnQoKTsKLSAgICAgICAgCisgICAgICAgICovCisKICAgICAgICAgZm9yICh2YXIgdHlwZSBvZiBb
YHVjaGFyYCwgYHVzaG9ydGAsIGB1aW50YCwgYGNoYXJgLCBgc2hvcnRgLCBgaW50YCwgYGhhbGZg
LCBgZmxvYXRgXSkgewogICAgICAgICAgICAgZm9yICh2YXIgbGVuZ3RoIG9mIFtgYCwgYDJgLCBg
M2AsIGA0YF0pIHsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0
aH0gU2FtcGxlKFRleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQgbG9j
YXRpb24pO2ApOwpAQCAtMTkyNCwxMiArMTkyNSwxOCBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0g
KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9u
LCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJSZWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDIg
bG9jYXRpb24pO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyUmVkKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0
aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZs
b2F0MiBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJHcmVlbihUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0
MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBs
ZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwg
ZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4s
IHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNh
bXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgICAg
IGlmIChsZW5ndGggPT0gIjIiIHx8IGxlbmd0aCA9PSAiMyIgfHwgbGVuZ3RoID09ICI0Iikgewor
ICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRl
eHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uKTtgKTsK
KyAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihU
ZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50
MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09ICIzIiB8fCBs
ZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBm
bG9hdDIgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxl
ciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAobGVuZ3RoID09ICI0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0
aH0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEPCR7dHlw
ZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0
aH0gTG9hZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sIGludDMgbG9jYXRpb24pO2ApOwog
ICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1
cmUyRDwke3R5cGV9JHtsZW5ndGh9PiwgaW50MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwog
ICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUy
RDwke3R5cGV9JHtsZW5ndGh9PiwgdWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0
aHJlYWQgdWludCogSGVpZ2h0LCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpO2ApOwpAQCAt
MTk0NiwyOCArMTk1MywyNCBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewog
ICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmUyREFy
cmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zm
c2V0KTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlclJl
ZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0
aW9uKTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlclJl
ZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0
aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxl
ciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1w
bGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7
bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyREFycmF5PCR7dHlwZX0k
e2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAg
ICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUy
REFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwot
ICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVy
ZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50
MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjIiIHx8IGxlbmd0
aCA9PSAiMyIgfHwgbGVuZ3RoID09ICI0IikgeworICAgICAgICAgICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0
aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyREFycmF5PCR7dHlwZX0k
e2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMyIgfHwgbGVuZ3RoID09ICI0Iikgewor
ICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVl
KFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRp
b24pO2ApOworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJCbHVlKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9h
dDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyREFycmF5PCR7
dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtg
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xl
bmd0aH0gTG9hZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PiwgaW50NCBsb2NhdGlv
bik7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExv
YWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIGludDQgbG9jYXRpb24sIGludDIg
b2Zmc2V0KTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlIHZvaWQgR2V0RGltZW5z
aW9ucyhUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PiwgdWludCBNaXBMZXZlbCwgdGhy
ZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogSGVpZ2h0LCB0aHJlYWQgdWludCogRWxlbWVu
dHMsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7YCk7CiAgICAgICAgICAgICAgICAgcHJp
bnQoKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2Ft
cGxlKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9u
KTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2Ft
cGxlKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9u
LCBpbnQzIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXIoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9j
YXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
KFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBp
bnQzIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJSZWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9j
YXRpb24pO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
UmVkKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9u
LCBpbnQzIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJHcmVlbihUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0
MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJHcmVlbihUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBs
b2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIs
IGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxv
YXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBs
ZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MyBvZmZzZXQpO2ApOwogICAgICAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUzRDwke3R5cGV9JHtsZW5n
dGh9PiwgaW50NCBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBpbnQ0IGxv
Y2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2
b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCB1aW50IE1pcExl
dmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBIZWlnaHQsIHRocmVhZCB1aW50
KiBEZXB0aCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTtgKTsKQEAgLTE5NzgsOSArMTk4
MSwxNCBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0dXJlQ3Vi
ZTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBMT0Qp
O2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1
cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwog
ICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmVD
dWJlPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAg
ICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZUN1
YmU8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAg
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmVDdWJl
PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZUN1YmU8
JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CisgICAgICAg
ICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMiIgfHwgbGVuZ3RoID09ICIzIiB8fCBsZW5ndGggPT0g
IjQiKSB7CisgICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
R3JlZW4oVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2Nh
dGlvbik7YCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjMiIHx8IGxlbmd0
aCA9PSAiNCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fTQgR2F0aGVyQmx1ZShUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxv
YXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0g
IjQiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyQWxwaGEoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0
MyBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVy
ZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0
aCwgdGhyZWFkIHVpbnQqIEhlaWdodCwgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTtgKTsK
ICAgICAgICAgICAgICAgICBwcmludCgpOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
dm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LCB0aHJlYWQg
dWludCogV2lkdGgpO2ApOwpAQCAtMjAxMCw5NyArMjAxOCw2NiBAQCBsZXQgc3RhbmRhcmRMaWJy
YXJ5ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIHByaW50KCk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KLSAgICAgICAgCisKICAgICAgICAgZm9yICh2YXIgdHlwZSBvZiBbYGhh
bGZgLCBgZmxvYXRgXSkgewogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uKTtgKTsK
ICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkQ8
JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyRDwk
e3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBD
b21wYXJlVmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZUNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxv
YXQyIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURl
cHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwg
ZmxvYXQgQ29tcGFyZVZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJDb21w
YXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgQ29tcGFyZVZhbHVlLCBpbnQyIG9m
ZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRl
eHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sICR7dHlwZX0g
Q29tcGFyZVZhbHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1w
bGVDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwg
JHt0eXBlfSBDb21wYXJlVmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgJHt0eXBlfSBDb21wYXJlVmFsdWUpO2ApOwor
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0
dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCAke3R5cGV9IENv
bXBhcmVWYWx1ZSwgaW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0
MiBsb2NhdGlvbiwgZmxvYXQgQmlhcyk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQy
IGxvY2F0aW9uLCBmbG9hdCBCaWFzLCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2Ft
cGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdDIgRERYLCBmbG9hdDIgRERZKTtgKTsKICAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aDJEPCR7
dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0MiBERFgsIGZsb2F0MiBERFks
IGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1w
bGVMZXZlbChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9u
LCBmbG9hdCBMT0QpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZUxldmVsKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24s
IGZsb2F0IExPRCwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9IEdhdGhlcihUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxv
Y2F0aW9uKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXIoVGV4
dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZz
ZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlclJlZChUZXh0
dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uKTtgKTsKLSAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkQ8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckdyZWVuKFRleHR1cmVEZXB0aDJEPCR7
dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9IEdhdGhlckdyZWVuKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDIgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJCbHVlKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IEdhdGhlckJsdWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBs
b2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IEdhdGhlckFscGhhKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIg
bG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckFs
cGhhKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGlu
dDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJD
bXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0
MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVy
Q29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGlu
dDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJD
bXBSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZs
b2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBT
YW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFs
dWUsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBH
YXRoZXJDbXBHcmVlbihUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25T
dGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBHcmVlbihUZXh0dXJlRGVwdGgyRDwk
e3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBj
b21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0gR2F0aGVyQ21wQmx1ZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNv
bXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsK
LSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBCbHVlKFRleHR1cmVE
ZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24s
IGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBBbHBoYShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwg
U2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3Zh
bHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBBbHBo
YShUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQy
IGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlRGVwdGgyRDwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9h
dDIgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9h
dDIgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwg
aW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwg
ZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlw
ZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxv
Y2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgyRDwke3R5
cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsK
KyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wUmVkKFRleHR1cmVE
ZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVf
dmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSBMb2FkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBpbnQzIGxvY2F0aW9uKTtgKTsKICAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+
LCBpbnQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0
aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgdWludCBNaXBM
ZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogSGVpZ2h0LCB0aHJlYWQgdWlu
dCogTnVtYmVyT2ZMZXZlbHMpO2ApOwogICAgICAgICAgICAgcHJpbnQoKTsKICAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwg
ZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBs
ZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgQ29tcGFyZVZhbHVlKTtg
KTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURl
cHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0
aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkRBcnJh
eTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9h
dCBDb21wYXJlVmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNh
bXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29t
cGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IENvbXBhcmVWYWx1ZSwgaW50MiBv
ZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChU
ZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sICR7
dHlwZX0gQ29tcGFyZVZhbHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBl
fSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1ZSwgaW50MiBvZmZzZXQpO2ApOworICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVw
dGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sICR7dHlwZX0gQ29t
cGFyZVZhbHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVD
bXBMZXZlbFplcm8oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1ZSwgaW50MiBvZmZzZXQpO2ApOwogICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUJpYXMoVGV4dHVyZURlcHRoMkRBcnJh
eTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBCaWFzKTtgKTsKICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0aDJE
QXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgQmlhcywgaW50
MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdy
YWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9u
LCBmbG9hdDIgRERYLCBmbG9hdDIgRERZKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIs
IGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQyIEREWCwgZmxvYXQyIEREWSwgaW50MiBvZmZzZXQpO2Ap
OwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmVE
ZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgTE9E
KTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0
dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0
IExPRCwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
IEdhdGhlcihUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9j
YXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlcihUZXh0
dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIg
b2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJSZWQo
VGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtg
KTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJSZWQoVGV4dHVyZURl
cHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNl
dCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyR3JlZW4oVGV4
dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsK
LSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJHcmVlbihUZXh0dXJlRGVw
dGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0
KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJCbHVlKFRleHR1
cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0g
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQmx1ZShUZXh0dXJlRGVwdGgy
REFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtg
KTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJBbHBoYShUZXh0dXJl
RGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckFscGhhKFRleHR1cmVEZXB0aDJE
QXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2Ap
OwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcChUZXh0dXJlRGVw
dGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRp
b24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29t
cGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIg
b2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBS
ZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwg
ZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5
cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21w
YXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gR2F0aGVyQ21wR3JlZW4oVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxl
ckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtg
KTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBHcmVlbihUZXh0
dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMg
bG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aDJEQXJy
YXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxv
YXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0g
R2F0aGVyQ21wQmx1ZShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFy
aXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zm
c2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBBbHBo
YShUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBm
bG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0
eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29t
cGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxv
YXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlv
biwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxv
Y2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVk
KFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwg
aW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJDbXAoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0
aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIs
IGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwor
ICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURl
cHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21w
YXJlX3ZhbHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
Q21wUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2Nh
dGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwg
aW50NCBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gTG9h
ZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBpbnQ0IGxvY2F0aW9uLCBpbnQyIG9mZnNl
dCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0
dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lk
dGgsIHRocmVhZCB1aW50KiBIZWlnaHQsIHRocmVhZCB1aW50KiBFbGVtZW50cywgdGhyZWFkIHVp
bnQqIE51bWJlck9mTGV2ZWxzKTtgKTsKICAgICAgICAgICAgIHByaW50KCk7CiAgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4s
IHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIFNhbXBsZXJDb21w
YXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgQ29tcGFyZVZhbHVlKTtgKTsKLSAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVy
ZURlcHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0
aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9h
dDMgbG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlKTtgKTsKKyAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRoQ3ViZTwke3R5
cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1ZSk7YCk7
CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVw
dGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IEJpYXMpO2Ap
OwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURl
cHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdDIgRERYLCBm
bG9hdDIgRERZKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVH
cmFkKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwg
ZmxvYXQzIEREWCwgZmxvYXQzIEREWSk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxv
YXQzIGxvY2F0aW9uLCBmbG9hdCBMT0QpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9IEdhdGhlcihUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMg
bG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlclJl
ZChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2Ap
OwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckdyZWVuKFRleHR1cmVE
ZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQmx1ZShUZXh0dXJlRGVwdGhDdWJlPCR7
dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9IEdhdGhlckFscGhhKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gR2F0aGVyQ21wKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJp
c29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAg
ICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aEN1
YmU8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxv
YXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0g
R2F0aGVyQ21wR3JlZW4oVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlz
b25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aEN1
YmU8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxv
YXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0g
R2F0aGVyQ21wQWxwaGEoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlz
b25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBl
fT4sIGludDQgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXIoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0
aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRl
eHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Cisg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGhD
dWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFs
dWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQo
VGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9h
dCBjb21wYXJlX3ZhbHVlKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBHZXRE
aW1lbnNpb25zKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHVpbnQgTWlwTGV2ZWwsIHRocmVh
ZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIEhlaWdodCwgdGhyZWFkIHVpbnQqIE51bWJlck9m
TGV2ZWxzKTtgKTsKICAgICAgICAgICAgIHByaW50KCk7CiAgICAgICAgICAgICBwcmludChgbmF0
aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCB0aHJlYWQg
dWludCogV2lkdGgsIHRocmVhZCB1aW50KiBIZWlnaHQpO2ApOwpAQCAtMjExNCw3ICsyMDkxLDYg
QEAgbGV0IHN0YW5kYXJkTGlicmFyeSA9IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sICR7dHlw
ZX0sIHVpbnQzIGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgIHByaW50KCk7CiAgICAgICAgIH0K
LSAgICAgICAgKi8KICAgICB9KSgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9KSgpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sCmluZGV4IDYwN2E2OTUzMjUzZGE3MjdiMWRl
Mzc2NzhlYzM4OGI0ZmEyNDA0MDUuLmZiMTAxNWYxOTM4MWNmNmVhYzczMTdiNDg1ZWYwMGMzZWMx
Y2I5NmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRt
bAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKQEAgLTI4LDYg
KzI4LDcgQEAKIDxzY3JpcHQgc3JjPSJCdWlsdGluVmVjdG9yU2V0dGVyLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJDYWxsRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
Q2FsbEZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDYXN0cy5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iQ2hlY2suanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNoZWNr
TGl0ZXJhbFR5cGVzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDaGVja0xvb3BzLmpzIj48
L3NjcmlwdD4KQEAgLTExNSw2ICsxMTYsNyBAQAogPHNjcmlwdCBzcmM9IlJldHVybi5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iUmV0dXJuQ2hlY2tlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iUmV0dXJuRXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJTYW1wbGVy
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTdGFuZGFyZExpYnJhcnkuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IlN0YXRlbWVudENsb25lci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iU3RydWN0TGF5b3V0QnVpbGRlci5qcyI+PC9zY3JpcHQ+CkBAIC0xMjcsNiArMTI5LDggQEAK
IDxzY3JpcHQgc3JjPSJTeW50aGVzaXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVEZWZhdWx0Q29uc3RydWN0b3JPcGVyYXRvci5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVGVybmFyeUV4cHJlc3Npb24uanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9IlRleHR1cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlRleHR1
cmVPcGVyYXRpb25zLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUcmFwU3RhdGVtZW50Lmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1Rlc3QuanMKaW5kZXggNGExMWMxODU4NTk5Nzc4ZmYzOTFiMDRmMjYzNWM1YjcxMDA1ZGY3
Zi4uYWY4Njg1MjM2N2ZkZGQ1NjY1ODY5YjNjMjQ3MWU5MDRiNmUwNjJhMSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcworKysgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCkBAIC05NCw2ICs5NCwxMzMgQEAgZnVuY3Rpb24gbWFr
ZUVudW0ocHJvZ3JhbSwgZW51bU5hbWUsIHZhbHVlKQogICAgIHJldHVybiBUeXBlZFZhbHVlLmJv
eChlbnVtVHlwZSwgZW51bU1lbWJlci52YWx1ZS51bmlmeU5vZGUudmFsdWVGb3JTZWxlY3RlZFR5
cGUpOwogfQogCitmdW5jdGlvbiBtYWtlU2FtcGxlcihwcm9ncmFtLCBvcHRpb25zKQoreworICAg
IC8vIGVudW0gV2ViR1BVQWRkcmVzc01vZGUgeworICAgIC8vICAgICAiY2xhbXBUb0VkZ2UiLAor
ICAgIC8vICAgICAicmVwZWF0IiwKKyAgICAvLyAgICAgIm1pcnJvclJlcGVhdCIsCisgICAgLy8g
ICAgICJjbGFtcFRvQm9yZGVyQ29sb3IiCisgICAgLy8gfQorICAgIC8vCisgICAgLy8gZW51bSBX
ZWJHUFVGaWx0ZXJNb2RlIHsKKyAgICAvLyAgICAgIm5lYXJlc3QiLAorICAgIC8vICAgICAibGlu
ZWFyIgorICAgIC8vIH0KKyAgICAvLworICAgIC8vIGVudW0gV2ViR1BVQ29tcGFyZUZ1bmN0aW9u
IHsKKyAgICAvLyAgICAgIm5ldmVyIiwKKyAgICAvLyAgICAgImxlc3MiLAorICAgIC8vICAgICAi
ZXF1YWwiLAorICAgIC8vICAgICAibGVzc0VxdWFsIiwKKyAgICAvLyAgICAgImdyZWF0ZXIiLAor
ICAgIC8vICAgICAibm90RXF1YWwiLAorICAgIC8vICAgICAiZ3JlYXRlckVxdWFsIiwKKyAgICAv
LyAgICAgImFsd2F5cyIKKyAgICAvLyB9CisgICAgLy8KKyAgICAvLyBlbnVtIFdlYkdQVUJvcmRl
ckNvbG9yIHsKKyAgICAvLyAgICAgInRyYW5zcGFyZW50QmxhY2siLAorICAgIC8vICAgICAib3Bh
cXVlQmxhY2siLAorICAgIC8vICAgICAib3BhcXVlV2hpdGUiCisgICAgLy8gfQorICAgIC8vCisg
ICAgLy8gZGljdGlvbmFyeSBXZWJHUFVTYW1wbGVyRGVzY3JpcHRvciB7CisgICAgLy8gICAgIFdl
YkdQVWRkcmVzc01vZGUgckFkZHJlc3NNb2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICAvLyAgICAg
V2ViR1BVZGRyZXNzTW9kZSBzQWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgIC8vICAg
ICBXZWJHUFVkZHJlc3NNb2RlIHRBZGRyZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAgLy8g
ICAgIFdlYkdQVUZpbHRlck1vZGVFbnVtIG1hZ0ZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICAvLyAg
ICAgV2ViR1BVRmlsdGVyTW9kZUVudW0gbWluRmlsdGVyID0gIm5lYXJlc3QiOworICAgIC8vICAg
ICBXZWJHUFVGaWx0ZXJNb2RlRW51bSBtaXBtYXBGaWx0ZXIgPSAibmVhcmVzdCI7CisgICAgLy8g
ICAgIGZsb2F0IGxvZE1pbkNsYW1wID0gMDsKKyAgICAvLyAgICAgZmxvYXQgbG9kTWF4Q2xhbXAg
PSBOdW1iZXIuTUFYX1ZBTFVFOworICAgIC8vICAgICB1bnNpZ25lZCBsb25nIG1heEFuaXNvdHJv
cHkgPSAxOworICAgIC8vICAgICBXZWJHUFVDb21wYXJlRnVuY3Rpb24gY29tcGFyZUZ1bmN0aW9u
ID0gIm5ldmVyIjsKKyAgICAvLyAgICAgV2ViR1BVQm9yZGVyQ29sb3IgYm9yZGVyQ29sb3IgPSAi
dHJhbnNwYXJlbnRCbGFjayI7CisgICAgLy8gfTsKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3go
cHJvZ3JhbS5pbnRyaW5zaWNzLnNhbXBsZXIsIG5ldyBTYW1wbGVyKG9wdGlvbnMpKTsKK30KKwor
ZnVuY3Rpb24gbWFrZTFEVGV4dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50VHlwZSkKK3sK
KyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlMUQ8
JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlMUQoZWxlbWVudFR5cGUsIG1pcG1hcHMpKTsK
K30KKworZnVuY3Rpb24gbWFrZTFEVGV4dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50
VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BU
ZXh0dXJlMURBcnJheTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUxREFycmF5KGVsZW1l
bnRUeXBlLCBhcnJheSkpOworfQorCitmdW5jdGlvbiBtYWtlMkRUZXh0dXJlKHByb2dyYW0sIG1p
cG1hcHMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFt
LmludHJpbnNpY3NbYFRleHR1cmUyRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUyRChl
bGVtZW50VHlwZSwgbWlwbWFwcykpOworfQorCitmdW5jdGlvbiBtYWtlMkRUZXh0dXJlQXJyYXko
cHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJv
eChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmUyREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBu
ZXcgVGV4dHVyZTJEQXJyYXkoZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1h
a2UzRFRleHR1cmUocHJvZ3JhbSwgbWlwbWFwcywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJu
IFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZTNEPCR7ZWxlbWVudFR5
cGV9PmBdLCBuZXcgVGV4dHVyZTNEKGVsZW1lbnRUeXBlLCBtaXBtYXBzKSk7Cit9CisKK2Z1bmN0
aW9uIG1ha2VUZXh0dXJlQ3ViZShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAg
cmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZUN1YmU8JHtl
bGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlQ3ViZShlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30K
KworZnVuY3Rpb24gbWFrZVJXMURUZXh0dXJlKHByb2dyYW0sIGVsZW1lbnRzLCBlbGVtZW50VHlw
ZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1Rl
eHR1cmUxRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUxRFJXKGVsZW1lbnRUeXBlLCBl
bGVtZW50cykpOworfQorCitmdW5jdGlvbiBtYWtlUlcxRFRleHR1cmVBcnJheShwcm9ncmFtLCBh
cnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0u
aW50cmluc2ljc1tgUldUZXh0dXJlMURBcnJheTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1
cmUxREFycmF5UlcoZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzJE
VGV4dHVyZShwcm9ncmFtLCByb3dzLCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRW
YWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUyRDwke2VsZW1lbnRUeXBlfT5g
XSwgbmV3IFRleHR1cmUyRFJXKGVsZW1lbnRUeXBlLCByb3dzKSk7Cit9CisKK2Z1bmN0aW9uIG1h
a2VSVzJEVGV4dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICBy
ZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUyREFycmF5
PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTJEQXJyYXlSVyhlbGVtZW50VHlwZSwgYXJy
YXkpKTsKK30KKworZnVuY3Rpb24gbWFrZVJXM0RUZXh0dXJlKHByb2dyYW0sIGRlcHRoU2xpY2Vz
LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRy
aW5zaWNzW2BSV1RleHR1cmUzRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUzRFJXKGVs
ZW1lbnRUeXBlLCBkZXB0aFNsaWNlcykpOworfQorCitmdW5jdGlvbiBtYWtlMkREZXB0aFRleHR1
cmUocHJvZ3JhbSwgbWlwbWFwcywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFs
dWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZURlcHRoMkQ8JHtlbGVtZW50VHlwZX0+
YF0sIG5ldyBUZXh0dXJlRGVwdGgyRChlbGVtZW50VHlwZSwgbWlwbWFwcykpOworfQorCitmdW5j
dGlvbiBtYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUp
Cit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVy
ZURlcHRoMkRBcnJheTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmVEZXB0aDJEQXJyYXko
ZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VEZXB0aFRleHR1cmVDdWJl
KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5i
b3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlRGVwdGhDdWJlPCR7ZWxlbWVudFR5cGV9PmBd
LCBuZXcgVGV4dHVyZURlcHRoQ3ViZShlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rp
b24gbWFrZVJXMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgcm93cywgZWxlbWVudFR5cGUpCit7Cisg
ICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgUldUZXh0dXJlRGVw
dGgyRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmVEZXB0aDJEUlcoZWxlbWVudFR5cGUs
IHJvd3MpKTsKK30KKworZnVuY3Rpb24gbWFrZVJXMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFt
LCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dy
YW0uaW50cmluc2ljc1tgUldUZXh0dXJlRGVwdGgyREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBu
ZXcgVGV4dHVyZURlcHRoMkRBcnJheVJXKGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQorCiBmdW5j
dGlvbiBjaGVja051bWJlcihwcm9ncmFtLCByZXN1bHQsIGV4cGVjdGVkKQogewogICAgIGlmICgh
cmVzdWx0LnR5cGUudW5pZnlOb2RlLmlzTnVtYmVyKQpAQCAtMTU3LDYgKzI4NCwxNCBAQCBmdW5j
dGlvbiBjaGVja0hhbGYocHJvZ3JhbSwgcmVzdWx0LCBleHBlY3RlZCkKICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJXcm9uZyByZXN1bHQ6ICIgKyByZXN1bHQudmFsdWUgKyAiIChleHBlY3RlZCAi
ICsgZXhwZWN0ZWQgKyAiKSIpOwogfQogCitmdW5jdGlvbiBjaGVja0Zsb2F0NChwcm9ncmFtLCBy
ZXN1bHQsIGV4cGVjdGVkKQoreworICAgIGlmICghcmVzdWx0LnR5cGUuZXF1YWxzKHByb2dyYW0u
aW50cmluc2ljc1sidmVjdG9yPGZsb2F0LCA0PiJdKSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJXcm9uZyByZXN1bHQgdHlwZTogIiArIHJlc3VsdC50eXBlKTsKKyAgICBpZiAocmVzdWx0LmVQ
dHIuZ2V0KDApICE9IGV4cGVjdGVkWzBdIHx8IHJlc3VsdC5lUHRyLmdldCgxKSAhPSBleHBlY3Rl
ZFsxXSB8fCByZXN1bHQuZVB0ci5nZXQoMikgIT0gZXhwZWN0ZWRbMl0gfHwgcmVzdWx0LmVQdHIu
Z2V0KDMpICE9IGV4cGVjdGVkWzNdKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJl
c3VsdDogWyIgKyByZXN1bHQuZVB0ci5nZXQoMCkgKyAiLCAiICsgcmVzdWx0LmVQdHIuZ2V0KDEp
ICsgIiwgIiArIHJlc3VsdC5lUHRyLmdldCgyKSArICIsICIgKyByZXN1bHQuZVB0ci5nZXQoMykg
KyAiXSAoZXhwZWN0ZWQgWyIgKyBleHBlY3RlZFswXSArICIsICIgKyBleHBlY3RlZFsxXSArICIs
ICIgKyBleHBlY3RlZFsyXSArICIsICIgKyBleHBlY3RlZFszXSArICJdKSIpOworfQorCiBmdW5j
dGlvbiBjaGVja0xleGVyVG9rZW4ocmVzdWx0LCBleHBlY3RlZEluZGV4LCBleHBlY3RlZEtpbmQs
IGV4cGVjdGVkVGV4dCkKIHsKICAgICBpZiAocmVzdWx0Ll9pbmRleCAhPSBleHBlY3RlZEluZGV4
KQpAQCAtNTU4Miw3ICs1NzE3LDE3OTcgQEAgdGVzdHMuYXJyYXlJbmRleCA9IGZ1bmN0aW9uKCkg
ewogICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJbmRl
eGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDIpIF0pLCAz
KTsKICAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFycmF5SW5k
ZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSBdKSwg
NCk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhcnJheUlu
ZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSkgXSks
IDUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYXJyYXlJ
bmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDIpIF0p
LCA2KTsgICAgCisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJh
cnJheUluZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MikgXSksIDYpOworfQorCitmdW5jdGlvbiBjcmVhdGVUZXh0dXJlc0ZvclRlc3RpbmcocHJvZ3Jh
bSkKK3sKKyAgICBsZXQgdGV4dHVyZTFEID0gbWFrZTFEVGV4dHVyZShwcm9ncmFtLCBbWzEsIDcs
IDE0LCA3OV0sIFsxMywgMTZdLCBbMTVdXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmUxREFy
cmF5ID0gbWFrZTFEVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbWzEsIDcsIDE0LCA3OV0sIFsxMywg
MTZdLCBbMTVdXSwgW1sxNiwgMTcsIDE4LCAxOV0sIFsyMCwgMjFdLCBbMjJdXV0sICJmbG9hdCIp
OworICAgIGxldCB0ZXh0dXJlMkQgPSBtYWtlMkRUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAgICAg
W1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAx
NCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisg
ICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywg
MzQsIDM1LCAzNl0sCisgICAgICAgIFszNywgMzgsIDM5LCA0MF1dLAorICAgICAgICBbWzQxLCA0
Ml1dCisgICAgXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmUyREFycmF5ID0gbWFrZTJEVGV4
dHVyZUFycmF5KHByb2dyYW0sIFtbCisgICAgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0s
CisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywg
MTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5
LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzZdLAorICAgICAgICBbMzcs
IDM4LCAzOSwgNDBdXSwKKyAgICAgICAgW1s0MSwgNDJdXQorICAgIF0sIFsKKyAgICAgICAgW1s0
MywgNDQsIDQ1LCA0NiwgNDcsIDQ4LCA0OSwgNTBdLAorICAgICAgICBbNTEsIDUyLCA1MywgNTQs
IDU1LCA1NiwgNTcsIDU4XSwKKyAgICAgICAgWzU5LCA2MCwgNjEsIDYyLCA2MywgNjQsIDY1LCA2
Nl0sCisgICAgICAgIFs2NywgNjgsIDY5LCA3MCwgNzEsIDcyLCA3MywgNzRdXSwKKyAgICAgICAg
W1s3NSwgNzYsIDc3LCA3OF0sCisgICAgICAgIFs3OSwgODAsIDgxLCA4Ml1dLAorICAgICAgICBb
WzgzLCA4NF1dCisgICAgXV0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlM0QgPSBtYWtlM0RU
ZXh0dXJlKHByb2dyYW0sIFsKKyAgICAgICAgW1tbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisg
ICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgs
IDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAz
MCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwXSwK
KyAgICAgICAgWzQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OF0sCisgICAgICAgIFs0OSwg
NTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTZdLAorICAgICAgICBbNTcsIDU4LCA1OSwgNjAsIDYx
LCA2MiwgNjMsIDY0XV1dLAorICAgICAgICBbW1s2NSwgNjYsIDY3LCA2OF0sCisgICAgICAgIFs2
OSwgNzAsIDcxLCA3Ml1dXQorICAgIF0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlQ3ViZSA9
IG1ha2VUZXh0dXJlQ3ViZShwcm9ncmFtLCBbWworICAgICAgICBbWzEsIDJdLAorICAgICAgICBb
MywgNF0sCisgICAgICAgIFs1LCA2XSwKKyAgICAgICAgWzcsIDhdXSwKKyAgICAgICAgW1s5XSwK
KyAgICAgICAgWzEwXV0sCisgICAgXSwgWworICAgICAgICBbWzExLCAxMl0sCisgICAgICAgIFsx
MywgMTRdLAorICAgICAgICBbMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOF1dLAorICAgICAgICBb
WzE5XSwKKyAgICAgICAgWzIwXV0sCisgICAgXSwgWworICAgICAgICBbWzIxLCAyMl0sCisgICAg
ICAgIFsyMywgMjRdLAorICAgICAgICBbMjUsIDI2XSwKKyAgICAgICAgWzI3LCAyOF1dLAorICAg
ICAgICBbWzI5XSwKKyAgICAgICAgWzMwXV0sCisgICAgXSwgWworICAgICAgICBbWzMxLCAzMl0s
CisgICAgICAgIFszMywgMzRdLAorICAgICAgICBbMzUsIDM2XSwKKyAgICAgICAgWzM3LCAzOF1d
LAorICAgICAgICBbWzM5XSwKKyAgICAgICAgWzQwXV0sCisgICAgXSwgWworICAgICAgICBbWzQx
LCA0Ml0sCisgICAgICAgIFs0MywgNDRdLAorICAgICAgICBbNDUsIDQ2XSwKKyAgICAgICAgWzQ3
LCA0OF1dLAorICAgICAgICBbWzQ5XSwKKyAgICAgICAgWzUwXV0sCisgICAgXSwgWworICAgICAg
ICBbWzUxLCA1Ml0sCisgICAgICAgIFs1MywgNTRdLAorICAgICAgICBbNTUsIDU2XSwKKyAgICAg
ICAgWzU3LCA1OF1dLAorICAgICAgICBbWzU5XSwKKyAgICAgICAgWzYwXV0sCisgICAgXV0sICJm
bG9hdCIpOworICAgIGxldCByd1RleHR1cmUxRCA9IG1ha2VSVzFEVGV4dHVyZShwcm9ncmFtLCBb
MSwgMiwgMywgNCwgNSwgNiwgNywgOF0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmUxREFy
cmF5ID0gbWFrZVJXMURUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1sxLCAyLCAzLCA0LCA1LCA2LCA3
LCA4XSwgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwgWzE3LCAxOCwgMTksIDIwLCAy
MSwgMjIsIDIzLCAyNF1dLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0dXJlMkQgPSBtYWtlUlcy
RFRleHR1cmUocHJvZ3JhbSwgWworICAgICAgICBbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisg
ICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgs
IDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAz
MCwgMzEsIDMyXV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmUyREFycmF5ID0gbWFrZVJX
MkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwgWworICAgICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDcs
IDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTZdLAorICAgICAgICBb
MTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAgWzI1LCAyNiwgMjcsIDI4
LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5
LCA0MF0sCisgICAgICAgIFs0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDhdLAorICAgICAg
ICBbNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2XSwKKyAgICAgICAgWzU3LCA1OCwgNTks
IDYwLCA2MSwgNjIsIDYzLCA2NF1dXSwgImZsb2F0Iik7CisgICAgbGV0IHJ3VGV4dHVyZTNEID0g
bWFrZVJXM0RUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3
LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAg
WzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAy
OCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAz
OSwgNDBdLAorICAgICAgICBbNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4XSwKKyAgICAg
ICAgWzQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1Nl0sCisgICAgICAgIFs1NywgNTgsIDU5
LCA2MCwgNjEsIDYyLCA2MywgNjRdXV0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlRGVwdGgy
RCA9IG1ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAgIFtbMSwgMiwgMywgNCwg
NSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisg
ICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2
LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzZdLAor
ICAgICAgICBbMzcsIDM4LCAzOSwgNDBdXSwKKyAgICAgICAgW1s0MSwgNDJdXQorICAgIF0sICJm
bG9hdCIpOworICAgIGxldCB0ZXh0dXJlRGVwdGgyREFycmF5ID0gbWFrZTJERGVwdGhUZXh0dXJl
QXJyYXkocHJvZ3JhbSwgW1sKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAg
ICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwg
MTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMw
LCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNl0sCisgICAgICAgIFszNywgMzgs
IDM5LCA0MF1dLAorICAgICAgICBbWzQxLCA0Ml1dCisgICAgXSwgWworICAgICAgICBbWzQzLCA0
NCwgNDUsIDQ2LCA0NywgNDgsIDQ5LCA1MF0sCisgICAgICAgIFs1MSwgNTIsIDUzLCA1NCwgNTUs
IDU2LCA1NywgNThdLAorICAgICAgICBbNTksIDYwLCA2MSwgNjIsIDYzLCA2NCwgNjUsIDY2XSwK
KyAgICAgICAgWzY3LCA2OCwgNjksIDcwLCA3MSwgNzIsIDczLCA3NF1dLAorICAgICAgICBbWzc1
LCA3NiwgNzcsIDc4XSwKKyAgICAgICAgWzc5LCA4MCwgODEsIDgyXV0sCisgICAgICAgIFtbODMs
IDg0XV0KKyAgICBdXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmVEZXB0aEN1YmUgPSBtYWtl
RGVwdGhUZXh0dXJlQ3ViZShwcm9ncmFtLCBbWworICAgICAgICBbWzEsIDJdLAorICAgICAgICBb
MywgNF0sCisgICAgICAgIFs1LCA2XSwKKyAgICAgICAgWzcsIDhdXSwKKyAgICAgICAgW1s5XSwK
KyAgICAgICAgWzEwXV0sCisgICAgXSwgWworICAgICAgICBbWzExLCAxMl0sCisgICAgICAgIFsx
MywgMTRdLAorICAgICAgICBbMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOF1dLAorICAgICAgICBb
WzE5XSwKKyAgICAgICAgWzIwXV0sCisgICAgXSwgWworICAgICAgICBbWzIxLCAyMl0sCisgICAg
ICAgIFsyMywgMjRdLAorICAgICAgICBbMjUsIDI2XSwKKyAgICAgICAgWzI3LCAyOF1dLAorICAg
ICAgICBbWzI5XSwKKyAgICAgICAgWzMwXV0sCisgICAgXSwgWworICAgICAgICBbWzMxLCAzMl0s
CisgICAgICAgIFszMywgMzRdLAorICAgICAgICBbMzUsIDM2XSwKKyAgICAgICAgWzM3LCAzOF1d
LAorICAgICAgICBbWzM5XSwKKyAgICAgICAgWzQwXV0sCisgICAgXSwgWworICAgICAgICBbWzQx
LCA0Ml0sCisgICAgICAgIFs0MywgNDRdLAorICAgICAgICBbNDUsIDQ2XSwKKyAgICAgICAgWzQ3
LCA0OF1dLAorICAgICAgICBbWzQ5XSwKKyAgICAgICAgWzUwXV0sCisgICAgXSwgWworICAgICAg
ICBbWzUxLCA1Ml0sCisgICAgICAgIFs1MywgNTRdLAorICAgICAgICBbNTUsIDU2XSwKKyAgICAg
ICAgWzU3LCA1OF1dLAorICAgICAgICBbWzU5XSwKKyAgICAgICAgWzYwXV0sCisgICAgXV0sICJm
bG9hdCIpOworICAgIGxldCByd1RleHR1cmVEZXB0aDJEID0gbWFrZVJXMkREZXB0aFRleHR1cmUo
cHJvZ3JhbSwgWworICAgICAgICBbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5
LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwg
MjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMy
XV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmVEZXB0aDJEQXJyYXkgPSBtYWtlUlcyRERl
cHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFsKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3
LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAg
WzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAy
OCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAz
OSwgNDBdLAorICAgICAgICBbNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4XSwKKyAgICAg
ICAgWzQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1Nl0sCisgICAgICAgIFs1NywgNTgsIDU5
LCA2MCwgNjEsIDYyLCA2MywgNjRdXV0sICJmbG9hdCIpOworICAgIHJldHVybiBbdGV4dHVyZTFE
LCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0ZXh0dXJlMkRBcnJheSwgdGV4dHVyZTNELCB0
ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVyZTFEQXJyYXksIHJ3VGV4dHVyZTJELCBy
d1RleHR1cmUyREFycmF5LCByd1RleHR1cmUzRCwgdGV4dHVyZURlcHRoMkQsIHRleHR1cmVEZXB0
aDJEQXJyYXksIHRleHR1cmVEZXB0aEN1YmUsIHJ3VGV4dHVyZURlcHRoMkQsIHJ3VGV4dHVyZURl
cHRoMkRBcnJheV07Cit9CisKK3Rlc3RzLnRleHR1cmVEaW1lbnNpb25zID0gZnVuY3Rpb24oKSB7
CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICB1aW50IGZvbzEoVGV4dHVyZTFE
PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAg
dWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwg
MCwgJndpZHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOwor
ICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMihUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUpIHsK
KyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxz
OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZudW1iZXJP
ZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0K
KyAgICAgICAgdWludCBmb28zKFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAg
ICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAg
ICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1
cmUsIDAsICZ3aWR0aCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAg
cmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNChUZXh0dXJlMURBcnJh
eTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAg
IHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAg
ICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZlbGVtZW50cywgJm51bWJl
ck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50czsKKyAgICAgICAgfQorICAg
ICAgICB1aW50IGZvbzUoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAg
ICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAg
dWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwg
MCwgJndpZHRoLCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1
cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb282KFRleHR1cmUy
RDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAg
IHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAg
ICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZM
ZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVp
bnQgZm9vNyhUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lk
dGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZM
ZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhl
aWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb284KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAg
ICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0
dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vOShUZXh0dXJl
MkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAg
ICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAg
ICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1
cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAg
ICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTAoVGV4
dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7Cisg
ICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAg
ICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0
ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsK
KyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28x
MShUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0
aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsK
KyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNp
b25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZl
bHMpOworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAgICB9CisgICAgICAgIHVp
bnQgZm9vMTIoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVp
bnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxl
bWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0
RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJl
ck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAg
fQorICAgICAgICB1aW50IGZvbzEzKFRleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAg
ICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAg
dWludCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAg
ICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmRlcHRoLCAmbnVt
YmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAg
ICAgIHVpbnQgZm9vMTQoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1
aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRl
cHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERp
bWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgsICZudW1iZXJPZkxl
dmVscyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVp
bnQgZm9vMTUoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdp
ZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOwor
ICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgsICZudW1iZXJPZkxldmVscyk7
CisgICAgICAgICAgICByZXR1cm4gZGVwdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28x
NihUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7Cisg
ICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZGVwdGg7CisgICAgICAg
ICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0
dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAg
ICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZv
bzE3KFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRo
OworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2
ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWln
aHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAg
IH0KKyAgICAgICAgdWludCBmb28xOChUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSkgeworICAg
ICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAg
ICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVy
ZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0
dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE5KFRleHR1cmVDdWJlPGZs
b2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWlu
dCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAg
R2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVs
cyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAg
ICAgdWludCBmb28yMChSV1RleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAg
dWludCB3aWR0aDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoKTsK
KyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzIx
KFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lk
dGg7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9u
cyh0ZXh0dXJlLCAmd2lkdGgsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7
CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yMihSV1RleHR1cmUxREFycmF5PGZsb2F0PiB0
ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBlbGVt
ZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmZWxlbWVu
dHMpOworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAgICB9CisgICAgICAgIHVp
bnQgZm9vMjMoUldUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQg
d2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI0KFJXVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJl
KSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7Cisg
ICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCk7CisgICAg
ICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMjUoUldU
ZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsK
KyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAg
ICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVu
dHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQg
Zm9vMjYoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWlu
dCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVt
ZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0
LCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAg
ICAgICB1aW50IGZvbzI3KFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAg
ICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAg
IHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0
aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50czsKKyAg
ICAgICAgfQorICAgICAgICB1aW50IGZvbzI4KFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7
CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAg
ICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAm
d2lkdGgsICZoZWlnaHQsICZkZXB0aCk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb28yOShSV1RleHR1cmUzRDxmbG9hdD4gdGV4dHVyZSkgewor
ICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAg
ICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndp
ZHRoLCAmaGVpZ2h0LCAmZGVwdGgpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAg
ICAgfQorICAgICAgICB1aW50IGZvbzMwKFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7Cisg
ICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAg
ICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lk
dGgsICZoZWlnaHQsICZkZXB0aCk7CisgICAgICAgICAgICByZXR1cm4gZGVwdGg7CisgICAgICAg
IH0KKyAgICAgICAgdWludCBmb28zMShUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSkgewor
ICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAg
ICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4
dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAg
cmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMzIoVGV4dHVyZURlcHRo
MkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAg
ICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAg
ICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9m
TGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAg
dWludCBmb28zMyhUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAg
dWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBu
dW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndp
ZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIG51bWJl
ck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMzQoVGV4dHVyZURlcHRoMkRB
cnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAg
ICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAg
IHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUs
IDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAg
ICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMzUoVGV4dHVy
ZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsK
KyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50czsKKyAg
ICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25z
KHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMp
OworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZv
bzM2KFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVp
bnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxl
bWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0
RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJl
ck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50czsKKyAgICAgICAgfQorICAg
ICAgICB1aW50IGZvbzM3KFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAg
ICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAg
ICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAg
ICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVt
ZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVs
czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzM4KFRleHR1cmVEZXB0aEN1YmU8ZmxvYXQ+
IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhl
aWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXRE
aW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsK
KyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzM5
KFRleHR1cmVEZXB0aEN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lk
dGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZM
ZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhl
aWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb280MChUZXh0dXJlRGVwdGhDdWJlPGZsb2F0PiB0ZXh0dXJl
KSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7Cisg
ICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9u
cyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAg
ICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb280
MShSV1RleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdp
ZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICBHZXREaW1lbnNpb25z
KHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7Cisg
ICAgICAgIH0KKyAgICAgICAgdWludCBmb280MihSV1RleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0
dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7
CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCk7Cisg
ICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vNDMo
UldUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50
IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGVsZW1l
bnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQs
ICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAg
ICAgdWludCBmb280NChSV1RleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAg
ICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAg
ICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3
aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7Cisg
ICAgICAgIH0KKyAgICAgICAgdWludCBmb280NShSV1RleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+
IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhl
aWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNp
b25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJl
dHVybiBlbGVtZW50czsKKyAgICAgICAgfQorICAgIGApOworICAgIGxldCBbdGV4dHVyZTFELCB0
ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0ZXh0dXJlMkRBcnJheSwgdGV4dHVyZTNELCB0ZXh0
dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVyZTFEQXJyYXksIHJ3VGV4dHVyZTJELCByd1Rl
eHR1cmUyREFycmF5LCByd1RleHR1cmUzRCwgdGV4dHVyZURlcHRoMkQsIHRleHR1cmVEZXB0aDJE
QXJyYXksIHRleHR1cmVEZXB0aEN1YmUsIHJ3VGV4dHVyZURlcHRoMkQsIHJ3VGV4dHVyZURlcHRo
MkRBcnJheV0gPSBjcmVhdGVUZXh0dXJlc0ZvclRlc3RpbmcocHJvZ3JhbSk7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMURdKSwg
NCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIs
IFt0ZXh0dXJlMURdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheV0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5XSksIDIp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBb
dGV4dHVyZTFEQXJyYXldKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkRdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRdKSwgNCk7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJl
MkRdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOSIsIFt0ZXh0dXJlMkRBcnJheV0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlMkRBcnJheV0pLCA0KTsKKyAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJl
MkRBcnJheV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMiIsIFt0ZXh0dXJlMkRBcnJheV0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFt0ZXh0dXJlM0RdKSwgOCk7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVy
ZTNEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE1IiwgW3RleHR1cmUzRF0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlM0RdKSwgMik7CisgICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZUN1YmVdKSwg
Mik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgi
LCBbdGV4dHVyZUN1YmVdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZUN1YmVdKSwgMik7CisgICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlMURdKSwgOCk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBb
cndUZXh0dXJlMURBcnJheV0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yMiIsIFtyd1RleHR1cmUxREFycmF5XSksIDMpOworICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3J3VGV4dHVyZTJE
XSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzI0IiwgW3J3VGV4dHVyZTJEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzI1IiwgW3J3VGV4dHVyZTJEQXJyYXldKSwgOCk7CisgICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjYiLCBbcndUZXh0dXJl
MkRBcnJheV0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yNyIsIFtyd1RleHR1cmUyREFycmF5XSksIDIpOworICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4IiwgW3J3VGV4dHVyZTNEXSksIDgpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI5IiwgW3J3
VGV4dHVyZTNEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzMwIiwgW3J3VGV4dHVyZTNEXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1cmVEZXB0aDJEXSksIDgpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMyIiwgW3Rl
eHR1cmVEZXB0aDJEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzMzIiwgW3RleHR1cmVEZXB0aDJEXSksIDMpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM0IiwgW3RleHR1cmVEZXB0aDJEQXJy
YXldKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMzUiLCBbdGV4dHVyZURlcHRoMkRBcnJheV0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5XSks
IDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM3
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXldKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzgiLCBbdGV4dHVyZURlcHRoQ3ViZV0pLCAyKTsKKyAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOSIsIFt0ZXh0
dXJlRGVwdGhDdWJlXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQwIiwgW3RleHR1cmVEZXB0aEN1YmVdKSwgMik7CisgICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBbcndUZXh0dXJlRGVwdGgy
RF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280MiIsIFtyd1RleHR1cmVEZXB0aDJEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheV0pLCA4
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIs
IFtyd1RleHR1cmVEZXB0aDJEQXJyYXldKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5XSksIDIp
OworfQorCit0ZXN0cy50ZXh0dXJlTG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGxldCBwcm9ncmFt
ID0gZG9QcmVwKGAKKyAgICAgICAgZmxvYXQgZm9vMShUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUs
IGludCBsb2NhdGlvbiwgaW50IG1pcG1hcCkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4
dHVyZSwgaW50Mihsb2NhdGlvbiwgbWlwbWFwKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQg
Zm9vMihUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50IG1pcG1hcCwg
aW50IG9mZnNldCkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Mihsb2Nh
dGlvbiwgbWlwbWFwKSwgb2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28zKFRl
eHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgbG9jYXRpb24sIGludCBtaXBtYXAsIGlu
dCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myhsb2NhdGlv
biwgbWlwbWFwLCBsYXllcikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQoVGV4dHVy
ZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50IG1pcG1hcCwgaW50IGxh
eWVyLCBpbnQgb2Zmc2V0KSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQz
KGxvY2F0aW9uLCBtaXBtYXAsIGxheWVyKSwgb2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdCBmb281KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbWlw
bWFwKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIG1pcG1h
cCkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzYoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0
dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXAsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkg
eworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myh4LCB5LCBtaXBtYXApLCBp
bnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb283KFRl
eHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXAsIGlu
dCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50NCh4LCB5LCBt
aXBtYXAsIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vOChUZXh0dXJlMkRB
cnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbWlwbWFwLCBpbnQgbGF5ZXIs
IGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4
dHVyZSwgaW50NCh4LCB5LCBtaXBtYXAsIGxheWVyKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7
CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vOShUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUs
IGludCB4LCBpbnQgeSwgaW50IHosIGludCBtaXBtYXApIHsKKyAgICAgICAgICAgIHJldHVybiBM
b2FkKHRleHR1cmUsIGludDQoeCwgeSwgeiwgbWlwbWFwKSk7CisgICAgICAgIH0KKyAgICAgICAg
ZmxvYXQgZm9vMTAoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCB6
LCBpbnQgbWlwbWFwLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFksIGludCBvZmZzZXRaKSB7Cisg
ICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgsIHksIHosIG1pcG1hcCksIGlu
dDMob2Zmc2V0WCwgb2Zmc2V0WSwgb2Zmc2V0WikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0
IGZvbzExKFJXVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgbG9jYXRpb24pIHsKKyAgICAg
ICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGxvY2F0aW9uKTsKKyAgICAgICAgfQorICAgICAg
ICBmbG9hdCBmb28xMihSV1RleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgbG9jYXRp
b24sIGludCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Mihs
b2NhdGlvbiwgbGF5ZXIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xMyhSV1RleHR1
cmUyRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5KSB7CisgICAgICAgICAgICByZXR1cm4g
TG9hZCh0ZXh0dXJlLCBpbnQyKHgsIHkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28x
NChSV1RleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBsYXll
cikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myh4LCB5LCBsYXllcikp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE1KFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0
dXJlLCBpbnQgeCwgaW50IHksIGludCB6KSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0
dXJlLCBpbnQzKHgsIHksIHopKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xNihUZXh0
dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbWlwbWFwKSB7Cisg
ICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIG1pcG1hcCkpOworICAg
ICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE3KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJl
LCBpbnQgeCwgaW50IHksIGludCBtaXBtYXAsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgewor
ICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myh4LCB5LCBtaXBtYXApLCBpbnQy
KG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xOChUZXh0
dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXAs
IGludCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50NCh4LCB5
LCBtaXBtYXAsIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTkoVGV4dHVy
ZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbWlwbWFwLCBp
bnQgbGF5ZXIsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJu
IExvYWQodGV4dHVyZSwgaW50NCh4LCB5LCBtaXBtYXAsIGxheWVyKSwgaW50MihvZmZzZXRYLCBv
ZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMjAoUldUZXh0dXJlRGVwdGgy
RDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5KSB7CisgICAgICAgICAgICByZXR1cm4gTG9h
ZCh0ZXh0dXJlLCBpbnQyKHgsIHkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28yMShS
V1RleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IGxh
eWVyKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIGxheWVy
KSk7CisgICAgICAgIH0KKyAgICBgKTsKKyAgICBsZXQgW3RleHR1cmUxRCwgdGV4dHVyZTFEQXJy
YXksIHRleHR1cmUyRCwgdGV4dHVyZTJEQXJyYXksIHRleHR1cmUzRCwgdGV4dHVyZUN1YmUsIHJ3
VGV4dHVyZTFELCByd1RleHR1cmUxREFycmF5LCByd1RleHR1cmUyRCwgcndUZXh0dXJlMkRBcnJh
eSwgcndUZXh0dXJlM0QsIHRleHR1cmVEZXB0aDJELCB0ZXh0dXJlRGVwdGgyREFycmF5LCB0ZXh0
dXJlRGVwdGhDdWJlLCByd1RleHR1cmVEZXB0aDJELCByd1RleHR1cmVEZXB0aDJEQXJyYXldID0g
Y3JlYXRlVGV4dHVyZXNGb3JUZXN0aW5nKHByb2dyYW0pOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEzKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRCwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MiIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVy
ZTFELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIC0xKV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTMpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDIwKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCAyMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQi
LCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1
cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMTMpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAtMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpXSksIDIxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSld
KSwgMjApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVy
ZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzNyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVy
ZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgOSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJE
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0
ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgMTgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCAxNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzgpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzMpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzcp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282Iiwg
W3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIC0xKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAzNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEw
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzMyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgNDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDQ0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1
MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzci
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTIpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDc1KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3Nik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNzkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDgwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTEpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxOCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDE5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM1KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCAzOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
MzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMzkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAzNSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
IDUyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0NSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgNTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUyKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCA2MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
NTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDYxKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCA3Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgODApOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDc3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA4
MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgi
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgODApOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIC0xKV0pLCA3Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgODEpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUy
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIC0xKV0pLCA3Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0
ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAz
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzki
LCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQxKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0Qs
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCA2NSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDY2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNjkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1
cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3MCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwg
W3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1
cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxNyk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0MSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAxOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCA0Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCA0MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwg
MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEw
IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3Rl
eHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0Mik7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUz
RCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0Mik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAtMSldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA0Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCA1MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSld
KSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNjYp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIs
IFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNjkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0
dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNjcpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0Qs
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNzApOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNzApOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDY1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDcxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA2Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIs
IFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJlMUQsIG1h
a2VJbnQocHJvZ3JhbSwgMildKSwgMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDMp
XSksIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCA0KV0pLCA1KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbcndUZXh0dXJl
MUQsIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHByb2dy
YW0sIDYpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndU
ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFt
LCAzKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA1KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJh
eSwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0
dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIi
LCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCA4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTEpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEyKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0
dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAx
Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEy
IiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDE1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFt
LCA3KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTcpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE4KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndU
ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAyKV0p
LCAxOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJv
Z3JhbSwgMildKSwgMjApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDQpLCBt
YWtlSW50KHByb2dyYW0sIDIpXSksIDIxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9n
cmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjMpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUx
REFycmF5LCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDI0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBb
cndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEz
IiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCA2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNiks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0s
IDcpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTApOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFr
ZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJE
LCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEyKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0
dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTMpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFty
d1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAx
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEz
IiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDE1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAyKV0pLCAxNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDIpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMiks
IG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFt
LCAzKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHBy
b2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIxKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjIpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwg
bWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMyk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVy
ZTJELCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDI0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndU
ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjUp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIs
IFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAzKV0p
LCAyNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0s
IDMpXSksIDI3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJv
Z3JhbSwgMyldKSwgMjgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUlu
dChwcm9ncmFtLCAzKV0pLCAyOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDUpLCBt
YWtlSW50KHByb2dyYW0sIDMpXSksIDMwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
NiksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMzEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9n
cmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAzMik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDQyKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndU
ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUz
RCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
NDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
NSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIs
IFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2Iiwg
W3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIs
IFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM3
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYi
LCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRo
MkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIs
IFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0x
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgy
RCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxOCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3Iiwg
W3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgy
RCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzOCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3Iiwg
W3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0x
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM4KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRo
MkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDM0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTci
LCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
LTEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDApXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgMzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCA0Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgNDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDUxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCA1Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
NzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
OCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDc2
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgi
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4Iiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgODApOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAz
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTki
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzOCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzUpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDM5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAz
OCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDM0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAzOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
LTEpXSksIDM1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0NCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDQ1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA1Myk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5Iiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNTIpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDYwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCA1Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNjEpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDc2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCA4MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNzcpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDgxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA4MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDc2
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTki
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA4MSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgLTEpXSksIDc3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVw
dGgyRCwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndU
ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCA1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCA2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFt
LCA2KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUlu
dChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA4KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgy
RCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0
dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAx
MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIw
IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgMTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDEyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFt
LCA0KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0
aDJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE1KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndU
ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMildKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDIpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9n
cmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxOSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjApOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVE
ZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIxKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBb
cndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAy
KV0pLCAyMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQo
cHJvZ3JhbSwgMildKSwgMjMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDcp
LCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDI0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyNSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQs
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjYpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1
cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDI3
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAi
LCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFt
LCAzKV0pLCAyOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJ
bnQocHJvZ3JhbSwgMyldKSwgMjkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0s
IDUpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDMwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUlu
dChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAzMSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRo
MkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMzIpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjEiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIs
IFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDIpOworfQor
Cit0ZXN0cy50ZXh0dXJlU3RvcmUgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcChgCisgICAgICAgIGZsb2F0IGZvbzEoUldUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIHVp
bnQgbG9jYXRpb24sIGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2
YWx1ZSwgbG9jYXRpb24pOworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50KGxv
Y2F0aW9uKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMihSV1RleHR1cmUxREFycmF5
PGZsb2F0PiB0ZXh0dXJlLCB1aW50IGxvY2F0aW9uLCB1aW50IGxheWVyLCBmbG9hdCB2YWx1ZSkg
eworICAgICAgICAgICAgU3RvcmUodGV4dHVyZSwgdmFsdWUsIHVpbnQyKGxvY2F0aW9uLCBsYXll
cikpOworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MihpbnQobG9jYXRpb24p
LCBpbnQobGF5ZXIpKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMyhSV1RleHR1cmUy
RDxmbG9hdD4gdGV4dHVyZSwgdWludCB4LCB1aW50IHksIGZsb2F0IHZhbHVlKSB7CisgICAgICAg
ICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDIoeCwgeSkpOworICAgICAgICAgICAgcmV0
dXJuIExvYWQodGV4dHVyZSwgaW50MihpbnQoeCksIGludCh5KSkpOworICAgICAgICB9CisgICAg
ICAgIGZsb2F0IGZvbzQoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgdWludCB4LCB1
aW50IHksIHVpbnQgbGF5ZXIsIGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICBTdG9yZSh0ZXh0
dXJlLCB2YWx1ZSwgdWludDMoeCwgeSwgbGF5ZXIpKTsKKyAgICAgICAgICAgIHJldHVybiBMb2Fk
KHRleHR1cmUsIGludDMoaW50KHgpLCBpbnQoeSksIGludChsYXllcikpKTsKKyAgICAgICAgfQor
ICAgICAgICBmbG9hdCBmb281KFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCB1aW50IHgsIHVp
bnQgeSwgdWludCB6LCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4dHVyZSwg
dmFsdWUsIHVpbnQzKHgsIHksIHopKTsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUs
IGludDMoaW50KHgpLCBpbnQoeSksIGludCh6KSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0
IGZvbzYoUldUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgdWludCB4LCB1aW50IHksIGZs
b2F0IHZhbHVlKSB7CisgICAgICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDIoeCwg
eSkpOworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MihpbnQoeCksIGludCh5
KSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzcoUldUZXh0dXJlRGVwdGgyREFycmF5
PGZsb2F0PiB0ZXh0dXJlLCB1aW50IHgsIHVpbnQgeSwgdWludCBsYXllciwgZmxvYXQgdmFsdWUp
IHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1cmUsIHZhbHVlLCB1aW50Myh4LCB5LCBsYXllcikp
OworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MyhpbnQoeCksIGludCh5KSwg
aW50KGxheWVyKSkpOworICAgICAgICB9CisgICAgYCk7CisgICAgbGV0IFt0ZXh0dXJlMUQsIHRl
eHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1
cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4
dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNELCB0ZXh0dXJlRGVwdGgyRCwgdGV4dHVyZURlcHRoMkRB
cnJheSwgdGV4dHVyZURlcHRoQ3ViZSwgcndUZXh0dXJlRGVwdGgyRCwgcndUZXh0dXJlRGVwdGgy
REFycmF5XSA9IGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9ncmFtKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwg
bWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndU
ZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0s
IDQpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWlu
dChwcm9ncmFtLCA1KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUx
RCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBb
cndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWlu
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUx
REFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJv
Z3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFy
cmF5LCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3Jh
bSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
IiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5
LCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwg
W3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBt
YWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMyks
IG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3
VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtl
VWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4
dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWlu
dChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VV
aW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVy
ZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChw
cm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50
KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFE
QXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9n
cmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHBy
b2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBt
YWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
VWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1
cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAz
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBb
cndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJv
Z3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VV
aW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50
KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJE
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDIpLCBt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1Rl
eHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFt
LCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMi
LCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1h
a2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VV
aW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVy
ZTJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDMp
LCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFty
d1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9n
cmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFt
LCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVp
bnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQs
IG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1h
a2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4
dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0s
IDQpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIs
IFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDMp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChw
cm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9n
cmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJy
YXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0dXJlMkRB
cnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWlu
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1RleHR1cmUy
REFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3VGV4dHVy
ZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbcndUZXh0
dXJlMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtyd1Rl
eHR1cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3J3
VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBb
cndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndU
ZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0
dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJl
M0QsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0Qs
IG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50
KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
VWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1
cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWlu
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVE
ZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJv
Z3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0
aDJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282
IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJE
LCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwg
NCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282Iiwg
W3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBt
YWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNyks
IG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3
VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAy
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1h
a2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4
dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAyKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWlu
dChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VV
aW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVy
ZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChw
cm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50
KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURl
cHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9n
cmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHBy
b2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRo
MkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFt
LCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYi
LCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dy
YW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQs
IG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtyd1RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbcndUZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3J3
VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzciLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworfQorCit0ZXN0cy50ZXh0dXJlU2FtcGxlID0gZnVuY3Rpb24o
KSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICBmbG9hdCBmb28xKFRleHR1
cmUxRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCBsb2NhdGlvbikgeworICAgICAg
ICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBsb2NhdGlvbik7CisgICAgICAgIH0KKyAg
ICAgICAgZmxvYXQgZm9vMihUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxv
YXQgbG9jYXRpb24sIGludCBvZmZzZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4
dHVyZSwgcywgbG9jYXRpb24sIG9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9v
MyhUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9h
dCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDIo
eCwgbGF5ZXIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb280KFRleHR1cmUxREFycmF5
PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IGxheWVyLCBpbnQgb2Zm
c2V0KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Mih4LCBs
YXllciksIG9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNShUZXh0dXJlMkQ8
ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSkgeworICAgICAgICAg
ICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSkpOworICAgICAgICB9Cisg
ICAgICAgIGZsb2F0IGZvbzYoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZs
b2F0IHgsIGZsb2F0IHksIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAg
cmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGludDIob2Zmc2V0WCwgb2Zm
c2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzcoVGV4dHVyZTJEQXJyYXk8Zmxv
YXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIpIHsK
KyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVy
KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vOChUZXh0dXJlMkRBcnJheTxmbG9hdD4g
dGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgaW50IG9m
ZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUs
IHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAg
ICB9CisgICAgICAgIGZsb2F0IGZvbzkoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVy
IHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1w
bGUodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopKTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb28xMChUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxv
YXQgeSwgZmxvYXQgeiwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZLCBpbnQgb2Zmc2V0Wikgewor
ICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeiksIGlu
dDMob2Zmc2V0WCwgb2Zmc2V0WSwgb2Zmc2V0WikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0
IGZvbzExKFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZs
b2F0IHksIGZsb2F0IHopIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywg
ZmxvYXQzKHgsIHksIHopKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xMihUZXh0dXJl
MkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgQmlh
cykgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVyZSwgcywgZmxvYXQyKHgs
IHkpLCBCaWFzKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xMyhUZXh0dXJlMkQ8Zmxv
YXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgQmlhcywgaW50
IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQmlhcyh0
ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIEJpYXMsIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOwor
ICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE0KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwg
c2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9h
dCBkZHkwLCBmbG9hdCBkZHkxKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0
dXJlLCBzLCBmbG9hdDIoeCwgeSksIGZsb2F0MihkZHgwLCBkZHgxKSwgZmxvYXQyKGRkeTAsIGRk
eTEpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xNShUZXh0dXJlMkQ8ZmxvYXQ+IHRl
eHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4
MSwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7Cisg
ICAgICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGZs
b2F0MihkZHgwLCBkZHgxKSwgZmxvYXQyKGRkeTAsIGRkeTEpLCBpbnQyKG9mZnNldFgsIG9mZnNl
dFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xNihUZXh0dXJlMkQ8ZmxvYXQ+IHRl
eHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgTE9EKSB7CisgICAgICAg
ICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBMT0QpOwor
ICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE3KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwg
c2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBMT0QsIGludCBvZmZzZXRYLCBpbnQg
b2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUxldmVsKHRleHR1cmUsIHMsIGZs
b2F0Mih4LCB5KSwgTE9ELCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmb28xOChUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBz
LCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgQmlhcykgeworICAgICAgICAg
ICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgQmlh
cyk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTkoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+
IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0
IEJpYXMsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNh
bXBsZUJpYXModGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgQmlhcywgaW50MihvZmZz
ZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMjAoVGV4dHVyZTJE
QXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg
bGF5ZXIsIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEpIHsK
KyAgICAgICAgICAgIHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBs
YXllciksIGZsb2F0MihkZHgwLCBkZHgxKSwgZmxvYXQyKGRkeTAsIGRkeTEpKTsKKyAgICAgICAg
fQorICAgICAgICBmbG9hdCBmb28yMShUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2Ft
cGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgZGR4MCwgZmxvYXQg
ZGR4MSwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7
CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwg
bGF5ZXIpLCBmbG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0MihkZHkwLCBkZHkxKSwgaW50MihvZmZz
ZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMjIoVGV4dHVyZTJE
QXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg
bGF5ZXIsIGZsb2F0IExPRCkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUxldmVsKHRleHR1
cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIExPRCk7CisgICAgICAgIH0KKyAgICAgICAgZmxv
YXQgZm9vMjMoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQg
eCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IExPRCwgaW50IG9mZnNldFgsIGludCBvZmZz
ZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQz
KHgsIHksIGxheWVyKSwgTE9ELCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQor
ICAgICAgICBpbnQgZm9vMjQoVGV4dHVyZTFEPGludDQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxv
YXQgbG9jYXRpb24pIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgbG9j
YXRpb24pLng7CisgICAgICAgIH0KKyAgICAgICAgaW50IGZvbzI1KFRleHR1cmUxRDxpbnQ0PiB0
ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IGxvY2F0aW9uKSB7CisgICAgICAgICAgICByZXR1cm4g
U2FtcGxlKHRleHR1cmUsIHMsIGxvY2F0aW9uKS55OworICAgICAgICB9CisgICAgICAgIGludCBm
b28yNihUZXh0dXJlMUQ8aW50ND4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCBsb2NhdGlvbikg
eworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBsb2NhdGlvbikuejsKKyAg
ICAgICAgfQorICAgICAgICBpbnQgZm9vMjcoVGV4dHVyZTFEPGludDQ+IHRleHR1cmUsIHNhbXBs
ZXIgcywgZmxvYXQgbG9jYXRpb24pIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVy
ZSwgcywgbG9jYXRpb24pLnc7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMjgoVGV4dHVy
ZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSkgewor
ICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSkpOworICAg
ICAgICB9CisgICAgICAgIGZsb2F0IGZvbzI5KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJl
LCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkg
eworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGlu
dDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzMwKFRl
eHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxv
YXQgeSwgZmxvYXQgbGF5ZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwg
cywgZmxvYXQzKHgsIHksIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMzEo
VGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBm
bG9hdCB5LCBmbG9hdCBsYXllciwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAg
ICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGludDIo
b2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzMyKFRleHR1
cmVEZXB0aEN1YmU8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgeikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDMo
eCwgeSwgeikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzMzKFRleHR1cmVEZXB0aDJE
PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IEJpYXMp
IHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5
KSwgQmlhcyk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMzQoVGV4dHVyZURlcHRoMkQ8
ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgQmlhcywg
aW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQmlh
cyh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIEJpYXMsIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzM1KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0
ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGRkeDAsIGZsb2F0IGRk
eDEsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVH
cmFkKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgZmxvYXQyKGRkeDAsIGRkeDEpLCBmbG9hdDIo
ZGR5MCwgZGR5MSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzM2KFRleHR1cmVEZXB0
aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGRk
eDAsIGZsb2F0IGRkeDEsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEsIGludCBvZmZzZXRYLCBpbnQg
b2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxv
YXQyKHgsIHkpLCBmbG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0MihkZHkwLCBkZHkxKSwgaW50Mihv
ZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMzcoVGV4dHVy
ZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxv
YXQgTE9EKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxv
YXQyKHgsIHkpLCBMT0QpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzM4KFRleHR1cmVE
ZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0
IExPRCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2Ft
cGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBMT0QsIGludDIob2Zmc2V0WCwgb2Zm
c2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzM5KFRleHR1cmVEZXB0aDJEQXJy
YXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5
ZXIsIGZsb2F0IEJpYXMpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUs
IHMsIGZsb2F0Myh4LCB5LCBsYXllciksIEJpYXMpOworICAgICAgICB9CisgICAgICAgIGZsb2F0
IGZvbzQwKFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxv
YXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IEJpYXMsIGludCBvZmZzZXRYLCBpbnQg
b2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVyZSwgcywgZmxv
YXQzKHgsIHksIGxheWVyKSwgQmlhcywgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAg
IH0KKyAgICAgICAgZmxvYXQgZm9vNDEoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVy
ZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgZGR4MCwg
ZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSkgeworICAgICAgICAgICAgcmV0dXJu
IFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgZmxvYXQyKGRkeDAs
IGRkeDEpLCBmbG9hdDIoZGR5MCwgZGR5MSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZv
bzQyKFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQg
eCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0IGRk
eTAsIGZsb2F0IGRkeTEsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAg
cmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgZmxvYXQy
KGRkeDAsIGRkeDEpLCBmbG9hdDIoZGR5MCwgZGR5MSksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQzKFRleHR1cmVEZXB0aDJEQXJyYXk8Zmxv
YXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZs
b2F0IExPRCkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUxldmVsKHRleHR1cmUsIHMsIGZs
b2F0Myh4LCB5LCBsYXllciksIExPRCk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDQo
VGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBm
bG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgTE9ELCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkp
IHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwg
eSwgbGF5ZXIpLCBMT0QsIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAg
ICAgIGZsb2F0IGZvbzQ1KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMs
IGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGNvbXBhcmVWYWx1ZSkgeworICAgICAgICAgICAgcmV0
dXJuIFNhbXBsZUNtcCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGNvbXBhcmVWYWx1ZSk7Cisg
ICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDYoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1
cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgY29tcGFyZVZhbHVlLCBpbnQg
b2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVDbXAodGV4
dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBjb21wYXJlVmFsdWUsIGludDIob2Zmc2V0WCwgb2Zmc2V0
WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQ3KFRleHR1cmVEZXB0aDJEQXJyYXk8
ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIs
IGZsb2F0IGNvbXBhcmVWYWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUNtcCh0ZXh0
dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBjb21wYXJlVmFsdWUpOworICAgICAgICB9Cisg
ICAgICAgIGZsb2F0IGZvbzQ4KFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNh
bXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IGNvbXBhcmVWYWx1
ZSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxl
Q21wKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGNvbXBhcmVWYWx1ZSwgaW50Mihv
ZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDkoVGV4dHVy
ZUN1YmU8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg
eiwgZmxvYXQgYmlhcykgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVyZSwg
cywgZmxvYXQzKHgsIHksIHopLCBiaWFzKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb281
MChUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5
LCBmbG9hdCB6LCBmbG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBkZHgyLCBmbG9hdCBkZHkw
LCBmbG9hdCBkZHkxLCBmbG9hdCBkZHkyKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlR3Jh
ZCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeiksIGZsb2F0MyhkZHgwLCBkZHgxLCBkZHgyKSwg
ZmxvYXQzKGRkeTAsIGRkeTEsIGRkeTIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb281
MShUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5
LCBmbG9hdCB6LCBmbG9hdCBsb2QpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0
ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeiksIGxvZCk7CisgICAgICAgIH0KKyAgICAgICAgZmxv
YXQgZm9vNTIoVGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9h
dCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBmbG9hdCBiaWFzKSB7CisgICAgICAgICAgICByZXR1cm4g
U2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeiksIGJpYXMpOworICAgICAgICB9
CisgICAgICAgIGZsb2F0IGZvbzUzKFRleHR1cmVEZXB0aEN1YmU8ZmxvYXQ+IHRleHR1cmUsIHNh
bXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4
MSwgZmxvYXQgZGR4MiwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSwgZmxvYXQgZGR5MikgeworICAg
ICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopLCBm
bG9hdDMoZGR4MCwgZGR4MSwgZGR4MiksIGZsb2F0MyhkZHkwLCBkZHkxLCBkZHkyKSk7CisgICAg
ICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNTQoVGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4gdGV4dHVy
ZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBmbG9hdCBsb2QpIHsKKyAg
ICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeiks
IGxvZCk7CisgICAgICAgIH0KKyAgICBgKTsKKyAgICBsZXQgW3RleHR1cmUxRCwgdGV4dHVyZTFE
QXJyYXksIHRleHR1cmUyRCwgdGV4dHVyZTJEQXJyYXksIHRleHR1cmUzRCwgdGV4dHVyZUN1YmUs
IHJ3VGV4dHVyZTFELCByd1RleHR1cmUxREFycmF5LCByd1RleHR1cmUyRCwgcndUZXh0dXJlMkRB
cnJheSwgcndUZXh0dXJlM0QsIHRleHR1cmVEZXB0aDJELCB0ZXh0dXJlRGVwdGgyREFycmF5LCB0
ZXh0dXJlRGVwdGhDdWJlLCByd1RleHR1cmVEZXB0aDJELCByd1RleHR1cmVEZXB0aDJEQXJyYXld
ID0gY3JlYXRlVGV4dHVyZXNGb3JUZXN0aW5nKHByb2dyYW0pOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge30pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC4zNzUpXSksIDcpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUx
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge30pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC40Mzc1KV0p
LCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHt9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNTYyNSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge30pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC42MjUpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjM3NSld
KSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC40Mzc1KV0pLCAoMyAqIDcgKyAxICogMTQpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBb
dGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoNyArIDE0KSAvIDIpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNTYyNSldKSwgKDEgKiA3ICsgMyAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNjI1
KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC4zNzUpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNDM3NSldKSwgKDMgKiA3ICsgMSAqIDE0KSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUx
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9k
ZTogImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDcg
KyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjU2MjUpXSksICgxICogNyArIDMgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFt
cFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjYyNSldKSwgMTQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1
cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNz
TW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjM3NSldKSwgNyk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4
dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJl
c3NNb2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuNDM3NSldKSwgKDMg
KiA3ICsgMSAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEgKyAwLjUpXSksICg3ICsgMTQpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSArIDAuNTYyNSldKSwgKDEgKiA3ICsgMyAqIDE0KSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1
cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNz
TW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjYyNSldKSwgMTQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3Rl
eHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRy
ZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjM3NSldKSwgNyk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBb
dGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFk
ZHJlc3NNb2RlOiAicmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuNDM3NSldKSwg
KDMgKiA3ICsgMSAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDIgKyAwLjUpXSksICg3ICsgMTQpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAicmVwZWF0In0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuNTYyNSldKSwgKDEgKiA3ICsgMyAqIDE0KSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3Rl
eHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRy
ZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjYyNSldKSwgMTQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJB
ZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjYy
NSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSArIDAuNTYyNSldKSwgKDMgKiA3ICsgMSAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJl
cGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjUpXSksICg3ICsgMTQpIC8gMik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4
dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJl
c3NNb2RlOiAibWlycm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSArIDAuNDM3NSld
KSwgKDEgKiA3ICsgMyAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEgKyAwLjM3NSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVh
dCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjM3NSldKSwgNyk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWly
cm9yUmVwZWF0In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuNDM3NSldKSwgKDMgKiA3ICsg
MSAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDIgKyAwLjUpXSksICg3ICsgMTQpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAibWlycm9yUmVwZWF0In0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMiArIDAuNTYyNSldKSwgKDEgKiA3ICsgMyAqIDE0KSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJB
ZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjYy
NSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0wLjM3NSldKSwgMSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMS4zNzUpXSksIDc5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAtMC4zNzUpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xv
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEuMzc1KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRv
Qm9yZGVyQ29sb3IiLCBib3JkZXJDb2xvcjogIm9wYXF1ZUJsYWNrIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgLTAuMzc1KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IiLCBib3Jk
ZXJDb2xvcjogIm9wYXF1ZUJsYWNrIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMS4zNzUpXSksIDAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJB
ZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciIsIGJvcmRlckNvbG9yOiAib3BhcXVlV2hp
dGUifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMC4zNzUpXSksIDEpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogImNsYW1w
VG9Cb3JkZXJDb2xvciIsIGJvcmRlckNvbG9yOiAib3BhcXVlV2hpdGUifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxLjM3NSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIiwgYm9y
ZGVyQ29sb3I6ICJvcGFxdWVXaGl0ZSJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg3OSAr
IDEpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGlu
ZWFyIiwgbG9kTWluQ2xhbXA6IDF9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEzICsg
MTYpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAo
MTQgKyA3OSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKV0pLCAoNyArIDE0KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpXSksICgxNyArIDE4KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgx
NCArIDc5KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgxOCArIDE5KSAvIDIpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMiArIDEzICsgMjAgKyAy
MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCA2IC8gOCldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1
cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0
ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzci
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCAr
IDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1
ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoNjIgKyA2MyArIDcwICsgNzEpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4
dHVyZTNELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpXSksICgxMiArIDEzICsgMjAgKyAyMSArIDQ0ICsgNDUgKyA1MiArIDUzKSAv
IDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285
IiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEzICsgMTQgKyAyMSArIDIyICsgNDUgKyA0NiAr
IDUzICsgNTQpIC8gOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDYgLyA4KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDIwICsgMjEgKyAyOCArIDI5ICsg
NTIgKyA1MyArIDYwICsgNjEpIC8gOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA1IC8gOCldKSwgKDEyICsgMTMgKyAy
MCArIDIxICsgKDQ0ICsgNDUgKyA1MiArIDUzKSAqIDMpIC8gMTYpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyICsgNDUgKyA0NiArIDUzICsgNTQpIC8gOCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3Rl
eHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkgKyA1MiArIDUzICsgNjAg
KyA2MSkgLyA4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjI1KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoNDQgKyA0NSArIDUyICsgNTMp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzExIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApXSksICgzICsgNCArIDUgKyA2KSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlQ3ViZSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgKDEzICsgMTQgKyAxNSArIDE2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMjMgKyAyNCArIDI1
ICsgMjYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzExIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAt
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMzMgKyAzNCArIDM1ICsgMzYpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3Rl
eHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpXSksICg0MyArIDQ0ICsgNDUgKyA0NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpXSksICg1
MyArIDU0ICsgNTUgKyA1NikgLyA0KTsKKyAgICAvLyBVbmZvcnR1bmF0ZWx5LCB3ZSBjYW4ndCBh
Y3R1YWxseSB0ZXN0IHRoZSAiQmlhcyIgYXJndW1lbnQsIGJlY2F1c2UgaXQgaXMgc3VwcG9zZWQg
dG8gYmUgYXBwbGllZAorICAgIC8vIHRvIHRoZSB1bmNsYW1wZWQgTE9ELCB3aGljaCBmb3IgdXMg
aXMgLUluZmluaXR5IChiZWNhdXNlIG91ciBkZXJpdmF0aXZlcyBhcmUgYWxsIDApCisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1cmUy
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAv
IDE2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAo
MTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCA2IC8gOCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMjAgKyAyMSArIDI4
ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEzIiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFt0ZXh0dXJlMkQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsgMjgg
KyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTQiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsg
MjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE0IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRo
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMTIg
KyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21p
bkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRW
YWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVp
Z2h0KV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwg
MC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5w
b3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgxMiAr
IDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWlu
RmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCBN
YXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQp
XSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0
KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3RleHR1cmUy
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQu
ZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRW
YWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0
ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1
ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
KDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAu
MjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3Rl
eHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1h
cEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1
cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMyArIDE0ICsgMjEgKyAyMikgLyA0KSArICgoMzUg
KyAzNiArIDM5ICsgNDApIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAy
MCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xNiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBb
dGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZTJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQp
ICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE3IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIx
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTIgKyAxMyArIDIwICsgMjEp
IC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEg
KyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoMzUgKyAzNiArIDM5ICsgNDApIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmUyRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIx
ICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE3IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMyArIDE0ICsgMjEg
KyAyMikgLyA0KSArICgoMzUgKyAzNiArIDM5ICsgNDApIC8gNCkpIC8gMik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgi
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyAr
IDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgNiAvIDgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmUyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMg
KyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgNiAvIDgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0p
LCAoNjIgKyA2MyArIDcwICsgNzEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
KDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAo
NTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICg2
MiArIDYzICsgNzAgKyA3MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZh
bHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWln
aHQpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMzQgKyAzNSAr
IDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWlu
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1h
dGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0
KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0
ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41
KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKCgoMTIgKyAxMyArIDIw
ICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAvIDIpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0dXJlMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTQgKyA1NSAr
IDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIu
bG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUo
KS5oZWlnaHQpXSksICg3NiArIDc3ICsgODAgKyA4MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQu
ZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBt
aXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVp
Z2h0KV0pLCAoKCg1NCArIDU1ICsgNjIgKyA2MykgLyA0KSArICgoNzYgKyA3NyArIDgwICsgODEp
IC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgx
MiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEi
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5l
UHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZh
bHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAoMzUgKyAzNiArIDM5ICsgNDApIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
d2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZh
bHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0
dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAv
IHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsgMjIpIC8gNCkgKyAoKDM1
ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRW
YWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVp
Z2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1
NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1
cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgKDc3ICsgNzggKyA4MSArIDgyKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5l
UHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1
cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBv
dygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1h
dGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDU1ICsgNTYgKyA2MyAr
IDY0KSAvIDQpICsgKCg3NyArIDc4ICsgODEgKyA4MikgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMiIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoMzQgKyAzNSAr
IDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIyIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWlu
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgoKDEyICsgMTMg
KyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYz
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNzYg
KyA3NyArIDgwICsgODEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIyIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMiIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgoKDU0
ICsgNTUgKyA2MiArIDYzKSAvIDQpICsgKCg3NiArIDc3ICsgODAgKyA4MSkgLyA0KSkgLyAyKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIs
IG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgo
KDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMi
LCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMzUgKyAzNiArIDM5ICsgNDApIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwg
W3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICgoKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpICsgKCgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KSkg
LyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNzYgKyA3NyArIDgwICsgODEpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIz
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxp
bmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksICgoKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpICsgKCg3NiArIDc3ICsgODAgKyA4MSkgLyA0
KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNzcgKyA3OCArIDgxICsgODIp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICgoKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpICsgKCg3NyArIDc4ICsgODEgKyA4Mikg
LyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTYiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIiwgbG9kTWluQ2xhbXA6IDEsIGxvZE1heENsYW1wOiAxfSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIp
XSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbG9kTWluQ2xhbXA6IDEsIGxvZE1heENsYW1wOiAx
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVyZTJE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
d2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSks
ICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIiwgbWF4QW5pc290
cm9weTogMn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCA0IC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lk
dGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sICg0LzMpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0p
LCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgbGV0IHRleHR1cmUxREludDQgPSBtYWtl
MURUZXh0dXJlKHByb2dyYW0sIFtbWzEsIDIsIDMsIDRdLCBbMTAwLCAyMDAsIDMwMCwgNDAwXSwg
WzEwMSwgMjAyLCAzMDEsIDQwMV0sIFsxMywgMTQsIDE1LCAxNl1dLCBbWzE3LCAxOCwgMTksIDIw
XSwgWzIxLCAyMiwgMjMsIDI0XV0sIFtbMjUsIDI2LCAyNywgMjhdXV0sICJpbnQ0Iik7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNCIsIFt0ZXh0dXJl
MURJbnQ0LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KV0pLCAxMDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMjUiLCBbdGV4dHVyZTFESW50NCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwg
MjAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI2
IiwgW3RleHR1cmUxREludDQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksIDMwMCk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNyIsIFt0ZXh0dXJlMURJbnQ0LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KV0pLCA0MDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjgiLCBbdGV4dHVyZURlcHRoMkQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDEzICsgMTQgKyAy
MSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCA2IC8gOCldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOSIsIFt0ZXh0dXJlRGVwdGgyRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjkiLCBbdGV4dHVy
ZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMw
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzAiLCBb
dGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMSIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsg
MjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMSIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCAoNjIgKyA2MyArIDcwICsgNzEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMyIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMg
KyA0ICsgNSArIDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzMyIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMTUgKyAx
NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMzIiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMjMgKyAyNCArIDI1ICsgMjYpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMyIiwgW3Rl
eHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApXSksICgzMyArIDM0ICsgMzUgKyAzNikgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzIiLCBbdGV4dHVyZURlcHRo
Q3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKV0pLCAoNDMgKyA0NCArIDQ1ICsgNDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMyIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpXSksICg1
MyArIDU0ICsgNTUgKyA1NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4IiwgW3RleHR1cmVE
ZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMyAr
IDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgNiAvIDgpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjkiLCBbdGV4dHVyZURl
cHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI5Iiwg
W3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCAr
IDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zMCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMwIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEi
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMSIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAg
KyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEi
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgKDYyICsgNjMgKyA3MCArIDcxKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMyIsIFt0ZXh0dXJlRGVwdGgyRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEw
IC8gMTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSks
ICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMzMiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIwICsg
MjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zNCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNCIsIFt0ZXh0
dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1
cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIu
bG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM1IiwgW3RleHR1cmVE
ZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgzNCArIDM1ICsgMzggKyAz
OSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMzUiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQ
dHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM1Iiwg
W3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
IiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUp
IC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIs
IDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgoKDEyICsgMTMg
KyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzYiLCBbdGV4dHVy
ZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzYiLCBbdGV4dHVyZURlcHRoMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMzYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQu
ZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRW
YWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9h
ZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoMzUgKyAzNiArIDM5ICsgNDApIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygy
LCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRo
LnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIy
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3co
MiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRo
LnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMyArIDE0ICsgMjEgKyAy
MikgLyA0KSArICgoMzUgKyAzNiArIDM5ICsgNDApIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM3IiwgW3RleHR1cmVEZXB0aDJE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAo
MzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzM3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMiArIDEz
ICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMzciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSldKSwgKCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5
KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOCIsIFt0ZXh0dXJlRGVw
dGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM0
ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4Iiwg
W3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
IiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAv
IDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzgiLCBbdGV4dHVyZURlcHRoMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsg
MjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksICgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzgiLCBbdGV4dHVyZURl
cHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
KDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAoKCgxMyArIDE0ICsgMjEgKyAyMikgLyA0KSArICgoMzUgKyAzNiArIDM5ICsgNDApIC8gNCkp
IC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzM5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAg
LyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM5IiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMjAgKyAyMSArIDI4
ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzM5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM5IiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNjIgKyA2
MyArIDcwICsgNzEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQwIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEz
ICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280MCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSks
ICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDAiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQwIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgKDYyICsgNjMgKyA3MCArIDcxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAy
MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNDEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQu
ZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBbdGV4
dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQ
dHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFs
dWUoKS5oZWlnaHQpXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBbdGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRl
eHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
MSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVy
OiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFs
dWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLmhlaWdodCldKSwgKCgoMTIgKyAxMyArIDIwICsgMjEpIC8gNCkgKyAoKDM0ICsg
MzUgKyAzOCArIDM5KSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280MSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBb
dGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJE
LmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2Fk
VmFsdWUoKS5oZWlnaHQpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZh
bHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWln
aHQpXSksICg3NiArIDc3ICsgODAgKyA4MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5l
UHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MSIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
IiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0
aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgp
LmhlaWdodCldKSwgKCgoNTQgKyA1NSArIDYyICsgNjMpIC8gNCkgKyAoKDc2ICsgNzcgKyA4MCAr
IDgxKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
aGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMg
KyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAy
IC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMzUgKyAzNiArIDM5ICsgNDApIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwg
MC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBb
dGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxp
bmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCku
d2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFs
dWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICgoKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpICsgKCgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KSkg
LyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTQg
KyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53
aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyAr
IDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWlu
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDc3ICsgNzggKyA4MSArIDgyKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJE
LmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBt
YXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
TWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCg1NSArIDU2
ICsgNjMgKyA2NCkgLyA0KSArICgoNzcgKyA3OCArIDgxICsgODIpIC8gNCkpIC8gMik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAy
MCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280MyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDMiLCBbdGV4
dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsg
MzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNDMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MyIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKDU0
ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280MyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgKCgoNTQgKyA1NSArIDYy
ICsgNjMpIC8gNCkgKyAoKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpKSAvIDIpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkp
IC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQg
KyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNSAr
IDM2ICsgMzkgKyA0MCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDEzICsgMTQgKyAyMSArIDIyKSAvIDQp
ICsgKCgzNSArIDM2ICsgMzkgKyA0MCkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwg
bWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgo
NTQgKyA1NSArIDYyICsgNjMpIC8gNCkgKyAoKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpKSAvIDIp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNzcgKyA3OCArIDgxICsg
ODIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiAr
IDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAoKCg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KSArICgoNzcgKyA3
OCArIDgxICsgODIpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sx
N11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJu
ZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3Jh
bSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0
aW9uOiAibmV2ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJl
KHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBh
cmVGdW5jdGlvbjogIm5ldmVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRo
VGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHtjb21wYXJlRnVuY3Rpb246ICJsZXNzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2Uy
RERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1Iiwg
W21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNzIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyld
KSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJlcXVhbCJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMTEpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9h
dCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1d
LCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImVxdWFs
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBb
W1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246
ICJsZXNzRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJl
KHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBh
cmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDEpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkRE
ZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwg
MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1
IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxMSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0
IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxNyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11d
XSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVh
dGVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFt
LCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rp
b246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1
cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29t
cGFyZUZ1bmN0aW9uOiAibm90RXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAwKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJE
RGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5vdEVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwg
MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1
IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDExKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAi
ZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXJF
cXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3Jh
bSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0
aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRo
VGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHtjb21wYXJlRnVuY3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAxKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFr
ZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSks
IDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiYWx3YXlzIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAyMyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0s
ICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDApOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkRE
ZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5ldmVyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJv
Z3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJl
RnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAy
MyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJm
bG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRo
VGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAxNyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0s
IFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0
aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwg
MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3
IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIp
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDApOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1
cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge2NvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tb
WzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246
ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3Iiwg
W21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0
dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNzRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMTcpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFt
LCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5j
dGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAy
MyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJm
bG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERl
cHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHBy
b2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFy
ZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAyMyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0s
ICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibm90RXF1
YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtl
MkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5vdEVxdWFsIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJy
YXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtj
b21wYXJlRnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAyMyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sx
N11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAi
Z3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0p
LCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0
IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDEpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkRE
ZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFy
cmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
Y29tcGFyZUZ1bmN0aW9uOiAiYWx3YXlzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDExKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3
XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJh
bHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDEpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFtt
YWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ5IiwgW3RleHR1cmVDdWJlLCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCldKSwgKDMgKyA0ICsgNSArIDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ5IiwgW3RleHR1cmVDdWJlLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMTUgKyAxNikgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDkiLCBbdGV4dHVyZUN1
YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMjMgKyAyNCArIDI1ICsgMjYpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ5IiwgW3Rl
eHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzMyArIDM0ICsgMzUgKyAzNikg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDkiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNDMgKyA0NCArIDQ1
ICsgNDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQ5IiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1MyAr
IDU0ICsgNTUgKyA1NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNTAiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgKDMgKyA0ICsgNSArIDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKV0pLCAoMTMgKyAxNCArIDE1ICsgMTYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApXSksICgyMyArIDI0ICsgMjUgKyAyNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTAiLCBbdGV4dHVyZUN1YmUsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzMyArIDM0ICsgMzUgKyAzNikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTAiLCBbdGV4dHVy
ZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDQzICsgNDQgKyA0NSArIDQ2KSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MCIs
IFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDUzICsgNTQgKyA1NSAr
IDU2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtNCAvIHRleHR1cmVDdWJlLmVQdHIubG9h
ZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAtNCAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApXSksICg5ICsgMTApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLCAwLCA0
IC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC00IC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUo
KS5oZWlnaHQpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDE5ICsgMjApIC8gMik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1
cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgNCAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVl
KCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCA0IC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgyOSAr
IDMwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA0IC8gdGV4dHVyZUN1
YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC00IC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUo
KS5oZWlnaHQpXSksICgzOSArIDQwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIC00IC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWln
aHQpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDQ5ICsgNTApIC8gMik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJl
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0x
KSwgbWFrZUZsb2F0KHByb2dyYW0sIC00IC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS53
aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtNCAvIHRleHR1cmVDdWJlLmVQ
dHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1OSArIDYw
KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzICsgNCArIDUg
KyA2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAx
NCArIDE1ICsgMTYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzUxIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDIzICsgMjQgKyAyNSArIDI2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKV0pLCAoMzMgKyAzNCArIDM1ICsgMzYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUxIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCldKSwgKDQzICsgNDQgKyA0NSArIDQ2KSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTMgKyA1NCArIDU1ICsgNTYpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUxIiwgW3RleHR1cmVD
dWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDkgKyAxMCkgLyAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDE5ICsgMjApIC8gMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUxIiwgW3RleHR1cmVDdWJlLCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDI5ICsgMzApIC8gMik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUxIiwgW3RleHR1cmVDdWJlLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpXSksICgzOSArIDQwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpXSksICg0OSArIDUwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKV0pLCAoNTkgKyA2MCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTIiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApXSksICgzICsgNCArIDUgKyA2KSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MiIsIFt0ZXh0dXJlRGVwdGhDdWJl
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMTUgKyAxNikgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTIiLCBbdGV4
dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgyMyArIDI0ICsgMjUgKyAy
NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNTIiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
LTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMzMg
KyAzNCArIDM1ICsgMzYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzUyIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKV0pLCAoNDMgKyA0NCArIDQ1ICsgNDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUyIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCldKSwgKDUzICsgNTQgKyA1NSArIDU2KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MyIsIFt0ZXh0dXJlRGVw
dGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzICsgNCArIDUgKyA2KSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MyIsIFt0
ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDE1
ICsgMTYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwg
KDIzICsgMjQgKyAyNSArIDI2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281MyIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKV0pLCAoMzMgKyAzNCArIDM1ICsgMzYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDQzICsgNDQgKyA0NSArIDQ2KSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MyIsIFt0ZXh0
dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTMgKyA1NCArIDU1ICsg
NTYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTQgLyB0ZXh0dXJlQ3ViZS5lUHRy
LmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgLTQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoOSArIDEwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MyIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
LTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLCAwLCA0IC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTQgLyB0ZXh0dXJlRGVwdGhD
dWJlLmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgx
OSArIDIwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb281MyIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWlu
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgNCAvIHRl
eHR1cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDQgLyB0ZXh0dXJlRGVwdGhDdWJl
LmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMjkgKyAzMCkgLyAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURlcHRo
Q3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA0IC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRyLmxvYWRW
YWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgLTQgLyB0ZXh0dXJlRGVwdGhDdWJlLmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0
KV0pLCAoMzkgKyA0MCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDQgLyB0ZXh0dXJlRGVwdGhDdWJlLmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgLTQgLyB0ZXh0dXJlRGVwdGhDdWJlLmVQdHIubG9hZFZhbHVl
KCkuaGVpZ2h0KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg0OSArIDUwKSAvIDIpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MyIsIFt0ZXh0
dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIC00IC8gdGV4dHVyZURlcHRoQ3ViZS5l
UHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC00
IC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKV0pLCAoNTkgKyA2MCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApXSksICgzICsgNCArIDUgKyA2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMTUgKyAxNikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVy
ZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgyMyArIDI0ICsgMjUgKyAyNikg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMzMgKyAz
NCArIDM1ICsgMzYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KV0pLCAoNDMgKyA0NCArIDQ1ICsgNDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCldKSwgKDUzICsgNTQgKyA1NSArIDU2KSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0dXJlRGVwdGhD
dWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDkgKyAxMCkgLyAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRo
Q3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoMTkgKyAyMCkgLyAyKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURl
cHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICgyOSArIDMwKSAvIDIpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0dXJl
RGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICgzOSArIDQwKSAvIDIpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0
dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDQ5ICsgNTApIC8gMik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU0IiwgW3Rl
eHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDU5ICsgNjApIC8gMik7
Cit9CisKK3Rlc3RzLnRleHR1cmVHYXRoZXIgPSBmdW5jdGlvbigpIHsKKyAgICBsZXQgcHJvZ3Jh
bSA9IGRvUHJlcChgCisgICAgICAgIGZsb2F0NCBmb28xKFRleHR1cmUyRDxmbG9hdD4gdGV4dHVy
ZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5KSB7CisgICAgICAgICAgICByZXR1cm4gR2F0
aGVyKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQ0
IGZvbzIoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0
IHksIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIEdhdGhl
cih0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAg
ICAgICB9CisgICAgICAgIGZsb2F0NCBmb28zKFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJl
LCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyKSB7CisgICAgICAgICAg
ICByZXR1cm4gR2F0aGVyKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllcikpOworICAgICAg
ICB9CisgICAgICAgIGZsb2F0NCBmb280KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBz
YW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyLCBpbnQgb2Zmc2V0WCwgaW50
IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBHYXRoZXIodGV4dHVyZSwgcywgZmxvYXQz
KHgsIHksIGxheWVyKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAg
ICAgZmxvYXQ0IGZvbzUoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxv
YXQgeCwgZmxvYXQgeSwgZmxvYXQgeikgeworICAgICAgICAgICAgcmV0dXJuIEdhdGhlcih0ZXh0
dXJlLCBzLCBmbG9hdDMoeCwgeSwgeikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0NCBmb282
KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0
IHkpIHsKKyAgICAgICAgICAgIHJldHVybiBHYXRoZXIodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkp
KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdDQgZm9vNyhUZXh0dXJlRGVwdGgyRDxmbG9hdD4g
dGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBpbnQgb2Zmc2V0WCwgaW50IG9m
ZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBHYXRoZXIodGV4dHVyZSwgcywgZmxvYXQyKHgs
IHkpLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdDQg
Zm9vOChUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0
IHgsIGZsb2F0IHksIGZsb2F0IGxheWVyKSB7CisgICAgICAgICAgICByZXR1cm4gR2F0aGVyKHRl
eHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllcikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0
NCBmb285KFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxv
YXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgewor
ICAgICAgICAgICAgcmV0dXJuIEdhdGhlcih0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIp
LCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdDQgZm9v
MTAoVGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBm
bG9hdCB5LCBmbG9hdCB6KSB7CisgICAgICAgICAgICByZXR1cm4gR2F0aGVyKHRleHR1cmUsIHMs
IGZsb2F0Myh4LCB5LCB6KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQ0IGZvbzExKFRleHR1
cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZs
b2F0IGNvbXBhcmVWYWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIEdhdGhlckNtcCh0ZXh0dXJl
LCBzLCBmbG9hdDIoeCwgeSksIGNvbXBhcmVWYWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZmxv
YXQ0IGZvbzEyKFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0
IHgsIGZsb2F0IHksIGZsb2F0IGNvbXBhcmVWYWx1ZSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZ
KSB7CisgICAgICAgICAgICByZXR1cm4gR2F0aGVyQ21wKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5
KSwgY29tcGFyZVZhbHVlLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdDQgZm9vMTMoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2Ft
cGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgY29tcGFyZVZhbHVl
KSB7CisgICAgICAgICAgICByZXR1cm4gR2F0aGVyQ21wKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5
LCBsYXllciksIGNvbXBhcmVWYWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQ0IGZvbzE0
KFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwg
ZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IGNvbXBhcmVWYWx1ZSwgaW50IG9mZnNldFgsIGlu
dCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gR2F0aGVyQ21wKHRleHR1cmUsIHMsIGZs
b2F0Myh4LCB5LCBsYXllciksIGNvbXBhcmVWYWx1ZSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7
CisgICAgICAgIH0KKyAgICBgKTsKKyAgICBsZXQgW3RleHR1cmUxRCwgdGV4dHVyZTFEQXJyYXks
IHRleHR1cmUyRCwgdGV4dHVyZTJEQXJyYXksIHRleHR1cmUzRCwgdGV4dHVyZUN1YmUsIHJ3VGV4
dHVyZTFELCByd1RleHR1cmUxREFycmF5LCByd1RleHR1cmUyRCwgcndUZXh0dXJlMkRBcnJheSwg
cndUZXh0dXJlM0QsIHRleHR1cmVEZXB0aDJELCB0ZXh0dXJlRGVwdGgyREFycmF5LCB0ZXh0dXJl
RGVwdGhDdWJlLCByd1RleHR1cmVEZXB0aDJELCByd1RleHR1cmVEZXB0aDJEQXJyYXldID0gY3Jl
YXRlVGV4dHVyZXNGb3JUZXN0aW5nKHByb2dyYW0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCBbMjAsIDIxLCAxMywgMTJdKTsKKyAgICBjaGVja0Zs
b2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksIFsyMSwgMjIsIDE0LCAx
M10pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpXSks
IFsyOCwgMjksIDIxLCAyMF0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBb
MjEsIDIyLCAxNCwgMTNdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgWzI4
LCAyOSwgMjEsIDIwXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28zIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCBbMjAsIDIxLCAxMywgMTJdKTsK
KyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBb
dGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpXSksIFs2MiwgNjMsIDU1LCA1NF0pOworICAgIGNoZWNrRmxvYXQ0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzIxLCAyMiwg
MTQsIDEzXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCBbMjgsIDI5LCAyMSwgMjBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIFs2MywgNjQsIDU2LCA1
NV0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgWzcwLCA3MSwgNjMsIDYyXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksIFs1LCA2LCA0LCAz
XSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281
IiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKV0pLCBbMTUsIDE2LCAxNCwgMTNdKTsKKyAgICBjaGVja0Zsb2F0NChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZUN1YmUsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgWzI1
LCAyNiwgMjQsIDIzXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb281IiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCBbMzUsIDM2LCAzNCwgMzNdKTsKKyAgICBj
aGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVy
ZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSldKSwgWzQ1LCA0NiwgNDQsIDQzXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKV0pLCBbNTUsIDU2LCA1NCwg
NTNdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KV0pLCBbMjAsIDIxLCAxMywgMTJdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgWzIxLCAyMiwgMTQsIDEzXSk7CisgICAgY2hlY2tG
bG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmVEZXB0
aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KV0pLCBbMjgsIDI5LCAy
MSwgMjBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBbMjEsIDIy
LCAxNCwgMTNdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCBbMjgs
IDI5LCAyMSwgMjBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgWzIwLCAyMSwgMTMsIDEy
XSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksIFs2MiwgNjMsIDU1LCA1NF0pOworICAgIGNo
ZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCBbMjEsIDIyLCAxNCwgMTNdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgWzI4LCAyOSwgMjEsIDIwXSk7Cisg
ICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIFs2MywgNjQsIDU2LCA1NV0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCBbNzAsIDcxLCA2MywgNjJd
KTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEw
IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgWzUsIDYsIDQsIDNdKTsKKyAgICBjaGVja0Zsb2F0NChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmVEZXB0aEN1YmUs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
XSksIFsxNSwgMTYsIDE0LCAxM10pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCBbMjUsIDI2LCAyNCwg
MjNdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEwIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0x
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksIFszNSwgMzYsIDM0LCAzM10pOworICAgIGNoZWNr
RmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZURl
cHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKV0pLCBbNDUsIDQ2LCA0NCwgNDNdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpXSksIFs1NSwg
NTYsIDU0LCA1M10pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTEiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MTMpXSksIFswLCAwLCAwLCAwXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImxlc3MifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEzKV0pLCBbMSwgMSwgMCwgMF0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJlcXVhbCJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMTMpXSksIFswLCAwLCAxLCAwXSk7CisgICAgY2hlY2tGbG9hdDQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjog
Imxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTMpXSksIFsxLCAxLCAxLCAwXSk7CisgICAgY2hl
Y2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJl
RGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBh
cmVGdW5jdGlvbjogImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEzKV0pLCBbMCwgMCwgMCwgMV0p
OworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEi
LCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIiLCBjb21wYXJlRnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTMpXSksIFsx
LCAxLCAwLCAxXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXJFcXVhbCJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMTMpXSksIFswLCAwLCAxLCAxXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMTMpXSksIFsxLCAxLCAxLCAxXSk7CisgICAgY2hlY2tGbG9hdDQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjog
Im5ldmVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgWzAsIDAsIDAsIDBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMTQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksIFsxLCAxLCAwLCAwXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxNCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
WzAsIDAsIDEsIDBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEyIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxNCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzEs
IDEsIDEsIDBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEyIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MTQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIFswLCAwLCAw
LCAxXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogIm5vdEVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzEsIDEsIDAsIDFd
KTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEy
IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzAsIDAsIDEsIDFd
KTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEy
IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiYWx3YXlzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzEsIDEsIDEsIDFdKTsKKyAg
ICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIiLCBjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCA1NSldKSwgWzAsIDAsIDAsIDBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246
ICJsZXNzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDU1KV0pLCBbMSwg
MSwgMCwgMF0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDU1KV0pLCBbMCwgMCwgMSwgMF0pOworICAgIGNoZWNr
RmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZURl
cHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNv
bXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCA1NSldKSwgWzEsIDEsIDEsIDBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJn
cmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDU1KV0pLCBbMCwg
MCwgMCwgMV0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogIm5vdEVxdWFsIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDU1KV0pLCBbMSwgMSwgMCwgMV0pOworICAgIGNo
ZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIs
IGNvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCA1NSldKSwgWzAsIDAsIDEsIDFdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rp
b246ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNTUpXSks
IFsxLCAxLCAxLCAxXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNTYpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIFswLCAwLCAwLCAwXSk7CisgICAgY2hlY2tGbG9hdDQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0
aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA1NiksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzEsIDEsIDAsIDBdKTsK
KyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0Iiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCA1NiksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgWzAsIDAsIDEsIDBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJsZXNzRXF1YWwi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNTYpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIFsxLCAxLCAxLCAwXSk7CisgICAgY2hlY2tG
bG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29t
cGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCA1NiksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzAs
IDAsIDAsIDFdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA1NiksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgWzEsIDEsIDAsIDFdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rp
b246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
NTYpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIFswLCAwLCAx
LCAxXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiYWx3YXlzIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDU2KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCBbMSwgMSwgMSwgMV0pOworICAgIC8vIEZJWE1FOiBHYXRoZXIgb3RoZXIg
Y29tcG9uZW50cwogfQogCiBva1RvVGVzdCA9IHRydWU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXh0dXJlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvVGV4dHVyZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDc2OTRmYWMyNjdhNzc4MzY1Yjk0YTY4YzAy
MTM3MDI1NGNhNTBmCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvVGV4dHVyZS5qcwpAQCAtMCwwICsxLDU0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisidXNlIHN0cmljdCI7CisKK2NsYXNzIFRleHR1cmUgewor
ICAgIGNvbnN0cnVjdG9yKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291
bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIHRoaXMuX2Rp
bWVuc2lvbiA9IGRpbWVuc2lvbjsKKyAgICAgICAgdGhpcy5fd2lkdGggPSB3aWR0aDsKKyAgICAg
ICAgdGhpcy5faGVpZ2h0ID0gaGVpZ2h0OworICAgICAgICB0aGlzLl9kZXB0aCA9IGRlcHRoOwor
ICAgICAgICB0aGlzLl9sZXZlbENvdW50ID0gbGV2ZWxDb3VudDsKKyAgICAgICAgdGhpcy5fbGF5
ZXJDb3VudCA9IGxheWVyQ291bnQ7CisgICAgICAgIHRoaXMuX2lubmVyVHlwZSA9IGlubmVyVHlw
ZTsKKyAgICAgICAgdGhpcy5fZGF0YSA9IGRhdGE7CisgICAgfQorCisgICAgZ2V0IGRpbWVuc2lv
bigpIHsgcmV0dXJuIHRoaXMuX2RpbWVuc2lvbjsgfQorICAgIGdldCB3aWR0aCgpIHsgcmV0dXJu
IHRoaXMuX3dpZHRoOyB9CisgICAgZ2V0IGhlaWdodCgpIHsgcmV0dXJuIHRoaXMuX2hlaWdodDsg
fQorICAgIGdldCBkZXB0aCgpIHsgcmV0dXJuIHRoaXMuX2RlcHRoOyB9CisgICAgZ2V0IGxldmVs
Q291bnQoKSB7IHJldHVybiB0aGlzLl9sZXZlbENvdW50OyB9CisgICAgZ2V0IGxheWVyQ291bnQo
KSB7IHJldHVybiB0aGlzLl9sYXllckNvdW50OyB9CisgICAgZ2V0IGlubmVyVHlwZSgpIHsgcmV0
dXJuIHRoaXMuX2lubmVyVHlwZTsgfQorICAgIGdldCBkYXRhKCkgeyByZXR1cm4gdGhpcy5fZGF0
YTsgfQorCisgICAgZWxlbWVudENoZWNrZWQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsK
KyAgICAgICAgaWYgKGxheWVyIDwgMCB8fCBsYXllciA+PSB0aGlzLmxheWVyQ291bnQKKyAgICAg
ICAgICAgIHx8IGxldmVsIDwgMCB8fCBsZXZlbCA+PSB0aGlzLmxldmVsQ291bnQKKyAgICAgICAg
ICAgIHx8IGsgPCAwIHx8IGsgPj0gdGhpcy5kZXB0aAorICAgICAgICAgICAgfHwgaiA8IDAgfHwg
aiA+PSB0aGlzLmhlaWdodAorICAgICAgICAgICAgfHwgaSA8IDAgfHwgaSA+PSB0aGlzLndpZHRo
KQorICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgICAgcmV0dXJuIHRoaXMuZWxl
bWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpOworICAgIH0KKworICAgIHNldEVsZW1lbnRDaGVj
a2VkKGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICBpZiAobGF5
ZXIgPCAwIHx8IGxheWVyID49IHRoaXMubGF5ZXJDb3VudAorICAgICAgICAgICAgfHwgbGV2ZWwg
PCAwIHx8IGxldmVsID49IHRoaXMubGV2ZWxDb3VudAorICAgICAgICAgICAgfHwgayA8IDAgfHwg
ayA+PSB0aGlzLmRlcHRoCisgICAgICAgICAgICB8fCBqIDwgMCB8fCBqID49IHRoaXMuaGVpZ2h0
CisgICAgICAgICAgICB8fCBpIDwgMCB8fCBpID49IHRoaXMud2lkdGgpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIHRoaXMuc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGos
IGksIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0
dXJlMUQgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEp
CisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgbWlwbWFwcy4KKyAgICAg
ICAgLy8gVGhlIGZpcnN0IG1pcG1hcCBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAg
Ly8gRWFjaCBlbGVtZW50IG1heSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFy
cy4KKyAgICAgICAgLy8gVGhlIHdpZHRoIG11c3QgYmUgYSBwb3dlci1vZi10d28uCisgICAgICAg
IC8vIEVhY2ggbWlwbWFwIGlzIGhhbGYtc2l6ZSBvZiB0aGUgcHJldmlvdXMgc2l6ZS4KKworICAg
ICAgICBsZXQgZGltZW5zaW9uID0gMTsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXS5sZW5n
dGg7CisgICAgICAgIGxldCBoZWlnaHQgPSAxOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAg
ICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgbGF5ZXJDb3Vu
dCA9IDE7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxl
dmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lk
dGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF0u
bGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAg
ICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAg
ICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwg
aSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdW2ldOworICAgIH0KKwor
ICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAg
ICAgIHRoaXMuZGF0YVtsZXZlbF1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1
cmUxREFycmF5IGV4dGVuZHMgVGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBk
YXRhKQorICAgIHsKKyAgICAgICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIDFEIHRleHR1cmVz
LgorICAgICAgICAvLyBBbGwgdGV4dHVyZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHdpZHRoIGFuZCBu
dW1iZXIgb2YgbWlwbWFwcy4KKworICAgICAgICBsZXQgZGltZW5zaW9uID0gMTsKKyAgICAgICAg
bGV0IHdpZHRoID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSAxOwor
ICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGFbMF0u
bGVuZ3RoOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBz
dXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNv
dW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bbGV2ZWxdLmxlbmd0aDsKKyAgICB9
CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7Cisg
ICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7
CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1baV07CisgICAgfQorCisgICAgc2V0
RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhp
cy5kYXRhW2xheWVyXVtsZXZlbF1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1
cmUyRCBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkK
KyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiBtaXBtYXBzLgorICAgICAg
ICAvLyBUaGUgZmlyc3QgbWlwbWFwIGlzIGEgcmVjdGFuZ3VsYXIgYXJyYXkgb2Ygcm93cywgd2hl
cmUgZWFjaCByb3cgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxl
bWVudCBtYXkgYmUgYSBzY2FsYXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAg
IC8vIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IG11c3QgYmUgcG93ZXJzLW9mLXR3by4KKyAgICAgICAg
Ly8gRWFjaCBtaXBtYXAgaXMgaGFsZi13aWR0aCBhbmQgaGFsZi1oZWlnaHQgb2YgdGhlIHByZXZp
b3VzIHNpemUuCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0
aCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXS5sZW5n
dGg7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0
YS5sZW5ndGg7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGlt
ZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5u
ZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgewor
ICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXVswXS5sZW5ndGg7CisgICAgfQorCisgICAg
aGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2
ZWxdLmxlbmd0aDsKKyAgICB9CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAg
ICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwg
aSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdW2pdW2ldOworICAgIH0K
KworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7Cisg
ICAgICAgIHRoaXMuZGF0YVtsZXZlbF1bal1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2xldCBU
ZXh0dXJlRGVwdGgyRCA9IFRleHR1cmUyRDsKKworY2xhc3MgVGV4dHVyZTJEQXJyYXkgZXh0ZW5k
cyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAg
ICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgMkQgdGV4dHVyZXMuCisgICAgICAgIC8vIEFs
bCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNhbWUgd2lkdGgsIGhlaWdodCBhbmQgbnVtYmVyIG9m
IG1pcG1hcHMuCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0
aCA9IGRhdGFbMF1bMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXVsw
XS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50
ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7
CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291
bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExl
dmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF1bMF0u
bGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5kYXRhWzBdW2xldmVsXS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhB
dExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxl
bWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5k
YXRhW2xheWVyXVtsZXZlbF1bal1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwg
bGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVts
ZXZlbF1bal1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2xldCBUZXh0dXJlRGVwdGgyREFycmF5
ID0gVGV4dHVyZTJEQXJyYXk7CisKK2NsYXNzIFRleHR1cmUzRCBleHRlbmRzIFRleHR1cmUgewor
ICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRh
IiBpcyBhbiBhcnJheSBvZiBtaXBtYXBzLgorICAgICAgICAvLyBUaGUgZmlyc3QgbWlwbWFwIGlz
IGFuIGFycmF5IG9mIGRlcHRoIHNsaWNlcywgZWFjaCBkZXB0aCBzbGljZSBpcyBhbiBhcnJheSBv
ZiByb3dzLCBhbmQgZWFjaCByb3cgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8v
IEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2FsYXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMu
CisgICAgICAgIC8vIFRoZSB3aWR0aCwgaGVpZ2h0LCBhbmQgZGVwdGggbXVzdCBiZSBwb3dlcnMt
b2YtdHdvLgorICAgICAgICAvLyBFYWNoIG1pcG1hcCBpcyBoYWxmLXdpZHRoLCBoYWxmLWhlaWdo
dCwgYW5kIGhhbGYtZGVwdGggb2YgdGhlIHByZXZpb3VzIHNpemUuCisKKyAgICAgICAgbGV0IGRp
bWVuc2lvbiA9IDM7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF1bMF0ubGVuZ3RoOwor
ICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0
aCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGEubGVuZ3Ro
OworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IDE7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwg
d2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwg
ZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1bMF1bMF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdo
dEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXVsw
XS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKworICAgIGVsZW1lbnQo
bGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVts
ZXZlbF1ba11bal1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGss
IGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xldmVsXVtrXVtqXVtpXSA9
IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZUN1YmUgZXh0ZW5kcyBUZXh0dXJlIHsK
KyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0
YSIgaXMgYW4gYXJyYXkgb2YgNiAyRCB0ZXh0dXJlcy4KKyAgICAgICAgLy8gQWxsIHRleHR1cmVz
IG11c3QgaGF2ZSB0aGUgc2FtZSB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgYW5kIG51bWJlciBvZiBt
aXBtYXBzLgorCisgICAgICAgIGxldCBkaW1lbnNpb24gPSAyOworICAgICAgICBsZXQgd2lkdGgg
PSBkYXRhWzBdWzBdWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRhdGFbMF1bMF0u
bGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9
IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOwor
ICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50
LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZl
bChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bbGV2ZWxdWzBdLmxl
bmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRM
ZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1l
bnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0
YVtsYXllcl1bbGV2ZWxdW2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxl
dmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsYXllcl1bbGV2
ZWxdW2pdW2ldID0gdmFsdWU7CisgICAgfQorfQorCitsZXQgVGV4dHVyZURlcHRoQ3ViZSA9IFRl
eHR1cmVDdWJlOworCitjbGFzcyBUZXh0dXJlMURSVyBleHRlbmRzIFRleHR1cmUgeworICAgIGNv
bnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBh
biBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBhIHNj
YWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRoIG11
c3QgYmUgYSBwb3dlci1vZi10d28uCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDE7CisgICAg
ICAgIGxldCB3aWR0aCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gMTsKKyAg
ICAgICAgbGV0IGRlcHRoID0gMTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSAxOworICAgICAg
ICBsZXQgbGF5ZXJDb3VudCA9IDE7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhl
aWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7Cisg
ICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRo
aXMuZGF0YS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7
CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAg
ICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVs
LCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtpXTsKKyAgICB9CisK
KyAgICBzZXRFbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAg
ICAgICB0aGlzLmRhdGFbaV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUxREFy
cmF5UlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEp
CisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgMUQgUlcgdGV4dHVyZXMu
CisgICAgICAgIC8vIEFsbCB0ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNhbWUgc2l6ZS4KKworICAg
ICAgICBsZXQgZGltZW5zaW9uID0gMTsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXS5sZW5n
dGg7CisgICAgICAgIGxldCBoZWlnaHQgPSAxOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAg
ICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5s
ZW5ndGg7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxl
dmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lk
dGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXS5sZW5n
dGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJl
dHVybiAxOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAg
IHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsYXllcl1baV07CisgICAgfQorCisgICAg
c2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAg
dGhpcy5kYXRhW2xheWVyXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTJE
UlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisg
ICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYSByZWN0YW5ndWxhciBhcnJheSBvZiByb3dzLCB3
aGVyZSBlYWNoIHJvdyBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBl
bGVtZW50IG1heSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAg
ICAgLy8gVGhlIHdpZHRoIGFuZCBoZWlnaHQgbXVzdCBiZSBwb3dlcnMtb2YtdHdvLgorCisgICAg
ICAgIGxldCBkaW1lbnNpb24gPSAyOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdLmxlbmd0
aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGgg
PSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7CisgICAgICAgIGxldCBsYXllckNvdW50
ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2
ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0
aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdLmxlbmd0
aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHRoaXMuZGF0YS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2
ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2pdW2ldOworICAg
IH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7
CisgICAgICAgIHRoaXMuZGF0YVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworbGV0IFRleHR1
cmVEZXB0aDJEUlcgPSBUZXh0dXJlMkRSVzsKKworY2xhc3MgVGV4dHVyZTJEQXJyYXlSVyBleHRl
bmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7Cisg
ICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiAyRCBSVyB0ZXh0dXJlcy4KKyAgICAgICAg
Ly8gQWxsIHRleHR1cmVzIG11c3QgaGF2ZSB0aGUgc2FtZSB3aWR0aCBhbmQgaGVpZ2h0LgorCisg
ICAgICAgIGxldCBkaW1lbnNpb24gPSAyOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBd
Lmxlbmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBs
ZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7CisgICAgICAgIGxldCBs
YXllckNvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgs
IGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7
CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMuZGF0YVswXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZl
bCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF0ubGVuZ3RoOworICAgIH0KKwor
ICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0K
KworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHRoaXMuZGF0YVtsYXllcl1bal1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXll
ciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVy
XVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworbGV0IFRleHR1cmVEZXB0aDJEQXJyYXlSVyA9
IFRleHR1cmUyREFycmF5UlcKKworY2xhc3MgVGV4dHVyZTNEUlcgZXh0ZW5kcyBUZXh0dXJlIHsK
KyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0
YSIgaXMgYW4gYXJyYXkgb2YgZGVwdGggc2xpY2VzLCBlYWNoIGRlcHRoIHNsaWNlIGlzIGFuIGFy
cmF5IG9mIHJvd3MsIGFuZCBlYWNoIHJvdyBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAg
ICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2Nh
bGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRoLCBoZWlnaHQsIGFuZCBkZXB0aCBtdXN0IGJlIHBv
d2Vycy1vZi10d28uCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDM7CisgICAgICAgIGxldCB3
aWR0aCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXS5s
ZW5ndGg7CisgICAgICAgIGxldCBkZXB0aCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgbGV2
ZWxDb3VudCA9IDE7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIo
ZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwg
aW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAg
eworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBo
ZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXS5s
ZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuZGF0YS5sZW5ndGg7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2
ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2tdW2pdW2ldOwor
ICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAg
ICB7CisgICAgICAgIHRoaXMuZGF0YVtrXVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30KZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1cmVPcGVyYXRpb25zLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMmRhZGI4NTAwOTA0MTAxYmZlNGI0NzgwMjg5NTMwOWRlZThkMTc4MgotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1cmVPcGVyYXRp
b25zLmpzCkBAIC0wLDAgKzEsNzg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKyJ1c2Ugc3RyaWN0IjsKKworZnVuY3Rpb24gZGVwdGhDb21wYXJlT3BlcmF0
aW9uKGRyZWYsIGQsIGNvbXBhcmVGdW5jdGlvbikKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNl
Y3Rpb24gMTUuMy40CisgICAgc3dpdGNoIChjb21wYXJlRnVuY3Rpb24pIHsKKyAgICAgICAgY2Fz
ZSAibmV2ZXIiOgorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGNhc2UgImxlc3MiOgor
ICAgICAgICAgICAgcmV0dXJuIGRyZWYgPCBkID8gMSA6IDA7CisgICAgICAgIGNhc2UgImVxdWFs
IjoKKyAgICAgICAgICAgIHJldHVybiBkcmVmID09IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAi
bGVzc0VxdWFsIjoKKyAgICAgICAgICAgIHJldHVybiBkcmVmIDw9IGQgPyAxIDogMDsKKyAgICAg
ICAgY2FzZSAiZ3JlYXRlciI6CisgICAgICAgICAgICByZXR1cm4gZHJlZiA+IGQgPyAxIDogMDsK
KyAgICAgICAgY2FzZSAibm90RXF1YWwiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYgIT0gZCA/
IDEgOiAwOworICAgICAgICBjYXNlICJncmVhdGVyRXF1YWwiOgorICAgICAgICAgICAgcmV0dXJu
IGRyZWYgPj0gZCA/IDEgOiAwOworICAgICAgICBjYXNlICJhbHdheXMiOgorICAgICAgICAgICAg
cmV0dXJuIDE7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
IlVua25vd24gZGVwdGggY29tcGFyaXNvbiBmdW5jdGlvbiIpOworICAgIH0KK30KKworZnVuY3Rp
b24gY29udmVyc2lvblRvUkdCQSh2YWx1ZSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rp
b24gMTUuMy41CisgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAgbGV0
IHJlc3VsdCA9IFtdOworICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsg
KytpKQorICAgICAgICAgICAgcmVzdWx0LnB1c2godmFsdWVbaV0pOworICAgICAgICB3aGlsZSAo
cmVzdWx0Lmxlbmd0aCAhPSA0KQorICAgICAgICAgICAgcmVzdWx0LnB1c2gocmVzdWx0Lmxlbmd0
aCA9PSAzID8gMSA6IDApOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0gZWxzZQorICAg
ICAgICByZXR1cm4gW3ZhbHVlLCAwLCAwLCAxXTsKK30KKworZnVuY3Rpb24gcHJvamVjdGlvbk9w
ZXJhdGlvbihzLCB0LCByLCBkcmVmLCBxKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlv
biAxNS42LjEKKyAgICByZXR1cm4gW3MgLyBxLCB0IC8gcSwgciAvIHEsIGRyZWYgIT0gdW5kZWZp
bmVkID8gZHJlZiAvIHEgOiB1bmRlZmluZWRdOworfQorCitmdW5jdGlvbiBjdWJlTWFwRmFjZVNl
bGVjdGlvbihzLCB0LCByLCBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJ4V2l0aFJl
c3BlY3RUb1ksIHBhcnRpYWxSeVdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUnlXaXRoUmVzcGVjdFRv
WSwgcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZKQorewor
ICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjQKKyAgICBsZXQgcnggPSBzOworICAg
IGxldCByeSA9IHQ7CisgICAgbGV0IHJ6ID0gcjsKKyAgICBsZXQgd2lubmVyID0gMDsKKyAgICBp
ZiAoTWF0aC5hYnMocnopID49IE1hdGguYWJzKHJ5KSAmJiBNYXRoLmFicyhyeikgPj0gTWF0aC5h
YnMocngpKQorICAgICAgICB3aW5uZXIgPSAyOworICAgIGVsc2UgaWYgKE1hdGguYWJzKHJ5KSA+
PSBNYXRoLmFicyhyeCkgJiYgTWF0aC5hYnMocnkpID49IE1hdGguYWJzKHJ6KSkKKyAgICAgICAg
d2lubmVyID0gMTsKKworICAgIGxldCBsYXllck51bWJlcjsKKyAgICBsZXQgc2M7CisgICAgbGV0
IHRjOworICAgIGxldCByYzsKKyAgICBsZXQgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1g7CisgICAg
bGV0IHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZOworICAgIGxldCBwYXJ0aWFsVGNXaXRoUmVzcGVj
dFRvWDsKKyAgICBsZXQgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1k7CisgICAgbGV0IHBhcnRpYWxS
Y1dpdGhSZXNwZWN0VG9YOworICAgIGxldCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWTsKKyAgICBp
ZiAod2lubmVyID09IDAgJiYgcnggPj0gMCkgeworICAgICAgICBsYXllck51bWJlciA9IDA7Cisg
ICAgICAgIHNjID0gLXJ6OworICAgICAgICB0YyA9IC1yeTsKKyAgICAgICAgcmMgPSByeDsKKyAg
ICAgICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7
CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0
VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVz
cGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0
aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ4
V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlh
bFJ4V2l0aFJlc3BlY3RUb1k7CisgICAgfSBlbHNlIGlmICh3aW5uZXIgPT0gMCkgeworICAgICAg
ICBsYXllck51bWJlciA9IDE7CisgICAgICAgIHNjID0gcno7CisgICAgICAgIHRjID0gLXJ5Owor
ICAgICAgICByYyA9IHJ4OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IHBhcnRp
YWxSeldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9IHBh
cnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCA9
IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RU
b1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNw
ZWN0VG9YID0gLXBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsUmNXaXRo
UmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAgICB9IGVsc2UgaWYgKHdp
bm5lciA9PSAxICYmIHJ5ID49IDApIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSAyOworICAgICAg
ICBzYyA9IHJ4OworICAgICAgICB0YyA9IC1yejsKKyAgICAgICAgcmMgPSByeTsKKyAgICAgICAg
cGFydGlhbFNjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsKKyAgICAg
ICAgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAg
ICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsK
KyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRv
WTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnlXaXRoUmVzcGVj
dFRvWDsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnlXaXRoUmVz
cGVjdFRvWTsKKyAgICB9IGVsc2UgaWYgKHdpbm5lciA9PSAxKSB7CisgICAgICAgIGxheWVyTnVt
YmVyID0gMzsKKyAgICAgICAgc2MgPSByeDsKKyAgICAgICAgdGMgPSAtcno7CisgICAgICAgIHJj
ID0gcnk7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ4V2l0aFJl
c3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ4V2l0
aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxS
eldpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0
aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSAt
cGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9Z
ID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgIH0gZWxzZSBpZiAod2lubmVyID09IDIg
JiYgcnogPj0gMCkgeworICAgICAgICBsYXllck51bWJlciA9IDQ7CisgICAgICAgIHNjID0gcng7
CisgICAgICAgIHRjID0gLXJ5OworICAgICAgICByYyA9IHJ6OworICAgICAgICBwYXJ0aWFsU2NX
aXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFs
U2NXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0
aWFsVGNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAg
cGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAg
ICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7Cisg
ICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSA1OworICAgICAgICBzYyA9IC1y
eDsKKyAgICAgICAgdGMgPSAtcnk7CisgICAgICAgIHJjID0gcno7CisgICAgICAgIHBhcnRpYWxT
Y1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0
aWFsU2NXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAg
cGFydGlhbFRjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAg
ICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOwor
ICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRv
WDsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ6V2l0aFJlc3Bl
Y3RUb1k7CisgICAgfQorICAgIHJldHVybiBbbGF5ZXJOdW1iZXIsIHNjLCB0YywgcmMsIHBhcnRp
YWxTY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRjV2l0
aFJlc3BlY3RUb1gsIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUmNXaXRoUmVzcGVj
dFRvWCwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ldCit9CisKK2Z1bmN0aW9uIGN1YmVNYXBDb29y
ZGluYXRlVHJhbnNmb3JtYXRpb24oc2MsIHRjLCByYykKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgz
IHNlY3Rpb24gMTUuNi41CisgICAgbGV0IHNGYWNlID0gKDEgLyAyKSAqIHNjIC8gTWF0aC5hYnMo
cmMpICsgKDEgLyAyKTsKKyAgICBsZXQgdEZhY2UgPSAoMSAvIDIpICogdGMgLyBNYXRoLmFicyhy
YykgKyAoMSAvIDIpOworICAgIHJldHVybiBbc0ZhY2UsIHRGYWNlXTsKK30KKworZnVuY3Rpb24g
Y3ViZU1hcERlcml2YXRpdmVUcmFuc2Zvcm1hdGlvbihzYywgdGMsIHJjLCBwYXJ0aWFsU2NXaXRo
UmVzcGVjdFRvWCwgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxUY1dpdGhSZXNwZWN0
VG9YLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gsIHBh
cnRpYWxSY1dpdGhSZXNwZWN0VG9ZKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAx
NS42LjYKKyAgICBsZXQgcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1ggPSAoMSAvIDIpICogKChN
YXRoLmFicyhyYykgKiBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCAtIHNjICogcGFydGlhbFJjV2l0
aFJlc3BlY3RUb1gpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICBsZXQgcGFydGlhbFNGYWNlV2l0
aFJlc3BlY3RUb1kgPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFsU2NXaXRoUmVz
cGVjdFRvWSAtIHNjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kpIC8gTWF0aC5wb3cocmMsIDIp
KTsKKyAgICBsZXQgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1ggPSAoMSAvIDIpICogKChNYXRo
LmFicyhyYykgKiBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCAtIHRjICogcGFydGlhbFJjV2l0aFJl
c3BlY3RUb1gpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICBsZXQgcGFydGlhbFRGYWNlV2l0aFJl
c3BlY3RUb1kgPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFsVGNXaXRoUmVzcGVj
dFRvWSAtIHRjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kpIC8gTWF0aC5wb3cocmMsIDIpKTsK
KyAgICByZXR1cm4gW3BhcnRpYWxTRmFjZVdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU0ZhY2VXaXRo
UmVzcGVjdFRvWSwgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxURmFjZVdpdGhS
ZXNwZWN0VG9ZXTsKK30KKworZnVuY3Rpb24gc2NhbGVGYWN0b3JPcGVyYXRpb24oZGV2aWNlTWF4
QW5pc290cm9weSwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIHNhbXBsZXJNYXhBbmlzb3Ryb3B5LCBw
YXJ0aWFsU1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUldp
dGhSZXNwZWN0VG9YLCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVFdpdGhSZXNwZWN0
VG9ZLCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9ZKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2Vj
dGlvbiAxNS42LjcKKyAgICBsZXQgbXV4ID0gTWF0aC5hYnMocGFydGlhbFNXaXRoUmVzcGVjdFRv
WCkgKiB3aWR0aDsKKyAgICBsZXQgbXZ4ID0gTWF0aC5hYnMocGFydGlhbFRXaXRoUmVzcGVjdFRv
WCkgKiBoZWlnaHQ7CisgICAgbGV0IG13eCA9IE1hdGguYWJzKHBhcnRpYWxSV2l0aFJlc3BlY3RU
b1gpICogZGVwdGg7CisgICAgbGV0IG11eSA9IE1hdGguYWJzKHBhcnRpYWxTV2l0aFJlc3BlY3RU
b1kpICogd2lkdGg7CisgICAgbGV0IG12eSA9IE1hdGguYWJzKHBhcnRpYWxUV2l0aFJlc3BlY3RU
b1kpICogaGVpZ2h0OworICAgIGxldCBtd3kgPSBNYXRoLmFicyhwYXJ0aWFsUldpdGhSZXNwZWN0
VG9ZKSAqIGRlcHRoOworCisgICAgLy8gSSBtYWRlIHRoaXMgdXAuIFRoZSBmb3JtdWxhIGlzbid0
IGxpc3RlZCBpbiB0aGUgc3BlYy4KKyAgICBsZXQgZnggPSBNYXRoLnNxcnQobXV4ICogbXV4ICsg
bXZ4ICogbXZ4ICsgbXd4ICogbXd4KTsKKyAgICBsZXQgZnkgPSBNYXRoLnNxcnQobXV5ICogbXV5
ICsgbXZ5ICogbXZ5ICsgbXd5ICogbXd5KTsKKworICAgIGxldCByaG9YID0gZng7CisgICAgbGV0
IHJob1kgPSBmeTsKKyAgICBsZXQgcmhvTWF4ID0gTWF0aC5tYXgocmhvWCwgcmhvWSk7CisgICAg
bGV0IHJob01pbiA9IE1hdGgubWluKHJob1gsIHJob1kpOworCisgICAgbGV0IG1heEFuaXNvID0g
TWF0aC5taW4oc2FtcGxlck1heEFuaXNvdHJvcHksIGRldmljZU1heEFuaXNvdHJvcHkpOworCisg
ICAgbGV0IGV0YTsKKyAgICBpZiAocmhvTWF4ID09IDAgJiYgcmhvTWluID09IDApCisgICAgICAg
IGV0YSA9IDE7CisgICAgZWxzZSBpZiAocmhvTWluID09IDApCisgICAgICAgIGV0YSA9IG1heEFu
aXNvOworICAgIGVsc2UKKyAgICAgICAgZXRhID0gTWF0aC5taW4ocmhvTWF4IC8gcmhvTWluLCBt
YXhBbmlzbyk7CisKKyAgICBsZXQgTiA9IE1hdGguY2VpbChldGEpOworICAgIHJldHVybiBbcmhv
TWF4LCByaG9NaW4sIGV0YSwgTl07Cit9CisKK2Z1bmN0aW9uIGxldmVsT2ZEZXRhaWxPcGVyYXRp
b24oZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMsIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsIGxvZE1p
bkZyb21GdW5jdGlvbk9wZXJhbmQsIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLCBzYW1wbGVyQmlh
cywgc2FtcGxlckxvZE1pbiwgc2FtcGxlckxvZE1heCwgcmhvTWF4LCBldGEpCit7CisgICAgLy8g
VnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjYuNworICAgIGlmIChiaWFzRnJvbUZ1bmN0aW9uT3Bl
cmFuZCA9PSB1bmRlZmluZWQpCisgICAgICAgIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kID0gMDsK
KworICAgIGxldCBsYW1iZGFCYXNlID0gbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCAhPSB1bmRlZmlu
ZWQgPyBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kIDogTWF0aC5sb2cyKHJob01heCAvIGV0YSk7Cisg
ICAgbGV0IGxhbWJkYVByaW1lID0gbGFtYmRhQmFzZSArIE1hdGgubWluKE1hdGgubWF4KHNhbXBs
ZXJCaWFzICsgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIC1kZXZpY2VNYXhTYW1wbGVyTG9kQmlh
cyksIGRldmljZU1heFNhbXBsZXJMb2RCaWFzKTsKKyAgICBsZXQgbG9kTWluID0gTWF0aC5tYXgo
c2FtcGxlckxvZE1pbiwgbG9kTWluRnJvbUZ1bmN0aW9uT3BlcmFuZCk7CisgICAgbGV0IGxvZE1h
eCA9IHNhbXBsZXJMb2RNYXg7CisgICAgbGV0IGxhbWJkYTsKKyAgICBpZiAobGFtYmRhUHJpbWUg
PiBsb2RNYXgpCisgICAgICAgIGxhbWJkYSA9IGxvZE1heDsKKyAgICBlbHNlIGlmIChsb2RNaW4g
PD0gbGFtYmRhUHJpbWUgJiYgbGFtYmRhUHJpbWUgPD0gbG9kTWF4KQorICAgICAgICBsYW1iZGEg
PSBsYW1iZGFQcmltZTsKKyAgICBlbHNlIGlmIChsYW1iZGFQcmltZSA8IGxvZE1pbikKKyAgICAg
ICAgbGFtYmRhID0gbG9kTWluOworICAgIGVsc2UKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJs
b2RNaW4gPj0gbG9kTWF4Iik7CisgICAgcmV0dXJuIGxhbWJkYTsKK30KKworZnVuY3Rpb24gaW1h
Z2VMZXZlbFNlbGVjdGlvbihiYXNlTWlwTGV2ZWwsIGxldmVsQ291bnQsIG1pcG1hcE1vZGUsIGxh
bWJkYSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi43CisgICAgZnVuY3Rp
b24gbmVhcmVzdChkUHJpbWUpCisgICAgeworICAgICAgICByZXR1cm4gTWF0aC5jZWlsKGRQcmlt
ZSArIDAuNSkgLSAxOworICAgIH0KKworICAgIGxldCBxID0gbGV2ZWxDb3VudCAtIDE7CisgICAg
bGV0IGRQcmltZSA9IGJhc2VNaXBMZXZlbCArIE1hdGgubWluKE1hdGgubWF4KGxhbWJkYSwgMCks
IHEpOworICAgIGxldCBkbDsKKyAgICBpZiAobWlwbWFwTW9kZSA9PSAibmVhcmVzdCIpCisgICAg
ICAgIGRsID0gbmVhcmVzdChkUHJpbWUpOworICAgIGVsc2UKKyAgICAgICAgZGwgPSBkUHJpbWU7
CisgICAgaWYgKG1pcG1hcE1vZGUgPT0gIm5lYXJlc3QiKQorICAgICAgICByZXR1cm4gZGw7Cisg
ICAgZWxzZSB7CisgICAgICAgIGxldCBkSGkgPSBNYXRoLmZsb29yKGRsKTsKKyAgICAgICAgbGV0
IGRMb3cgPSBNYXRoLm1pbihkSGkgKyAxLCBxKTsKKyAgICAgICAgbGV0IGRlbHRhID0gZGwgLSBk
SGk7CisgICAgICAgIHJldHVybiBbZEhpLCBkTG93LCBkZWx0YV07CisgICAgfQorfQorCitmdW5j
dGlvbiBzdHJxYVRvVVZXQVRyYW5zZm9ybWF0aW9uKHMsIHQsIHIsIHdpZHRoLCBoZWlnaHQsIGRl
cHRoKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjgKKyAgICBsZXQgdSA9
IHMgKiB3aWR0aDsKKyAgICBsZXQgdiA9IHQgKiBoZWlnaHQ7CisgICAgbGV0IHcgPSByICogZGVw
dGg7CisgICAgcmV0dXJuIFt1LCB2LCB3XTsKK30KKworZnVuY3Rpb24gdXZ3YVRvSUpLTE5UcmFu
c2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJTZWxlY3Rpb24obGF5ZXJDb3VudCwgYmFzZUFycmF5TGF5
ZXIsIGZpbHRlciwgdSwgdiwgdywgYSwgZGVsdGFJLCBkZWx0YUosIGRlbHRhSykKK3sKKyAgICAv
LyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNy4xCisKKyAgICBpZiAoZGVsdGFJID09IHVuZGVm
aW5lZCkKKyAgICAgICAgZGVsdGFJID0gMDsKKyAgICBpZiAoZGVsdGFKID09IHVuZGVmaW5lZCkK
KyAgICAgICAgZGVsdGFKID0gMDsKKyAgICBpZiAoZGVsdGFLID09IHVuZGVmaW5lZCkKKyAgICAg
ICAgZGVsdGFLID0gMDsKKworICAgIGZ1bmN0aW9uIHJuZShhKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIE1hdGguZmxvb3IoYSArIDAuNSk7CisgICAgfQorICAgIGxldCBsID0gTWF0aC5taW4oTWF0
aC5tYXgocm5lKGEpLCAwKSwgbGF5ZXJDb3VudCAtIDEpICsgYmFzZUFycmF5TGF5ZXI7CisgICAg
bGV0IGk7CisgICAgbGV0IGo7CisgICAgbGV0IGs7CisgICAgaWYgKGZpbHRlciA9PSAibmVhcmVz
dCIpIHsKKyAgICAgICAgaSA9IE1hdGguZmxvb3IodSk7CisgICAgICAgIGogPSBNYXRoLmZsb29y
KHYpOworICAgICAgICBrID0gTWF0aC5mbG9vcih3KTsKKyAgICAgICAgCisgICAgICAgIGkgKz0g
ZGVsdGFJOworICAgICAgICBqICs9IGRlbHRhSjsKKyAgICAgICAgayArPSBkZWx0YUs7CisgICAg
ICAgIAorICAgICAgICByZXR1cm4gW2ksIGosIGssIGxdOworICAgIH0gZWxzZSB7CisgICAgICAg
IGlmIChmaWx0ZXIgIT0gImxpbmVhciIpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVu
a25vd24gZmlsdGVyIik7CisgICAgICAgIGxldCBpMCA9IE1hdGguZmxvb3IodSAtIDAuNSk7Cisg
ICAgICAgIGxldCBpMSA9IGkwICsgMTsKKyAgICAgICAgbGV0IGowID0gTWF0aC5mbG9vcih2IC0g
MC41KTsKKyAgICAgICAgbGV0IGoxID0gajAgKyAxOworICAgICAgICBsZXQgazAgPSBNYXRoLmZs
b29yKHcgLSAwLjUpOworICAgICAgICBsZXQgazEgPSBrMCArIDE7CisgICAgICAgIGxldCBhbHBo
YSA9ICh1IC0gMC41KSAtIGkwOworICAgICAgICBsZXQgYmV0YSA9ICh2IC0gMC41KSAtIGowOwor
ICAgICAgICBsZXQgZ2FtbWEgPSAodyAtIDAuNSkgLSBrMDsKKyAgICAgICAgCisgICAgICAgIGkw
ICs9IGRlbHRhSTsKKyAgICAgICAgaTEgKz0gZGVsdGFJOworICAgICAgICBqMCArPSBkZWx0YUo7
CisgICAgICAgIGoxICs9IGRlbHRhSjsKKyAgICAgICAgazAgKz0gZGVsdGFLOworICAgICAgICBr
MSArPSBkZWx0YUs7CisgICAgICAgIAorICAgICAgICByZXR1cm4gW2kwLCBpMSwgajAsIGoxLCBr
MCwgazEsIGwsIGFscGhhLCBiZXRhLCBnYW1tYV07CisgICAgfQorfQorCitmdW5jdGlvbiBpbnRl
Z2VyVGV4ZWxDb29yZGluYXRlT3BlcmF0aW9ucyhiYXNlTWlwTGV2ZWwsIGxldmVsQ291bnQsIGxl
dmVsQmFzZSwgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgz
IHNlY3Rpb24gMTUuOAorICAgIGxldCBkID0gbGV2ZWxCYXNlICsgbG9kRnJvbUZ1bmN0aW9uT3Bl
cmFuZDsKKyAgICBpZiAoZCA8IGJhc2VNaXBMZXZlbCB8fCBkID49IGJhc2VNaXBMZXZlbCArIGxl
dmVsQ291bnQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiU2VsZWN0ZWQgbGV2ZWwgZG9lcyBu
b3QgbGllIGluc2lkZSB0aGUgaW1hZ2UiKTsKKyAgICByZXR1cm4gZDsKK30KKworZnVuY3Rpb24g
d3JhcHBpbmdPcGVyYXRpb24od2lkdGgsIGhlaWdodCwgZGVwdGgsIGFkZHJlc3NNb2RlVSwgYWRk
cmVzc01vZGVWLCBhZGRyZXNzTW9kZVcsIGksIGosIGspCit7CisgICAgLy8gVnVsa2FuIDEuMS44
MyBzZWN0aW9uIDE1LjkuMQorICAgIC8vIEZJWE1FOiAiQ3ViZSBpbWFnZXMgaWdub3JlIHRoZSB3
cmFwIG1vZGVzIHNwZWNpZmllZCBpbiB0aGUgc2FtcGxlci4gSW5zdGVhZCwgaWYgVktfRklMVEVS
X05FQVJFU1QgaXMgdXNlZCB3aXRoaW4gYSBtaXAgbGV2ZWwgdGhlbiBWS19TQU1QTEVSX0FERFJF
U1NfTU9ERV9DTEFNUF9UT19FREdFIGlzIHVzZWQsIGFuZCBpZiBWS19GSUxURVJfTElORUFSIGlz
IHVzZWQgd2l0aGluIGEgbWlwIGxldmVsIHRoZW4gc2FtcGxpbmcgYXQgdGhlIGVkZ2VzIGlzIHBl
cmZvcm1lZCBhcyBkZXNjcmliZWQgZWFybGllciBpbiB0aGUgQ3ViZSBtYXAgZWRnZSBoYW5kbGlu
ZyBzZWN0aW9uLiIKKyAgICBmdW5jdGlvbiB0cmFuc2Zvcm0oYWRkcmVzc01vZGUsIHNpemUsIGkp
CisgICAgeworICAgICAgICBmdW5jdGlvbiBtaXJyb3IobikgeworICAgICAgICAgICAgaWYgKG4g
Pj0gMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gbjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICByZXR1cm4gLSgxICsgbik7CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoIChh
ZGRyZXNzTW9kZSkgeworICAgICAgICAgICAgY2FzZSAiY2xhbXBUb0VkZ2UiOgorICAgICAgICAg
ICAgICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1heChpLCAwKSwgc2l6ZSAtIDEpOworICAgICAg
ICAgICAgY2FzZSAicmVwZWF0IjoKKyAgICAgICAgICAgICAgICByZXR1cm4gaSAlIHNpemU7Cisg
ICAgICAgICAgICBjYXNlICJtaXJyb3JSZXBlYXQiOgorICAgICAgICAgICAgICAgIHJldHVybiAo
c2l6ZSAtIDEpIC0gbWlycm9yKChpICUgKDIgKiBzaXplKSkgLSBzaXplKTsKKyAgICAgICAgICAg
IGNhc2UgImNsYW1wVG9Cb3JkZXJDb2xvciI6CisgICAgICAgICAgICAgICAgcmV0dXJuIE1hdGgu
bWluKE1hdGgubWF4KGksIC0xKSwgc2l6ZSk7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBhZGRyZXNzIG1vZGUiKTsKKyAgICAg
ICAgfQorICAgIH0KKyAgICByZXR1cm4gW3RyYW5zZm9ybShhZGRyZXNzTW9kZVUsIHdpZHRoLCBp
KSwgdHJhbnNmb3JtKGFkZHJlc3NNb2RlViwgaGVpZ2h0LCBqKSwgdHJhbnNmb3JtKGFkZHJlc3NN
b2RlVywgZGVwdGgsIGspXTsKK30KKworZnVuY3Rpb24gY2FsY3VsYXRlTGFtYmRhKGRldmljZU1h
eEFuaXNvdHJvcHksIGRldmljZU1heFNhbXBsZXJMb2RCaWFzLCB0ZXh0dXJlLCBzYW1wbGVyLCBz
YW1wbGVyQmlhcywgcywgdCwgciwgYSwgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwgbG9kTWluRnJv
bUZ1bmN0aW9uT3BlcmFuZCwgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIGRkeCwgZGR5KQorewor
ICAgIGxldCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9YID0gMDsKKyAgICBsZXQgcGFydGlhbFRXaXRo
UmVzcGVjdFRvWCA9IDA7CisgICAgbGV0IHBhcnRpYWxSV2l0aFJlc3BlY3RUb1ggPSAwOworICAg
IGlmIChkZHggIT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1gg
PSBkZHhbMF07CisgICAgICAgIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1ggPSBkZHhbMV07CisgICAg
ICAgIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1ggPSBkZHhbMl07CisgICAgfQorICAgIGxldCBwYXJ0
aWFsU1dpdGhSZXNwZWN0VG9ZID0gMDsKKyAgICBsZXQgcGFydGlhbFRXaXRoUmVzcGVjdFRvWSA9
IDA7CisgICAgbGV0IHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kgPSAwOworICAgIGlmIChkZHkgIT0g
dW5kZWZpbmVkKSB7CisgICAgICAgIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1kgPSBkZHlbMF07Cisg
ICAgICAgIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1kgPSBkZHlbMV07CisgICAgICAgIHBhcnRpYWxS
V2l0aFJlc3BlY3RUb1kgPSBkZHlbMl07CisgICAgfQorCisgICAgaWYgKHRleHR1cmUgaW5zdGFu
Y2VvZiBUZXh0dXJlQ3ViZSkgeworICAgICAgICAvLyBGSVhNRTogSGFuZGxlIGN1YmVtYXAgZWRn
ZS9jb3JuZXJzIGNvcnJlY3RseQorICAgICAgICBsZXQgW2xheWVyTnVtYmVyLCBzYywgdGMsIHJj
LCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ksIHBhcnRp
YWxUY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJjV2l0
aFJlc3BlY3RUb1gsIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZXSA9IGN1YmVNYXBGYWNlU2VsZWN0
aW9uKHMsIHQsIHIsIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTV2l0aFJlc3BlY3RU
b1ksIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1ksIHBhcnRp
YWxSV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kpCisgICAgICAgIGxldCBb
c0ZhY2UsIHRGYWNlXSA9IGN1YmVNYXBDb29yZGluYXRlVHJhbnNmb3JtYXRpb24oc2MsIHRjLCBy
YykKKyAgICAgICAgbGV0IFtwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNGYWNl
V2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVEZhY2VX
aXRoUmVzcGVjdFRvWV0gPSBjdWJlTWFwRGVyaXZhdGl2ZVRyYW5zZm9ybWF0aW9uKHNjLCB0Yywg
cmMsIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSwgcGFy
dGlhbFRjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUmNX
aXRoUmVzcGVjdFRvWCwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1kpCisgICAgICAgIHMgPSBzRmFj
ZTsKKyAgICAgICAgdCA9IHRGYWNlOworICAgICAgICByID0gMDsKKyAgICAgICAgYSA9IGxheWVy
TnVtYmVyOworICAgICAgICBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFNGYWNlV2l0
aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsU0Zh
Y2VXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRXaXRoUmVzcGVjdFRvWCA9IHBhcnRp
YWxURmFjZVdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZID0g
cGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxSV2l0aFJlc3BlY3RU
b1ggPSAwOworICAgICAgICBwYXJ0aWFsUldpdGhSZXNwZWN0VG9ZID0gMDsKKyAgICB9CisKKyAg
ICBsZXQgW3Job01heCwgcmhvTWluLCBldGEsIE5dID0gc2NhbGVGYWN0b3JPcGVyYXRpb24oZGV2
aWNlTWF4QW5pc290cm9weSwgdGV4dHVyZS53aWR0aCwgdGV4dHVyZS5oZWlnaHQsIHRleHR1cmUu
ZGVwdGgsIHNhbXBsZXIubWF4QW5pc290cm9weSwgcGFydGlhbFNXaXRoUmVzcGVjdFRvWCwgcGFy
dGlhbFRXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNXaXRo
UmVzcGVjdFRvWSwgcGFydGlhbFRXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJXaXRoUmVzcGVjdFRv
WSk7CisgICAgbGV0IGxhbWJkYSA9IGxldmVsT2ZEZXRhaWxPcGVyYXRpb24oZGV2aWNlTWF4U2Ft
cGxlckxvZEJpYXMsIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsIGxvZE1pbkZyb21GdW5jdGlvbk9w
ZXJhbmQsIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLCBzYW1wbGVyQmlhcywgc2FtcGxlci5sb2RN
aW5DbGFtcCwgc2FtcGxlci5sb2RNYXhDbGFtcCwgcmhvTWF4LCBldGEpOworICAgIHJldHVybiBb
cywgdCwgciwgYSwgbGFtYmRhXTsKK30KKworZnVuY3Rpb24gY29tcHV0ZVRhdShsZXZlbCwgYmFz
ZUFycmF5TGF5ZXIsIHRleHR1cmUsIHNhbXBsZXIsIGFkZHJlc3NNb2RlVSwgYWRkcmVzc01vZGVW
LCBhZGRyZXNzTW9kZVcsIGZpbHRlciwgcywgdCwgciwgYSwgZGVsdGFJLCBkZWx0YUosIGRlbHRh
SykKK3sKKyAgICBmdW5jdGlvbiBhY2Nlc3NDb2xvcih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbCwg
aSwgaiwgaykKKyAgICB7CisgICAgICAgIGZ1bmN0aW9uIHNob3VsZEJlQm9yZGVyKHZhbHVlLCBt
YXgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IC0xIHx8IHZhbHVlID4gbWF4
KQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiT3V0LW9mLWJvdW5kcyB0ZXh0dXJl
IHJlYWQiKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PSAtMSB8fCB2YWx1ZSA9PSBtYXg7
CisgICAgICAgIH0KKworICAgICAgICBsZXQgW3dyYXBwZWRJLCB3cmFwcGVkSiwgd3JhcHBlZEtd
ID0gd3JhcHBpbmdPcGVyYXRpb24od2lkdGgsIGhlaWdodCwgZGVwdGgsIGFkZHJlc3NNb2RlVSwg
YWRkcmVzc01vZGVWLCBhZGRyZXNzTW9kZVcsIGksIGosIGspCisgICAgICAgIGlmIChzaG91bGRC
ZUJvcmRlcih3cmFwcGVkSSwgd2lkdGgpIHx8IHNob3VsZEJlQm9yZGVyKHdyYXBwZWRKLCBoZWln
aHQpIHx8IHNob3VsZEJlQm9yZGVyKHdyYXBwZWRLLCBkZXB0aCkpCisgICAgICAgICAgICByZXR1
cm4gc2FtcGxlci5jYWxjdWxhdGVCb3JkZXJDb2xvcih0ZXh0dXJlLmlubmVyVHlwZSk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiB0ZXh0dXJlLmVsZW1lbnQobCwgbGV2ZWwsIHdy
YXBwZWRLLCB3cmFwcGVkSiwgd3JhcHBlZEkpOworICAgIH0KKworICAgIGxldCBbdSwgdiwgd10g
PSBzdHJxYVRvVVZXQVRyYW5zZm9ybWF0aW9uKHMsIHQsIHIsIHRleHR1cmUud2lkdGhBdExldmVs
KGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2
ZWwobGV2ZWwpKTsKKyAgICBpZiAoZmlsdGVyID09ICJuZWFyZXN0IikgeworICAgICAgICBsZXQg
W2ksIGosIGssIGxdID0gdXZ3YVRvSUpLTE5UcmFuc2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJTZWxl
Y3Rpb24odGV4dHVyZS5sYXllckNvdW50LCBiYXNlQXJyYXlMYXllciwgZmlsdGVyLCB1LCB2LCB3
LCBhLCBkZWx0YUksIGRlbHRhSiwgZGVsdGFLKTsKKyAgICAgICAgcmV0dXJuIGFjY2Vzc0NvbG9y
KHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVs
KSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpLCBqLCBrKTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBpZiAoZmlsdGVyICE9ICJsaW5lYXIiKQorICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJVbmtub3duIGZpbHRlciIpOworICAgICAgICBsZXQgW2kwLCBpMSwgajAsIGoxLCBr
MCwgazEsIGwsIGFscGhhLCBiZXRhLCBnYW1tYV0gPSB1dndhVG9JSktMTlRyYW5zZm9ybWF0aW9u
QW5kQXJyYXlMYXllclNlbGVjdGlvbih0ZXh0dXJlLmxheWVyQ291bnQsIGJhc2VBcnJheUxheWVy
LCBmaWx0ZXIsIHUsIHYsIHcsIGEsIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUspOworICAgICAgICBs
ZXQgY29sb3IwMDAgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRl
eHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwg
bCwgaTAsIGowLCBrMCk7CisgICAgICAgIGxldCBjb2xvcjEwMCA9IGFjY2Vzc0NvbG9yKHRleHR1
cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4
dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMSwgajAsIGswKTsKKyAgICAgICAgbGV0IGNv
bG9yMDEwID0gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJl
LmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGkw
LCBqMSwgazApOworICAgICAgICBsZXQgY29sb3IxMTAgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndp
ZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUu
ZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTEsIGoxLCBrMCk7CisgICAgICAgIGxldCBjb2xvcjAw
MSA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWln
aHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMCwgajAs
IGsxKTsKKyAgICAgICAgbGV0IGNvbG9yMTAxID0gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0
TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRo
QXRMZXZlbChsZXZlbCksIGwsIGkxLCBqMCwgazEpOworICAgICAgICBsZXQgY29sb3IwMTEgPSBh
Y2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRM
ZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTAsIGoxLCBrMSk7
CisgICAgICAgIGxldCBjb2xvcjExMSA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVs
KGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2
ZWwobGV2ZWwpLCBsLCBpMSwgajEsIGsxKTsKKyAgICAgICAgcmV0dXJuIFtjb2xvcjAwMCwgY29s
b3IxMDAsIGNvbG9yMDEwLCBjb2xvcjExMCwgY29sb3IwMDEsIGNvbG9yMTAxLCBjb2xvcjAxMSwg
Y29sb3IxMTEsIGFscGhhLCBiZXRhLCBnYW1tYV07CisgICAgfQorfQorCitmdW5jdGlvbiByZWR1
Y2UoLi4udmFsdWVzKQoreworICAgIGlmICh2YWx1ZXMubGVuZ3RoICUgMiAhPSAwKQorICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIkRvbid0IGhhdmUgYSB3ZWlnaHQgY29ycmVzcG9uZGluZyB0byBl
YWNoIHZhbHVlIik7CisgICAgaWYgKHZhbHVlcy5sZW5ndGggPCAyKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIkRvbid0IGhhdmUgZW5vdWdoIHRoaW5ncyB0byBjYWxjdWxhdGUgYW4gYXZlcmFn
ZSIpOworICAgIGxldCBzdW07CisgICAgaWYgKHZhbHVlc1sxXSBpbnN0YW5jZW9mIEFycmF5KSB7
CisgICAgICAgIHN1bSA9IFtdOworICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlc1sx
XS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHN1bS5wdXNoKDApOworICAgIH0gZWxzZQorICAg
ICAgICBzdW0gPSAwOworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aCAvIDI7
ICsraSkgeworICAgICAgICBsZXQgd2VpZ2h0ID0gdmFsdWVzWzIgKiBpXTsKKyAgICAgICAgbGV0
IGNvbG9yID0gdmFsdWVzWzIgKiBpICsgMV07CisgICAgICAgIGlmIChjb2xvciBpbnN0YW5jZW9m
IEFycmF5KSB7CisgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbG9yLmxlbmd0aDsg
KytpKQorICAgICAgICAgICAgICAgIHN1bVtpXSArPSB3ZWlnaHQgKiBjb2xvcltpXTsKKyAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICBzdW0gKz0gd2VpZ2h0ICogY29sb3I7CisgICAgfQorICAg
IHJldHVybiBzdW07Cit9CisKK2Z1bmN0aW9uIHRleGVsR2F0aGVyaW5nKAorICAgIGRldmljZU1h
eEFuaXNvdHJvcHksCisgICAgZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMsCisgICAgYmFzZU1pcExl
dmVsLAorICAgIGJhc2VBcnJheUxheWVyLAorICAgIHRleHR1cmUsCisgICAgc2FtcGxlciwKKyAg
ICBzYW1wbGVyQmlhcywKKyAgICBzLCB0LCByLCBhLAorICAgIGRlbHRhSSwgZGVsdGFKLCBkZWx0
YUssCisgICAgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwKKyAgICBsb2RNaW5Gcm9tRnVuY3Rpb25P
cGVyYW5kLAorICAgIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgIGRkeCwgZGR5LAorICAg
IGNoYW5uZWwpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjkuMgorCisgICAg
Ly8gVGhlIHNwZWMgdXNlcyBkaWZmZXJlbnQgbmFtZXMgdGhhbiBXZWJHUFUgZG9lcy4KKyAgICBs
ZXQgYWRkcmVzc01vZGVVID0gc2FtcGxlci5yQWRkcmVzc01vZGU7CisgICAgbGV0IGFkZHJlc3NN
b2RlViA9IHNhbXBsZXIuc0FkZHJlc3NNb2RlOworICAgIGxldCBhZGRyZXNzTW9kZVcgPSBzYW1w
bGVyLnRBZGRyZXNzTW9kZTsKKworICAgIGxldCBsYW1iZGE7CisgICAgW3MsIHQsIHIsIGEsIGxh
bWJkYV0gPSBjYWxjdWxhdGVMYW1iZGEoZGV2aWNlTWF4QW5pc290cm9weSwgZGV2aWNlTWF4U2Ft
cGxlckxvZEJpYXMsIHRleHR1cmUsIHNhbXBsZXIsIHNhbXBsZXJCaWFzLCBzLCB0LCByLCBhLCBs
b2RGcm9tRnVuY3Rpb25PcGVyYW5kLCBsb2RNaW5Gcm9tRnVuY3Rpb25PcGVyYW5kLCBiaWFzRnJv
bUZ1bmN0aW9uT3BlcmFuZCwgZGR4LCBkZHkpOworCisgICAgbGV0IGZpbHRlciA9ICJsaW5lYXIi
OworCisgICAgbGV0IGltYWdlTGV2ZWwgPSBpbWFnZUxldmVsU2VsZWN0aW9uKGJhc2VNaXBMZXZl
bCwgdGV4dHVyZS5sZXZlbENvdW50LCAibmVhcmVzdCIsIGxhbWJkYSk7CisKKyAgICBsZXQgW2Nv
bG9yMDAwLCBjb2xvcjEwMCwgY29sb3IwMTAsIGNvbG9yMTEwLCBjb2xvcjAwMSwgY29sb3IxMDEs
IGNvbG9yMDExLCBjb2xvcjExMSwgYWxwaGEsIGJldGEsIGdhbW1hXSA9IGNvbXB1dGVUYXUoaW1h
Z2VMZXZlbCwgYmFzZUFycmF5TGF5ZXIsIHRleHR1cmUsIHNhbXBsZXIsIGFkZHJlc3NNb2RlVSwg
YWRkcmVzc01vZGVWLCBhZGRyZXNzTW9kZVcsIGZpbHRlciwgcywgdCwgciwgYSwgZGVsdGFJLCBk
ZWx0YUosIGRlbHRhSyk7CisKKyAgICBpZiAodGV4dHVyZS5kaW1lbnNpb24gIT0gMikKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZ2F0aGVyIGZyb20gYSBub24tMkQgaW1hZ2UiKTsK
KworICAgIGxldCBjb2xvcjAwID0gY29sb3IwMDE7CisgICAgbGV0IGNvbG9yMTAgPSBjb2xvcjEw
MTsKKyAgICBsZXQgY29sb3IwMSA9IGNvbG9yMDExOworICAgIGxldCBjb2xvcjExID0gY29sb3Ix
MTE7CisKKyAgICBzd2l0Y2ggKGNoYW5uZWwpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAg
ICAgaWYgKGNvbG9yMDAgaW5zdGFuY2VvZiBBcnJheSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
W2NvbG9yMDFbMF0sIGNvbG9yMTFbMF0sIGNvbG9yMTBbMF0sIGNvbG9yMDBbMF1dOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBbY29sb3IwMSwgY29sb3IxMSwgY29s
b3IxMCwgY29sb3IwMF07CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiBbY29s
b3IwMVsxXSwgY29sb3IxMVsxXSwgY29sb3IxMFsxXSwgY29sb3IwMFsxXV07CisgICAgICAgIGNh
c2UgMjoKKyAgICAgICAgICAgIHJldHVybiBbY29sb3IwMVsyXSwgY29sb3IxMVsyXSwgY29sb3Ix
MFsyXSwgY29sb3IwMFsyXV07CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHJldHVybiBb
Y29sb3IwMVszXSwgY29sb3IxMVszXSwgY29sb3IxMFszXSwgY29sb3IwMFszXV07CisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gY2hhbm5lbCB0
byBnYXRoZXIgZnJvbSIpOworICAgIH0KK30KKworZnVuY3Rpb24gdGV4ZWxGaWx0ZXJpbmcoCisg
ICAgZGV2aWNlTWF4QW5pc290cm9weSwKKyAgICBkZXZpY2VNYXhTYW1wbGVyTG9kQmlhcywKKyAg
ICBiYXNlTWlwTGV2ZWwsCisgICAgYmFzZUFycmF5TGF5ZXIsCisgICAgdGV4dHVyZSwKKyAgICBz
YW1wbGVyLAorICAgIHNhbXBsZXJCaWFzLAorICAgIHMsIHQsIHIsIGEsCisgICAgZGVsdGFJLCBk
ZWx0YUosIGRlbHRhSywKKyAgICBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgIGxvZE1pbkZy
b21GdW5jdGlvbk9wZXJhbmQsCisgICAgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgZGR4
LCBkZHkpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjkuMworCisgICAgLy8g
VGhlIHNwZWMgdXNlcyBkaWZmZXJlbnQgbmFtZXMgdGhhbiBXZWJHUFUgZG9lcy4KKyAgICBsZXQg
YWRkcmVzc01vZGVVID0gc2FtcGxlci5yQWRkcmVzc01vZGU7CisgICAgbGV0IGFkZHJlc3NNb2Rl
ViA9IHNhbXBsZXIuc0FkZHJlc3NNb2RlOworICAgIGxldCBhZGRyZXNzTW9kZVcgPSBzYW1wbGVy
LnRBZGRyZXNzTW9kZTsKKworICAgIGxldCBsYW1iZGE7CisgICAgW3MsIHQsIHIsIGEsIGxhbWJk
YV0gPSBjYWxjdWxhdGVMYW1iZGEoZGV2aWNlTWF4QW5pc290cm9weSwgZGV2aWNlTWF4U2FtcGxl
ckxvZEJpYXMsIHRleHR1cmUsIHNhbXBsZXIsIHNhbXBsZXJCaWFzLCBzLCB0LCByLCBhLCBsb2RG
cm9tRnVuY3Rpb25PcGVyYW5kLCBsb2RNaW5Gcm9tRnVuY3Rpb25PcGVyYW5kLCBiaWFzRnJvbUZ1
bmN0aW9uT3BlcmFuZCwgZGR4LCBkZHkpOworCisgICAgbGV0IGZpbHRlcjsKKyAgICBpZiAobGFt
YmRhIDw9IDApCisgICAgICAgIGZpbHRlciA9IHNhbXBsZXIubWFnRmlsdGVyOworICAgIGVsc2UK
KyAgICAgICAgZmlsdGVyID0gc2FtcGxlci5taW5GaWx0ZXI7CisKKyAgICBmdW5jdGlvbiBjb21w
dXRlQ29sb3JGcm9tTGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICBpZiAoZmlsdGVyID09ICJu
ZWFyZXN0IikgeworICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVUYXUobGV2ZWwsIGJhc2VBcnJh
eUxheWVyLCB0ZXh0dXJlLCBzYW1wbGVyLCBhZGRyZXNzTW9kZVUsIGFkZHJlc3NNb2RlViwgYWRk
cmVzc01vZGVXLCBmaWx0ZXIsIHMsIHQsIHIsIGEsIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUspOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGZpbHRlciAhPSAibGluZWFyIikKKyAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZmlsdGVyIik7CisgICAgICAg
ICAgICBsZXQgW2NvbG9yMDAwLCBjb2xvcjEwMCwgY29sb3IwMTAsIGNvbG9yMTEwLCBjb2xvcjAw
MSwgY29sb3IxMDEsIGNvbG9yMDExLCBjb2xvcjExMSwgYWxwaGEsIGJldGEsIGdhbW1hXSA9IGNv
bXB1dGVUYXUobGV2ZWwsIGJhc2VBcnJheUxheWVyLCB0ZXh0dXJlLCBzYW1wbGVyLCBhZGRyZXNz
TW9kZVUsIGFkZHJlc3NNb2RlViwgYWRkcmVzc01vZGVXLCBmaWx0ZXIsIHMsIHQsIHIsIGEsIGRl
bHRhSSwgZGVsdGFKLCBkZWx0YUspOworICAgICAgICAgICAgc3dpdGNoICh0ZXh0dXJlLmRpbWVu
c2lvbikgeworICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgbGV0
IGNvbG9yMCA9IGNvbG9yMDExOworICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IxID0gY29s
b3IxMTE7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWR1Y2UoMSAtIGFscGhhLCBjb2xv
cjAsIGFscGhhLCBjb2xvcjEpOworICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAg
ICAgICAgICAgbGV0IGNvbG9yMDAgPSBjb2xvcjAwMTsKKyAgICAgICAgICAgICAgICAgICAgbGV0
IGNvbG9yMTAgPSBjb2xvcjEwMTsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMDEgPSBj
b2xvcjAxMTsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMTEgPSBjb2xvcjExMTsKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZHVjZSgoMSAtIGFscGhhKSAqICgxIC0gYmV0YSks
IGNvbG9yMDAsIGFscGhhICogKDEgLSBiZXRhKSwgY29sb3IxMCwgKDEgLSBhbHBoYSkgKiBiZXRh
LCBjb2xvcjAxLCBhbHBoYSAqIGJldGEsIGNvbG9yMTEpOworICAgICAgICAgICAgICAgIGNhc2Ug
MzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZHVjZSgKKyAgICAgICAgICAgICAgICAg
ICAgICAgICgxIC0gYWxwaGEpICogKDEgLSBiZXRhKSAqICgxIC0gZ2FtbWEpLCBjb2xvcjAwMCwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGFscGhhICogKDEgLSBiZXRhKSAqICgxIC0gZ2FtbWEp
LCBjb2xvcjEwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICgxIC0gYWxwaGEpICogYmV0YSAq
ICgxIC0gZ2FtbWEpLCBjb2xvcjAxMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFscGhhICog
YmV0YSAqICgxIC0gZ2FtbWEpLCBjb2xvcjExMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICgx
IC0gYWxwaGEpICogKDEgLSBiZXRhKSAqIGdhbW1hLCBjb2xvcjAwMSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGFscGhhICogKDEgLSBiZXRhKSAqIGdhbW1hLCBjb2xvcjEwMSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICgxIC0gYWxwaGEpICogYmV0YSAqIGdhbW1hLCBjb2xvcjAxMSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGFscGhhICogYmV0YSAqIGdhbW1hLCBjb2xvcjExMSk7Cisg
ICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJVbmtub3duIGRpbWVuc2lvbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
fQorCisgICAgaWYgKHNhbXBsZXIubWlwbWFwRmlsdGVyID09ICJuZWFyZXN0IikgeworICAgICAg
ICBsZXQgaW1hZ2VMZXZlbCA9IGltYWdlTGV2ZWxTZWxlY3Rpb24oYmFzZU1pcExldmVsLCB0ZXh0
dXJlLmxldmVsQ291bnQsIHNhbXBsZXIubWlwbWFwRmlsdGVyLCBsYW1iZGEpOworICAgICAgICBy
ZXR1cm4gY29tcHV0ZUNvbG9yRnJvbUxldmVsKGltYWdlTGV2ZWwpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIGlmIChzYW1wbGVyLm1pcG1hcEZpbHRlciAhPSAibGluZWFyIikKKyAgICAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiVW5rbm93biBmaWx0ZXIiKTsKKyAgICAgICAgbGV0IFtkSGksIGRM
b3csIGRlbHRhXSA9IGltYWdlTGV2ZWxTZWxlY3Rpb24oYmFzZU1pcExldmVsLCB0ZXh0dXJlLmxl
dmVsQ291bnQsIHNhbXBsZXIubWlwbWFwRmlsdGVyLCBsYW1iZGEpOworICAgICAgICByZXR1cm4g
cmVkdWNlKDEgLSBkZWx0YSwgY29tcHV0ZUNvbG9yRnJvbUxldmVsKGRIaSksIGRlbHRhLCBjb21w
dXRlQ29sb3JGcm9tTGV2ZWwoZExvdykpOworICAgIH0KK30KKworZnVuY3Rpb24gY2FzdFRvSW5u
ZXJUeXBlRm9yR2F0aGVyKHZhbHVlLCBpbm5lclR5cGUpCit7CisgICAgc3dpdGNoIChpbm5lclR5
cGUpIHsKKyAgICAgICAgY2FzZSAidWNoYXIiOgorICAgICAgICBjYXNlICJ1Y2hhcjIiOgorICAg
ICAgICBjYXNlICJ1Y2hhcjMiOgorICAgICAgICBjYXNlICJ1Y2hhcjQiOgorICAgICAgICAgICAg
cmV0dXJuIHZhbHVlLm1hcChjYXN0VG9VY2hhcik7CisgICAgICAgIGNhc2UgInVzaG9ydCI6Cisg
ICAgICAgIGNhc2UgInVzaG9ydDIiOgorICAgICAgICBjYXNlICJ1c2hvcnQzIjoKKyAgICAgICAg
Y2FzZSAidXNob3J0NCI6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb1VzaG9y
dCk7CisgICAgICAgIGNhc2UgInVpbnQiOgorICAgICAgICBjYXNlICJ1aW50MiI6CisgICAgICAg
IGNhc2UgInVpbnQzIjoKKyAgICAgICAgY2FzZSAidWludDQiOgorICAgICAgICAgICAgcmV0dXJu
IHZhbHVlLm1hcChjYXN0VG9VaW50KTsKKyAgICAgICAgY2FzZSAiY2hhciI6CisgICAgICAgIGNh
c2UgImNoYXIyIjoKKyAgICAgICAgY2FzZSAiY2hhcjMiOgorICAgICAgICBjYXNlICJjaGFyNCI6
CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb0NoYXIpOworICAgICAgICBjYXNl
ICJzaG9ydCI6CisgICAgICAgIGNhc2UgInNob3J0MiI6CisgICAgICAgIGNhc2UgInNob3J0MyI6
CisgICAgICAgIGNhc2UgInNob3J0NCI6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNh
c3RUb1Nob3J0KTsKKyAgICAgICAgY2FzZSAiaW50IjoKKyAgICAgICAgY2FzZSAiaW50MiI6Cisg
ICAgICAgIGNhc2UgImludDMiOgorICAgICAgICBjYXNlICJpbnQ0IjoKKyAgICAgICAgICAgIHJl
dHVybiB2YWx1ZS5tYXAoY2FzdFRvSW50KTsKKyAgICAgICAgY2FzZSAiaGFsZiI6CisgICAgICAg
IGNhc2UgImhhbGYyIjoKKyAgICAgICAgY2FzZSAiaGFsZjMiOgorICAgICAgICBjYXNlICJoYWxm
NCI6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb0hhbGYpOworICAgICAgICBj
YXNlICJmbG9hdCI6CisgICAgICAgIGNhc2UgImZsb2F0MiI6CisgICAgICAgIGNhc2UgImZsb2F0
MyI6CisgICAgICAgIGNhc2UgImZsb2F0NCI6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFw
KGNhc3RUb0Zsb2F0KTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBF
cnJvcigiVW5rbm93biB0ZXh0dXJlIGlubmVyIHR5cGUiKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9u
IGdhdGhlclRleHR1cmUodGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRlbHRhLCBiaWFzRnJv
bUZ1bmN0aW9uT3BlcmFuZCwgZGR4LCBkZHksIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsIGRyZWYs
IGNoYW5uZWwpCit7CisgICAgbGV0IHMgPSBsb2NhdGlvblswXTsKKyAgICBsZXQgdCA9IGxvY2F0
aW9uWzFdOworICAgIGxldCByID0gbG9jYXRpb25bMl07CisgICAgbGV0IHEgPSBsb2NhdGlvblsz
XTsKKyAgICBsZXQgYSA9IGxvY2F0aW9uWzRdOworCisgICAgbGV0IGRlbHRhSSA9IHVuZGVmaW5l
ZDsKKyAgICBsZXQgZGVsdGFKID0gdW5kZWZpbmVkOworICAgIGxldCBkZWx0YUsgPSB1bmRlZmlu
ZWQ7CisgICAgaWYgKGRlbHRhICE9IHVuZGVmaW5lZCkgeworICAgICAgICBkZWx0YUkgPSBkZWx0
YVswXTsKKyAgICAgICAgZGVsdGFKID0gZGVsdGFbMV07CisgICAgICAgIGRlbHRhSyA9IGRlbHRh
WzJdOworICAgIH0KKworICAgIFtzLCB0LCByLCBkcmVmXSA9IHByb2plY3Rpb25PcGVyYXRpb24o
cywgdCwgciwgZHJlZiwgcSk7CisgICAgbGV0IHJlc3VsdCA9IHRleGVsR2F0aGVyaW5nKAorICAg
ICAgICBOdW1iZXIuTUFYX1ZBTFVFLAorICAgICAgICBOdW1iZXIuTUFYX1ZBTFVFLAorICAgICAg
ICAwLAorICAgICAgICAwLAorICAgICAgICB0ZXh0dXJlLAorICAgICAgICBzYW1wbGVyLAorICAg
ICAgICAwLAorICAgICAgICBzLCB0LCByLCBhLAorICAgICAgICBkZWx0YUksIGRlbHRhSiwgZGVs
dGFLLAorICAgICAgICBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgICAgICAtTnVtYmVyLk1B
WF9WQUxVRSwKKyAgICAgICAgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgICAgIGRkeCwg
ZGR5LAorICAgICAgICBjaGFubmVsKTsKKyAgICBpZiAoZHJlZiAhPSB1bmRlZmluZWQpCisgICAg
ICAgIHJlc3VsdCA9IHJlc3VsdC5tYXAodiA9PiBkZXB0aENvbXBhcmVPcGVyYXRpb24oZHJlZiwg
diwgc2FtcGxlci5jb21wYXJlRnVuY3Rpb24pKTsKKyAgICByZXR1cm4gY2FzdFRvSW5uZXJUeXBl
Rm9yR2F0aGVyKHJlc3VsdCwgdGV4dHVyZS5pbm5lclR5cGUpOworICAgIC8vIEZJWE1FOiBGaWd1
cmUgb3V0IHdoYXQgdG8gZG8gd2l0aCBhbmlzb3Ryb3B5CisgICAgLy8gRklYTUU6IEZpZ3VyZSBv
dXQgaG93IHRvIGRvIG11bHRpc2FtcGxpbmcuCit9CisKK2Z1bmN0aW9uIGNhc3RUb0lubmVyVHlw
ZSh2YWx1ZSwgaW5uZXJUeXBlKQoreworICAgIHN3aXRjaCAoaW5uZXJUeXBlKSB7CisgICAgICAg
IGNhc2UgInVjaGFyIjoKKyAgICAgICAgICAgIHJldHVybiBjYXN0VG9VY2hhcih2YWx1ZSk7Cisg
ICAgICAgIGNhc2UgInVzaG9ydCI6CisgICAgICAgICAgICByZXR1cm4gY2FzdFRvVXNob3J0KHZh
bHVlKTsKKyAgICAgICAgY2FzZSAidWludCI6CisgICAgICAgICAgICByZXR1cm4gY2FzdFRvVWlu
dCh2YWx1ZSk7CisgICAgICAgIGNhc2UgImNoYXIiOgorICAgICAgICAgICAgcmV0dXJuIGNhc3RU
b0NoYXIodmFsdWUpOworICAgICAgICBjYXNlICJzaG9ydCI6CisgICAgICAgICAgICByZXR1cm4g
Y2FzdFRvU2hvcnQodmFsdWUpOworICAgICAgICBjYXNlICJpbnQiOgorICAgICAgICAgICAgcmV0
dXJuIGNhc3RUb0ludCh2YWx1ZSk7CisgICAgICAgIGNhc2UgImhhbGYiOgorICAgICAgICAgICAg
cmV0dXJuIGNhc3RUb0hhbGYodmFsdWUpOworICAgICAgICBjYXNlICJmbG9hdCI6CisgICAgICAg
ICAgICByZXR1cm4gY2FzdFRvRmxvYXQodmFsdWUpOworICAgICAgICAKKyAgICAgICAgY2FzZSAi
dWNoYXIyIjoKKyAgICAgICAgY2FzZSAidWNoYXIzIjoKKyAgICAgICAgY2FzZSAidWNoYXI0IjoK
KyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoY2FzdFRvVWNoYXIpOworICAgICAgICBjYXNl
ICJ1c2hvcnQyIjoKKyAgICAgICAgY2FzZSAidXNob3J0MyI6CisgICAgICAgIGNhc2UgInVzaG9y
dDQiOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcChjYXN0VG9Vc2hvcnQpOworICAgICAg
ICBjYXNlICJ1aW50MiI6CisgICAgICAgIGNhc2UgInVpbnQzIjoKKyAgICAgICAgY2FzZSAidWlu
dDQiOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcChjYXN0VG9VaW50KTsKKyAgICAgICAg
Y2FzZSAiY2hhcjIiOgorICAgICAgICBjYXNlICJjaGFyMyI6CisgICAgICAgIGNhc2UgImNoYXI0
IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoY2FzdFRvQ2hhcik7CisgICAgICAgIGNh
c2UgInNob3J0MiI6CisgICAgICAgIGNhc2UgInNob3J0MyI6CisgICAgICAgIGNhc2UgInNob3J0
NCI6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb1Nob3J0KTsKKyAgICAgICAg
Y2FzZSAiaW50MiI6CisgICAgICAgIGNhc2UgImludDMiOgorICAgICAgICBjYXNlICJpbnQ0IjoK
KyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoY2FzdFRvSW50KTsKKyAgICAgICAgY2FzZSAi
aGFsZjIiOgorICAgICAgICBjYXNlICJoYWxmMyI6CisgICAgICAgIGNhc2UgImhhbGY0IjoKKyAg
ICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoY2FzdFRvSGFsZik7CisgICAgICAgIGNhc2UgImZs
b2F0MiI6CisgICAgICAgIGNhc2UgImZsb2F0MyI6CisgICAgICAgIGNhc2UgImZsb2F0NCI6Cisg
ICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb0Zsb2F0KTsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biB0ZXh0dXJlIGlubmVyIHR5
cGUiKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHNhbXBsZVRleHR1cmUodGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb24sIGRlbHRhLCBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwgZGR4LCBkZHksIGxv
ZEZyb21GdW5jdGlvbk9wZXJhbmQsIGRyZWYpCit7CisgICAgbGV0IHMgPSBsb2NhdGlvblswXTsK
KyAgICBsZXQgdCA9IGxvY2F0aW9uWzFdOworICAgIGxldCByID0gbG9jYXRpb25bMl07CisgICAg
bGV0IHEgPSBsb2NhdGlvblszXTsKKyAgICBsZXQgYSA9IGxvY2F0aW9uWzRdOworCisgICAgbGV0
IGRlbHRhSSA9IHVuZGVmaW5lZDsKKyAgICBsZXQgZGVsdGFKID0gdW5kZWZpbmVkOworICAgIGxl
dCBkZWx0YUsgPSB1bmRlZmluZWQ7CisgICAgaWYgKGRlbHRhICE9IHVuZGVmaW5lZCkgeworICAg
ICAgICBkZWx0YUkgPSBkZWx0YVswXTsKKyAgICAgICAgZGVsdGFKID0gZGVsdGFbMV07CisgICAg
ICAgIGRlbHRhSyA9IGRlbHRhWzJdOworICAgIH0KKworICAgIFtzLCB0LCByLCBkcmVmXSA9IHBy
b2plY3Rpb25PcGVyYXRpb24ocywgdCwgciwgZHJlZiwgcSk7CisgICAgbGV0IHJlc3VsdCA9IHRl
eGVsRmlsdGVyaW5nKAorICAgICAgICBOdW1iZXIuTUFYX1ZBTFVFLAorICAgICAgICBOdW1iZXIu
TUFYX1ZBTFVFLAorICAgICAgICAwLAorICAgICAgICAwLAorICAgICAgICB0ZXh0dXJlLAorICAg
ICAgICBzYW1wbGVyLAorICAgICAgICAwLAorICAgICAgICBzLCB0LCByLCBhLAorICAgICAgICBk
ZWx0YUksIGRlbHRhSiwgZGVsdGFLLAorICAgICAgICBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLAor
ICAgICAgICAtTnVtYmVyLk1BWF9WQUxVRSwKKyAgICAgICAgYmlhc0Zyb21GdW5jdGlvbk9wZXJh
bmQsCisgICAgICAgIGRkeCwgZGR5KTsKKyAgICBpZiAoZHJlZiAhPSB1bmRlZmluZWQpIHsKKyAg
ICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIEFycmF5KQorICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJEZXB0aCBjb21wYXJpc29uIG5vdCBzdXBwb3J0ZWQgb24gbXVsdGljaGFubmVsIHRl
eHR1cmVzIik7CisgICAgICAgIHJlc3VsdCA9IGRlcHRoQ29tcGFyZU9wZXJhdGlvbihkcmVmLCBy
ZXN1bHQsIHNhbXBsZXIuY29tcGFyZUZ1bmN0aW9uKTsKKyAgICB9CisgICAgcmV0dXJuIGNhc3RU
b0lubmVyVHlwZShyZXN1bHQsIHRleHR1cmUuaW5uZXJUeXBlKTsKKyAgICAvLyBGSVhNRTogRmln
dXJlIG91dCB3aGF0IHRvIGRvIHdpdGggYW5pc290cm9weQorICAgIC8vIEZJWE1FOiBGaWd1cmUg
b3V0IGhvdyB0byBkbyBtdWx0aXNhbXBsaW5nLgorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL2luZGV4Lmh0bWwKaW5kZXggNjVhODY0MTFiM2U3NzBiNTU3YjQxYWNjN2U0MTRkZWY0MjQw
MzAxMy4uZTZlMTNkZmU4ZGZhNWM1MzMyYWQ5ZWYwNDllY2VhMzU5YjdlM2E0MiAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbAorKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCkBAIC0yOCw2ICsyOCw3IEBACiA8c2Ny
aXB0IHNyYz0iQnVpbHRpblZlY3RvclNldHRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
Q2FsbEV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNhbGxGdW5jdGlvbi5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ2FzdHMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9IkNoZWNrLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDaGVja0xpdGVyYWxUeXBlcy5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2hlY2tMb29wcy5qcyI+PC9zY3JpcHQ+CkBAIC0x
MTUsNiArMTE2LDcgQEAKIDxzY3JpcHQgc3JjPSJSZXR1cm4uanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IlJldHVybkNoZWNrZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJldHVybkV4
Y2VwdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iU2FtcGxlci5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iU3RhbmRhcmRMaWJyYXJ5LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJTdGF0ZW1lbnRDbG9uZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN0cnVjdExheW91
dEJ1aWxkZXIuanMiPjwvc2NyaXB0PgpAQCAtMTI3LDYgKzEyOSw4IEBACiA8c2NyaXB0IHNyYz0i
U3ludGhlc2l6ZUNvcHlDb25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJTeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IlRlcm5hcnlFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJUZXh0dXJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUZXh0dXJlT3BlcmF0aW9ucy5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHJhcFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZlJl
c29sdmVyLmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348804</attachid>
            <date>2018-09-03 21:39:02 -0700</date>
            <delta_ts>2018-09-04 11:31:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188940-20180903213900.patch</filename>
            <type>text/plain</type>
            <size>499722</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTg5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWE0MzNhZWVmNTA2YjZmNDY1NTYwMTNiZmJiNDM2MWJm
MjE5YWMxYS4uOTUzODkzZTZmYTM0ODE1ODZlZDEyMzc2NjJjNjFlMWExZTYwYmQwMCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
NiBAQAorMjAxOC0wOS0wMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRleHR1cmUgdHlwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk0MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCB0aGUgdGV4dHVy
ZSB0eXBlcyBhbmQgb3BlcmF0aW9ucy4gVGhpcyBpbmNsdWRlcyBTYW1wbGUoKSwgTG9hZCgpLCBT
dG9yZSgpLCBHYXRoZXIoKSwgYW5kIEdldERpbWVuc2lvbnMoKS4KKyAgICAgICAgVGhlc2UgZnVu
Y3Rpb25zIHdlcmUgaW1wbGVtZW50ZWQgYWNjb3JkaW5nIHRvIHNlY3Rpb24gMTUgb2YgdGhlIFZ1
bGthbiAxLjEuODMgc3BlYywgd2hpY2ggbGlzdHMgZWFjaCBvcGVyYXRpb24KKyAgICAgICAgYW5k
IGhvdyB0byBjb21wdXRlIGl0cyByZXN1bHRzLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Nhc3Rz
LmpzOiBNb3ZlZCBmcm9tIEludHJpbnNpY3MuIFRoZSB0ZXh0dXJlIG9wZXJhdGlvbnMgbmVlZCB0
byBjYXN0IHRvbywgc28gdGhlc2UgYXJlCisgICAgICAgIG1vdmVkIGludG8gYSBjb21tb24gbG9j
YXRpb24uCisgICAgICAgIChjYXN0KToKKyAgICAgICAgKGJpdHdpc2VDYXN0KToKKyAgICAgICAg
KGNhc3RUb1VjaGFyKToKKyAgICAgICAgKGNhc3RUb1VzaG9ydCk6CisgICAgICAgIChjYXN0VG9V
aW50KToKKyAgICAgICAgKGNhc3RUb0NoYXIpOgorICAgICAgICAoY2FzdFRvU2hvcnQpOgorICAg
ICAgICAoY2FzdFRvSW50KToKKyAgICAgICAgKGNhc3RUb0hhbGYpOgorICAgICAgICAoY2FzdFRv
RmxvYXQpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanM6
IFVzZSBDYXN0cy5qcyBhbmQgY2FsbCBpbnRvIFRleHR1cmVPcGVyYXRpb25zLmpzLgorICAgICAg
ICAoSW50cmluc2ljcy4pOgorICAgICAgICAoSW50cmluc2ljcy5jaGVja0ZhbHNlKToKKyAgICAg
ICAgKEludHJpbnNpY3MuYm94VmVjdG9yKToKKyAgICAgICAgKEludHJpbnNpY3MudW5ib3hWZWN0
b3IpOgorICAgICAgICAoSW50cmluc2ljcyk6CisgICAgICAgIChJbnRyaW5zaWNzLmNhc3QpOiBE
ZWxldGVkLgorICAgICAgICAoSW50cmluc2ljcy5iaXR3aXNlQ2FzdCk6IERlbGV0ZWQuCisgICAg
ICAgIChJbnRyaW5zaWNzLmNhc3RUb0hhbGYpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWw6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU2FtcGxlci5qczogQWRkZWQuIFJlcHJlc2VudCB0aGUgU2FtcGxlciB0eXBlLiAKKyAg
ICAgICAgKFNhbXBsZXIpOgorICAgICAgICAoU2FtcGxlci5wcm90b3R5cGUuZ2V0IHJBZGRyZXNz
TW9kZSk6CisgICAgICAgIChTYW1wbGVyLnByb3RvdHlwZS5nZXQgc0FkZHJlc3NNb2RlKToKKyAg
ICAgICAgKFNhbXBsZXIucHJvdG90eXBlLmdldCB0QWRkcmVzc01vZGUpOgorICAgICAgICAoU2Ft
cGxlci5wcm90b3R5cGUuZ2V0IG1pbkZpbHRlcik6CisgICAgICAgIChTYW1wbGVyLnByb3RvdHlw
ZS5nZXQgbWFnRmlsdGVyKToKKyAgICAgICAgKFNhbXBsZXIucHJvdG90eXBlLmdldCBtaXBtYXBG
aWx0ZXIpOgorICAgICAgICAoU2FtcGxlci5wcm90b3R5cGUuZ2V0IGxvZE1pbkNsYW1wKToKKyAg
ICAgICAgKFNhbXBsZXIucHJvdG90eXBlLmdldCBsb2RNYXhDbGFtcCk6CisgICAgICAgIChTYW1w
bGVyLnByb3RvdHlwZS5nZXQgbWF4QW5pc290cm9weSk6CisgICAgICAgIChTYW1wbGVyLnByb3Rv
dHlwZS5nZXQgY29tcGFyZUZ1bmN0aW9uKToKKyAgICAgICAgKFNhbXBsZXIucHJvdG90eXBlLmdl
dCBib3JkZXJDb2xvcik6CisgICAgICAgIChTYW1wbGVyLnByb3RvdHlwZS5jYWxjdWxhdGVCb3Jk
ZXJDb2xvci5jb21wdXRlVmFsdWVzKToKKyAgICAgICAgKFNhbXBsZXIucHJvdG90eXBlLmNhbGN1
bGF0ZUJvcmRlckNvbG9yKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFu
ZGFyZExpYnJhcnkuanM6IFVwZGF0ZSB0aGUgc3RhbmRhcmQgbGlicmFyeS4gU29tZSBvZiB0aGUg
ZnVuY3Rpb25zIHdlcmUKKyAgICAgICAgZWl0aGVyIG1pc3Npbmcgb3Igd3JvbmcuCisgICAgICAg
IChsZXQuc3RhbmRhcmRMaWJyYXJ5KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UZXN0Lmh0bWw6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qczog
VGVzdCBtYW55LCBtYW55IGNvbWJpbmF0aW9ucyBvZiB0aGUgdGV4dHVyZSBvcGVyYXRpb25zLgor
ICAgICAgICAobWFrZVNhbXBsZXIpOgorICAgICAgICAobWFrZTFEVGV4dHVyZSk6CisgICAgICAg
IChtYWtlMURUZXh0dXJlQXJyYXkpOgorICAgICAgICAobWFrZTJEVGV4dHVyZSk6CisgICAgICAg
IChtYWtlMkRUZXh0dXJlQXJyYXkpOgorICAgICAgICAobWFrZTNEVGV4dHVyZSk6CisgICAgICAg
IChtYWtlVGV4dHVyZUN1YmUpOgorICAgICAgICAobWFrZVJXMURUZXh0dXJlKToKKyAgICAgICAg
KG1ha2VSVzFEVGV4dHVyZUFycmF5KToKKyAgICAgICAgKG1ha2VSVzJEVGV4dHVyZSk6CisgICAg
ICAgIChtYWtlUlcyRFRleHR1cmVBcnJheSk6CisgICAgICAgIChtYWtlUlczRFRleHR1cmUpOgor
ICAgICAgICAobWFrZTJERGVwdGhUZXh0dXJlKToKKyAgICAgICAgKG1ha2UyRERlcHRoVGV4dHVy
ZUFycmF5KToKKyAgICAgICAgKG1ha2VEZXB0aFRleHR1cmVDdWJlKToKKyAgICAgICAgKG1ha2VS
VzJERGVwdGhUZXh0dXJlKToKKyAgICAgICAgKG1ha2VSVzJERGVwdGhUZXh0dXJlQXJyYXkpOgor
ICAgICAgICAoY2hlY2tGbG9hdDQpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1RleHR1cmUuanM6IEFkZGVkLiBSZXByZXNlbnRzIGVhY2ggb2YgdGhlIHRleHR1cmUgdHlwZXMu
CisgICAgICAgIChUZXh0dXJlKToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBkaW1l
bnNpb24pOgorICAgICAgICAoVGV4dHVyZS5wcm90b3R5cGUuZ2V0IHdpZHRoKToKKyAgICAgICAg
KFRleHR1cmUucHJvdG90eXBlLmdldCBoZWlnaHQpOgorICAgICAgICAoVGV4dHVyZS5wcm90b3R5
cGUuZ2V0IGRlcHRoKToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBsZXZlbENvdW50
KToKKyAgICAgICAgKFRleHR1cmUucHJvdG90eXBlLmdldCBsYXllckNvdW50KToKKyAgICAgICAg
KFRleHR1cmUucHJvdG90eXBlLmdldCBpbm5lclR5cGUpOgorICAgICAgICAoVGV4dHVyZS5wcm90
b3R5cGUuZ2V0IGRhdGEpOgorICAgICAgICAoVGV4dHVyZS5wcm90b3R5cGUuZWxlbWVudENoZWNr
ZWQpOgorICAgICAgICAoVGV4dHVyZS5wcm90b3R5cGUuc2V0RWxlbWVudENoZWNrZWQpOgorICAg
ICAgICAoVGV4dHVyZTFEKToKKyAgICAgICAgKFRleHR1cmUxRC5wcm90b3R5cGUud2lkdGhBdExl
dmVsKToKKyAgICAgICAgKFRleHR1cmUxRC5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAg
ICAgIChUZXh0dXJlMUQucHJvdG90eXBlLmRlcHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJl
MUQucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTFELnByb3RvdHlwZS5zZXRF
bGVtZW50KToKKyAgICAgICAgKFRleHR1cmUxREFycmF5KToKKyAgICAgICAgKFRleHR1cmUxREFy
cmF5LnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEQXJyYXkucHJv
dG90eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEQXJyYXkucHJvdG90eXBl
LmRlcHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMURBcnJheS5wcm90b3R5cGUuZWxlbWVu
dCk6CisgICAgICAgIChUZXh0dXJlMURBcnJheS5wcm90b3R5cGUuc2V0RWxlbWVudCk6CisgICAg
ICAgIChUZXh0dXJlMkQpOgorICAgICAgICAoVGV4dHVyZTJELnByb3RvdHlwZS53aWR0aEF0TGV2
ZWwpOgorICAgICAgICAoVGV4dHVyZTJELnByb3RvdHlwZS5oZWlnaHRBdExldmVsKToKKyAgICAg
ICAgKFRleHR1cmUyRC5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUy
RC5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMkQucHJvdG90eXBlLnNldEVs
ZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXkpOgorICAgICAgICAoVGV4dHVyZTJEQXJy
YXkucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkRBcnJheS5wcm90
b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMkRBcnJheS5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyREFycmF5LnByb3RvdHlwZS5lbGVtZW50
KToKKyAgICAgICAgKFRleHR1cmUyREFycmF5LnByb3RvdHlwZS5zZXRFbGVtZW50KToKKyAgICAg
ICAgKFRleHR1cmUzRCk6CisgICAgICAgIChUZXh0dXJlM0QucHJvdG90eXBlLndpZHRoQXRMZXZl
bCk6CisgICAgICAgIChUZXh0dXJlM0QucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTNELnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTNE
LnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUzRC5wcm90b3R5cGUuc2V0RWxl
bWVudCk6CisgICAgICAgIChUZXh0dXJlQ3ViZSk6CisgICAgICAgIChUZXh0dXJlQ3ViZS5wcm90
b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmVDdWJlLnByb3RvdHlwZS5oZWln
aHRBdExldmVsKToKKyAgICAgICAgKFRleHR1cmVDdWJlLnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwp
OgorICAgICAgICAoVGV4dHVyZUN1YmUucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4
dHVyZUN1YmUucHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTFEUlcpOgor
ICAgICAgICAoVGV4dHVyZTFEUlcucHJvdG90eXBlLndpZHRoQXRMZXZlbCk6CisgICAgICAgIChU
ZXh0dXJlMURSVy5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0dXJlMURS
Vy5wcm90b3R5cGUuZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUxRFJXLnByb3RvdHlw
ZS5lbGVtZW50KToKKyAgICAgICAgKFRleHR1cmUxRFJXLnByb3RvdHlwZS5zZXRFbGVtZW50KToK
KyAgICAgICAgKFRleHR1cmUxREFycmF5UlcpOgorICAgICAgICAoVGV4dHVyZTFEQXJyYXlSVy5w
cm90b3R5cGUud2lkdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90
eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTFEQXJyYXlSVy5wcm90b3R5cGUu
ZGVwdGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUxREFycmF5UlcucHJvdG90eXBlLmVsZW1l
bnQpOgorICAgICAgICAoVGV4dHVyZTFEQXJyYXlSVy5wcm90b3R5cGUuc2V0RWxlbWVudCk6Cisg
ICAgICAgIChUZXh0dXJlMkRSVyk6CisgICAgICAgIChUZXh0dXJlMkRSVy5wcm90b3R5cGUud2lk
dGhBdExldmVsKToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlwZS5oZWlnaHRBdExldmVs
KToKKyAgICAgICAgKFRleHR1cmUyRFJXLnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAg
ICAoVGV4dHVyZTJEUlcucHJvdG90eXBlLmVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEUlcu
cHJvdG90eXBlLnNldEVsZW1lbnQpOgorICAgICAgICAoVGV4dHVyZTJEQXJyYXlSVyk6CisgICAg
ICAgIChUZXh0dXJlMkRBcnJheVJXLnByb3RvdHlwZS53aWR0aEF0TGV2ZWwpOgorICAgICAgICAo
VGV4dHVyZTJEQXJyYXlSVy5wcm90b3R5cGUuaGVpZ2h0QXRMZXZlbCk6CisgICAgICAgIChUZXh0
dXJlMkRBcnJheVJXLnByb3RvdHlwZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAoVGV4dHVyZTJE
QXJyYXlSVy5wcm90b3R5cGUuZWxlbWVudCk6CisgICAgICAgIChUZXh0dXJlMkRBcnJheVJXLnBy
b3RvdHlwZS5zZXRFbGVtZW50KToKKyAgICAgICAgKGxldC5UZXh0dXJlRGVwdGgyREFycmF5Ulcu
VGV4dHVyZTJEQXJyYXlSVy5UZXh0dXJlM0RSVyk6CisgICAgICAgIChsZXQuVGV4dHVyZURlcHRo
MkRBcnJheVJXLlRleHR1cmUyREFycmF5UlcuVGV4dHVyZTNEUlcucHJvdG90eXBlLndpZHRoQXRM
ZXZlbCk6CisgICAgICAgIChsZXQuVGV4dHVyZURlcHRoMkRBcnJheVJXLlRleHR1cmUyREFycmF5
UlcuVGV4dHVyZTNEUlcucHJvdG90eXBlLmhlaWdodEF0TGV2ZWwpOgorICAgICAgICAobGV0LlRl
eHR1cmVEZXB0aDJEQXJyYXlSVy5UZXh0dXJlMkRBcnJheVJXLlRleHR1cmUzRFJXLnByb3RvdHlw
ZS5kZXB0aEF0TGV2ZWwpOgorICAgICAgICAobGV0LlRleHR1cmVEZXB0aDJEQXJyYXlSVy5UZXh0
dXJlMkRBcnJheVJXLlRleHR1cmUzRFJXLnByb3RvdHlwZS5lbGVtZW50KToKKyAgICAgICAgKGxl
dC5UZXh0dXJlRGVwdGgyREFycmF5UlcuVGV4dHVyZTJEQXJyYXlSVy5UZXh0dXJlM0RSVy5wcm90
b3R5cGUuc2V0RWxlbWVudCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4
dHVyZU9wZXJhdGlvbnMuanM6IEFkZGVkLiBUaGlzIGltcGxlbWVudHMgdGhlIHRleHR1cmUgb3Bl
cmF0aW9ucworICAgICAgICBhcyBkZXNjcmliZWQgaW4gc2VjdGlvbiAxNSBvZiB0aGUgVnVsa2Fu
IDEuMS44MyBzcGVjLgorICAgICAgICAoZGVwdGhDb21wYXJlT3BlcmF0aW9uKToKKyAgICAgICAg
KGNvbnZlcnNpb25Ub1JHQkEpOgorICAgICAgICAocHJvamVjdGlvbk9wZXJhdGlvbik6CisgICAg
ICAgIChjdWJlTWFwRmFjZVNlbGVjdGlvbik6CisgICAgICAgIChjdWJlTWFwQ29vcmRpbmF0ZVRy
YW5zZm9ybWF0aW9uKToKKyAgICAgICAgKGN1YmVNYXBEZXJpdmF0aXZlVHJhbnNmb3JtYXRpb24p
OgorICAgICAgICAoc2NhbGVGYWN0b3JPcGVyYXRpb24pOgorICAgICAgICAobGV2ZWxPZkRldGFp
bE9wZXJhdGlvbik6CisgICAgICAgIChuZWFyZXN0KToKKyAgICAgICAgKGltYWdlTGV2ZWxTZWxl
Y3Rpb24pOgorICAgICAgICAoc3RycWFUb1VWV0FUcmFuc2Zvcm1hdGlvbik6CisgICAgICAgIChy
bmUpOgorICAgICAgICAodXZ3YVRvSUpLTE5UcmFuc2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJTZWxl
Y3Rpb24pOgorICAgICAgICAoaW50ZWdlclRleGVsQ29vcmRpbmF0ZU9wZXJhdGlvbnMpOgorICAg
ICAgICAobWlycm9yKToKKyAgICAgICAgKHRyYW5zZm9ybSk6CisgICAgICAgICh3cmFwcGluZ09w
ZXJhdGlvbik6CisgICAgICAgIChjYWxjdWxhdGVMYW1iZGEpOgorICAgICAgICAoc2hvdWxkQmVC
b3JkZXIpOgorICAgICAgICAoYWNjZXNzQ29sb3IpOgorICAgICAgICAoY29tcHV0ZVRhdSk6Cisg
ICAgICAgIChyZWR1Y2UpOgorICAgICAgICAodGV4ZWxHYXRoZXJpbmcpOgorICAgICAgICAoY29t
cHV0ZUNvbG9yRnJvbUxldmVsKToKKyAgICAgICAgKHRleGVsRmlsdGVyaW5nKToKKyAgICAgICAg
KGNhc3RUb0lubmVyVHlwZUZvckdhdGhlcik6CisgICAgICAgIChnYXRoZXJUZXh0dXJlKToKKyAg
ICAgICAgKGNhc3RUb0lubmVyVHlwZSk6CisgICAgICAgIChzYW1wbGVUZXh0dXJlKToKKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sOgorCiAyMDE4LTA5LTAxICBN
aWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BF
XSAyLjIxLjkxIGZhaWxzIHRvIGJ1aWxkIHdpdGggRU5BQkxFX01JTklCUk9XU0VSCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKaW5kZXggOWMyYTM3MTUwYzFlOTc2YjkyNmNmYmVlMjM0
Mzc1MjBhOGRlNGE0Ny4uOTBmYzg0MTNhNjUxMjI0NDZiZjAxZmQ5NjdkZDY1MTM5YTBmODdlOSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCisrKyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwpAQCAtNTEsNiArNTEsNyBAQCBsb2Fk
KCJCdWlsdGluVmVjdG9yR2V0dGVyLmpzIik7CiBsb2FkKCJCdWlsdGluVmVjdG9yU2V0dGVyLmpz
Iik7CiBsb2FkKCJDYWxsRXhwcmVzc2lvbi5qcyIpOwogbG9hZCgiQ2FsbEZ1bmN0aW9uLmpzIik7
Citsb2FkKCJDYXN0cy5qcyIpOwogbG9hZCgiQ2hlY2suanMiKTsKIGxvYWQoIkNoZWNrTGl0ZXJh
bFR5cGVzLmpzIik7CiBsb2FkKCJDaGVja0xvb3BzLmpzIik7CkBAIC0xMzgsNiArMTM5LDcgQEAg
bG9hZCgiUmVzb2x2ZVR5cGVEZWZzLmpzIik7CiBsb2FkKCJSZXR1cm4uanMiKTsKIGxvYWQoIlJl
dHVybkNoZWNrZXIuanMiKTsKIGxvYWQoIlJldHVybkV4Y2VwdGlvbi5qcyIpOworbG9hZCgiU2Ft
cGxlci5qcyIpOwogbG9hZCgiU3RhbmRhcmRMaWJyYXJ5LmpzIik7CiBsb2FkKCJTdGF0ZW1lbnRD
bG9uZXIuanMiKTsKIGxvYWQoIlN0cnVjdExheW91dEJ1aWxkZXIuanMiKTsKQEAgLTE1MCw2ICsx
NTIsOCBAQCBsb2FkKCJTeW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzIik7CiBsb2FkKCJTeW50
aGVzaXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiKTsKIGxvYWQoIlN5bnRoZXNpemVEZWZh
dWx0Q29uc3RydWN0b3JPcGVyYXRvci5qcyIpOwogbG9hZCgiVGVybmFyeUV4cHJlc3Npb24uanMi
KTsKK2xvYWQoIlRleHR1cmUuanMiKTsKK2xvYWQoIlRleHR1cmVPcGVyYXRpb25zLmpzIik7CiBs
b2FkKCJUcmFwU3RhdGVtZW50LmpzIik7CiBsb2FkKCJUeXBlRGVmLmpzIik7CiBsb2FkKCJUeXBl
RGVmUmVzb2x2ZXIuanMiKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0Nhc3RzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FzdHMuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYWNiYjJlYTAyODUzNWI0NjcwNDIzMDk3ZjdhNWI1N2NhZjZiOGIxYwotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Nhc3RzLmpzCkBAIC0w
LDAgKzEsMTE1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisidXNlIHN0cmljdCI7CisKK2Z1bmN0aW9uIGNhc3QodHlwZWRBcnJheUNvbnN0cnVjdG9yLCBu
dW1iZXIpCit7CisgICAgdmFyIGFycmF5ID0gbmV3IHR5cGVkQXJyYXlDb25zdHJ1Y3RvcigxKTsK
KyAgICBhcnJheVswXSA9IG51bWJlcjsKKyAgICByZXR1cm4gYXJyYXlbMF07Cit9CisKK2Z1bmN0
aW9uIGJpdHdpc2VDYXN0KHR5cGVkQXJyYXlDb25zdHJ1Y3RvcjEsIHR5cGVkQXJyYXlDb25zdHJ1
Y3RvcjIsIHZhbHVlKQoreworICAgIGxldCB0eXBlZEFycmF5MSA9IG5ldyB0eXBlZEFycmF5Q29u
c3RydWN0b3IxKDEpOworICAgIGxldCB0eXBlZEFycmF5MiA9IG5ldyB0eXBlZEFycmF5Q29uc3Ry
dWN0b3IyKHR5cGVkQXJyYXkxLmJ1ZmZlcik7CisgICAgdHlwZWRBcnJheTFbMF0gPSB2YWx1ZTsK
KyAgICByZXR1cm4gdHlwZWRBcnJheTJbMF07Cit9CisKK2Z1bmN0aW9uIGNhc3RUb1VjaGFyKG51
bWJlcikKK3sKKyAgICByZXR1cm4gbnVtYmVyICYgMHhGRjsKK30KKworZnVuY3Rpb24gY2FzdFRv
VXNob3J0KG51bWJlcikKK3sKKyAgICByZXR1cm4gbnVtYmVyICYgMHhGRkZGOworfQorCitmdW5j
dGlvbiBjYXN0VG9VaW50KG51bWJlcikKK3sKKyAgICByZXR1cm4gbnVtYmVyID4+PiAwOworfQor
CitmdW5jdGlvbiBjYXN0VG9DaGFyKG51bWJlcikKK3sKKyAgICByZXR1cm4gY2FzdChJbnQ4QXJy
YXksIG51bWJlcik7Cit9CisKK2Z1bmN0aW9uIGNhc3RUb1Nob3J0KG51bWJlcikKK3sKKyAgICBy
ZXR1cm4gY2FzdChJbnQxNkFycmF5LCBudW1iZXIpOworfQorCitmdW5jdGlvbiBjYXN0VG9JbnQo
bnVtYmVyKQoreworICAgIHJldHVybiBudW1iZXIgfCAwOworfQorCitmdW5jdGlvbiBjYXN0VG9I
YWxmKG51bWJlcikKK3sKKyAgICAvLyBGSVhNRTogTWFrZSB0aGlzIG1hdGggb2JleSBJRUVFIDc1
NC4KKyAgICBpZiAoTnVtYmVyLmlzTmFOKG51bWJlcikpCisgICAgICAgcmV0dXJuIG51bWJlcgor
ICAgIGlmIChudW1iZXIgPiA2NTUwNCkKKyAgICAgICAgcmV0dXJuIE51bWJlci5QT1NJVElWRV9J
TkZJTklUWTsKKyAgICBpZiAobnVtYmVyIDwgLTY1NTA0KQorICAgICAgICByZXR1cm4gTnVtYmVy
Lk5FR0FUSVZFX0lORklOSVRZOworICAgIGlmIChudW1iZXIgPiAwICYmIG51bWJlciA8IE1hdGgu
cG93KDIsIC0yNCkpCisgICAgICAgIHJldHVybiAwOworICAgIGlmIChudW1iZXIgPCAwICYmIG51
bWJlciA+IC1NYXRoLnBvdygyLCAtMjQpKQorICAgICAgICByZXR1cm4gLTA7CisgICAgbGV0IGRv
dWJsZUFycmF5ID0gbmV3IEZsb2F0NjRBcnJheSgxKTsKKyAgICBsZXQgdWludEFycmF5ID0gbmV3
IFVpbnQ4QXJyYXkoZG91YmxlQXJyYXkuYnVmZmVyKTsKKyAgICBkb3VibGVBcnJheVswXSA9IG51
bWJlcjsKKyAgICBsZXQgc2lnbiA9IHVpbnRBcnJheVs3XSAmIDB4ODA7CisgICAgbGV0IGV4cG9u
ZW50ID0gKCh1aW50QXJyYXlbN10gJiAweDdmKSA8PCA0KSB8ICgodWludEFycmF5WzZdICYgMHhm
MCkgPj4+IDQpOworICAgIGxldCBzaWduaWZpY2FuZCA9ICgodWludEFycmF5WzZdICYgMHgwZikg
PDwgNikgfCAoKHVpbnRBcnJheVs1XSAmIDB4ZmMpID4+PiAyKTsKKworICAgIGlmICgoZXhwb25l
bnQgLSAxMDIzKSA8IC0xNCkgeworICAgICAgICBleHBvbmVudCA9IDA7CisgICAgICAgIHNpZ25p
ZmljYW5kID0gKE1hdGguYWJzKG51bWJlcikgKiBNYXRoLnBvdygyLCAyNCkpID4+PiAwOworICAg
ICAgICBsZXQgdmFsdWUgPSBNYXRoLnBvdygyLCAtMTQpICogc2lnbmlmaWNhbmQgLyAxMDI0Owor
ICAgICAgICBpZiAoc2lnbiAhPSAwKQorICAgICAgICAgICAgdmFsdWUgKj0gLTE7CisgICAgICAg
IHJldHVybiB2YWx1ZTsKKyAgICB9CisKKyAgICBkb3VibGVBcnJheVswXSA9IDA7CisKKyAgICB1
aW50QXJyYXlbN10gfD0gc2lnbjsKKyAgICB1aW50QXJyYXlbN10gfD0gKGV4cG9uZW50ID4+PiA0
KTsKKyAgICB1aW50QXJyYXlbNl0gfD0gKChleHBvbmVudCA8PCA0KSAmIDB4ZjApOworICAgIHVp
bnRBcnJheVs2XSB8PSAoc2lnbmlmaWNhbmQgPj4+IDYpOworICAgIHVpbnRBcnJheVs1XSB8PSAo
KHNpZ25pZmljYW5kIDw8IDIpICYgMHhmYyk7CisKKyAgICByZXR1cm4gZG91YmxlQXJyYXlbMF07
Cit9CisKK2Z1bmN0aW9uIGNhc3RUb0Zsb2F0KG51bWJlcikKK3sKKyAgICByZXR1cm4gTWF0aC5m
cm91bmQobnVtYmVyKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0ludHJpbnNpY3MuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5z
aWNzLmpzCmluZGV4IGIwMDQwNjdmNWViZmIzYThiNGJkOThlNDM3YThjMDc2OGJlMjZmMWUuLjFi
MGExMmFmNDAwMmE5MGJlNjM1ZTczOGYxZDVlN2Q5MGRjYjA0ZDMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMKKysrIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcwpAQCAtNDgsNjEgKzQ4LDYgQEAgY2xhc3Mg
SW50cmluc2ljcyB7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCi0gICAg
ICAgIGZ1bmN0aW9uIGNhc3QodHlwZWRBcnJheUNvbnN0cnVjdG9yLCBudW1iZXIpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHZhciBhcnJheSA9IG5ldyB0eXBlZEFycmF5Q29uc3RydWN0b3IoMSk7
Ci0gICAgICAgICAgICBhcnJheVswXSA9IG51bWJlcjsKLSAgICAgICAgICAgIHJldHVybiBhcnJh
eVswXTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIGJpdHdpc2VDYXN0KHR5cGVkQXJy
YXlDb25zdHJ1Y3RvcjEsIHR5cGVkQXJyYXlDb25zdHJ1Y3RvcjIsIHZhbHVlKQotICAgICAgICB7
Ci0gICAgICAgICAgICBsZXQgdHlwZWRBcnJheTEgPSBuZXcgdHlwZWRBcnJheUNvbnN0cnVjdG9y
MSgxKTsKLSAgICAgICAgICAgIGxldCB0eXBlZEFycmF5MiA9IG5ldyB0eXBlZEFycmF5Q29uc3Ry
dWN0b3IyKHR5cGVkQXJyYXkxLmJ1ZmZlcik7Ci0gICAgICAgICAgICB0eXBlZEFycmF5MVswXSA9
IHZhbHVlOwotICAgICAgICAgICAgcmV0dXJuIHR5cGVkQXJyYXkyWzBdOwotICAgICAgICB9Ci0K
LSAgICAgICAgZnVuY3Rpb24gY2FzdFRvSGFsZihudW1iZXIpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgbWF0aCBvYmV5IElFRUUgNzU0LgotICAgICAgICAgICAg
aWYgKE51bWJlci5pc05hTihudW1iZXIpKQotICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcgot
ICAgICAgICAgICAgaWYgKG51bWJlciA+IDY1NTA0KQotICAgICAgICAgICAgICAgIHJldHVybiBO
dW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7Ci0gICAgICAgICAgICBpZiAobnVtYmVyIDwgLTY1NTA0
KQotICAgICAgICAgICAgICAgIHJldHVybiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7Ci0gICAg
ICAgICAgICBpZiAobnVtYmVyID4gMCAmJiBudW1iZXIgPCBNYXRoLnBvdygyLCAtMjQpKQotICAg
ICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgaWYgKG51bWJlciA8IDAgJiYgbnVt
YmVyID4gLU1hdGgucG93KDIsIC0yNCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIC0wOwotICAg
ICAgICAgICAgbGV0IGRvdWJsZUFycmF5ID0gbmV3IEZsb2F0NjRBcnJheSgxKTsKLSAgICAgICAg
ICAgIGxldCB1aW50QXJyYXkgPSBuZXcgVWludDhBcnJheShkb3VibGVBcnJheS5idWZmZXIpOwot
ICAgICAgICAgICAgZG91YmxlQXJyYXlbMF0gPSBudW1iZXI7Ci0gICAgICAgICAgICBsZXQgc2ln
biA9IHVpbnRBcnJheVs3XSAmIDB4ODA7Ci0gICAgICAgICAgICBsZXQgZXhwb25lbnQgPSAoKHVp
bnRBcnJheVs3XSAmIDB4N2YpIDw8IDQpIHwgKCh1aW50QXJyYXlbNl0gJiAweGYwKSA+Pj4gNCk7
Ci0gICAgICAgICAgICBsZXQgc2lnbmlmaWNhbmQgPSAoKHVpbnRBcnJheVs2XSAmIDB4MGYpIDw8
IDYpIHwgKCh1aW50QXJyYXlbNV0gJiAweGZjKSA+Pj4gMik7Ci0KLSAgICAgICAgICAgIGlmICgo
ZXhwb25lbnQgLSAxMDIzKSA8IC0xNCkgewotICAgICAgICAgICAgICAgIGV4cG9uZW50ID0gMDsK
LSAgICAgICAgICAgICAgICBzaWduaWZpY2FuZCA9IChNYXRoLmFicyhudW1iZXIpICogTWF0aC5w
b3coMiwgMjQpKSA+Pj4gMDsKLSAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBNYXRoLnBvdygy
LCAtMTQpICogc2lnbmlmaWNhbmQgLyAxMDI0OwotICAgICAgICAgICAgICAgIGlmIChzaWduICE9
IDApCi0gICAgICAgICAgICAgICAgICAgIHZhbHVlICo9IC0xOwotICAgICAgICAgICAgICAgIHJl
dHVybiB2YWx1ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZG91YmxlQXJyYXlbMF0g
PSAwOwotCi0gICAgICAgICAgICB1aW50QXJyYXlbN10gfD0gc2lnbjsKLSAgICAgICAgICAgIHVp
bnRBcnJheVs3XSB8PSAoZXhwb25lbnQgPj4+IDQpOwotICAgICAgICAgICAgdWludEFycmF5WzZd
IHw9ICgoZXhwb25lbnQgPDwgNCkgJiAweGYwKTsKLSAgICAgICAgICAgIHVpbnRBcnJheVs2XSB8
PSAoc2lnbmlmaWNhbmQgPj4+IDYpOwotICAgICAgICAgICAgdWludEFycmF5WzVdIHw9ICgoc2ln
bmlmaWNhbmQgPDwgMikgJiAweGZjKTsKLQotICAgICAgICAgICAgcmV0dXJuIGRvdWJsZUFycmF5
WzBdOwotICAgICAgICB9Ci0KICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJu
YXRpdmUgdHlwZWRlZiB2b2lkIiwKICAgICAgICAgICAgIHR5cGUgPT4gewpAQCAtMTI4LDE1ICs3
MywxNSBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0g
dHJ1ZTsKICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKICAgICAgICAgICAg
ICAgICB0eXBlLmlzU2lnbmVkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgdHlwZS5jYW5SZXBy
ZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVlICYgMHhmZiwgdmFsdWUp
OworICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNl
RXF1aXZhbGVudChjYXN0VG9VY2hhcih2YWx1ZSksIHZhbHVlKTsKICAgICAgICAgICAgICAgICB0
eXBlLnNpemUgPSAxOwogICAgICAgICAgICAgICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAg
ICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50
TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIHZhbHVlICYgMHhmZiwgdHlwZSk7Ci0gICAgICAgICAg
ICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+ICh2YWx1ZSArIDEpICYgMHhmZjsK
KyAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4g
SW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3RUb1VjaGFyKHZhbHVlKSwgdHlwZSk7Cisg
ICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+IGNhc3RUb1VjaGFy
KHZhbHVlICsgMSk7CiAgICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNFcXVhbCA9IChhLCBiKSA9
PiBhID09PSBiOwogICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAo
YnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAg
ICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmY7
Ci0gICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVl
ID0+IHZhbHVlICYgMHhmZjsKKyAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUlu
dExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9VY2hhcih2YWx1ZSk7CisgICAgICAgICAgICAgICAg
dHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb1VjaGFyKHZh
bHVlKTsKICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsKICAg
ICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhmZjsgKytpKQogICAgICAg
ICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVlOiBpLCBuYW1lOiBpfTsKQEAgLTE1MiwxNSAr
OTcsMTUgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNJbnQg
PSB0cnVlOwogICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKICAgICAgICAg
ICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgICB0eXBlLmNh
blJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQodmFsdWUgJiAweGZmZmYs
IHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBp
c0JpdHdpc2VFcXVpdmFsZW50KGNhc3RUb1VzaG9ydCh2YWx1ZSksIHZhbHVlKTsKICAgICAgICAg
ICAgICAgICAgdHlwZS5zaXplID0gMTsKICAgICAgICAgICAgICAgICAgdHlwZS5kZWZhdWx0VmFs
dWUgPSAwOwotICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2luLCB2
YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIHZhbHVlICYgMHhmZmZmLCB0eXBl
KTsKLSAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+ICh2YWx1
ZSArIDEpICYgMHhmZmZmOworICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAo
b3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3RUb1VzaG9y
dCh2YWx1ZSksIHR5cGUpOworICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0g
dmFsdWUgPT4gY2FzdFRvVXNob3J0KHZhbHVlICsgMSk7CiAgICAgICAgICAgICAgICAgIHR5cGUu
dmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKICAgICAgICAgICAgICAgICAgdHlwZS5w
b3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZz
ZXQsIDApOwotICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwg
PSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmZmZjsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRW
YWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlICYgMHhmZmZmOworICAgICAgICAg
ICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9V
c2hvcnQodmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRM
aXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvVXNob3J0KHZhbHVlKTsKICAgICAgICAgICAgICAgICAg
dHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7CiAgICAgICAgICAgICAgICAgICAgICBmb3Ig
KGxldCBpID0gMDsgaSA8PSAweGZmZmY7ICsraSkKICAgICAgICAgICAgICAgICAgICAgICAgICB5
aWVsZCB7dmFsdWU6IGksIG5hbWU6IGl9OwpAQCAtMTc1LDE1ICsxMjAsMTUgQEAgY2xhc3MgSW50
cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNJbnQgPSB0cnVlOwogICAgICAgICAg
ICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc1Np
Z25lZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVl
ID0+IGlzQml0d2lzZUVxdWl2YWxlbnQodmFsdWUgPj4+IDAsIHZhbHVlKTsKKyAgICAgICAgICAg
ICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KGNh
c3RUb1VpbnQodmFsdWUpLCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7
CiAgICAgICAgICAgICAgICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAgICAg
ICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0
aFR5cGUob3JpZ2luLCB2YWx1ZSA+Pj4gMCwgdHlwZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUu
c3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiAodmFsdWUgKyAxKSA+Pj4gMDsKKyAgICAgICAgICAg
ICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwu
d2l0aFR5cGUob3JpZ2luLCBjYXN0VG9VaW50KHZhbHVlKSwgdHlwZSk7CisgICAgICAgICAgICAg
ICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0VG9VaW50KHZhbHVlICsgMSk7
CiAgICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsK
ICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9m
ZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOwotICAgICAgICAgICAgICAgICB0eXBlLmZv
cm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSA+Pj4gMDsKLSAgICAgICAg
ICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVl
ID4+PiAwOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwg
PSB2YWx1ZSA9PiBjYXN0VG9VaW50KHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3Jt
YXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb1VpbnQodmFsdWUpOwogICAg
ICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsKICAgICAgICAgICAg
ICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmZmZmZmZmY7ICsraSkKICAgICAgICAg
ICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IGksIG5hbWU6IGl9OwpAQCAtMTk4LDE4ICsx
NDMsMTggQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNJbnQg
PSB0cnVlOwogICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKICAgICAgICAg
ICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgIHR5cGUuY2Fu
UmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0KEludDhBcnJheSwg
dmFsdWUpLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFs
dWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0VG9DaGFyKHZhbHVlKSwgdmFsdWUpOwogICAg
ICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOwogICAgICAgICAgICAgICAgICB0eXBlLmRlZmF1
bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmln
aW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2FzdChJbnQ4QXJyYXks
IHZhbHVlKSwgdHlwZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2
YWx1ZSA9PiBjYXN0KEludDhBcnJheSwgdmFsdWUgKyAxKTsKKyAgICAgICAgICAgICAgICAgdHlw
ZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUo
b3JpZ2luLCBjYXN0VG9DaGFyKHZhbHVlKSwgdHlwZSk7CisgICAgICAgICAgICAgICAgIHR5cGUu
c3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0VG9DaGFyKHZhbHVlICsgMSk7CiAgICAgICAg
ICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKICAgICAgICAg
ICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4g
YnVmZmVyLnNldChvZmZzZXQsIDApOwotICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVl
RnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0KEludDhBcnJheSwgdmFsdWUpOwotICAgICAg
ICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gY2Fz
dChJbnQ4QXJyYXksIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZy
b21JbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvQ2hhcih2YWx1ZSk7CisgICAgICAgICAgICAg
ICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9DaGFy
KHZhbHVlKTsKICAgICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7
CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSAweGZmOyArK2kpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBjYXN0KEludDhBcnJheSwgaSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gY2FzdFRvQ2hhcihpKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IHZhbHVlLCBuYW1lOiB2YWx1ZX07
CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH07CkBAIC0yMjMsMTgg
KzE2OCwxOCBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICAgdHlwZS5pc0lu
dCA9IHRydWU7CiAgICAgICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIgPSB0cnVlOwogICAgICAg
ICAgICAgICAgICB0eXBlLmlzU2lnbmVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgdHlwZS5j
YW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KGNhc3QoSW50MTZBcnJh
eSwgdmFsdWUpLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0g
dmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0VG9TaG9ydCh2YWx1ZSksIHZhbHVlKTsK
ICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKICAgICAgICAgICAgICAgICAgdHlwZS5k
ZWZhdWx0VmFsdWUgPSAwOwotICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAo
b3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3QoSW50MTZB
cnJheSwgdmFsdWUpLCB0eXBlKTsKLSAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1
ZSA9IHZhbHVlID0+IGNhc3QoSW50MTZBcnJheSwgdmFsdWUgKyAxKTsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0
aFR5cGUob3JpZ2luLCBjYXN0VG9TaG9ydCh2YWx1ZSksIHR5cGUpOworICAgICAgICAgICAgICAg
ICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdFRvU2hvcnQodmFsdWUgKyAxKTsK
ICAgICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNFcXVhbCA9IChhLCBiKSA9PiBhID09PSBiOwog
ICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zm
c2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9y
bWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3QoSW50MTZBcnJheSwgdmFsdWUp
OwotICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFs
dWUgPT4gY2FzdChJbnQxNkFycmF5LCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9y
bWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb1Nob3J0KHZhbHVlKTsKKyAg
ICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+
IGNhc3RUb1Nob3J0KHZhbHVlKTsKICAgICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBm
dW5jdGlvbiooKSB7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSAw
eGZmZmY7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGNhc3Qo
SW50MTZBcnJheSwgaSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gY2Fz
dFRvU2hvcnQoaSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVlOiB2YWx1
ZSwgbmFtZTogdmFsdWV9OwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICB9OwpAQCAtMjQ4LDE4ICsxOTMsMTggQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAg
ICAgICAgIHR5cGUuaXNJbnQgPSB0cnVlOwogICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVy
ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IHRydWU7Ci0gICAgICAg
ICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVu
dCh2YWx1ZSB8IDAsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNlbnQg
PSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KGNhc3RUb0ludCh2YWx1ZSksIHZhbHVlKTsK
ICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKICAgICAgICAgICAgICAgICAgdHlwZS5k
ZWZhdWx0VmFsdWUgPSAwOwotICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAo
b3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIHZhbHVlIHwgMCwg
dHlwZSk7Ci0gICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiAo
dmFsdWUgKyAxKSB8IDA7CisgICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChv
cmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2FzdFRvSW50KHZh
bHVlKSwgdHlwZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1
ZSA9PiBjYXN0VG9JbnQodmFsdWUgKyAxKTsKICAgICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNF
cXVhbCA9IChhLCBiKSA9PiBhID09PSBiOwogICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRl
RGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7
Ci0gICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVl
ID0+IHZhbHVlIHwgMDsKLSAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50
TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlIHwgMDsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3Jt
YXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdFRvSW50KHZhbHVlKTsKKyAgICAg
ICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IGNh
c3RUb0ludCh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVuY3Rp
b24qKCkgewogICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhmZmZm
ZmZmZjsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gaSB8IDA7
CisgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gY2FzdFRvSW50KGkpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogdmFsdWUsIG5hbWU6IHZhbHVlfTsK
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfTsKQEAgLTI5Miw3ICsy
MzcsNyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0
ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDAp
OwogICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1
ZSA9PiB2YWx1ZTsKICAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0
ZXJhbCA9IHZhbHVlID0+IHZhbHVlOwotICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVl
RnJvbUZsb2F0TGl0ZXJhbCA9IHZhbHVlID0+IE1hdGguZnJvdW5kKHZhbHVlKTsKKyAgICAgICAg
ICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21GbG9hdExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0
VG9GbG9hdCh2YWx1ZSk7CiAgICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKQEAgLTMzMCw3ICsyNzUsOCBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICJu
YXRpdmUgdHlwZWRlZiBzYW1wbGVyIiwKICAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAgICAg
ICAgICAgIHRoaXMuc2FtcGxlciA9IHR5cGU7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IEZp
Z3VyZSBvdXQgd2hhdCB0byBwdXQgaGVyZS4KKyAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAx
OworICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBv
ZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCB7fSk7CiAgICAgICAgICAgICB9KTsKIAogICAg
ICAgICBmb3IgKGxldCB0ZXh0dXJlVHlwZSBvZiBbIlRleHR1cmUxRCIsICJSV1RleHR1cmUxRCIs
ICJUZXh0dXJlMURBcnJheSIsICJSV1RleHR1cmUxREFycmF5IiwgIlRleHR1cmUyRCIsICJSV1Rl
eHR1cmUyRCIsICJUZXh0dXJlMkRBcnJheSIsICJSV1RleHR1cmUyREFycmF5IiwgIlRleHR1cmUz
RCIsICJSV1RleHR1cmUzRCIsICJUZXh0dXJlQ3ViZSJdKSB7CkBAIC0zMzksMTIgKzI4NSwxNiBA
QCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVm
ICR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gLAogICAgICAgICAgICAgICAgICAgICB0
eXBlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7
dHlwZUFyZ3VtZW50fT5gXSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnNp
emUgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1
ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIHt9KTsKICAgICAgICAg
ICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDI7IGkgPD0gNDsg
KytpKSB7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9
JHtpfT5gLAogICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9JHtpfT5g
XSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1
ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwge30pOwogICAgICAgICAgICAgICAg
ICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtMzU2LDYg
KzMwNiw4IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
IHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmAsCiAgICAgICAgICAgICAg
ICAgICAgIHR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJl
VHlwZX08JHt0eXBlQXJndW1lbnR9PmBdID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVm
YXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwge30pOwog
ICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMzY0
LDcgKzMxNiw3IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKICAgICAgICAgICAgICAgICBgbmF0aXZlIG9wZXJhdG9yIHVjaGFyKCR7cHJpbWl0aXZlVHlw
ZX0pYCwKICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUo
KSAmIDB4ZmYpOworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2
YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb1VjaGFyKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAg
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KIApAQCAtMzcyLDcgKzMyNCw3IEBAIGNsYXNzIElu
dHJpbnNpY3MgewogICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICAgICBg
bmF0aXZlIG9wZXJhdG9yIHVzaG9ydCgke3ByaW1pdGl2ZVR5cGV9KWAsCiAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgJiAweGZmZmYpOworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94
KGNhc3RUb1VzaG9ydCh2YWx1ZS5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgICAgIH0pOwog
ICAgICAgICB9CiAKQEAgLTM4MCw3ICszMzIsNyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciB1
aW50KCR7cHJpbWl0aXZlVHlwZX0pYCwKICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJv
eCh2YWx1ZS5sb2FkVmFsdWUoKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdFRvVWludCh2YWx1ZS5sb2Fk
VmFsdWUoKSkpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKQEAgLTM4OCw3ICsz
NDAsNyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciBjaGFyKCR7cHJpbWl0aXZlVHlwZX0pYCwK
ICAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0KEludDhBcnJheSwgdmFsdWUu
bG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9DaGFyKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KIApAQCAtMzk2LDcgKzM0OCw3IEBAIGNsYXNz
IEludHJpbnNpY3MgewogICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICAg
ICBgbmF0aXZlIG9wZXJhdG9yIHNob3J0KCR7cHJpbWl0aXZlVHlwZX0pYCwKICAgICAgICAgICAg
ICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0KEludDE2QXJyYXksIHZhbHVlLmxvYWRWYWx1ZSgp
KSk7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkg
PT4gRVB0ci5ib3goY2FzdFRvU2hvcnQodmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfQogCkBAIC00MjAsNyArMzcyLDcgQEAgY2xhc3MgSW50cmluc2lj
cyB7CiAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgICAgIGBuYXRpdmUg
b3BlcmF0b3IgZmxvYXQoJHtwcmltaXRpdmVUeXBlfSlgLAogICAgICAgICAgICAgICAgIGZ1bmMg
PT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0p
ID0+IEVQdHIuYm94KE1hdGguZnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2Fz
dFRvRmxvYXQodmFsdWUubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAg
ICAgfQogCkBAIC00ODQsMjkyICs0MzYsMjkyIEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAg
ICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3ItKGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7
CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveCgoLXZhbHVlLmxvYWRWYWx1ZSgpKSB8IDApOworICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQoLXZhbHVlLmxvYWRWYWx1ZSgpKSk7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAg
Im5hdGl2ZSBmbG9hdCBvcGVyYXRvci0oZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewog
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoLXZhbHVlLmxvYWRWYWx1ZSgpKSk7
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KC12YWx1ZS5sb2FkVmFs
dWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAg
ICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yKyhpbnQsaW50KSIsCiAgICAgICAgICAgICBmdW5j
ID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdo
dF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICsg
cmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNh
c3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgpICsgcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAg
ICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGlu
dCBvcGVyYXRvci0oaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAtIHJpZ2h0LmxvYWRWYWx1ZSgp
KSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5sb2Fk
VmFsdWUoKSAtIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3IqKGludCxp
bnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goKGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5s
b2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgK
ICAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yLyhpbnQsaW50KSIsCiAgICAgICAgICAg
ICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0
LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1
ZSgpIC8gcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KGNhc3RUb0ludChsZWZ0LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9hZFZhbHVlKCkpKTsKICAg
ICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0
aXZlIHVpbnQgb3BlcmF0b3IrKHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9Pgot
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSArIHJpZ2h0Lmxv
YWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb1Vp
bnQobGVmdC5sb2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9
KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9w
ZXJhdG9yLSh1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkg
Pj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxlZnQubG9h
ZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcioodWlu
dCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAg
ICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWludChsZWZ0LmxvYWRWYWx1ZSgpICog
cmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21h
cC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3IvKHVpbnQsdWludCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVm
dC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRW
YWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAg
ICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvcisoZmxvYXQsZmxvYXQpIiwKICAgICAgICAg
ICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xl
ZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQo
bGVmdC5sb2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFs
dWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAg
ICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3ItKGZsb2F0LGZsb2F0KSIsCiAgICAgICAgICAg
ICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0
LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKGxl
ZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChjYXN0VG9GbG9hdChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVl
KCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAg
ICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yKihmbG9hdCxmbG9hdCkiLAogICAgICAgICAgICAg
ZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwg
cmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChsZWZ0
LmxvYWRWYWx1ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3goY2FzdFRvRmxvYXQobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgp
KSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAg
ICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvci8oZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1
bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJp
Z2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQobGVmdC5s
b2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGNhc3RUb0Zsb2F0KGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkp
OwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAg
ICJuYXRpdmUgaW50IG9wZXJhdG9yJihpbnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsK
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+
Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICYgcmlnaHQu
bG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0lu
dChsZWZ0LmxvYWRWYWx1ZSgpICYgcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVy
YXRvcnwoaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAg
ICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSB8IHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDAp
OworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUo
KSB8IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlz
Ll9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3JeKGludCxpbnQpIiwK
ICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxl
ZnQubG9hZFZhbHVlKCkgXiByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goY2FzdFRvSW50KGxlZnQubG9hZFZhbHVlKCkgXiByaWdodC5sb2FkVmFs
dWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAg
ICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yfihpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4g
ewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0
ci5ib3goKH52YWx1ZS5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb0ludCh+dmFsdWUubG9h
ZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAg
ICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcjw8KGludCx1aW50KSIsCiAgICAgICAgICAg
ICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0
LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1
ZSgpIDw8IHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRy
LmJveChjYXN0VG9JbnQobGVmdC5sb2FkVmFsdWUoKSA8PCByaWdodC5sb2FkVmFsdWUoKSkpOwog
ICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJu
YXRpdmUgaW50IG9wZXJhdG9yPj4oaW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewog
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgPj4gcmlnaHQu
bG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0lu
dChsZWZ0LmxvYWRWYWx1ZSgpID4+IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9
KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9w
ZXJhdG9yJih1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgJiByaWdodC5sb2FkVmFsdWUoKSkg
Pj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9VaW50KGxlZnQubG9h
ZFZhbHVlKCkgJiByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcnwodWlu
dCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIHwgcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAg
ICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvVWludChsZWZ0LmxvYWRWYWx1ZSgpIHwg
cmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21h
cC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3JeKHVpbnQsdWludCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVm
dC5sb2FkVmFsdWUoKSBeIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSBeIHJpZ2h0LmxvYWRW
YWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAg
ICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yfih1aW50KSIsCiAgICAgICAgICAgICBmdW5j
ID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+
IEVQdHIuYm94KCh+dmFsdWUubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb1VpbnQofnZh
bHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAu
c2V0KAogICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yPDwodWludCx1aW50KSIsCiAg
ICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0
LmxvYWRWYWx1ZSgpIDw8IHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KGNhc3RUb1VpbnQobGVmdC5sb2FkVmFsdWUoKSA8PCByaWdodC5sb2Fk
VmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAg
ICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcj4+KHVpbnQsdWludCkiLAogICAgICAgICAg
ICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFs
dWUoKSA+Pj4gcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3goY2FzdFRvVWludChsZWZ0LmxvYWRWYWx1ZSgpID4+PiByaWdodC5sb2FkVmFsdWUo
KSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAg
ICAgICJuYXRpdmUgZmxvYXQgY29zKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAg
ICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguY29zKHZhbHVlLmxvYWRWYWx1
ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLmNv
cyh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMu
X21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IHNpbihmbG9hdCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
dmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRo
LnNpbih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
Y2FzdFRvRmxvYXQoTWF0aC5zaW4odmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9
KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCB0
YW4oZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goTWF0aC5mcm91bmQoTWF0aC50YW4odmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgudGFuKHZhbHVlLmxvYWRWYWx1ZSgp
KSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAg
ICAgICJuYXRpdmUgZmxvYXQgYWNvcyhmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmFjb3ModmFsdWUubG9hZFZh
bHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgu
YWNvcyh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGFzaW4oZmxvYXQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQo
TWF0aC5hc2luKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRy
LmJveChjYXN0VG9GbG9hdChNYXRoLmFzaW4odmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAg
ICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBm
bG9hdCBhdGFuKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguYXRhbih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAg
ICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5hdGFuKHZhbHVlLmxv
YWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgK
ICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgY29zaChmbG9hdCkiLAogICAgICAgICAgICAgZnVu
YyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmNvc2godmFs
dWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zs
b2F0KE1hdGguY29zaCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0IHNpbmgoZmxv
YXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0
aC5mcm91bmQoTWF0aC5zaW5oKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAg
ICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChNYXRoLnNpbmgodmFsdWUubG9hZFZhbHVlKCkpKSk7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAg
Im5hdGl2ZSBmbG9hdCB0YW5oKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgudGFuaCh2YWx1ZS5sb2FkVmFsdWUo
KSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC50YW5o
KHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5f
bWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgY2VpbChmbG9hdCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
dmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRo
LmNlaWwodmFsdWUubG9hZFZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KGNhc3RUb0Zsb2F0KE1hdGguY2VpbCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAg
IH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGZsb2F0
IGV4cChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRy
LmJveChNYXRoLmZyb3VuZChNYXRoLmV4cCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC5leHAodmFsdWUubG9hZFZhbHVl
KCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAg
ICAgICAgIm5hdGl2ZSBmbG9hdCBmbG9vcihmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7
CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgotICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmZsb29yKHZhbHVlLmxv
YWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9GbG9hdChN
YXRoLmZsb29yKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7CiAKICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgbG9nKGZsb2F0KSIs
CiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJv
dW5kKE1hdGgubG9nKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveChjYXN0VG9GbG9hdChNYXRoLmxvZyh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAg
ICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZl
IGZsb2F0IHJvdW5kKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgucm91bmQodmFsdWUubG9hZFZhbHVlKCkpKSk7
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGNhc3RUb0Zsb2F0KE1hdGgucm91bmQodmFs
dWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAu
c2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBzcXJ0KGZsb2F0KSIsCiAgICAgICAgICAg
ICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1
ZV0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguc3Fy
dCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2Fz
dFRvRmxvYXQoTWF0aC5zcXJ0KHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7
CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgdHJ1
bmMoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goTWF0aC5mcm91bmQoTWF0aC50cnVuYyh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3goY2FzdFRvRmxvYXQoTWF0aC50cnVuYyh2YWx1ZS5sb2FkVmFs
dWUoKSkpKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCkBAIC03
ODgsNyArNzQwLDcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICAibmF0aXZlIGZs
b2F0IHBvdyhmbG9hdCxmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnBvdyhsZWZ0LmxvYWRWYWx1ZSgp
LCByaWdodC5sb2FkVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goY2Fz
dFRvRmxvYXQoTWF0aC5wb3cobGVmdC5sb2FkVmFsdWUoKSwgcmlnaHQubG9hZFZhbHVlKCkpKSk7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9tYXAuc2V0KApAQCAtODMyLDcgKzc4
NCw3IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBhdGFu
MihmbG9hdCxmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAg
ICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmF0YW4yKGxlZnQubG9hZFZhbHVlKCksIHJp
Z2h0LmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChjYXN0VG9G
bG9hdChNYXRoLmF0YW4yKGxlZnQubG9hZFZhbHVlKCksIHJpZ2h0LmxvYWRWYWx1ZSgpKSkpOwog
ICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKQEAgLTkxNCw2ICs4NjYs
MTM5NSBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKIAogICAgICAgICBmb3IgKGxldCBzZXR0ZXIgb2Yg
QnVpbHRpbk1hdHJpeFNldHRlci5mdW5jdGlvbnMoKSkKICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoc2V0dGVyLnRvU3RyaW5nKCksIGZ1bmMgPT4gc2V0dGVyLmluc3RhbnRpYXRlSW1wbGVtZW50
YXRpb24oZnVuYykpOworCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrVW5kZWZpbmVkKG9yaWdpbiwg
ZXhwbGFuYXRpb24sIHZhbHVlKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAodmFsdWUgPT0g
dW5kZWZpbmVkKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbTG9hZF0i
LCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1
ZTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrRmFsc2Uob3JpZ2luLCBleHBs
YW5hdGlvbiwgdmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBmYWxz
ZSkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW1N0b3JlXSIsICJUZXh0
dXJlIHN0b3JlIG91dCBvZiBib3VuZHMiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9u
IGJveFZlY3RvcihhKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIEFy
cmF5KSB7CisgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBFUHRyKG5ldyBFQnVmZmVy
KGEubGVuZ3RoKSwgMCk7CisgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxl
bmd0aDsgKytpKQorICAgICAgICAgICAgICAgICAgICByZXN1bHQuc2V0KGksIGFbaV0pOworICAg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgICAgICByZXR1cm4gRVB0ci5ib3goYSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlv
biB1bmJveFZlY3RvcihhLCBsZW5ndGgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChsZW5n
dGggIT0gIiIpIHsKKyAgICAgICAgICAgICAgICBsZW5ndGggPSBOdW1iZXIucGFyc2VJbnQobGVu
Z3RoKTsKKyAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gW107CisgICAgICAgICAgICAgICAg
Zm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICAgICAgcmVz
dWx0LnB1c2goYS5nZXQoaSkpOworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gYS5sb2FkVmFsdWUoKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHR5cGUgb2YgWyJ1Y2hhciIsICJ1c2hvcnQiLCAi
dWludCIsICJjaGFyIiwgInNob3J0IiwgImludCIsICJoYWxmIiwgImZsb2F0Il0pIHsKKyAgICAg
ICAgICAgIGZvciAodmFyIGxlbmd0aFZhcmlhYmxlIG9mIFtgYCwgYDJgLCBgM2AsIGA0YF0pIHsK
KyAgICAgICAgICAgICAgICBsZXQgbGVuZ3RoID0gbGVuZ3RoVmFyaWFibGU7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dCBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0
aW9uQXJyYXkgPSBbbG9jYXRpb24ubG9hZFZhbHVlKCksIDAsIDAsIDEsIDBdOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LHNh
bXBsZXIsZmxvYXQgbG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5sb2FkVmFs
dWUoKSwgMCwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRh
QXJyYXkgPSBbb2Zmc2V0LmxvYWRWYWx1ZSgpLCAwLCAwXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUo
KSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IExvYWQoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+LGludDIgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZp
bmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRW
YWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgbG9jYXRpb24u
Z2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3Ro
fT4saW50MiBsb2NhdGlvbixpbnQgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0
aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVy
ZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2Vk
KDAsIGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgbG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0LmxvYWRW
YWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4s
dWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIE51bWJlck9mTGV2
ZWxzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwg
d2lkdGgsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3VudCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJSZWFk
aW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
d2lkdGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51
bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0p
OworCisgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTFEQXJyYXk8JHt0eXBlfSR7
bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgMCwgMCwg
MSwgbG9jYXRpb24uZ2V0KDEpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ym94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxl
KFRleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9u
LGludCBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCAwLCAwLCAxLCBsb2NhdGlvbi5n
ZXQoMSldOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29m
ZnNldC5sb2FkVmFsdWUoKSwgMCwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIu
bG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBM
b2FkKFRleHR1cmUxREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGludDMgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJb
TG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgp
LmVsZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgyKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAwLCBs
b2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUxREFycmF5PCR7
dHlwZX0ke2xlbmd0aH0+LGludDMgbG9jYXRpb24saW50IG9mZnNldClgLAorICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xv
YWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5l
bGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgbG9j
YXRpb24uZ2V0KDApICsgb2Zmc2V0LmxvYWRWYWx1ZSgpKSkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhU
ZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVh
ZCBXaWR0aCx1aW50KiB0aHJlYWQgRWxlbWVudHMsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxz
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lk
dGgsIGVsZW1lbnRzLCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgbWlwSUQgPSBtaXBsZXZlbC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKCJbR2V0RGltZW5zaW9uc10i
LCAiUmVhZGluZyBmcm9tIG5vbmV4aXN0YW50IG1pcCBsZXZlbCBvZiB0ZXh0dXJlIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3Vu
dCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7
bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQy
IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRp
b25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJl
KHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXks
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZShUZXh0dXJlMkQ8JHt0eXBlfSR7bGVu
Z3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSks
IDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxl
VGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlv
bkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlQmlhcyhUZXh0dXJlMkQ8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgQmlhcylgLAor
ICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24s
IGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkg
PSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmlu
ZWQsIGJpYXMubG9hZFZhbHVlKCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlQmlhcyhUZXh0dXJlMkQ8JHt0eXBlfSR7
bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgQmlhcyxpbnQyIG9mZnNldClg
LAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIGJpYXMsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9j
YXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0Lmdl
dCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIu
bG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIGJpYXMubG9hZFZhbHVlKCks
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xl
bmd0aH0gU2FtcGxlR3JhZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDIgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZKWAsCisgICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBkZHldKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0
KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0KDEpLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5LmdldCgwKSwgZGR5LmdldCgx
KSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1w
bGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0
aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVHcmFkKFRleHR1cmUyRDwk
e3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0
MiBERFksaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeSwgb2Zmc2V0XSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9j
YXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
ZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQo
MCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxv
YWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIGRkeEFycmF5
LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBs
ZUxldmVsKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlv
bixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uLCBsb2RdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEs
IDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxl
VGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlv
bkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxvZC5s
b2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVMZXZlbChUZXh0
dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQgTE9E
LGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgbG9kLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQo
MSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5
ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1
ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkp
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX00IEdhdGhlcihUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgMCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3Ro
fT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24u
Z2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBd
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4
dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFy
cmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgMCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkQ8JHt0eXBlfSR7
bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRp
b24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ym94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChU
ZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBv
ZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxv
Y2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBd
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5n
ZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVy
LmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBp
ZiAobGVuZ3RoID09ICIyIiB8fCBsZW5ndGggPT0gIjMiIHx8IGxlbmd0aCA9PSAiNCIpIHsKKyAg
ICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+
LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1w
bGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAxKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1w
bGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5n
ZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVj
dG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUo
KSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDEpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGxlbmd0aCA9PSAiMyIgfHwgbGVuZ3RoID09ICI0IikgeworICAgICAgICAgICAgICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIs
ZmxvYXQyIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCks
IGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUo
KSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMikpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkQ8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24saW50MiBvZmZzZXQpYCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBz
YW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIDIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KGxlbmd0aCA9PSAiNCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdh
dGhlckFscGhhKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MiBsb2Nh
dGlvbilgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5j
dGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDAp
LCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAzKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyQWxwaGEoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQyIGxv
Y2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFy
cmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZz
ZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2Fk
VmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDMp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExv
YWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LGludDMgbG9jYXRpb24pYCwKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0i
LCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1l
bnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlv
bi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyRDwke3R5cGV9JHtsZW5n
dGh9PixpbnQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4
dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVj
a2VkKDAsIGxvY2F0aW9uLmdldCgyKSwgMCwgbG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgx
KSwgbG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMo
VGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LHVpbnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdp
ZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhl
aWdodCwgbnVtYmVyT2ZMZXZlbHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IHRleCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKG1pcElEID49IHRleC5sZXZlbENvdW50KQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRp
bmcgZnJvbSBub25leGlzdGFudCBtaXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
aGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3
aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElE
KSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7
bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBs
b2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBs
b2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hW
ZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1
ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4
dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50
MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEs
IGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRh
QXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9h
ZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXks
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVCaWFzKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0
aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdl
dCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmlu
ZWQsIGJpYXMubG9hZFZhbHVlKCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlQmlhcyhUZXh0dXJlMkRBcnJheTwke3R5
cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBCaWFzLGludDIgb2Zm
c2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgYmlhcywgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAx
LCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0
YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5
LCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBl
fSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZ
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbiwgZGR4LCBkZHldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0
aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0
aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0g
W2RkeC5nZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5s
b2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIGRkeEFycmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAk
e3R5cGV9JHtsZW5ndGh9IFNhbXBsZUdyYWQoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3Ro
fT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZLGludDIgb2Zm
c2V0KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBs
b2NhdGlvbiwgZGR4LCBkZHksIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
MCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
ZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQo
MCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxv
YWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIGRkeEFycmF5
LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNhbXBs
ZUxldmVsKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxv
Y2F0aW9uLGZsb2F0IExPRClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVy
ZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
MCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5s
b2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0
aH0gU2FtcGxlTGV2ZWwoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24sZmxvYXQgTE9ELGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kLCBvZmZzZXRdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwg
b2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIGxvZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRl
eHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAs
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
bl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFts
b2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgMCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlMkRBcnJheTwke3R5cGV9JHts
ZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDAp
LCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ym94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQo
VGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMild
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4
dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFy
cmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCAwKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUyREFycmF5PCR7dHlw
ZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMild
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5n
ZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVy
LmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBp
ZiAobGVuZ3RoID09ICIyIiB8fCBsZW5ndGggPT0gIjMiIHx8IGxlbmd0aCA9PSAiNCIpIHsKKyAg
ICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVu
Z3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVy
ZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgMSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlMkRBcnJh
eTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClg
LAorICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwg
MSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0
ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBk
ZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgMSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09ICIzIiB8
fCBsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1
ZShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bilgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQo
MSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUo
KSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMikpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkRB
cnJheTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNl
dClgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1
cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0
aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5n
ZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAyKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5n
dGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25d
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJh
eSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0
KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAzKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8
JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDAp
LCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgw
KSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCks
IHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCA0KSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1
cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LGludDQgbG9jYXRpb24pYCwKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAi
VGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRD
aGVja2VkKGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIpLCAwLCBsb2NhdGlvbi5nZXQo
MSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4dHVyZTJEQXJy
YXk8JHt0eXBlfSR7bGVuZ3RofT4saW50NCBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uLCBvZmZzZXRdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1VuZGVmaW5l
ZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFs
dWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMyksIGxvY2F0aW9uLmdldCgyKSwgMCwg
bG9jYXRpb24uZ2V0KDEpICsgb2Zmc2V0LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApICsgb2Zmc2V0
LmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAg
ICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVu
Z3RofT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhlaWdo
dCx1aW50KiB0aHJlYWQgRWxlbWVudHMsdWludCogdGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhl
aWdodCwgZWxlbWVudHMsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3VudCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25z
XSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoQXRM
ZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9t
KEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUo
VGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUo
dGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxlKFRleHR1cmUzRDwke3R5cGV9JHtsZW5n
dGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQzIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBv
ZmZzZXQuZ2V0KDEpLCBvZmZzZXQuZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5n
dGh9IExvYWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LGludDQgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJb
TG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgp
LmVsZW1lbnRDaGVja2VkKDAsIGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIpLCBsb2Nh
dGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4
dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LGludDQgbG9jYXRpb24saW50MyBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbiwgb2Zmc2V0XSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRl
ZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9h
ZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9jYXRpb24uZ2V0KDMpLCBsb2NhdGlvbi5nZXQo
MikgKyBvZmZzZXQuZ2V0KDIpLCBsb2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQuZ2V0KDEpLCBsb2Nh
dGlvbi5nZXQoMCkgKyBvZmZzZXQuZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJl
M0Q8JHt0eXBlfSR7bGVuZ3RofT4sdWludCBNaXBMZXZlbCx1aW50KiB0aHJlYWQgV2lkdGgsdWlu
dCogdGhyZWFkIEhlaWdodCx1aW50KiB0aHJlYWQgRGVwdGgsdWludCogdGhyZWFkIE51bWJlck9m
TGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBtaXBsZXZl
bCwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIG51bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3VudCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXRE
aW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1
cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aC5sb2FkVmFsdWUoKS5jb3B5
RnJvbShFUHRyLmJveCh0ZXguZGVwdGhBdExldmVsKG1pcElEKSksIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
aGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3
aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGhBdExldmVsKG1pcElE
KSksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTGV2ZWxzLmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZlbENvdW50KSwgMSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7
bGVuZ3RofSBTYW1wbGUoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9h
dDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNh
bXBsZXIsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5n
ZXQoMiksIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGVCaWFzKFRl
eHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0
IEJpYXMpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uLCBiaWFzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5n
ZXQoMiksIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIGJpYXMubG9hZFZhbHVlKCksIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gU2FtcGxl
R3JhZChUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlv
bixmbG9hdDMgRERYLGZsb2F0MyBERFkpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24o
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeV0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0
aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwgZGR4LmdldCgy
KV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeUFycmF5ID0gW2RkeS5nZXQo
MCksIGRkeS5nZXQoMSksIGRkeS5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1w
bGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGR4
QXJyYXksIGRkeUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0g
U2FtcGxlTGV2ZWwoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24sZmxvYXQgTE9EKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0
dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgbG9kXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEp
LCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVy
LmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIGxvZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9
IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgMCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlQ3ViZTwke3R5cGV9
JHtsZW5ndGh9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSBmdW5jdGlvbihbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2Nh
dGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMiIgfHwgbGVuZ3RoID09ICIzIiB8fCBsZW5ndGggPT0g
IjQiKSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmVDdWJlPCR7dHlw
ZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24oW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJl
KHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXks
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIDEpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMyIg
fHwgbGVuZ3RoID09ICI0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckJs
dWUoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEp
LCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCks
IHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDIpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiNCIpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmVDdWJlPCR7
dHlwZX0ke2xlbmd0aH0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCBzYW1wbGVy
LCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9j
YXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwg
c2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMykpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlQ3Vi
ZTwke3R5cGV9JHtsZW5ndGh9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50
KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIG51
bWJlck9mTGV2ZWxzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0
ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJ
RCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICh0ZXgubGF5ZXJDb3VudCAhPSA2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIkN1YmUgdGV4dHVyZSBkb2Vzbid0IGhhdmUgNiBmYWNlcyIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+PSB0ZXgubGV2ZWxDb3VudCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXRE
aW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1
cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LmhlaWdodEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
dW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3Vu
dCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9
KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9
Pix1aW50KiB0aHJlYWQgV2lkdGgpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oW3Rl
eHR1cmUsIHdpZHRoXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleHR1cmUubG9hZFZhbHVlKCkud2lkdGgpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2
b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sZmxvYXQqIHRo
cmVhZCBXaWR0aClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lk
dGhdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4dHVyZS5sb2FkVmFsdWUoKS53aWR0aCksIDEpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0ke2xl
bmd0aH0gTG9hZChSV1RleHR1cmUxRDwke3R5cGV9JHtsZW5ndGh9PixpbnQgbG9jYXRpb24pYCwK
KyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVk
KCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1
ZSgpLmVsZW1lbnRDaGVja2VkKDAsIDAsIDAsIDAsIGxvY2F0aW9uLmxvYWRWYWx1ZSgpKSkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZv
aWQgU3RvcmUoUldUZXh0dXJlMUQ8JHt0eXBlfSR7bGVuZ3RofT4sJHt0eXBlfSR7bGVuZ3RofSx1
aW50IGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwg
dmFsdWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRmFs
c2UoIltTdG9yZV0iLCAiVGV4dHVyZSB3cml0ZSBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2Fk
VmFsdWUoKS5zZXRFbGVtZW50Q2hlY2tlZCgwLCAwLCAwLCAwLCBsb2NhdGlvbi5sb2FkVmFsdWUo
KSwgdW5ib3hWZWN0b3IodmFsdWUsIGxlbmd0aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldU
ZXh0dXJlMURBcnJheTwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCog
dGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJl
LCB3aWR0aCwgZWxlbWVudHNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRl
eCA9IHRleHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxl
bWVudHMubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShF
UHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMURBcnJh
eTwke3R5cGV9JHtsZW5ndGh9PixmbG9hdCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBFbGVt
ZW50cylgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGVs
ZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJl
LmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxvYWRW
YWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sYXllckNvdW50KSwgMSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4
LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVyZTFEQXJyYXk8JHt0eXBl
fSR7bGVuZ3RofT4saW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlv
biAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0
IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24u
Z2V0KDEpLCAwLCAwLCAwLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUx
REFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCR7dHlwZX0ke2xlbmd0aH0sdWludDIgbG9jYXRpb24p
YCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRp
b25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tGYWxzZSgiW1N0b3JlXSIs
ICJUZXh0dXJlIHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLnNldEVs
ZW1lbnRDaGVja2VkKGxvY2F0aW9uLmdldCgxKSwgMCwgMCwgMCwgbG9jYXRpb24uZ2V0KDApLCB1
bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1
cmUyRDwke3R5cGV9JHtsZW5ndGh9Pix1aW50KiB0aHJlYWQgV2lkdGgsdWludCogdGhyZWFkIEhl
aWdodClgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbihbdGV4dHVyZSwgd2lkdGgsIGhl
aWdodF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5s
b2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCks
IDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0
aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9PixmbG9h
dCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJlYWQgSGVpZ2h0KWAsCisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0XSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
aGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2Fk
KFJXVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LGludDIgbG9jYXRpb24pYCwKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0i
LCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1l
bnRDaGVja2VkKDAsIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZv
aWQgU3RvcmUoUldUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sJHt0eXBlfSR7bGVuZ3RofSx1
aW50MiBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0Zh
bHNlKCJbU3RvcmVdIiwgIlRleHR1cmUgd3JpdGUgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9h
ZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQoMCwgMCwgMCwgbG9jYXRpb24uZ2V0KDEpLCBsb2Nh
dGlvbi5nZXQoMCksIHVuYm94VmVjdG9yKHZhbHVlLCBsZW5ndGgpKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1l
bnNpb25zKFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sdWludCogdGhyZWFkIFdp
ZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50c10p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFs
dWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5j
b3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0
KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29w
eUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
CisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVy
ZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhy
ZWFkIEhlaWdodCxmbG9hdCogdGhyZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50c10pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRy
LmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhl
aWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5i
b3godGV4LndpZHRoKSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVyZTJEQXJyYXk8
JHt0eXBlfSR7bGVuZ3RofT4saW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJl
YWQgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9j
YXRpb24uZ2V0KDIpLCAwLCAwLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSkpKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB2
b2lkIFN0b3JlKFJXVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sJHt0eXBlfSR7bGVu
Z3RofSx1aW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3Rl
eHR1cmUsIHZhbHVlLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
aGVja0ZhbHNlKCJbU3RvcmVdIiwgIlRleHR1cmUgd3JpdGUgb3V0IG9mIGJvdW5kcyIsIHRleHR1
cmUubG9hZFZhbHVlKCkuc2V0RWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDIpLCAwLCAwLCBs
b2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0b3IodmFsdWUsIGxlbmd0
aCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7
CisKKyAgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAg
YG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4s
dWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCogdGhyZWFkIERlcHRo
KWAsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKFt0ZXh0dXJlLCB3aWR0aCwgaGVpZ2h0
LCBkZXB0aF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVy
ZS5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aC5sb2FkVmFs
dWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguZGVwdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBoZWlnaHQubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdo
dCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1
cmUzRDwke3R5cGV9JHtsZW5ndGh9PixmbG9hdCogdGhyZWFkIFdpZHRoLGZsb2F0KiB0aHJlYWQg
SGVpZ2h0LGZsb2F0KiB0aHJlYWQgRGVwdGgpYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24oW3RleHR1cmUsIHdpZHRoLCBoZWlnaHQsIGRlcHRoXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRlcHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5kZXB0
aCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5j
b3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwgMSk7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfSR7bGVuZ3RofSBMb2FkKFJXVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LGludDMg
bG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBsb2Nh
dGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNo
ZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0
dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIDAsIGxvY2F0aW9uLmdldCgyKSwgbG9j
YXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmUzRDwk
e3R5cGV9JHtsZW5ndGh9Piwke3R5cGV9JHtsZW5ndGh9LHVpbnQzIGxvY2F0aW9uKWAsCisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFsdWUsIGxvY2F0aW9uXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRmFsc2UoIltTdG9yZV0iLCAiVGV4dHVy
ZSB3cml0ZSBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5zZXRFbGVtZW50Q2hl
Y2tlZCgwLCAwLCBsb2NhdGlvbi5nZXQoMiksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0
KDApLCB1bmJveFZlY3Rvcih2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
CisgICAgICAgIGZvciAobGV0IHR5cGUgb2YgWyJoYWxmIiwgImZsb2F0Il0pIHsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbilgLAorICAg
ICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwg
bG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxv
YWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAg
IGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVu
Y3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2Nh
dGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRh
QXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFs
dWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRl
eHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLCR7dHlwZX0gQ29t
cGFyZVZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxv
Y2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9j
YXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUo
dGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNv
bXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxl
cixmbG9hdDIgbG9jYXRpb24sJHt0eXBlfSBDb21wYXJlVmFsdWUsaW50MiBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVW
YWx1ZSwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJy
YXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0
LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNh
bXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9j
YXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVE
ZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZh
bHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25B
cnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVy
ZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwLCBjb21wYXJlVmFsdWUubG9h
ZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxv
YXQyIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlLGludDIgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWUs
IG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0g
W2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQo
MSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVU
ZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9u
QXJyYXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDAsIGNv
bXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBs
ZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNh
bXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9j
YXRpb25BcnJheSwgdW5kZWZpbmVkLCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9Pixz
YW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9hdCBCaWFzLGludDIgb2Zmc2V0KWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBiaWFzLCBvZmZzZXRd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0
ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBk
ZWx0YUFycmF5LCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZl
ICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0
MiBsb2NhdGlvbixmbG9hdDIgRERYLGZsb2F0MiBERFkpYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlv
bi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5
ID0gW2RkeC5nZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGRkeUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZh
bHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4
dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24sZmxvYXQyIEREWCxm
bG9hdDIgRERZLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBkZHgsIGRkeSwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5n
ZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRkeEFycmF5ID0g
W2RkeC5nZXQoMCksIGRkeC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGRkeUFycmF5ID0gW2RkeS5nZXQoMCksIGRkeS5nZXQoMSksIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwg
MF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1
cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJh
eSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCBkZHhBcnJheSwgZGR5QXJyYXksIHVuZGVmaW5lZCwg
dW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxv
Y2F0aW9uLGZsb2F0IExPRClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgbG9kXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0
aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOwor
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRl
eHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgp
LCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7
dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIg
bG9jYXRpb24sZmxvYXQgTE9ELGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBsb2QsIG9mZnNldF0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRp
b24uZ2V0KDEpLCAwLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YUFy
cmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSksIDBdOworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVl
KCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIGRlbHRhQXJyYXksIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGxvZC5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkKSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIo
VGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDIgbG9jYXRpb24pYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ym94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVEZXB0aDJEPCR7dHlw
ZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGludDIgb2Zmc2V0KWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBm
dW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBvZmZzZXRdKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxv
Y2F0aW9uLmdldCgxKSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVs
dGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRW
YWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkp
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVy
UmVkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDAp
LCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIu
bG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDApKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGgy
RDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0
KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVy
ZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFB
cnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00
IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlv
bixmbG9hdCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgx
KSwgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdh
dGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9j
YXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSwgMCkpOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJE
PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFsdWUsaW50
MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIGNvbXBhcmVWYWx1ZSwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0
LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5s
b2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCksIDApKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhlckNt
cFJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixzYW1wbGVyLGZsb2F0MiBsb2NhdGlvbixmbG9h
dCBjb21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBs
ZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwg
MSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRl
eHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25B
cnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSwgMCkpOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wUmVkKFRleHR1cmVEZXB0aDJEPCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQyIGxvY2F0aW9uLGZsb2F0IGNvbXBhcmVfdmFsdWUsaW50MiBv
ZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRp
b24sIGNvbXBhcmVWYWx1ZSwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEs
IDBdOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0Lmdl
dCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ym94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2Fk
VmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCksIDApKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJl
RGVwdGgyRDwke3R5cGV9PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAo
W3RleHR1cmUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihjaGVja1VuZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91
bmRzIiwgdGV4dHVyZS5sb2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZCgwLCBsb2NhdGlvbi5nZXQo
MiksIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmVEZXB0aDJEPCR7
dHlwZX0+LGludDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBib3hWZWN0b3IoY2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQg
b3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQoMCwgbG9j
YXRpb24uZ2V0KDIpLCAwLCBsb2NhdGlvbi5nZXQoMSkgKyBvZmZzZXQuZ2V0KDEpLCBsb2NhdGlv
bi5nZXQoMCkgKyBvZmZzZXQuZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LHVp
bnQgTWlwTGV2ZWwsdWludCogdGhyZWFkIFdpZHRoLHVpbnQqIHRocmVhZCBIZWlnaHQsdWludCog
dGhyZWFkIE51bWJlck9mTGV2ZWxzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUs
IG1pcGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IG1pcElEID0gbWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAobWlwSUQgPj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJS
ZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQgbWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgu
aGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRo
LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwg
MSk7CisgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkxldmVscy5sb2FkVmFsdWUoKS5j
b3B5RnJvbShFUHRyLmJveCh0ZXgubGV2ZWxDb3VudCksIDEpOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVyZURlcHRoMkRBcnJheTwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24g
KFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAw
LCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJv
eFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZh
bHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1
bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIG9mZnNldF0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9j
YXRpb24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGRlbHRhQXJyYXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUo
dGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwg
ZGVsdGFBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMg
bG9jYXRpb24sJHt0eXBlfSBDb21wYXJlVmFsdWUpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZV0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRp
b24uZ2V0KDEpLCAwLCAxLCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNh
bXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCkp
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxl
Q21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24s
JHt0eXBlfSBDb21wYXJlVmFsdWUsaW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGNvbXBhcmVWYWx1ZSwgb2Zmc2V0XSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0
KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0
KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxl
VGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlv
bkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXBMZXZlbFplcm8oVGV4dHVyZURlcHRo
MkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbiwke3R5cGV9IENvbXBhcmVW
YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlv
biwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9u
QXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9u
LmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKHNhbXBs
ZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRp
b25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwLCBj
b21wYXJlVmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAg
ICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEQXJyYXk8
JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sJHt0eXBlfSBDb21wYXJlVmFsdWUsaW50
MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9j
YXRpb24sIGNvbXBhcmVWYWx1ZSwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAs
IDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFB
cnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1
ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwLCBjb21wYXJlVmFsdWUubG9hZFZhbHVlKCkp
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxl
QmlhcyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9u
LGZsb2F0IEJpYXMpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwg
bG9jYXRpb24sIGJpYXNdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25B
cnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24u
Z2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxl
VGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlv
bkFycmF5LCB1bmRlZmluZWQsIGJpYXMubG9hZFZhbHVlKCksIHVuZGVmaW5lZCwgdW5kZWZpbmVk
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4s
c2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQgQmlhcyxpbnQyIG9mZnNldClgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgYmlhcywgb2Zmc2V0
XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRp
b24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZz
ZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Io
c2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBs
b2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCBiaWFzLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlRGVwdGgyREFycmF5PCR7
dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLGZsb2F0MiBERFgsZmxvYXQyIEREWSlgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgZGR4LCBk
ZHldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHhBcnJheSA9IFtkZHguZ2V0KDApLCBkZHguZ2V0
KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZHlBcnJheSA9IFtkZHkuZ2V0
KDApLCBkZHkuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hW
ZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1
ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGR4QXJyYXksIGRkeUFy
cmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBl
fT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxvYXQyIEREWCxmbG9hdDIgRERZLGludDIgb2Zm
c2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9u
LCBkZHgsIGRkeSwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0
aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0
aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4
LmdldCgwKSwgZGR4LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5
QXJyYXkgPSBbZGR5LmdldCgwKSwgZGR5LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0
ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBk
ZWx0YUFycmF5LCB1bmRlZmluZWQsIGRkeEFycmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0g
U2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBs
b2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2Ft
cGxlciwgbG9jYXRpb24sIGxvZF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAxLCBsb2Nh
dGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihz
YW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxv
Y2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
bG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5
cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QsaW50MiBvZmZzZXQpYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZCwgb2Zm
c2V0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9j
YXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07Cisg
ICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBv
ZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZp
bmVkLCBsb2QubG9hZFZhbHVlKCksIHVuZGVmaW5lZCkpOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0
eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChb
dGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwg
MSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hW
ZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1
ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5
cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
ZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBs
b2NhdGlvbi5nZXQoMSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAw
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVy
ZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5
LCBkZWx0YUFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgMCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
JHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixm
bG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxl
ciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJh
eSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0
KDIpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4
dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFy
cmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PixzYW1wbGVy
LGZsb2F0MyBsb2NhdGlvbixpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQo
MSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
ZGVsdGFBcnJheSA9IFtvZmZzZXQuZ2V0KDApLCBvZmZzZXQuZ2V0KDEpLCAwXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxv
YWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCBkZWx0YUFycmF5
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
MCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRp
b24sZmxvYXQgY29tcGFyZV92YWx1ZSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlXSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDApLCBsb2NhdGlvbi5nZXQo
MSksIDAsIDEsIGxvY2F0aW9uLmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2FtcGxlci5s
b2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbXBhcmVWYWx1ZS5sb2FkVmFsdWUoKSwgMCkpOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21w
KFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24sZmxv
YXQgY29tcGFyZV92YWx1ZSxpbnQyIG9mZnNldClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0
ZXh0dXJlLCBzYW1wbGVyLCBsb2NhdGlvbiwgY29tcGFyZVZhbHVlLCBvZmZzZXRdKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCks
IGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIpXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBkZWx0YUFycmF5ID0gW29mZnNldC5nZXQoMCksIG9mZnNldC5nZXQoMSks
IDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihnYXRoZXJUZXh0
dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJy
YXksIGRlbHRhQXJyYXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkRBcnJh
eTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlKWAs
CisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21w
YXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9
IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgMCwgMSwgbG9jYXRpb24uZ2V0KDIp
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVy
ZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwg
Y29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwk
e3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJlX3ZhbHVlLGludDIg
b2Zmc2V0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uLCBjb21wYXJlVmFsdWUsIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxl
dCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCAwLCAx
LCBsb2NhdGlvbi5nZXQoMildOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHRhQXJy
YXkgPSBbb2Zmc2V0LmdldCgwKSwgb2Zmc2V0LmdldCgxKSwgMF07CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUo
KSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgZGVsdGFBcnJheSwgdW5kZWZp
bmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21wYXJlVmFsdWUubG9hZFZh
bHVlKCksIDApKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlw
ZX0gTG9hZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LGludDQgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4
dHVyZSByZWFkIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVj
a2VkKGxvY2F0aW9uLmdldCgzKSwgbG9jYXRpb24uZ2V0KDIpLCAwLCBsb2NhdGlvbi5nZXQoMSks
IGxvY2F0aW9uLmdldCgwKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LGludDQgbG9jYXRp
b24saW50MiBvZmZzZXQpYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbG9jYXRp
b24sIG9mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Io
Y2hlY2tVbmRlZmluZWQoIltMb2FkXSIsICJUZXh0dXJlIHJlYWQgb3V0IG9mIGJvdW5kcyIsIHRl
eHR1cmUubG9hZFZhbHVlKCkuZWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDMpLCBsb2NhdGlv
bi5nZXQoMiksIDAsIGxvY2F0aW9uLmdldCgxKSArIG9mZnNldC5nZXQoMSksIGxvY2F0aW9uLmdl
dCgwKSArIG9mZnNldC5nZXQoMCkpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Pix1
aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQq
IHRocmVhZCBFbGVtZW50cyx1aW50KiB0aHJlYWQgTnVtYmVyT2ZMZXZlbHMpYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgbWlwbGV2ZWwsIHdpZHRoLCBoZWlnaHQsIGVsZW1lbnRz
LCBudW1iZXJPZkxldmVsc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0
ZXh0dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pcElEID0g
bWlwbGV2ZWwubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlwSUQg
Pj0gdGV4LmxldmVsQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3
IFdUcmFwRXJyb3IoIltHZXREaW1lbnNpb25zXSIsICJSZWFkaW5nIGZyb20gbm9uZXhpc3RhbnQg
bWlwIGxldmVsIG9mIHRleHR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5s
b2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0QXRMZXZlbChtaXBJRCkpLCAx
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQ
dHIuYm94KHRleC53aWR0aEF0TGV2ZWwobWlwSUQpKSwgMSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBlbGVtZW50cy5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3Vu
dCksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZMZXZlbHMubG9hZFZhbHVl
KCkuY29weUZyb20oRVB0ci5ib3godGV4LmxldmVsQ291bnQpLCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aEN1YmU8
JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwg
bG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
b3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRW
YWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGhDdWJlPCR7dHlw
ZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlKWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFs
dWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2Nh
dGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0
dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29tcGFy
ZVZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+
LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uLCR7dHlwZX0gQ29tcGFyZVZhbHVlKWAsCisgICAgICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uLCBjb21wYXJlVmFsdWVd
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlv
bi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3Ioc2FtcGxlVGV4dHVyZSh0ZXh0dXJl
LmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDAsIGNvbXBhcmVWYWx1ZS5sb2Fk
VmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBl
fSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9j
YXRpb24sZmxvYXQgQmlhcylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCBzYW1w
bGVyLCBsb2NhdGlvbiwgYmlhc10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
dGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgwKSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5n
ZXQoMiksIDEsIDBdOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3Rvcihz
YW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZhbHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxv
Y2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgYmlhcy5sb2FkVmFsdWUoKSwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9
PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdDMgRERYLGZsb2F0MyBERFkpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRkeCwgZGR5XSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24u
Z2V0KDApLCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgZGR4QXJyYXkgPSBbZGR4LmdldCgwKSwgZGR4LmdldCgxKSwg
ZGR4LmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGR5QXJyYXkgPSBbZGR5
LmdldCgwKSwgZGR5LmdldCgxKSwgZGR5LmdldCgyKV07CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYm94VmVjdG9yKHNhbXBsZVRleHR1cmUodGV4dHVyZS5sb2FkVmFsdWUoKSwgc2Ft
cGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGRk
eEFycmF5LCBkZHlBcnJheSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRo
Q3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBMT0QpYCwKKyAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGxvZF0pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2NhdGlvbkFycmF5ID0gW2xvY2F0aW9uLmdldCgw
KSwgbG9jYXRpb24uZ2V0KDEpLCBsb2NhdGlvbi5nZXQoMiksIDEsIDBdOworICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihzYW1wbGVUZXh0dXJlKHRleHR1cmUubG9hZFZh
bHVlKCksIHNhbXBsZXIubG9hZFZhbHVlKCksIGxvY2F0aW9uQXJyYXksIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbG9kLmxvYWRWYWx1ZSgpLCB1bmRlZmluZWQp
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX00IEdhdGhl
cihUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LHNhbXBsZXIsZmxvYXQzIGxvY2F0aW9uKWAsCisg
ICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0aW9uXSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uQXJyYXkgPSBbbG9jYXRpb24uZ2V0KDAp
LCBsb2NhdGlvbi5nZXQoMSksIGxvY2F0aW9uLmdldCgyKSwgMSwgMF07CisgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYm94VmVjdG9yKGdhdGhlclRleHR1cmUodGV4dHVyZS5sb2FkVmFs
dWUoKSwgc2FtcGxlci5sb2FkVmFsdWUoKSwgbG9jYXRpb25BcnJheSwgdW5kZWZpbmVkLCB1bmRl
ZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCkpOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyUmVk
KFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sc2FtcGxlcixmbG9hdDMgbG9jYXRpb24pYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb25dKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCks
IGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1
ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVm
aW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwKSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXAo
VGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBj
b21wYXJlX3ZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIs
IGxvY2F0aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
bG9jYXRpb25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRp
b24uZ2V0KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0
b3IoZ2F0aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgp
LCBsb2NhdGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpLCAwKSk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVy
ZURlcHRoQ3ViZTwke3R5cGV9PixzYW1wbGVyLGZsb2F0MyBsb2NhdGlvbixmbG9hdCBjb21wYXJl
X3ZhbHVlKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHNhbXBsZXIsIGxvY2F0
aW9uLCBjb21wYXJlVmFsdWVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRp
b25BcnJheSA9IFtsb2NhdGlvbi5nZXQoMCksIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0
KDIpLCAxLCAwXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3hWZWN0b3IoZ2F0
aGVyVGV4dHVyZSh0ZXh0dXJlLmxvYWRWYWx1ZSgpLCBzYW1wbGVyLmxvYWRWYWx1ZSgpLCBsb2Nh
dGlvbkFycmF5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgY29tcGFyZVZhbHVlLmxvYWRWYWx1ZSgpLCAwKSk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZURlcHRoQ3Vi
ZTwke3R5cGV9Pix1aW50IE1pcExldmVsLHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQg
SGVpZ2h0LHVpbnQqIHRocmVhZCBOdW1iZXJPZkxldmVscylgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rp
b24gKFt0ZXh0dXJlLCBtaXBsZXZlbCwgd2lkdGgsIGhlaWdodCwgbnVtYmVyT2ZMZXZlbHNdKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5sb2FkVmFsdWUoKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaXBJRCA9IG1pcGxldmVsLmxvYWRWYWx1ZSgp
OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleC5sYXllckNvdW50ICE9IDYpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDdWJlIHRleHR1cmUgZG9l
c24ndCBoYXZlIDYgZmFjZXMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaXBJRCA+
PSB0ZXgubGV2ZWxDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
V1RyYXBFcnJvcigiW0dldERpbWVuc2lvbnNdIiwgIlJlYWRpbmcgZnJvbSBub25leGlzdGFudCBt
aXAgbGV2ZWwgb2YgdGV4dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0Lmxv
YWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5oZWlnaHRBdExldmVsKG1pcElEKSksIDEp
OworICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0
ci5ib3godGV4LndpZHRoQXRMZXZlbChtaXBJRCkpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG51bWJlck9mTGV2ZWxzLmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5sZXZl
bENvdW50KSwgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lk
IEdldERpbWVuc2lvbnMoUldUZXh0dXJlRGVwdGgyRDwke3R5cGV9Pix1aW50KiB0aHJlYWQgV2lk
dGgsdWludCogdGhyZWFkIEhlaWdodClgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAg
ICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJl
LCB3aWR0aCwgaGVpZ2h0XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRl
eHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmhlaWdodCksIDEpOworICAgICAgICAgICAgICAg
ICAgICAgICAgd2lkdGgubG9hZFZhbHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LndpZHRoKSwg
MSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVu
c2lvbnMoUldUZXh0dXJlRGVwdGgyRDwke3R5cGV9PixmbG9hdCogdGhyZWFkIFdpZHRoLGZsb2F0
KiB0aHJlYWQgSGVpZ2h0KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHdpZHRo
LCBoZWlnaHRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGV4ID0gdGV4dHVyZS5s
b2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5j
b3B5RnJvbShFUHRyLmJveCh0ZXguaGVpZ2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlICR7dHlwZX0gTG9hZChSV1RleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LGludDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
IChbdGV4dHVyZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Ym94VmVjdG9yKGNoZWNrVW5kZWZpbmVkKCJbTG9hZF0iLCAiVGV4dHVyZSByZWFkIG91dCBvZiBi
b3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgpLmVsZW1lbnRDaGVja2VkKDAsIDAsIDAsIGxvY2F0
aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCR7dHlw
ZX0sdWludDIgbG9jYXRpb24pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9uIChbdGV4dHVyZSwgdmFs
dWUsIGxvY2F0aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tGYWxzZSgiW1N0
b3JlXSIsICJUZXh0dXJlIHdyaXRlIG91dCBvZiBib3VuZHMiLCB0ZXh0dXJlLmxvYWRWYWx1ZSgp
LnNldEVsZW1lbnRDaGVja2VkKDAsIDAsIDAsIGxvY2F0aW9uLmdldCgxKSwgbG9jYXRpb24uZ2V0
KDApLCB1bmJveFZlY3Rvcih2YWx1ZSwgIiIpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlRGVwdGgyREFycmF5PCR7
dHlwZX0+LHVpbnQqIHRocmVhZCBXaWR0aCx1aW50KiB0aHJlYWQgSGVpZ2h0LHVpbnQqIHRocmVh
ZCBFbGVtZW50cylgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB3aWR0aCwgaGVp
Z2h0LCBlbGVtZW50c10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZXggPSB0ZXh0
dXJlLmxvYWRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubG9hZFZh
bHVlKCkuY29weUZyb20oRVB0ci5ib3godGV4LmxheWVyQ291bnQpLCAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGhlaWdodC5sb2FkVmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXguaGVp
Z2h0KSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC5sb2FkVmFsdWUoKS5jb3B5
RnJvbShFUHRyLmJveCh0ZXgud2lkdGgpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICAgICBgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhSV1RleHR1cmVEZXB0aDJEQXJyYXk8JHt0
eXBlfT4sZmxvYXQqIHRocmVhZCBXaWR0aCxmbG9hdCogdGhyZWFkIEhlaWdodCxmbG9hdCogdGhy
ZWFkIEVsZW1lbnRzKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIHdpZHRoLCBo
ZWlnaHQsIGVsZW1lbnRzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRleCA9IHRl
eHR1cmUubG9hZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5sb2Fk
VmFsdWUoKS5jb3B5RnJvbShFUHRyLmJveCh0ZXgubGF5ZXJDb3VudCksIDEpOworICAgICAgICAg
ICAgICAgICAgICAgICAgaGVpZ2h0LmxvYWRWYWx1ZSgpLmNvcHlGcm9tKEVQdHIuYm94KHRleC5o
ZWlnaHQpLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLmxvYWRWYWx1ZSgpLmNv
cHlGcm9tKEVQdHIuYm94KHRleC53aWR0aCksIDEpOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgJHt0eXBlfSBMb2FkKFJXVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9
PixpbnQzIGxvY2F0aW9uKWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbiAoW3RleHR1cmUsIGxvY2F0
aW9uXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJveFZlY3RvcihjaGVja1Vu
ZGVmaW5lZCgiW0xvYWRdIiwgIlRleHR1cmUgcmVhZCBvdXQgb2YgYm91bmRzIiwgdGV4dHVyZS5s
b2FkVmFsdWUoKS5lbGVtZW50Q2hlY2tlZChsb2NhdGlvbi5nZXQoMiksIDAsIDAsIGxvY2F0aW9u
LmdldCgxKSwgbG9jYXRpb24uZ2V0KDApKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgdm9pZCBTdG9yZShSV1RleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sJHt0
eXBlfSx1aW50MyBsb2NhdGlvbilgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24gKFt0ZXh0dXJlLCB2
YWx1ZSwgbG9jYXRpb25dKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0ZhbHNlKCJb
U3RvcmVdIiwgIlRleHR1cmUgd3JpdGUgb3V0IG9mIGJvdW5kcyIsIHRleHR1cmUubG9hZFZhbHVl
KCkuc2V0RWxlbWVudENoZWNrZWQobG9jYXRpb24uZ2V0KDIpLCAwLCAwLCBsb2NhdGlvbi5nZXQo
MSksIGxvY2F0aW9uLmdldCgwKSwgdW5ib3hWZWN0b3IodmFsdWUsICIiKSkpOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0KICAgICB9CiAKICAg
ICBhZGQodGhpbmcpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
UElSVi5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbAppbmRl
eCA3OGQwMDhmODM1ZjllOWMyMzRlZjJkZjZkNmRlZWEzZjc0MjZjZTY1Li4xYjI2Y2YyYjJlNjUx
NTI3YTE1MmVlOGQ5MmZmMjViZWRhNjFkMzM5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1NQSVJWLmh0bWwKQEAgLTM0LDYgKzM0LDcgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJC
dWlsdGluVmVjdG9yU2V0dGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ2FsbEV4
cHJlc3Npb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDYWxsRnVuY3Rpb24uanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJDYXN0cy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IkNoZWNrLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ2hlY2tMaXRl
cmFsVHlwZXMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDaGVja0xvb3BzLmpzIj48
L3NjcmlwdD4KQEAgLTEyMSw2ICsxMjIsNyBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IlJldHVy
bi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlJldHVybkNoZWNrZXIuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJSZXR1cm5FeGNlcHRpb24uanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSJTYW1wbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3Rh
bmRhcmRMaWJyYXJ5LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3RhdGVtZW50Q2xv
bmVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3RydWN0TGF5b3V0QnVpbGRlci5q
cyI+PC9zY3JpcHQ+CkBAIC0xMzMsNiArMTM1LDggQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJT
eW50aGVzaXplQ29weUNvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJTeW50aGVzaXplRGVmYXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9IlRleHR1cmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJUZXh0
dXJlT3BlcmF0aW9ucy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1l
bnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NhbXBsZXIuanMgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TYW1wbGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlNzcxM2RmYzgxZjgz
YzU4NDczNjIxMjE3NTY0ZjM5NTcyYjE0YjgKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TYW1wbGVyLmpzCkBAIC0wLDAgKzEsMTYzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyJ1c2Ugc3RyaWN0IjsKKworY2xh
c3MgU2FtcGxlciB7CisgICAgY29uc3RydWN0b3Iob3B0aW9ucykKKyAgICB7CisgICAgICAgIGlm
IChvcHRpb25zLnJBZGRyZXNzTW9kZSA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9y
QWRkcmVzc01vZGUgPSAiY2xhbXBUb0VkZ2UiOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0
aGlzLl9yQWRkcmVzc01vZGUgPSBvcHRpb25zLnJBZGRyZXNzTW9kZTsKKyAgICAgICAgaWYgKG9w
dGlvbnMuc0FkZHJlc3NNb2RlID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX3NBZGRy
ZXNzTW9kZSA9ICJjbGFtcFRvRWRnZSI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMu
X3NBZGRyZXNzTW9kZSA9IG9wdGlvbnMuc0FkZHJlc3NNb2RlOworICAgICAgICBpZiAob3B0aW9u
cy50QWRkcmVzc01vZGUgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fdEFkZHJlc3NN
b2RlID0gImNsYW1wVG9FZGdlIjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fdEFk
ZHJlc3NNb2RlID0gb3B0aW9ucy50QWRkcmVzc01vZGU7CisgICAgICAgIGlmIChvcHRpb25zLm1p
bkZpbHRlciA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9taW5GaWx0ZXIgPSAibmVh
cmVzdCI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX21pbkZpbHRlciA9IG9wdGlv
bnMubWluRmlsdGVyOworICAgICAgICBpZiAob3B0aW9ucy5tYWdGaWx0ZXIgPT0gdW5kZWZpbmVk
KQorICAgICAgICAgICAgdGhpcy5fbWFnRmlsdGVyID0gIm5lYXJlc3QiOworICAgICAgICBlbHNl
CisgICAgICAgICAgICB0aGlzLl9tYWdGaWx0ZXIgPSBvcHRpb25zLm1hZ0ZpbHRlcjsKKyAgICAg
ICAgaWYgKG9wdGlvbnMubWlwbWFwRmlsdGVyID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRo
aXMuX21pcG1hcEZpbHRlciA9ICJuZWFyZXN0IjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
dGhpcy5fbWlwbWFwRmlsdGVyID0gb3B0aW9ucy5taXBtYXBGaWx0ZXI7CisgICAgICAgIGlmIChv
cHRpb25zLmxvZE1pbkNsYW1wID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX2xvZE1p
bkNsYW1wID0gLU51bWJlci5NQVhfVkFMVUU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRo
aXMuX2xvZE1pbkNsYW1wID0gb3B0aW9ucy5sb2RNaW5DbGFtcDsKKyAgICAgICAgaWYgKG9wdGlv
bnMubG9kTWF4Q2xhbXAgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fbG9kTWF4Q2xh
bXAgPSBOdW1iZXIuTUFYX1ZBTFVFOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9s
b2RNYXhDbGFtcCA9IG9wdGlvbnMubG9kTWF4Q2xhbXA7CisgICAgICAgIGlmIChvcHRpb25zLm1h
eEFuaXNvdHJvcHkgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fbWF4QW5pc290cm9w
eSA9IDE7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX21heEFuaXNvdHJvcHkgPSBv
cHRpb25zLm1heEFuaXNvdHJvcHk7CisgICAgICAgIGlmIChvcHRpb25zLmNvbXBhcmVGdW5jdGlv
biA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLl9jb21wYXJlRnVuY3Rpb24gPSAibmV2
ZXIiOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9jb21wYXJlRnVuY3Rpb24gPSBv
cHRpb25zLmNvbXBhcmVGdW5jdGlvbjsKKyAgICAgICAgaWYgKG9wdGlvbnMuYm9yZGVyQ29sb3Ig
PT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5fYm9yZGVyQ29sb3IgPSAidHJhbnNwYXJl
bnRCbGFjayI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX2JvcmRlckNvbG9yID0g
b3B0aW9ucy5ib3JkZXJDb2xvcjsKKyAgICB9CisgICAgCisgICAgZ2V0IHJBZGRyZXNzTW9kZSgp
IHsgcmV0dXJuIHRoaXMuX3JBZGRyZXNzTW9kZTsgfQorICAgIGdldCBzQWRkcmVzc01vZGUoKSB7
IHJldHVybiB0aGlzLl9zQWRkcmVzc01vZGU7IH0KKyAgICBnZXQgdEFkZHJlc3NNb2RlKCkgeyBy
ZXR1cm4gdGhpcy5fdEFkZHJlc3NNb2RlOyB9CisgICAgZ2V0IG1pbkZpbHRlcigpIHsgcmV0dXJu
IHRoaXMuX21pbkZpbHRlcjsgfQorICAgIGdldCBtYWdGaWx0ZXIoKSB7IHJldHVybiB0aGlzLl9t
YWdGaWx0ZXI7IH0KKyAgICBnZXQgbWlwbWFwRmlsdGVyKCkgeyByZXR1cm4gdGhpcy5fbWlwbWFw
RmlsdGVyOyB9CisgICAgZ2V0IGxvZE1pbkNsYW1wKCkgeyByZXR1cm4gdGhpcy5fbG9kTWluQ2xh
bXA7IH0KKyAgICBnZXQgbG9kTWF4Q2xhbXAoKSB7IHJldHVybiB0aGlzLl9sb2RNYXhDbGFtcDsg
fQorICAgIGdldCBtYXhBbmlzb3Ryb3B5KCkgeyByZXR1cm4gdGhpcy5fbWF4QW5pc290cm9weTsg
fQorICAgIGdldCBjb21wYXJlRnVuY3Rpb24oKSB7IHJldHVybiB0aGlzLl9jb21wYXJlRnVuY3Rp
b247IH0KKyAgICBnZXQgYm9yZGVyQ29sb3IoKSB7IHJldHVybiB0aGlzLl9ib3JkZXJDb2xvcjsg
fQorCisgICAgY2FsY3VsYXRlQm9yZGVyQ29sb3IoaW5uZXJUeXBlKQorICAgIHsKKyAgICAgICAg
Ly8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjMuMworICAgICAgICBmdW5jdGlvbiBjb21wdXRl
VmFsdWVzKCkgeworICAgICAgICAgICAgc3dpdGNoIChpbm5lclR5cGUpIHsKKyAgICAgICAgICAg
ICAgICBjYXNlICJ1Y2hhciI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJl
bnRCbGFjazogMCwgb3BhcXVlQmxhY2s6IDAsIG9wYXF1ZVdoaXRlOiAweEZGfTsKKyAgICAgICAg
ICAgICAgICBjYXNlICJ1c2hvcnQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5z
cGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTogMHhGRkZGfTsKKyAg
ICAgICAgICAgICAgICBjYXNlICJ1aW50IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0
cmFuc3BhcmVudEJsYWNrOiAwLCBvcGFxdWVCbGFjazogMCwgb3BhcXVlV2hpdGU6IDB4RkZGRkZG
RkZ9OworICAgICAgICAgICAgICAgIGNhc2UgImNoYXIiOgorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0ZTog
MHg3Rn07CisgICAgICAgICAgICAgICAgY2FzZSAic2hvcnQiOgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVXaGl0
ZTogMHg3RkZGfTsKKyAgICAgICAgICAgICAgICBjYXNlICJpbnQiOgorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IDAsIG9wYXF1ZUJsYWNrOiAwLCBvcGFxdWVX
aGl0ZTogMHg3RkZGRkZGRn07CisgICAgICAgICAgICAgICAgY2FzZSAiaGFsZiI6CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6IDAs
IG9wYXF1ZVdoaXRlOiAxfTsKKyAgICAgICAgICAgICAgICBjYXNlICJmbG9hdCI6CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogMCwgb3BhcXVlQmxhY2s6IDAs
IG9wYXF1ZVdoaXRlOiAxfTsKKyAgICAgICAgICAgICAgICBjYXNlICJ1Y2hhcjIiOgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxh
Y2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsweEZGLCAweEZGXX07CisgICAgICAgICAgICAgICAg
Y2FzZSAidXNob3J0MiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRC
bGFjazogWzAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4RkZGRiwg
MHhGRkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAidWludDIiOgorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAw
XSwgb3BhcXVlV2hpdGU6IFsweEZGRkZGRkZGLCAweEZGRkZGRkZGXX07CisgICAgICAgICAgICAg
ICAgY2FzZSAiY2hhcjIiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50
QmxhY2s6IFswLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwXSwgb3BhcXVlV2hpdGU6IFsweDdGLCAw
eDdGXX07CisgICAgICAgICAgICAgICAgY2FzZSAic2hvcnQyIjoKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0s
IG9wYXF1ZVdoaXRlOiBbMHg3RkZGLCAweDdGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJp
bnQyIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwg
MF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0sIG9wYXF1ZVdoaXRlOiBbMHg3RkZGRkZGRiwgMHg3RkZG
RkZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgImhhbGYyIjoKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMF0s
IG9wYXF1ZVdoaXRlOiBbMSwgMV19OworICAgICAgICAgICAgICAgIGNhc2UgImZsb2F0MiI6Cisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDBdLCBvcGFx
dWVCbGFjazogWzAsIDBdLCBvcGFxdWVXaGl0ZTogWzEsIDFdfTsKKyAgICAgICAgICAgICAgICBj
YXNlICJ1Y2hhcjMiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50Qmxh
Y2s6IFswLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsweEZG
LCAweEZGLCAweEZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAidXNob3J0MyI6CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVC
bGFjazogWzAsIDAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4RkZGRiwgMHhGRkZGLCAweEZGRkZdfTsK
KyAgICAgICAgICAgICAgICBjYXNlICJ1aW50MyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVy
biB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBv
cGFxdWVXaGl0ZTogWzB4RkZGRkZGRkYsIDB4RkZGRkZGRkYsIDB4RkZGRkZGRkZdfTsKKyAgICAg
ICAgICAgICAgICBjYXNlICJjaGFyMyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJh
bnNwYXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVX
aGl0ZTogWzB4N0YsIDB4N0YsIDB4N0ZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJzaG9ydDMi
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAw
XSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsweDdGRkYsIDB4N0ZGRiwg
MHg3RkZGXX07CisgICAgICAgICAgICAgICAgY2FzZSAiaW50MyI6CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAs
IDAsIDBdLCBvcGFxdWVXaGl0ZTogWzB4N0ZGRkZGRkYsIDB4N0ZGRkZGRkYsIDB4N0ZGRkZGRkZd
fTsKKyAgICAgICAgICAgICAgICBjYXNlICJoYWxmMyI6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAsIDBd
LCBvcGFxdWVXaGl0ZTogWzEsIDEsIDFdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJmbG9hdDMi
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAw
XSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwXSwgb3BhcXVlV2hpdGU6IFsxLCAxLCAxXX07CisgICAg
ICAgICAgICAgICAgY2FzZSAidWNoYXI0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0
cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMHhG
Rl0sIG9wYXF1ZVdoaXRlOiBbMHhGRiwgMHhGRiwgMHhGRiwgMHhGRl19OworICAgICAgICAgICAg
ICAgIGNhc2UgInVzaG9ydDQiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3RyYW5zcGFy
ZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAwLCAweEZGRkZdLCBv
cGFxdWVXaGl0ZTogWzB4RkZGRiwgMHhGRkZGLCAweEZGRkYsIDB4RkZGRl19OworICAgICAgICAg
ICAgICAgIGNhc2UgInVpbnQ0IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0cmFuc3Bh
cmVudEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJsYWNrOiBbMCwgMCwgMCwgMHhGRkZGRkZG
Rl0sIG9wYXF1ZVdoaXRlOiBbMHhGRkZGRkZGRiwgMHhGRkZGRkZGRiwgMHhGRkZGRkZGRiwgMHhG
RkZGRkZGRl19OworICAgICAgICAgICAgICAgIGNhc2UgImNoYXI0IjoKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHt0cmFuc3BhcmVudEJsYWNrOiBbMCwgMCwgMCwgMF0sIG9wYXF1ZUJsYWNr
OiBbMCwgMCwgMCwgMHg3Rl0sIG9wYXF1ZVdoaXRlOiBbMHg3RiwgMHg3RiwgMHg3RiwgMHg3Rl19
OworICAgICAgICAgICAgICAgIGNhc2UgInNob3J0NCI6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAs
IDAsIDB4N0ZGRl0sIG9wYXF1ZVdoaXRlOiBbMHg3RkZGLCAweDdGRkYsIDB4N0ZGRiwgMHg3RkZG
XX07CisgICAgICAgICAgICAgICAgY2FzZSAiaW50NCI6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBdLCBvcGFxdWVCbGFjazogWzAsIDAs
IDAsIDB4N0ZGRkZGRkZdLCBvcGFxdWVXaGl0ZTogWzB4N0ZGRkZGRkYsIDB4N0ZGRkZGRkYsIDB4
N0ZGRkZGRkYsIDB4N0ZGRkZGRkZdfTsKKyAgICAgICAgICAgICAgICBjYXNlICJoYWxmNCI6Cisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHJhbnNwYXJlbnRCbGFjazogWzAsIDAsIDAsIDBd
LCBvcGFxdWVCbGFjazogWzAsIDAsIDAsIDFdLCBvcGFxdWVXaGl0ZTogWzEsIDEsIDEsIDFdfTsK
KyAgICAgICAgICAgICAgICBjYXNlICJmbG9hdDQiOgorICAgICAgICAgICAgICAgICAgICByZXR1
cm4ge3RyYW5zcGFyZW50QmxhY2s6IFswLCAwLCAwLCAwXSwgb3BhcXVlQmxhY2s6IFswLCAwLCAw
LCAxXSwgb3BhcXVlV2hpdGU6IFsxLCAxLCAxLCAxXX07CisgICAgICAgICAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHRleHR1cmUg
aW5uZXIgdHlwZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBj
b21wdXRlVmFsdWVzKClbdGhpcy5ib3JkZXJDb2xvcl07CisgICAgfQorfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCmluZGV4IDNkZDRmZWUx
ODYwMGQ1Y2QyYTg5NWFkNWE0Nzk3MjFkYTc3ODhjYzEuLjgxODE2ZGYxYzVlYTg2ZGU1NmZjM2Fh
NGNkMGRiNWQ2N2QwZmNiZGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1N0YW5kYXJkTGlicmFyeS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9TdGFuZGFyZExpYnJhcnkuanMKQEAgLTU3LDcgKzU3LDcgQEAgbGV0IHN0YW5kYXJkTGlicmFy
eSA9IChmdW5jdGlvbigpIHsKICAgICAgICAgfQogICAgICAgICBwcmludChgbmF0aXZlIHR5cGVk
ZWYgc2FtcGxlcjtgKTsKICAgICAgICAgZm9yICh2YXIgdHlwZSBvZiBbYFRleHR1cmUxRGAsIGBS
V1RleHR1cmUxRGAsIGBUZXh0dXJlMURBcnJheWAsIGBSV1RleHR1cmUxREFycmF5YCwgYFRleHR1
cmUyRGAsIGBSV1RleHR1cmUyRGAsIGBUZXh0dXJlMkRBcnJheWAsIGBSV1RleHR1cmUyREFycmF5
YCwgYFRleHR1cmUzRGAsIGBSV1RleHR1cmUzRGAsIGBUZXh0dXJlQ3ViZWBdKSB7Ci0gICAgICAg
ICAgICBmb3IgKHZhciB0eXBlQXJndW1lbnRCYXNlIG9mIFtgYm9vbGAsIGB1Y2hhcmAsIGB1c2hv
cnRgLCBgdWludGAsIGBjaGFyYCwgYHNob3J0YCwgYGludGAsIGBoYWxmYCwgYGZsb2F0YF0pIHsK
KyAgICAgICAgICAgIGZvciAodmFyIHR5cGVBcmd1bWVudEJhc2Ugb2YgW2B1Y2hhcmAsIGB1c2hv
cnRgLCBgdWludGAsIGBjaGFyYCwgYHNob3J0YCwgYGludGAsIGBoYWxmYCwgYGZsb2F0YF0pIHsK
ICAgICAgICAgICAgICAgICBmb3IgKHZhciBzaXplIG9mIFtgYCwgYDJgLCBgM2AsIGA0YF0pIHsK
ICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB0eXBlZGVmICR7dHlwZX08JHt0eXBl
QXJndW1lbnRCYXNlfSR7c2l6ZX0+O2ApOwogICAgICAgICAgICAgICAgIH0KQEAgLTE4OTcsNyAr
MTg5Nyw4IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAg
ICBwcmludChgbmF0aXZlIHZvaWQgSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UodGhyZWFkIGF0
b21pY18ke3R5cGV9KiwgJHt0eXBlfSwgJHt0eXBlfSwgdGhyZWFkICR7dHlwZX0qKTtgKTsKICAg
ICAgICAgfQogICAgICAgICBwcmludCgpOwotICAgICAgICAKKyAgICAgICAgKi8KKwogICAgICAg
ICBmb3IgKHZhciB0eXBlIG9mIFtgdWNoYXJgLCBgdXNob3J0YCwgYHVpbnRgLCBgY2hhcmAsIGBz
aG9ydGAsIGBpbnRgLCBgaGFsZmAsIGBmbG9hdGBdKSB7CiAgICAgICAgICAgICBmb3IgKHZhciBs
ZW5ndGggb2YgW2BgLCBgMmAsIGAzYCwgYDRgXSkgewogICAgICAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTFEPCR7dHlwZX0ke2xlbmd0aH0+
LCBzYW1wbGVyLCBmbG9hdCBsb2NhdGlvbik7YCk7CkBAIC0xOTI0LDEyICsxOTI1LDE4IEBAIGxl
dCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1w
bGVyLCBmbG9hdDIgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3Ro
fT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCBz
YW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9JHts
ZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9JHtsZW5n
dGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUyRDwke3R5
cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEPCR7dHlwZX0k
e2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAg
ICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUy
RDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uKTtgKTsKLSAgICAg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyRDwk
e3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7
YCk7CisgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiMiIgfHwgbGVuZ3RoID09ICIzIiB8
fCBsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBm
bG9hdDIgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwg
ZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICAgICAgICAgIGlm
IChsZW5ndGggPT0gIjMiIHx8IGxlbmd0aCA9PSAiNCIpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0dXJlMkQ8JHt0eXBlfSR7
bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEPCR7dHlw
ZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0
dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJB
bHBoYShUZXh0dXJlMkQ8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlv
biwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyRDwke3R5cGV9JHtsZW5ndGh9Piwg
aW50MyBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
JHtsZW5ndGh9IExvYWQoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCBpbnQzIGxvY2F0aW9u
LCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEdl
dERpbWVuc2lvbnMoVGV4dHVyZTJEPCR7dHlwZX0ke2xlbmd0aH0+LCB1aW50IE1pcExldmVsLCB0
aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBIZWlnaHQsIHRocmVhZCB1aW50KiBOdW1i
ZXJPZkxldmVscyk7YCk7CkBAIC0xOTQ2LDI4ICsxOTUzLDI0IEBAIGxldCBzdGFuZGFyZExpYnJh
cnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXIoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0
MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBz
YW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRp
dmUgJHt0eXBlfTQgR2F0aGVyUmVkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBz
YW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUyREFycmF5PCR7dHlw
ZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJEQXJyYXk8JHt0
eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2Ap
OwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQmx1ZShUZXh0
dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtg
KTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4
dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwg
aW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQg
R2F0aGVyQWxwaGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZs
b2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJBbHBoYShUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwg
ZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICAgICAgaWYgKGxl
bmd0aCA9PSAiMiIgfHwgbGVuZ3RoID09ICIzIiB8fCBsZW5ndGggPT0gIjQiKSB7CisgICAgICAg
ICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4dHVyZTJE
QXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Cisg
ICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyR3JlZW4oVGV4
dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwg
aW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09ICIzIiB8
fCBsZW5ndGggPT0gIjQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNh
bXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVu
Z3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAiNCIpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUyREFy
cmF5PCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQWxw
aGEoVGV4dHVyZTJEQXJyYXk8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBsb2Nh
dGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfSR7bGVuZ3RofSBMb2FkKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xl
bmd0aH0+LCBpbnQ0IGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlMkRBcnJheTwke3R5cGV9JHtsZW5ndGh9Piwg
aW50NCBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBu
YXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmUyREFycmF5PCR7dHlwZX0ke2xlbmd0aH0+
LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50KiBIZWlnaHQs
IHRocmVhZCB1aW50KiBFbGVtZW50cywgdGhyZWFkIHVpbnQqIE51bWJlck9mTGV2ZWxzKTtgKTsK
ICAgICAgICAgICAgICAgICBwcmludCgpOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1w
bGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwogICAgICAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfSR7bGVuZ3RofSBTYW1wbGUoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1w
bGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDMgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4s
IHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVy
LCBmbG9hdDMgbG9jYXRpb24sIGludDMgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlM0Q8JHt0eXBlfSR7bGVuZ3RofT4s
IHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1w
bGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDMgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUzRDwke3R5cGV9JHtsZW5n
dGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX00IEdhdGhlckdyZWVuKFRleHR1cmUzRDwke3R5cGV9JHtsZW5ndGh9
Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7Ci0gICAgICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmUzRDwke3R5cGV9
JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckJsdWUoVGV4dHVyZTNEPCR7dHlwZX0ke2xl
bmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDMgb2Zmc2V0KTtgKTsKLSAgICAg
ICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUzRDwk
e3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAg
ICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlckFscGhhKFRleHR1cmUzRDwke3R5
cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQzIG9mZnNldCk7YCk7
CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IExvYWQoVGV4
dHVyZTNEPCR7dHlwZX0ke2xlbmd0aH0+LCBpbnQ0IGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0ke2xlbmd0aH0gTG9hZChUZXh0dXJlM0Q8JHt0eXBl
fSR7bGVuZ3RofT4sIGludDQgbG9jYXRpb24sIGludDMgb2Zmc2V0KTtgKTsKICAgICAgICAgICAg
ICAgICBwcmludChgbmF0aXZlIHZvaWQgR2V0RGltZW5zaW9ucyhUZXh0dXJlM0Q8JHt0eXBlfSR7
bGVuZ3RofT4sIHVpbnQgTWlwTGV2ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQq
IEhlaWdodCwgdGhyZWFkIHVpbnQqIERlcHRoLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMp
O2ApOwpAQCAtMTk3OCw5ICsxOTgxLDE0IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9JHtsZW5ndGh9IFNh
bXBsZUxldmVsKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xlbmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMg
bG9jYXRpb24sIGZsb2F0IExPRCk7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXIoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZs
b2F0MyBsb2NhdGlvbik7YCk7CiAgICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
NCBHYXRoZXJSZWQoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0
MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJHcmVlbihUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdh
dGhlckJsdWUoVGV4dHVyZUN1YmU8JHt0eXBlfSR7bGVuZ3RofT4sIHNhbXBsZXIsIGZsb2F0MyBs
b2NhdGlvbik7YCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRo
ZXJBbHBoYShUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9Piwgc2FtcGxlciwgZmxvYXQzIGxv
Y2F0aW9uKTtgKTsKKyAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09ICIyIiB8fCBsZW5ndGgg
PT0gIjMiIHx8IGxlbmd0aCA9PSAiNCIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJHcmVlbihUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9Piwg
c2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxl
bmd0aCA9PSAiMyIgfHwgbGVuZ3RoID09ICI0IikgeworICAgICAgICAgICAgICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJCbHVlKFRleHR1cmVDdWJlPCR7dHlwZX0ke2xl
bmd0aH0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGxlbmd0aCA9PSAiNCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJBbHBoYShUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5n
dGh9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBwcmludChgbmF0aXZlIHZvaWQg
R2V0RGltZW5zaW9ucyhUZXh0dXJlQ3ViZTwke3R5cGV9JHtsZW5ndGh9PiwgdWludCBNaXBMZXZl
bCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogSGVpZ2h0LCB0aHJlYWQgdWludCog
TnVtYmVyT2ZMZXZlbHMpO2ApOwogICAgICAgICAgICAgICAgIHByaW50KCk7CiAgICAgICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoUldUZXh0dXJlMUQ8JHt0eXBl
fSR7bGVuZ3RofT4sIHRocmVhZCB1aW50KiBXaWR0aCk7YCk7CkBAIC0yMDEwLDk3ICsyMDE4LDY2
IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAg
cHJpbnQoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICBm
b3IgKHZhciB0eXBlIG9mIFtgaGFsZmAsIGBmbG9hdGBdKSB7CiAgICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX0gU2FtcGxlKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBm
bG9hdDIgbG9jYXRpb24pO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNh
bXBsZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBp
bnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxl
Q21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9h
dDIgbG9jYXRpb24sIGZsb2F0IENvbXBhcmVWYWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVy
Q29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IENvbXBhcmVWYWx1ZSwgaW50
MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNt
cExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0
ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBDb21wYXJlVmFsdWUpO2ApOwotICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyRDwk
e3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBD
b21wYXJlVmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUg
JHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0
MiBsb2NhdGlvbiwgJHt0eXBlfSBDb21wYXJlVmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxl
ciwgZmxvYXQyIGxvY2F0aW9uLCAke3R5cGV9IENvbXBhcmVWYWx1ZSwgaW50MiBvZmZzZXQpO2Ap
OworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhU
ZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCAke3R5cGV9
IENvbXBhcmVWYWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2Ft
cGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIg
bG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlhcyhUZXh0dXJlRGVwdGgyRDwke3R5
cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBCaWFzKTtgKTsKICAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVCaWFzKFRleHR1cmVEZXB0aDJEPCR7dHlw
ZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IEJpYXMsIGludDIgb2Zmc2V0KTtg
KTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVHcmFkKFRleHR1cmVE
ZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0MiBERFgsIGZs
b2F0MiBERFkpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdy
YWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxv
YXQyIEREWCwgZmxvYXQyIEREWSwgaW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IExPRCk7YCk7CiAgICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX0gU2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBs
ZXIsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgTE9ELCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+
LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IEdhdGhlcihUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQy
IGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX0gR2F0aGVyUmVkKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIg
bG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlclJl
ZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQy
IG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyR3Jl
ZW4oVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7
Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyR3JlZW4oVGV4dHVyZURl
cHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2Ap
OwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckJsdWUoVGV4dHVyZURl
cHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQmx1ZShUZXh0dXJlRGVwdGgyRDwke3R5cGV9
Piwgc2FtcGxlciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAg
ICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkQ8JHt0eXBl
fT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX0gR2F0aGVyQWxwaGEoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIs
IGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxlckNv
bXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsK
LSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXAoVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxv
YXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9PiwgU2FtcGxl
ckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtg
KTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBSZWQoVGV4dHVy
ZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MiBsb2NhdGlv
biwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+
LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVf
dmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEdy
ZWVuKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9h
dDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aDJE
PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0
IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdh
dGhlckNtcEJsdWUoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3Rh
dGUsIGZsb2F0MiBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2Ap
OwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEFscGhhKFRleHR1
cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRp
b24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBTYW1wbGVyQ29t
cGFyaXNvblN0YXRlLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIg
b2Zmc2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyKFRl
eHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24pO2ApOworICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRoMkQ8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOworICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkQ8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxl
ciwgZmxvYXQyIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyRDwke3R5cGV9Piwgc2FtcGxl
ciwgZmxvYXQyIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKKyAgICAgICAgICAg
IHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+
LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zm
c2V0KTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0aGVyQ21wUmVk
KFRleHR1cmVEZXB0aDJEPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDIgbG9jYXRpb24sIGZsb2F0
IGNvbXBhcmVfdmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBH
YXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MiBsb2Nh
dGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwogICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4dHVyZURlcHRoMkQ8JHt0eXBlfT4sIGludDMg
bG9jYXRpb24pO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4
dHVyZURlcHRoMkQ8JHt0eXBlfT4sIGludDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFRleHR1cmVEZXB0aDJE
PCR7dHlwZX0+LCB1aW50IE1pcExldmVsLCB0aHJlYWQgdWludCogV2lkdGgsIHRocmVhZCB1aW50
KiBIZWlnaHQsIHRocmVhZCB1aW50KiBOdW1iZXJPZkxldmVscyk7YCk7CiAgICAgICAgICAgICBw
cmludCgpOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJl
RGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOwogICAg
ICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZShUZXh0dXJlRGVwdGgyREFycmF5
PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBm
bG9hdCBDb21wYXJlVmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNv
blN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IENvbXBhcmVWYWx1ZSwgaW50MiBvZmZzZXQp
O2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVy
byhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBm
bG9hdDMgbG9jYXRpb24sIGZsb2F0IENvbXBhcmVWYWx1ZSk7YCk7Ci0gICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wTGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEQXJyYXk8
JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQg
Q29tcGFyZVZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIs
IGZsb2F0MyBsb2NhdGlvbiwgJHt0eXBlfSBDb21wYXJlVmFsdWUpO2ApOworICAgICAgICAgICAg
cHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlw
ZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlLCBpbnQy
IG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21w
TGV2ZWxaZXJvKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBs
b2NhdGlvbiwgJHt0eXBlfSBDb21wYXJlVmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlw
ZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sICR7dHlwZX0gQ29tcGFyZVZhbHVlLCBpbnQy
IG9mZnNldCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQmlh
cyhUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24s
IGZsb2F0IEJpYXMpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZUJpYXMoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0
aW9uLCBmbG9hdCBCaWFzLCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX0gU2FtcGxlR3JhZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1w
bGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0MiBERFgsIGZsb2F0MiBERFkpO2ApOwogICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoMkRBcnJh
eTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdDIgRERYLCBmbG9hdDIg
RERZLCBpbnQyIG9mZnNldCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0g
U2FtcGxlTGV2ZWwoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQz
IGxvY2F0aW9uLCBmbG9hdCBMT0QpO2ApOwogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IFNhbXBsZUxldmVsKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZs
b2F0MyBsb2NhdGlvbiwgZmxvYXQgTE9ELCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4s
IHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZl
ICR7dHlwZX0gR2F0aGVyKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZs
b2F0MyBsb2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVy
LCBmbG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMg
bG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0
eXBlfSBHYXRoZXJHcmVlbihUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBm
bG9hdDMgbG9jYXRpb24pO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdh
dGhlckdyZWVuKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBs
b2NhdGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5
cGV9IEdhdGhlckJsdWUoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxv
YXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRo
ZXJCbHVlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2Nh
dGlvbiwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
IEdhdGhlckFscGhhKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0
MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVy
QWxwaGEoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0
aW9uLCBpbnQyIG9mZnNldCk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0g
R2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29u
U3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7Ci0gICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wKFRleHR1cmVEZXB0aDJEQXJyYXk8
JHt0eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQg
Y29tcGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1w
bGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUp
O2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcFJlZChUZXh0
dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMg
bG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUsIGludDIgb2Zmc2V0KTtgKTsKLSAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBHcmVlbihUZXh0dXJlRGVwdGgyREFy
cmF5PCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZs
b2F0IGNvbXBhcmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9
IEdhdGhlckNtcEdyZWVuKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBsZXJDb21w
YXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSwgaW50MiBv
ZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNtcEJs
dWUoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwg
ZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBCbHVlKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0
eXBlfT4sIFNhbXBsZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29t
cGFyZV92YWx1ZSwgaW50MiBvZmZzZXQpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9IEdhdGhlckNtcEFscGhhKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIFNhbXBs
ZXJDb21wYXJpc29uU3RhdGUsIGZsb2F0MyBsb2NhdGlvbiwgZmxvYXQgY29tcGFyZV92YWx1ZSk7
YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQ21wQWxwaGEoVGV4
dHVyZURlcHRoMkRBcnJheTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQz
IGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlRGVwdGgyREFycmF5PCR7
dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgcHJpbnQo
YG5hdGl2ZSAke3R5cGV9NCBHYXRoZXIoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2Ft
cGxlciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmlu
dChgbmF0aXZlICR7dHlwZX00IEdhdGhlclJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+
LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2
ZSAke3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwgc2FtcGxl
ciwgZmxvYXQzIGxvY2F0aW9uLCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChg
bmF0aXZlICR7dHlwZX00IEdhdGhlckNtcChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBz
YW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOworICAgICAg
ICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9NCBHYXRoZXJDbXAoVGV4dHVyZURlcHRoMkRBcnJh
eTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVl
LCBpbnQyIG9mZnNldCk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX00IEdh
dGhlckNtcFJlZChUZXh0dXJlRGVwdGgyREFycmF5PCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMg
bG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9NCBHYXRoZXJDbXBSZWQoVGV4dHVyZURlcHRoMkRBcnJheTwke3R5cGV9Piwg
c2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlLCBpbnQyIG9mZnNl
dCk7YCk7CiAgICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gTG9hZChUZXh0dXJlRGVw
dGgyREFycmF5PCR7dHlwZX0+LCBpbnQ0IGxvY2F0aW9uKTtgKTsKICAgICAgICAgICAgIHByaW50
KGBuYXRpdmUgJHt0eXBlfSBMb2FkKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIGludDQg
bG9jYXRpb24sIGludDIgb2Zmc2V0KTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9p
ZCBHZXREaW1lbnNpb25zKFRleHR1cmVEZXB0aDJEQXJyYXk8JHt0eXBlfT4sIHVpbnQgTWlwTGV2
ZWwsIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIEhlaWdodCwgdGhyZWFkIHVpbnQq
IEVsZW1lbnRzLCB0aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpO2ApOwogICAgICAgICAgICAg
cHJpbnQoKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGUoVGV4dHVy
ZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAg
ICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVDbXAoVGV4dHVyZURlcHRoQ3ViZTwk
e3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBD
b21wYXJlVmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBs
ZUNtcExldmVsWmVybyhUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBTYW1wbGVyQ29tcGFyaXNv
blN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IENvbXBhcmVWYWx1ZSk7YCk7CisgICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gU2FtcGxlQ21wKFRleHR1cmVEZXB0aEN1YmU8JHt0
eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbiwgJHt0eXBlfSBDb21wYXJlVmFsdWUpO2Ap
OworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IFNhbXBsZUNtcExldmVsWmVybyhU
ZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sICR7dHlw
ZX0gQ29tcGFyZVZhbHVlKTtgKTsKICAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBT
YW1wbGVCaWFzKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2Nh
dGlvbiwgZmxvYXQgQmlhcyk7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0g
U2FtcGxlR3JhZChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9j
YXRpb24sIGZsb2F0MiBERFgsIGZsb2F0MiBERFkpO2ApOworICAgICAgICAgICAgcHJpbnQoYG5h
dGl2ZSAke3R5cGV9IFNhbXBsZUdyYWQoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxl
ciwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdDMgRERYLCBmbG9hdDMgRERZKTtgKTsKICAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBTYW1wbGVMZXZlbChUZXh0dXJlRGVwdGhDdWJlPCR7
dHlwZX0+LCBzYW1wbGVyLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IExPRCk7YCk7Ci0gICAgICAg
ICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBl
fT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0
aXZlICR7dHlwZX0gR2F0aGVyUmVkKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIs
IGZsb2F0MyBsb2NhdGlvbik7YCk7Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0g
R2F0aGVyR3JlZW4oVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxv
Y2F0aW9uKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJCbHVl
KFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlvbik7YCk7
Ci0gICAgICAgICAgICBwcmludChgbmF0aXZlICR7dHlwZX0gR2F0aGVyQWxwaGEoVGV4dHVyZURl
cHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxvYXQzIGxvY2F0aW9uKTtgKTsKLSAgICAgICAg
ICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXAoVGV4dHVyZURlcHRoQ3ViZTwke3R5
cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwgZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21w
YXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJD
bXBSZWQoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwg
ZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBHcmVlbihUZXh0dXJlRGVwdGhDdWJlPCR7dHlw
ZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBh
cmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IEdhdGhlckNt
cEJsdWUoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgU2FtcGxlckNvbXBhcmlzb25TdGF0ZSwg
ZmxvYXQzIGxvY2F0aW9uLCBmbG9hdCBjb21wYXJlX3ZhbHVlKTtgKTsKLSAgICAgICAgICAgIHBy
aW50KGBuYXRpdmUgJHt0eXBlfSBHYXRoZXJDbXBBbHBoYShUZXh0dXJlRGVwdGhDdWJlPCR7dHlw
ZX0+LCBTYW1wbGVyQ29tcGFyaXNvblN0YXRlLCBmbG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBh
cmVfdmFsdWUpO2ApOwotICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAke3R5cGV9IExvYWQoVGV4
dHVyZURlcHRoQ3ViZTwke3R5cGV9PiwgaW50NCBsb2NhdGlvbik7YCk7CisgICAgICAgICAgICBw
cmludChgbmF0aXZlICR7dHlwZX00IEdhdGhlcihUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBz
YW1wbGVyLCBmbG9hdDMgbG9jYXRpb24pO2ApOworICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSAk
e3R5cGV9NCBHYXRoZXJSZWQoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwgc2FtcGxlciwgZmxv
YXQzIGxvY2F0aW9uKTtgKTsKKyAgICAgICAgICAgIHByaW50KGBuYXRpdmUgJHt0eXBlfTQgR2F0
aGVyQ21wKFRleHR1cmVEZXB0aEN1YmU8JHt0eXBlfT4sIHNhbXBsZXIsIGZsb2F0MyBsb2NhdGlv
biwgZmxvYXQgY29tcGFyZV92YWx1ZSk7YCk7CisgICAgICAgICAgICBwcmludChgbmF0aXZlICR7
dHlwZX00IEdhdGhlckNtcFJlZChUZXh0dXJlRGVwdGhDdWJlPCR7dHlwZX0+LCBzYW1wbGVyLCBm
bG9hdDMgbG9jYXRpb24sIGZsb2F0IGNvbXBhcmVfdmFsdWUpO2ApOwogICAgICAgICAgICAgcHJp
bnQoYG5hdGl2ZSB2b2lkIEdldERpbWVuc2lvbnMoVGV4dHVyZURlcHRoQ3ViZTwke3R5cGV9Piwg
dWludCBNaXBMZXZlbCwgdGhyZWFkIHVpbnQqIFdpZHRoLCB0aHJlYWQgdWludCogSGVpZ2h0LCB0
aHJlYWQgdWludCogTnVtYmVyT2ZMZXZlbHMpO2ApOwogICAgICAgICAgICAgcHJpbnQoKTsKICAg
ICAgICAgICAgIHByaW50KGBuYXRpdmUgdm9pZCBHZXREaW1lbnNpb25zKFJXVGV4dHVyZURlcHRo
MkQ8JHt0eXBlfT4sIHRocmVhZCB1aW50KiBXaWR0aCwgdGhyZWFkIHVpbnQqIEhlaWdodCk7YCk7
CkBAIC0yMTE0LDcgKzIwOTEsNiBAQCBsZXQgc3RhbmRhcmRMaWJyYXJ5ID0gKGZ1bmN0aW9uKCkg
ewogICAgICAgICAgICAgcHJpbnQoYG5hdGl2ZSB2b2lkIFN0b3JlKFJXVGV4dHVyZURlcHRoMkRB
cnJheTwke3R5cGV9PiwgJHt0eXBlfSwgdWludDMgbG9jYXRpb24pO2ApOwogICAgICAgICAgICAg
cHJpbnQoKTsKICAgICAgICAgfQotICAgICAgICAqLwogICAgIH0pKCk7CiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0pKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9U
ZXN0Lmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKaW5kZXgg
NjA3YTY5NTMyNTNkYTcyN2IxZGUzNzY3OGVjMzg4YjRmYTI0MDQwNS4uZmIxMDE1ZjE5MzgxY2Y2
ZWFjNzMxN2I0ODVlZjAwYzNlYzFjYjk2ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvVGVzdC5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1Rlc3QuaHRtbApAQCAtMjgsNiArMjgsNyBAQAogPHNjcmlwdCBzcmM9IkJ1aWx0aW5WZWN0b3JT
ZXR0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNhbGxFeHByZXNzaW9uLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJDYWxsRnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9IkNhc3RzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDaGVjay5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iQ2hlY2tMaXRlcmFsVHlwZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9IkNoZWNrTG9vcHMuanMiPjwvc2NyaXB0PgpAQCAtMTE1LDYgKzExNiw3IEBACiA8c2NyaXB0
IHNyYz0iUmV0dXJuLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZXR1cm5DaGVja2VyLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZXR1cm5FeGNlcHRpb24uanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9IlNhbXBsZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN0YW5kYXJk
TGlicmFyeS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3RhdGVtZW50Q2xvbmVyLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIj48L3NjcmlwdD4K
QEAgLTEyNyw2ICsxMjksOCBAQAogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVDb3B5Q29uc3RydWN0
b3JPcGVyYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZURlZmF1bHRD
b25zdHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUZXJuYXJ5RXhw
cmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVGV4dHVyZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iVGV4dHVyZU9wZXJhdGlvbnMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWYuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwppbmRleCA0YTExYzE4NTg1OTk3NzhmZjM5
MWIwNGYyNjM1YzViNzEwMDVkZjdmLi45MGQ1ZTVjY2Q1MGNmZjRhOTQyYjkxNzY2YjI3Mjg2OWYw
OTQ0YzY3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmpz
CisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKQEAgLTk0LDYgKzk0
LDEzMyBAQCBmdW5jdGlvbiBtYWtlRW51bShwcm9ncmFtLCBlbnVtTmFtZSwgdmFsdWUpCiAgICAg
cmV0dXJuIFR5cGVkVmFsdWUuYm94KGVudW1UeXBlLCBlbnVtTWVtYmVyLnZhbHVlLnVuaWZ5Tm9k
ZS52YWx1ZUZvclNlbGVjdGVkVHlwZSk7CiB9CiAKK2Z1bmN0aW9uIG1ha2VTYW1wbGVyKHByb2dy
YW0sIG9wdGlvbnMpCit7CisgICAgLy8gZW51bSBXZWJHUFVBZGRyZXNzTW9kZSB7CisgICAgLy8g
ICAgICJjbGFtcFRvRWRnZSIsCisgICAgLy8gICAgICJyZXBlYXQiLAorICAgIC8vICAgICAibWly
cm9yUmVwZWF0IiwKKyAgICAvLyAgICAgImNsYW1wVG9Cb3JkZXJDb2xvciIKKyAgICAvLyB9Cisg
ICAgLy8KKyAgICAvLyBlbnVtIFdlYkdQVUZpbHRlck1vZGUgeworICAgIC8vICAgICAibmVhcmVz
dCIsCisgICAgLy8gICAgICJsaW5lYXIiCisgICAgLy8gfQorICAgIC8vCisgICAgLy8gZW51bSBX
ZWJHUFVDb21wYXJlRnVuY3Rpb24geworICAgIC8vICAgICAibmV2ZXIiLAorICAgIC8vICAgICAi
bGVzcyIsCisgICAgLy8gICAgICJlcXVhbCIsCisgICAgLy8gICAgICJsZXNzRXF1YWwiLAorICAg
IC8vICAgICAiZ3JlYXRlciIsCisgICAgLy8gICAgICJub3RFcXVhbCIsCisgICAgLy8gICAgICJn
cmVhdGVyRXF1YWwiLAorICAgIC8vICAgICAiYWx3YXlzIgorICAgIC8vIH0KKyAgICAvLworICAg
IC8vIGVudW0gV2ViR1BVQm9yZGVyQ29sb3IgeworICAgIC8vICAgICAidHJhbnNwYXJlbnRCbGFj
ayIsCisgICAgLy8gICAgICJvcGFxdWVCbGFjayIsCisgICAgLy8gICAgICJvcGFxdWVXaGl0ZSIK
KyAgICAvLyB9CisgICAgLy8KKyAgICAvLyBkaWN0aW9uYXJ5IFdlYkdQVVNhbXBsZXJEZXNjcmlw
dG9yIHsKKyAgICAvLyAgICAgV2ViR1BVZGRyZXNzTW9kZSByQWRkcmVzc01vZGUgPSAiY2xhbXBU
b0VkZ2UiOworICAgIC8vICAgICBXZWJHUFVkZHJlc3NNb2RlIHNBZGRyZXNzTW9kZSA9ICJjbGFt
cFRvRWRnZSI7CisgICAgLy8gICAgIFdlYkdQVWRkcmVzc01vZGUgdEFkZHJlc3NNb2RlID0gImNs
YW1wVG9FZGdlIjsKKyAgICAvLyAgICAgV2ViR1BVRmlsdGVyTW9kZUVudW0gbWFnRmlsdGVyID0g
Im5lYXJlc3QiOworICAgIC8vICAgICBXZWJHUFVGaWx0ZXJNb2RlRW51bSBtaW5GaWx0ZXIgPSAi
bmVhcmVzdCI7CisgICAgLy8gICAgIFdlYkdQVUZpbHRlck1vZGVFbnVtIG1pcG1hcEZpbHRlciA9
ICJuZWFyZXN0IjsKKyAgICAvLyAgICAgZmxvYXQgbG9kTWluQ2xhbXAgPSAwOworICAgIC8vICAg
ICBmbG9hdCBsb2RNYXhDbGFtcCA9IE51bWJlci5NQVhfVkFMVUU7CisgICAgLy8gICAgIHVuc2ln
bmVkIGxvbmcgbWF4QW5pc290cm9weSA9IDE7CisgICAgLy8gICAgIFdlYkdQVUNvbXBhcmVGdW5j
dGlvbiBjb21wYXJlRnVuY3Rpb24gPSAibmV2ZXIiOworICAgIC8vICAgICBXZWJHUFVCb3JkZXJD
b2xvciBib3JkZXJDb2xvciA9ICJ0cmFuc3BhcmVudEJsYWNrIjsKKyAgICAvLyB9OworICAgIHJl
dHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3Muc2FtcGxlciwgbmV3IFNhbXBs
ZXIob3B0aW9ucykpOworfQorCitmdW5jdGlvbiBtYWtlMURUZXh0dXJlKHByb2dyYW0sIG1pcG1h
cHMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmlu
dHJpbnNpY3NbYFRleHR1cmUxRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmUxRChlbGVt
ZW50VHlwZSwgbWlwbWFwcykpOworfQorCitmdW5jdGlvbiBtYWtlMURUZXh0dXJlQXJyYXkocHJv
Z3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChw
cm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmUxREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcg
VGV4dHVyZTFEQXJyYXkoZWxlbWVudFR5cGUsIGFycmF5KSk7Cit9CisKK2Z1bmN0aW9uIG1ha2Uy
RFRleHR1cmUocHJvZ3JhbSwgbWlwbWFwcywgZWxlbWVudFR5cGUpCit7CisgICAgcmV0dXJuIFR5
cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZTJEPCR7ZWxlbWVudFR5cGV9
PmBdLCBuZXcgVGV4dHVyZTJEKGVsZW1lbnRUeXBlLCBtaXBtYXBzKSk7Cit9CisKK2Z1bmN0aW9u
IG1ha2UyRFRleHR1cmVBcnJheShwcm9ncmFtLCBhcnJheSwgZWxlbWVudFR5cGUpCit7CisgICAg
cmV0dXJuIFR5cGVkVmFsdWUuYm94KHByb2dyYW0uaW50cmluc2ljc1tgVGV4dHVyZTJEQXJyYXk8
JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlMkRBcnJheShlbGVtZW50VHlwZSwgYXJyYXkp
KTsKK30KKworZnVuY3Rpb24gbWFrZTNEVGV4dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50
VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BU
ZXh0dXJlM0Q8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlM0QoZWxlbWVudFR5cGUsIG1p
cG1hcHMpKTsKK30KKworZnVuY3Rpb24gbWFrZVRleHR1cmVDdWJlKHByb2dyYW0sIGFycmF5LCBl
bGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5z
aWNzW2BUZXh0dXJlQ3ViZTwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmVDdWJlKGVsZW1l
bnRUeXBlLCBhcnJheSkpOworfQorCitmdW5jdGlvbiBtYWtlUlcxRFRleHR1cmUocHJvZ3JhbSwg
ZWxlbWVudHMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9n
cmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTFEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVy
ZTFEUlcoZWxlbWVudFR5cGUsIGVsZW1lbnRzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2VSVzFEVGV4
dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlw
ZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmUxREFycmF5PCR7ZWxlbWVu
dFR5cGV9PmBdLCBuZXcgVGV4dHVyZTFEQXJyYXlSVyhlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30K
KworZnVuY3Rpb24gbWFrZVJXMkRUZXh0dXJlKHByb2dyYW0sIHJvd3MsIGVsZW1lbnRUeXBlKQor
eworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVy
ZTJEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZTJEUlcoZWxlbWVudFR5cGUsIHJvd3Mp
KTsKK30KKworZnVuY3Rpb24gbWFrZVJXMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwgYXJyYXksIGVs
ZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNp
Y3NbYFJXVGV4dHVyZTJEQXJyYXk8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlMkRBcnJh
eVJXKGVsZW1lbnRUeXBlLCBhcnJheSkpOworfQorCitmdW5jdGlvbiBtYWtlUlczRFRleHR1cmUo
cHJvZ3JhbSwgZGVwdGhTbGljZXMsIGVsZW1lbnRUeXBlKQoreworICAgIHJldHVybiBUeXBlZFZh
bHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFJXVGV4dHVyZTNEPCR7ZWxlbWVudFR5cGV9PmBd
LCBuZXcgVGV4dHVyZTNEUlcoZWxlbWVudFR5cGUsIGRlcHRoU2xpY2VzKSk7Cit9CisKK2Z1bmN0
aW9uIG1ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBtaXBtYXBzLCBlbGVtZW50VHlwZSkKK3sK
KyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BUZXh0dXJlRGVw
dGgyRDwke2VsZW1lbnRUeXBlfT5gXSwgbmV3IFRleHR1cmVEZXB0aDJEKGVsZW1lbnRUeXBlLCBt
aXBtYXBzKSk7Cit9CisKK2Z1bmN0aW9uIG1ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0s
IGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3Jh
bS5pbnRyaW5zaWNzW2BUZXh0dXJlRGVwdGgyREFycmF5PCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcg
VGV4dHVyZURlcHRoMkRBcnJheShlbGVtZW50VHlwZSwgYXJyYXkpKTsKK30KKworZnVuY3Rpb24g
bWFrZURlcHRoVGV4dHVyZUN1YmUocHJvZ3JhbSwgYXJyYXksIGVsZW1lbnRUeXBlKQoreworICAg
IHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJpbnNpY3NbYFRleHR1cmVEZXB0aEN1
YmU8JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlRGVwdGhDdWJlKGVsZW1lbnRUeXBlLCBh
cnJheSkpOworfQorCitmdW5jdGlvbiBtYWtlUlcyRERlcHRoVGV4dHVyZShwcm9ncmFtLCByb3dz
LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRy
aW5zaWNzW2BSV1RleHR1cmVEZXB0aDJEPCR7ZWxlbWVudFR5cGV9PmBdLCBuZXcgVGV4dHVyZURl
cHRoMkRSVyhlbGVtZW50VHlwZSwgcm93cykpOworfQorCitmdW5jdGlvbiBtYWtlUlcyRERlcHRo
VGV4dHVyZUFycmF5KHByb2dyYW0sIGFycmF5LCBlbGVtZW50VHlwZSkKK3sKKyAgICByZXR1cm4g
VHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzW2BSV1RleHR1cmVEZXB0aDJEQXJyYXk8
JHtlbGVtZW50VHlwZX0+YF0sIG5ldyBUZXh0dXJlRGVwdGgyREFycmF5UlcoZWxlbWVudFR5cGUs
IGFycmF5KSk7Cit9CisKIGZ1bmN0aW9uIGNoZWNrTnVtYmVyKHByb2dyYW0sIHJlc3VsdCwgZXhw
ZWN0ZWQpCiB7CiAgICAgaWYgKCFyZXN1bHQudHlwZS51bmlmeU5vZGUuaXNOdW1iZXIpCkBAIC0x
NTcsNiArMjg0LDE0IEBAIGZ1bmN0aW9uIGNoZWNrSGFsZihwcm9ncmFtLCByZXN1bHQsIGV4cGVj
dGVkKQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJlc3VsdDogIiArIHJlc3VsdC52
YWx1ZSArICIgKGV4cGVjdGVkICIgKyBleHBlY3RlZCArICIpIik7CiB9CiAKK2Z1bmN0aW9uIGNo
ZWNrRmxvYXQ0KHByb2dyYW0sIHJlc3VsdCwgZXhwZWN0ZWQpCit7CisgICAgaWYgKCFyZXN1bHQu
dHlwZS5lcXVhbHMocHJvZ3JhbS5pbnRyaW5zaWNzWyJ2ZWN0b3I8ZmxvYXQsIDQ+Il0pKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJlc3VsdCB0eXBlOiAiICsgcmVzdWx0LnR5cGUp
OworICAgIGlmIChyZXN1bHQuZVB0ci5nZXQoMCkgIT0gZXhwZWN0ZWRbMF0gfHwgcmVzdWx0LmVQ
dHIuZ2V0KDEpICE9IGV4cGVjdGVkWzFdIHx8IHJlc3VsdC5lUHRyLmdldCgyKSAhPSBleHBlY3Rl
ZFsyXSB8fCByZXN1bHQuZVB0ci5nZXQoMykgIT0gZXhwZWN0ZWRbM10pCisgICAgICAgIHRocm93
IG5ldyBFcnJvcigiV3JvbmcgcmVzdWx0OiBbIiArIHJlc3VsdC5lUHRyLmdldCgwKSArICIsICIg
KyByZXN1bHQuZVB0ci5nZXQoMSkgKyAiLCAiICsgcmVzdWx0LmVQdHIuZ2V0KDIpICsgIiwgIiAr
IHJlc3VsdC5lUHRyLmdldCgzKSArICJdIChleHBlY3RlZCBbIiArIGV4cGVjdGVkWzBdICsgIiwg
IiArIGV4cGVjdGVkWzFdICsgIiwgIiArIGV4cGVjdGVkWzJdICsgIiwgIiArIGV4cGVjdGVkWzNd
ICsgIl0pIik7Cit9CisKIGZ1bmN0aW9uIGNoZWNrTGV4ZXJUb2tlbihyZXN1bHQsIGV4cGVjdGVk
SW5kZXgsIGV4cGVjdGVkS2luZCwgZXhwZWN0ZWRUZXh0KQogewogICAgIGlmIChyZXN1bHQuX2lu
ZGV4ICE9IGV4cGVjdGVkSW5kZXgpCkBAIC0xMjc1LDcgKzE0MTAsNyBAQCB0ZXN0cy5icmVhayA9
IGZ1bmN0aW9uKCkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIHJldHVybiB4OwotICAgICAgICAgICAgCisKICAgICAgICAgfQogICAgIGApOwogICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgNyk7CkBAIC0xMzcwLDcgKzE1MDUsNyBAQCB0ZXN0cy5jb250aW51ZSA9
IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgICAgICAgICByZXR1cm4geDsKLSAgICAgICAgICAgICAgICAKKwogICAgICAgICAgICAg
fQogICAgICAgICBgKSwKICAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsK
QEAgLTI3ODQsMjggKzI5MTksMjggQEAgdGVzdHMuYm9vbGVhblNob3J0Y2lyY3VpdGluZyA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgICpwdHIgPSB2YWx1ZTsgCiAgICAgICAgICAgICByZXR1cm4g
cmV0VmFsdWU7IAogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIGludCBhbmRUcnVlKCkK
ICAgICAgICAgewogICAgICAgICAgICAgaW50IHg7CiAgICAgICAgICAgICBib29sIHkgPSBzZXQo
JngsIDEsIHRydWUpICYmIHNldCgmeCwgMiwgZmFsc2UpOwogICAgICAgICAgICAgcmV0dXJuIHg7
IAogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIGludCBhbmRGYWxzZSgpCiAgICAgICAg
IHsKICAgICAgICAgICAgIGludCB4OwogICAgICAgICAgICAgYm9vbCB5ID0gc2V0KCZ4LCAxLCBm
YWxzZSkgJiYgc2V0KCZ4LCAyLCBmYWxzZSk7CiAgICAgICAgICAgICByZXR1cm4geDsgCiAgICAg
ICAgIH0KLSAgICAgICAgCisKICAgICAgICAgaW50IG9yVHJ1ZSgpCiAgICAgICAgIHsKICAgICAg
ICAgICAgIGludCB4OwogICAgICAgICAgICAgYm9vbCB5ID0gc2V0KCZ4LCAxLCB0cnVlKSB8fCBz
ZXQoJngsIDIsIGZhbHNlKTsKICAgICAgICAgICAgIHJldHVybiB4OyAKICAgICAgICAgfQotICAg
ICAgICAKKwogICAgICAgICBpbnQgb3JGYWxzZSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlu
dCB4OwpAQCAtNTU1NywxMiArNTY5MiwxMiBAQCB0ZXN0cy5hcnJheUluZGV4ID0gZnVuY3Rpb24o
KSB7CiAgICAgICAgICAgICBpbnRbMl1bM10gYXJyYXk7CiAgICAgICAgICAgICByZXR1cm4gYXJy
YXlbMF0ubGVuZ3RoOwogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIHVpbnQgb3V0ZXJB
cnJheUxlbmd0aCgpIHsKICAgICAgICAgICAgIGludFsyXVszXSBhcnJheTsKICAgICAgICAgICAg
IHJldHVybiBhcnJheS5sZW5ndGg7CiAgICAgICAgIH0KLSAgICAgICAgCisKICAgICAgICAgaW50
IGFycmF5SW5kZXhpbmcodWludCBpLCB1aW50IGopIHsKICAgICAgICAgICAgIGludFsyXVszXSBh
cnJheTsKICAgICAgICAgICAgIGFycmF5WzBdWzBdID0gMTsKQEAgLTU1NzQsNyArNTcwOSw3IEBA
IHRlc3RzLmFycmF5SW5kZXggPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHJldHVybiBhcnJh
eVtpXVtqXTsKICAgICAgICAgfQogICAgIGApOwotICAgIAorCiAgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW5uZXJBcnJheUxlbmd0aCIsIFtdKSwgMyk7CiAg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAib3V0ZXJBcnJheUxl
bmd0aCIsIFtdKSwgMik7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCkgXSksIDEpOwpAQCAtNTU4Miw3ICs1NzE3LDE5MTMgQEAgdGVzdHMuYXJyYXlJbmRl
eCA9IGZ1bmN0aW9uKCkgewogICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiYXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHBy
b2dyYW0sIDIpIF0pLCAzKTsKICAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImFycmF5SW5kZXhpbmciLCBbIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChw
cm9ncmFtLCAwKSBdKSwgNCk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMSkgXSksIDUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiYXJyYXlJbmRleGluZyIsIFsgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50
KHByb2dyYW0sIDIpIF0pLCA2KTsgICAgCisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJhcnJheUluZGV4aW5nIiwgWyBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMikgXSksIDYpOworfQorCitmdW5jdGlvbiBjcmVhdGVUZXh0dXJlc0Zv
clRlc3RpbmcocHJvZ3JhbSkKK3sKKyAgICBsZXQgdGV4dHVyZTFEID0gbWFrZTFEVGV4dHVyZShw
cm9ncmFtLCBbWzEsIDcsIDE0LCA3OV0sIFsxMywgMTZdLCBbMTVdXSwgImZsb2F0Iik7CisgICAg
bGV0IHRleHR1cmUxREFycmF5ID0gbWFrZTFEVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbWzEsIDcs
IDE0LCA3OV0sIFsxMywgMTZdLCBbMTVdXSwgW1sxNiwgMTcsIDE4LCAxOV0sIFsyMCwgMjFdLCBb
MjJdXV0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlMkQgPSBtYWtlMkRUZXh0dXJlKHByb2dy
YW0sIFsKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEw
LCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwg
MjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwK
KyAgICAgICAgW1szMywgMzQsIDM1LCAzNl0sCisgICAgICAgIFszNywgMzgsIDM5LCA0MF1dLAor
ICAgICAgICBbWzQxLCA0Ml1dCisgICAgXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmUyREFy
cmF5ID0gbWFrZTJEVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbCisgICAgICAgIFtbMSwgMiwgMywg
NCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0s
CisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUs
IDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzZd
LAorICAgICAgICBbMzcsIDM4LCAzOSwgNDBdXSwKKyAgICAgICAgW1s0MSwgNDJdXQorICAgIF0s
IFsKKyAgICAgICAgW1s0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4LCA0OSwgNTBdLAorICAgICAgICBb
NTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTcsIDU4XSwKKyAgICAgICAgWzU5LCA2MCwgNjEsIDYy
LCA2MywgNjQsIDY1LCA2Nl0sCisgICAgICAgIFs2NywgNjgsIDY5LCA3MCwgNzEsIDcyLCA3Mywg
NzRdXSwKKyAgICAgICAgW1s3NSwgNzYsIDc3LCA3OF0sCisgICAgICAgIFs3OSwgODAsIDgxLCA4
Ml1dLAorICAgICAgICBbWzgzLCA4NF1dCisgICAgXV0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0
dXJlM0QgPSBtYWtlM0RUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAgICAgW1tbMSwgMiwgMywgNCwg
NSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisg
ICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2
LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMsIDM0LCAzNSwgMzYsIDM3
LCAzOCwgMzksIDQwXSwKKyAgICAgICAgWzQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OF0s
CisgICAgICAgIFs0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTZdLAorICAgICAgICBbNTcs
IDU4LCA1OSwgNjAsIDYxLCA2MiwgNjMsIDY0XV1dLAorICAgICAgICBbW1s2NSwgNjYsIDY3LCA2
OF0sCisgICAgICAgIFs2OSwgNzAsIDcxLCA3Ml1dXQorICAgIF0sICJmbG9hdCIpOworICAgIGxl
dCB0ZXh0dXJlQ3ViZSA9IG1ha2VUZXh0dXJlQ3ViZShwcm9ncmFtLCBbWworICAgICAgICBbWzEs
IDJdLAorICAgICAgICBbMywgNF0sCisgICAgICAgIFs1LCA2XSwKKyAgICAgICAgWzcsIDhdXSwK
KyAgICAgICAgW1s5XSwKKyAgICAgICAgWzEwXV0sCisgICAgXSwgWworICAgICAgICBbWzExLCAx
Ml0sCisgICAgICAgIFsxMywgMTRdLAorICAgICAgICBbMTUsIDE2XSwKKyAgICAgICAgWzE3LCAx
OF1dLAorICAgICAgICBbWzE5XSwKKyAgICAgICAgWzIwXV0sCisgICAgXSwgWworICAgICAgICBb
WzIxLCAyMl0sCisgICAgICAgIFsyMywgMjRdLAorICAgICAgICBbMjUsIDI2XSwKKyAgICAgICAg
WzI3LCAyOF1dLAorICAgICAgICBbWzI5XSwKKyAgICAgICAgWzMwXV0sCisgICAgXSwgWworICAg
ICAgICBbWzMxLCAzMl0sCisgICAgICAgIFszMywgMzRdLAorICAgICAgICBbMzUsIDM2XSwKKyAg
ICAgICAgWzM3LCAzOF1dLAorICAgICAgICBbWzM5XSwKKyAgICAgICAgWzQwXV0sCisgICAgXSwg
WworICAgICAgICBbWzQxLCA0Ml0sCisgICAgICAgIFs0MywgNDRdLAorICAgICAgICBbNDUsIDQ2
XSwKKyAgICAgICAgWzQ3LCA0OF1dLAorICAgICAgICBbWzQ5XSwKKyAgICAgICAgWzUwXV0sCisg
ICAgXSwgWworICAgICAgICBbWzUxLCA1Ml0sCisgICAgICAgIFs1MywgNTRdLAorICAgICAgICBb
NTUsIDU2XSwKKyAgICAgICAgWzU3LCA1OF1dLAorICAgICAgICBbWzU5XSwKKyAgICAgICAgWzYw
XV0sCisgICAgXV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmUxRCA9IG1ha2VSVzFEVGV4
dHVyZShwcm9ncmFtLCBbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sICJmbG9hdCIpOworICAgIGxl
dCByd1RleHR1cmUxREFycmF5ID0gbWFrZVJXMURUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1sxLCAy
LCAzLCA0LCA1LCA2LCA3LCA4XSwgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwgWzE3
LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF1dLCAiZmxvYXQiKTsKKyAgICBsZXQgcndUZXh0
dXJlMkQgPSBtYWtlUlcyRFRleHR1cmUocHJvZ3JhbSwgWworICAgICAgICBbMSwgMiwgMywgNCwg
NSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisg
ICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2
LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmUy
REFycmF5ID0gbWFrZVJXMkRUZXh0dXJlQXJyYXkocHJvZ3JhbSwgWworICAgICAgICBbWzEsIDIs
IDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwg
MTZdLAorICAgICAgICBbMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgICAg
WzI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMl1dLAorICAgICAgICBbWzMzLCAzNCwgMzUs
IDM2LCAzNywgMzgsIDM5LCA0MF0sCisgICAgICAgIFs0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0
NywgNDhdLAorICAgICAgICBbNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2XSwKKyAgICAg
ICAgWzU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLCA2NF1dXSwgImZsb2F0Iik7CisgICAgbGV0
IHJ3VGV4dHVyZTNEID0gbWFrZVJXM0RUZXh0dXJlKHByb2dyYW0sIFsKKyAgICAgICAgW1sxLCAy
LCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUs
IDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAg
IFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1
LCAzNiwgMzcsIDM4LCAzOSwgNDBdLAorICAgICAgICBbNDEsIDQyLCA0MywgNDQsIDQ1LCA0Niwg
NDcsIDQ4XSwKKyAgICAgICAgWzQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1Nl0sCisgICAg
ICAgIFs1NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2MywgNjRdXV0sICJmbG9hdCIpOworICAgIGxl
dCB0ZXh0dXJlRGVwdGgyRCA9IG1ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbCisgICAgICAg
IFtbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywg
MTQsIDE1LCAxNl0sCisgICAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAor
ICAgICAgICBbMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyXV0sCisgICAgICAgIFtbMzMs
IDM0LCAzNSwgMzZdLAorICAgICAgICBbMzcsIDM4LCAzOSwgNDBdXSwKKyAgICAgICAgW1s0MSwg
NDJdXQorICAgIF0sICJmbG9hdCIpOworICAgIGxldCB0ZXh0dXJlRGVwdGgyREFycmF5ID0gbWFr
ZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1sKKyAgICAgICAgW1sxLCAyLCAzLCA0LCA1
LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAg
ICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAgIFsyNSwgMjYs
IDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1LCAzNl0sCisg
ICAgICAgIFszNywgMzgsIDM5LCA0MF1dLAorICAgICAgICBbWzQxLCA0Ml1dCisgICAgXSwgWwor
ICAgICAgICBbWzQzLCA0NCwgNDUsIDQ2LCA0NywgNDgsIDQ5LCA1MF0sCisgICAgICAgIFs1MSwg
NTIsIDUzLCA1NCwgNTUsIDU2LCA1NywgNThdLAorICAgICAgICBbNTksIDYwLCA2MSwgNjIsIDYz
LCA2NCwgNjUsIDY2XSwKKyAgICAgICAgWzY3LCA2OCwgNjksIDcwLCA3MSwgNzIsIDczLCA3NF1d
LAorICAgICAgICBbWzc1LCA3NiwgNzcsIDc4XSwKKyAgICAgICAgWzc5LCA4MCwgODEsIDgyXV0s
CisgICAgICAgIFtbODMsIDg0XV0KKyAgICBdXSwgImZsb2F0Iik7CisgICAgbGV0IHRleHR1cmVE
ZXB0aEN1YmUgPSBtYWtlRGVwdGhUZXh0dXJlQ3ViZShwcm9ncmFtLCBbWworICAgICAgICBbWzEs
IDJdLAorICAgICAgICBbMywgNF0sCisgICAgICAgIFs1LCA2XSwKKyAgICAgICAgWzcsIDhdXSwK
KyAgICAgICAgW1s5XSwKKyAgICAgICAgWzEwXV0sCisgICAgXSwgWworICAgICAgICBbWzExLCAx
Ml0sCisgICAgICAgIFsxMywgMTRdLAorICAgICAgICBbMTUsIDE2XSwKKyAgICAgICAgWzE3LCAx
OF1dLAorICAgICAgICBbWzE5XSwKKyAgICAgICAgWzIwXV0sCisgICAgXSwgWworICAgICAgICBb
WzIxLCAyMl0sCisgICAgICAgIFsyMywgMjRdLAorICAgICAgICBbMjUsIDI2XSwKKyAgICAgICAg
WzI3LCAyOF1dLAorICAgICAgICBbWzI5XSwKKyAgICAgICAgWzMwXV0sCisgICAgXSwgWworICAg
ICAgICBbWzMxLCAzMl0sCisgICAgICAgIFszMywgMzRdLAorICAgICAgICBbMzUsIDM2XSwKKyAg
ICAgICAgWzM3LCAzOF1dLAorICAgICAgICBbWzM5XSwKKyAgICAgICAgWzQwXV0sCisgICAgXSwg
WworICAgICAgICBbWzQxLCA0Ml0sCisgICAgICAgIFs0MywgNDRdLAorICAgICAgICBbNDUsIDQ2
XSwKKyAgICAgICAgWzQ3LCA0OF1dLAorICAgICAgICBbWzQ5XSwKKyAgICAgICAgWzUwXV0sCisg
ICAgXSwgWworICAgICAgICBbWzUxLCA1Ml0sCisgICAgICAgIFs1MywgNTRdLAorICAgICAgICBb
NTUsIDU2XSwKKyAgICAgICAgWzU3LCA1OF1dLAorICAgICAgICBbWzU5XSwKKyAgICAgICAgWzYw
XV0sCisgICAgXV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmVEZXB0aDJEID0gbWFrZVJX
MkREZXB0aFRleHR1cmUocHJvZ3JhbSwgWworICAgICAgICBbMSwgMiwgMywgNCwgNSwgNiwgNywg
OF0sCisgICAgICAgIFs5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNl0sCisgICAgICAgIFsx
NywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjRdLAorICAgICAgICBbMjUsIDI2LCAyNywgMjgs
IDI5LCAzMCwgMzEsIDMyXV0sICJmbG9hdCIpOworICAgIGxldCByd1RleHR1cmVEZXB0aDJEQXJy
YXkgPSBtYWtlUlcyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFsKKyAgICAgICAgW1sxLCAy
LCAzLCA0LCA1LCA2LCA3LCA4XSwKKyAgICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUs
IDE2XSwKKyAgICAgICAgWzE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNF0sCisgICAgICAg
IFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJdXSwKKyAgICAgICAgW1szMywgMzQsIDM1
LCAzNiwgMzcsIDM4LCAzOSwgNDBdLAorICAgICAgICBbNDEsIDQyLCA0MywgNDQsIDQ1LCA0Niwg
NDcsIDQ4XSwKKyAgICAgICAgWzQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1Nl0sCisgICAg
ICAgIFs1NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2MywgNjRdXV0sICJmbG9hdCIpOworICAgIHJl
dHVybiBbdGV4dHVyZTFELCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0ZXh0dXJlMkRBcnJh
eSwgdGV4dHVyZTNELCB0ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVyZTFEQXJyYXks
IHJ3VGV4dHVyZTJELCByd1RleHR1cmUyREFycmF5LCByd1RleHR1cmUzRCwgdGV4dHVyZURlcHRo
MkQsIHRleHR1cmVEZXB0aDJEQXJyYXksIHRleHR1cmVEZXB0aEN1YmUsIHJ3VGV4dHVyZURlcHRo
MkQsIHJ3VGV4dHVyZURlcHRoMkRBcnJheV07Cit9CisKK3Rlc3RzLnRleHR1cmVEaW1lbnNpb25z
ID0gZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICB1aW50
IGZvbzEoVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRo
OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVu
c2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAg
cmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMihUZXh0dXJlMUQ8Zmxv
YXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50
IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAm
d2lkdGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZl
bHM7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28zKFRleHR1cmUxREFycmF5PGZsb2F0PiB0
ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBlbGVt
ZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXRE
aW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZMZXZlbHMp
OworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9v
NChUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0
aDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9m
TGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZl
bGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50czsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzUoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1
cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRz
OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVu
c2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmZWxlbWVudHMsICZudW1iZXJPZkxldmVscyk7Cisg
ICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAgICAgICAgdWlu
dCBmb282KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0
aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxl
dmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVp
Z2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAg
ICB9CisgICAgICAgIHVpbnQgZm9vNyhUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAg
ICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAg
IHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUs
IDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVy
biBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb284KFRleHR1cmUyRDxmbG9hdD4g
dGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVp
Z2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERp
bWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOwor
ICAgICAgICAgICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVp
bnQgZm9vOShUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWlu
dCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVt
ZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXRE
aW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVy
T2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAg
IHVpbnQgZm9vMTAoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAg
IHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQg
ZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAg
R2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZlbGVtZW50cywgJm51
bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAg
ICAgICAgdWludCBmb28xMShUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAg
ICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAg
dWludCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAg
ICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRz
LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAg
ICB9CisgICAgICAgIHVpbnQgZm9vMTIoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsK
KyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAg
ICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZl
bGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxl
dmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzEzKFRleHR1cmUzRDxmbG9hdD4gdGV4
dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0
OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZl
bHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdo
dCwgJmRlcHRoLCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOwor
ICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMTQoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7
CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAg
ICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAg
ICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZGVw
dGgsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAg
ICB9CisgICAgICAgIHVpbnQgZm9vMTUoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAg
ICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAg
ICB1aW50IGRlcHRoOworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAg
ICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgsICZu
dW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gZGVwdGg7CisgICAgICAgIH0KKyAg
ICAgICAgdWludCBmb28xNihUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAg
IHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQg
ZGVwdGg7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0
RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCwgJm51bWJlck9m
TGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQor
ICAgICAgICB1aW50IGZvbzE3KFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAg
ICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1
aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAw
LCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4g
d2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28xOChUZXh0dXJlQ3ViZTxmbG9hdD4g
dGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVp
Z2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERp
bWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOwor
ICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzE5
KFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOwor
ICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxz
OworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQs
ICZudW1iZXJPZkxldmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7Cisg
ICAgICAgIH0KKyAgICAgICAgdWludCBmb28yMChSV1RleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSkg
eworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4
dHVyZSwgJndpZHRoKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAg
ICAgICB1aW50IGZvbzIxKFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAg
ICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAg
ICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZlbGVtZW50cyk7CisgICAgICAgICAg
ICByZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yMihSV1RleHR1cmUx
REFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAg
ICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwg
JndpZHRoLCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzOworICAgICAg
ICB9CisgICAgICAgIHVpbnQgZm9vMjMoUldUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAg
ICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAg
ICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICAgICAgICAg
IHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI0KFJXVGV4dHVyZTJE
PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAg
dWludCBoZWlnaHQ7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwg
JmhlaWdodCk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAgICAg
IHVpbnQgZm9vMjUoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAg
ICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWlu
dCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwgJndpZHRoLCAm
aGVpZ2h0LCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9
CisgICAgICAgIHVpbnQgZm9vMjYoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgewor
ICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAg
ICAgICAgdWludCBlbGVtZW50czsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnModGV4dHVyZSwg
JndpZHRoLCAmaGVpZ2h0LCAmZWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI3KFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRl
eHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdo
dDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25z
KHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJldHVy
biBlbGVtZW50czsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzI4KFJXVGV4dHVyZTNEPGZs
b2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWlu
dCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgR2V0RGltZW5z
aW9ucyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCk7CisgICAgICAgICAgICByZXR1
cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28yOShSV1RleHR1cmUzRDxmbG9h
dD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQg
aGVpZ2h0OworICAgICAgICAgICAgdWludCBkZXB0aDsKKyAgICAgICAgICAgIEdldERpbWVuc2lv
bnModGV4dHVyZSwgJndpZHRoLCAmaGVpZ2h0LCAmZGVwdGgpOworICAgICAgICAgICAgcmV0dXJu
IGhlaWdodDsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzMwKFJXVGV4dHVyZTNEPGZsb2F0
PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBo
ZWlnaHQ7CisgICAgICAgICAgICB1aW50IGRlcHRoOworICAgICAgICAgICAgR2V0RGltZW5zaW9u
cyh0ZXh0dXJlLCAmd2lkdGgsICZoZWlnaHQsICZkZXB0aCk7CisgICAgICAgICAgICByZXR1cm4g
ZGVwdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb28zMShUZXh0dXJlRGVwdGgyRDxmbG9h
dD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQg
aGVpZ2h0OworICAgICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdl
dERpbWVuc2lvbnModGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMp
OworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9v
MzIoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lk
dGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZM
ZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhl
aWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAg
ICAgIH0KKyAgICAgICAgdWludCBmb28zMyhUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSkg
eworICAgICAgICAgICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAg
ICAgICAgICAgdWludCBudW1iZXJPZkxldmVsczsKKyAgICAgICAgICAgIEdldERpbWVuc2lvbnMo
dGV4dHVyZSwgMCwgJndpZHRoLCAmaGVpZ2h0LCAmbnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAg
ICAgcmV0dXJuIG51bWJlck9mTGV2ZWxzOworICAgICAgICB9CisgICAgICAgIHVpbnQgZm9vMzQo
VGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAgICAgdWludCB3
aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWludCBlbGVtZW50
czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1l
bnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAmbnVtYmVyT2ZM
ZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgICAgICB9CisgICAgICAgIHVp
bnQgZm9vMzUoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSkgeworICAgICAgICAg
ICAgdWludCB3aWR0aDsKKyAgICAgICAgICAgIHVpbnQgaGVpZ2h0OworICAgICAgICAgICAgdWlu
dCBlbGVtZW50czsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAg
ICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzLCAm
bnVtYmVyT2ZMZXZlbHMpOworICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICAgICAgfQor
ICAgICAgICB1aW50IGZvbzM2KFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsK
KyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAg
ICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOwor
ICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZl
bGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50czsK
KyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzM3KFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+
IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhl
aWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICB1aW50IG51bWJl
ck9mTGV2ZWxzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgs
ICZoZWlnaHQsICZlbGVtZW50cywgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVy
biBudW1iZXJPZkxldmVsczsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvbzM4KFRleHR1cmVE
ZXB0aEN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAg
ICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgbnVtYmVyT2ZMZXZlbHM7Cisg
ICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsIDAsICZ3aWR0aCwgJmhlaWdodCwgJm51
bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAg
ICAgICB1aW50IGZvbzM5KFRleHR1cmVEZXB0aEN1YmU8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAg
ICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAg
IHVpbnQgbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUs
IDAsICZ3aWR0aCwgJmhlaWdodCwgJm51bWJlck9mTGV2ZWxzKTsKKyAgICAgICAgICAgIHJldHVy
biBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb280MChUZXh0dXJlRGVwdGhDdWJl
PGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAg
dWludCBoZWlnaHQ7CisgICAgICAgICAgICB1aW50IG51bWJlck9mTGV2ZWxzOworICAgICAgICAg
ICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAwLCAmd2lkdGgsICZoZWlnaHQsICZudW1iZXJPZkxl
dmVscyk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZMZXZlbHM7CisgICAgICAgIH0KKyAg
ICAgICAgdWludCBmb280MShSV1RleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAg
ICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAgICAg
ICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCk7CisgICAgICAgICAgICBy
ZXR1cm4gd2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb280MihSV1RleHR1cmVEZXB0
aDJEPGZsb2F0PiB0ZXh0dXJlKSB7CisgICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAg
ICAgdWludCBoZWlnaHQ7CisgICAgICAgICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0
aCwgJmhlaWdodCk7CisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworICAgICAgICB9CisgICAg
ICAgIHVpbnQgZm9vNDMoUldUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlKSB7Cisg
ICAgICAgICAgICB1aW50IHdpZHRoOworICAgICAgICAgICAgdWludCBoZWlnaHQ7CisgICAgICAg
ICAgICB1aW50IGVsZW1lbnRzOworICAgICAgICAgICAgR2V0RGltZW5zaW9ucyh0ZXh0dXJlLCAm
d2lkdGgsICZoZWlnaHQsICZlbGVtZW50cyk7CisgICAgICAgICAgICByZXR1cm4gd2lkdGg7Cisg
ICAgICAgIH0KKyAgICAgICAgdWludCBmb280NChSV1RleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+
IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAgICAgICAgICB1aW50IGhl
aWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAgICAgICBHZXREaW1lbnNp
b25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsKKyAgICAgICAgICAgIHJl
dHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb280NShSV1RleHR1cmVEZXB0
aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUpIHsKKyAgICAgICAgICAgIHVpbnQgd2lkdGg7CisgICAg
ICAgICAgICB1aW50IGhlaWdodDsKKyAgICAgICAgICAgIHVpbnQgZWxlbWVudHM7CisgICAgICAg
ICAgICBHZXREaW1lbnNpb25zKHRleHR1cmUsICZ3aWR0aCwgJmhlaWdodCwgJmVsZW1lbnRzKTsK
KyAgICAgICAgICAgIHJldHVybiBlbGVtZW50czsKKyAgICAgICAgfQorICAgIGApOworICAgIGxl
dCBbdGV4dHVyZTFELCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0ZXh0dXJlMkRBcnJheSwg
dGV4dHVyZTNELCB0ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVyZTFEQXJyYXksIHJ3
VGV4dHVyZTJELCByd1RleHR1cmUyREFycmF5LCByd1RleHR1cmUzRCwgdGV4dHVyZURlcHRoMkQs
IHRleHR1cmVEZXB0aDJEQXJyYXksIHRleHR1cmVEZXB0aEN1YmUsIHJ3VGV4dHVyZURlcHRoMkQs
IHJ3VGV4dHVyZURlcHRoMkRBcnJheV0gPSBjcmVhdGVUZXh0dXJlc0ZvclRlc3RpbmcocHJvZ3Jh
bSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIs
IFt0ZXh0dXJlMURdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJlMURdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheV0pLCA0KTsKKyAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1
cmUxREFycmF5XSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzUiLCBbdGV4dHVyZTFEQXJyYXldKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkRdKSwgOCk7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJl
MkRdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOCIsIFt0ZXh0dXJlMkRdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlMkRBcnJheV0pLCA4KTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlMkRBcnJh
eV0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xMSIsIFt0ZXh0dXJlMkRBcnJheV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFt0ZXh0dXJlMkRBcnJheV0pLCAzKTsKKyAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFt0ZXh0dXJl
M0RdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTQiLCBbdGV4dHVyZTNEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3RleHR1cmUzRF0pLCAyKTsKKyAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlM0RdKSwgMik7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBb
dGV4dHVyZUN1YmVdKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZUN1YmVdKSwgNCk7CisgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZUN1YmVdKSwgMik7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndU
ZXh0dXJlMURdKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjEiLCBbcndUZXh0dXJlMURBcnJheV0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMiIsIFtyd1RleHR1cmUxREFycmF5XSks
IDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIz
IiwgW3J3VGV4dHVyZTJEXSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzI0IiwgW3J3VGV4dHVyZTJEXSksIDQpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI1IiwgW3J3VGV4dHVyZTJEQXJyYXld
KSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjYiLCBbcndUZXh0dXJlMkRBcnJheV0pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNyIsIFtyd1RleHR1cmUyREFycmF5XSksIDIpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4IiwgW3J3VGV4
dHVyZTNEXSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzI5IiwgW3J3VGV4dHVyZTNEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMwIiwgW3J3VGV4dHVyZTNEXSksIDIpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1cmVE
ZXB0aDJEXSksIDgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMyIiwgW3RleHR1cmVEZXB0aDJEXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMzIiwgW3RleHR1cmVEZXB0aDJEXSksIDMpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM0IiwgW3Rl
eHR1cmVEZXB0aDJEQXJyYXldKSwgOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMzUiLCBbdGV4dHVyZURlcHRoMkRBcnJheV0pLCA0KTsKKyAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNiIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5XSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzM3IiwgW3RleHR1cmVEZXB0aDJEQXJyYXldKSwgMyk7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzgiLCBbdGV4dHVyZURlcHRo
Q3ViZV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zOSIsIFt0ZXh0dXJlRGVwdGhDdWJlXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQwIiwgW3RleHR1cmVEZXB0aEN1YmVdKSwgMik7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBb
cndUZXh0dXJlRGVwdGgyRF0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280MiIsIFtyd1RleHR1cmVEZXB0aDJEXSksIDQpOworICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwgW3J3VGV4dHVyZURl
cHRoMkRBcnJheV0pLCA4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280NCIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXldKSwgNCk7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbcndUZXh0dXJlRGVw
dGgyREFycmF5XSksIDIpOworfQorCit0ZXN0cy50ZXh0dXJlTG9hZCA9IGZ1bmN0aW9uKCkgewor
ICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKKyAgICAgICAgZmxvYXQgZm9vMShUZXh0dXJlMUQ8
ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50IG1pcG1hcCkgeworICAgICAgICAgICAg
cmV0dXJuIExvYWQodGV4dHVyZSwgaW50Mihsb2NhdGlvbiwgbWlwbWFwKSk7CisgICAgICAgIH0K
KyAgICAgICAgZmxvYXQgZm9vMihUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlv
biwgaW50IG1pcG1hcCwgaW50IG9mZnNldCkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4
dHVyZSwgaW50Mihsb2NhdGlvbiwgbWlwbWFwKSwgb2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAg
ICBmbG9hdCBmb28zKFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgbG9jYXRpb24s
IGludCBtaXBtYXAsIGludCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVy
ZSwgaW50Myhsb2NhdGlvbiwgbWlwbWFwLCBsYXllcikpOworICAgICAgICB9CisgICAgICAgIGZs
b2F0IGZvbzQoVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCBsb2NhdGlvbiwgaW50
IG1pcG1hcCwgaW50IGxheWVyLCBpbnQgb2Zmc2V0KSB7CisgICAgICAgICAgICByZXR1cm4gTG9h
ZCh0ZXh0dXJlLCBpbnQzKGxvY2F0aW9uLCBtaXBtYXAsIGxheWVyKSwgb2Zmc2V0KTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdCBmb281KFRleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgs
IGludCB5LCBpbnQgbWlwbWFwKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBp
bnQzKHgsIHksIG1pcG1hcCkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzYoVGV4dHVy
ZTJEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXAsIGludCBvZmZzZXRY
LCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myh4
LCB5LCBtaXBtYXApLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAg
ICBmbG9hdCBmb283KFRleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHks
IGludCBtaXBtYXAsIGludCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVy
ZSwgaW50NCh4LCB5LCBtaXBtYXAsIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQg
Zm9vOChUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBpbnQgbWlw
bWFwLCBpbnQgbGF5ZXIsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAg
cmV0dXJuIExvYWQodGV4dHVyZSwgaW50NCh4LCB5LCBtaXBtYXAsIGxheWVyKSwgaW50MihvZmZz
ZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vOShUZXh0dXJlM0Q8
ZmxvYXQ+IHRleHR1cmUsIGludCB4LCBpbnQgeSwgaW50IHosIGludCBtaXBtYXApIHsKKyAgICAg
ICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDQoeCwgeSwgeiwgbWlwbWFwKSk7CisgICAg
ICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTAoVGV4dHVyZTNEPGZsb2F0PiB0ZXh0dXJlLCBpbnQg
eCwgaW50IHksIGludCB6LCBpbnQgbWlwbWFwLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFksIGlu
dCBvZmZzZXRaKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQ0KHgsIHks
IHosIG1pcG1hcCksIGludDMob2Zmc2V0WCwgb2Zmc2V0WSwgb2Zmc2V0WikpOworICAgICAgICB9
CisgICAgICAgIGZsb2F0IGZvbzExKFJXVGV4dHVyZTFEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgbG9j
YXRpb24pIHsKKyAgICAgICAgICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGxvY2F0aW9uKTsKKyAg
ICAgICAgfQorICAgICAgICBmbG9hdCBmb28xMihSV1RleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0
dXJlLCBpbnQgbG9jYXRpb24sIGludCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQo
dGV4dHVyZSwgaW50Mihsb2NhdGlvbiwgbGF5ZXIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb28xMyhSV1RleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5KSB7CisgICAg
ICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKHgsIHkpKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmb28xNChSV1RleHR1cmUyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwg
aW50IHksIGludCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50
Myh4LCB5LCBsYXllcikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE1KFJXVGV4dHVy
ZTNEPGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCB6KSB7CisgICAgICAgICAgICBy
ZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHksIHopKTsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdCBmb28xNihUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5LCBp
bnQgbWlwbWFwKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQzKHgsIHks
IG1pcG1hcCkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE3KFRleHR1cmVEZXB0aDJE
PGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50IHksIGludCBtaXBtYXAsIGludCBvZmZzZXRYLCBp
bnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myh4LCB5
LCBtaXBtYXApLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdCBmb28xOChUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBpbnQgeCwgaW50
IHksIGludCBtaXBtYXAsIGludCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4
dHVyZSwgaW50NCh4LCB5LCBtaXBtYXAsIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxv
YXQgZm9vMTkoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5
LCBpbnQgbWlwbWFwLCBpbnQgbGF5ZXIsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAg
ICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50NCh4LCB5LCBtaXBtYXAsIGxheWVyKSwg
aW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMjAo
UldUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgaW50IHgsIGludCB5KSB7CisgICAgICAg
ICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBpbnQyKHgsIHkpKTsKKyAgICAgICAgfQorICAgICAg
ICBmbG9hdCBmb28yMShSV1RleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIGludCB4
LCBpbnQgeSwgaW50IGxheWVyKSB7CisgICAgICAgICAgICByZXR1cm4gTG9hZCh0ZXh0dXJlLCBp
bnQzKHgsIHksIGxheWVyKSk7CisgICAgICAgIH0KKyAgICBgKTsKKyAgICBsZXQgW3RleHR1cmUx
RCwgdGV4dHVyZTFEQXJyYXksIHRleHR1cmUyRCwgdGV4dHVyZTJEQXJyYXksIHRleHR1cmUzRCwg
dGV4dHVyZUN1YmUsIHJ3VGV4dHVyZTFELCByd1RleHR1cmUxREFycmF5LCByd1RleHR1cmUyRCwg
cndUZXh0dXJlMkRBcnJheSwgcndUZXh0dXJlM0QsIHRleHR1cmVEZXB0aDJELCB0ZXh0dXJlRGVw
dGgyREFycmF5LCB0ZXh0dXJlRGVwdGhDdWJlLCByd1RleHR1cmVEZXB0aDJELCByd1RleHR1cmVE
ZXB0aDJEQXJyYXldID0gY3JlYXRlVGV4dHVyZXNGb3JUZXN0aW5nKHByb2dyYW0pOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUx
RCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJl
MUQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNyk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVy
ZTFELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEzKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0
dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3Rl
eHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDEpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRCwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIiLCBbdGV4dHVyZTFELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMi
LCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTMp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwg
W3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBb
dGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDIwKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0
ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCAyMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
LTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE2
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIs
IFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMTMpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1
cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE3KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUxREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDIxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAtMSldKSwgMjApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4
dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW3RleHR1cmUyRCwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAzNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzUiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3Rl
eHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMTgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAt
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNyk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQs
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzgpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3Rl
eHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW3RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNyk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMzMpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM3KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzOCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksIDQ0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCA1MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgNTIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb283IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDc1
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3Nik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVy
ZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNzkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDgwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTEpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3Rl
eHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCAxOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTEpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDE5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDM1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzOSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMzgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAzNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0x
KV0pLCAzNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIDUyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0NSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4
dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksIDUyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA2MCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgNTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDYxKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSld
KSwgODApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDc3KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCA4MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgODApOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCA3Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgODEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b284IiwgW3RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCA3Nyk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBb
dGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDQxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDIpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUz
RCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA2NSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZTNELCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDY2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgNjkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb285IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA3MCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3Rl
eHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNE
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAx
Nyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEw
IiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0MSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3Rl
eHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxMSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUz
RCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxOCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0Mik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCA0MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAtMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAzNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCA0Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgMik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwg
W3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0Mik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1
cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAtMSldKSwgOSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCA1MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAtMSldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgNjYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgNjkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
NjcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MCIsIFt0ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNzApOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0
ZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNzApOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJl
M0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDY1KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDcxKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IC0xKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2Nik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAyKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBb
cndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMyk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFELCBtYWtl
SW50KHByb2dyYW0sIDMpXSksIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFtLCA0KV0p
LCA1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTEiLCBbcndUZXh0dXJlMUQsIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgNik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3J3VGV4dHVyZTFE
LCBtYWtlSW50KHByb2dyYW0sIDYpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFtyd1RleHR1cmUxRCwgbWFrZUludChwcm9ncmFt
LCA3KV0pLCA4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChw
cm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwg
bWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJl
MURBcnJheSwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA1KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBb
cndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCA2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA3KSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCA4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTEpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFty
d1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDEyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAxMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNSks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE1KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwg
bWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVy
ZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTcp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIs
IFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDIpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUlu
dChwcm9ncmFtLCAyKV0pLCAxOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MyksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50
KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbcndUZXh0dXJlMURBcnJh
eSwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3J3VGV4
dHVyZTFEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwg
MjMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dy
YW0sIDIpXSksIDI0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAyKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MyksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dy
YW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDUpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChw
cm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNyk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBt
YWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDgpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0
dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTApOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFty
d1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAx
MSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEz
IiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDEp
XSksIDEyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgMTMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDE1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJ
bnQocHJvZ3JhbSwgMiksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwg
bWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAyMCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVy
ZTJELCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDIxKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndU
ZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjIp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIs
IFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAyKV0p
LCAyMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0s
IDIpXSksIDI0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMyldKSwgMjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAzKV0pLCAyNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBt
YWtlSW50KHByb2dyYW0sIDMpXSksIDI3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MyksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUyRCwgbWFrZUludChwcm9n
cmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyOSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW3J3VGV4dHVyZTJELCBtYWtlSW50
KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDMwKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbcndUZXh0dXJlMkQsIG1h
a2VJbnQocHJvZ3JhbSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMzEpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtyd1RleHR1cmUy
RCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAzMik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4
dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3
VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIs
IFtyd1RleHR1cmUyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE0IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFtyd1RleHR1cmUyREFycmF5LCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDQyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSks
IDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
NSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0dXJlM0QsIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFty
d1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3J3VGV4dHVyZTNELCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbcndUZXh0
dXJlM0QsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xNSIsIFtyd1RleHR1cmUzRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA0Mik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmVEZXB0
aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZURlcHRo
MkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDEwKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZURlcHRo
MkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmVEZXB0
aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzgpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVw
dGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTci
LCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAt
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCA5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRo
MkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIs
IFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCAxOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIC0x
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDE3KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRo
MkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIs
IFt0ZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIC0x
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAzNyk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmVEZXB0
aDJELCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM4
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTci
LCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgLTEpXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
LTEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIC0xKV0pLCAzMyk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgOSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDMzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCA0Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSldKSwgNDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDUxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCA1Mik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgNzUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpXSksIDc2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCA3OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE4IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgODApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDIpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5Iiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAxMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIDM0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMzUpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDM5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAzOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDM0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTki
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAzOSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgLTEpXSksIDM1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCA0NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNTIpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDQ1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCA1Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgNTIpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDYwKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCA1Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwg
NjEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
OSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDc2KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCA4MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgNzcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDgxKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA4MCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgLTEpXSksIDc2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA4MSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5Iiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDc3KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgy
RCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAxKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0
dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAy
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAi
LCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFt
LCAwKV0pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA0
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChw
cm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA2KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwg
bWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA3KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJl
RGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCA4KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBb
cndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KV0pLCA5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAxKV0pLCAxMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMiks
IG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHBy
b2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIDEyKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwg
bWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAxMyk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVy
ZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIs
IFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDYpLCBtYWtlSW50KHByb2dyYW0s
IDEpXSksIDE1KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCAxNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMTcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDE4KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgy
RCwgbWFrZUludChwcm9ncmFtLCAyKSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAxOSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4
dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwg
MjApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
MCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dy
YW0sIDIpXSksIDIxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA1KSwgbWFr
ZUludChwcm9ncmFtLCAyKV0pLCAyMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3Jh
bSwgNiksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMjMpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtl
SW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDI0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVw
dGgyRCwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAyNSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3
VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMyld
KSwgMjYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlSW50KHByb2dyYW0sIDIpLCBtYWtlSW50KHBy
b2dyYW0sIDMpXSksIDI3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCAzKSwg
bWFrZUludChwcm9ncmFtLCAzKV0pLCAyOCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJv
Z3JhbSwgNCksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMjkpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFtyd1RleHR1cmVEZXB0aDJELCBt
YWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDMwKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbcndUZXh0dXJl
RGVwdGgyRCwgbWFrZUludChwcm9ncmFtLCA2KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAzMSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwg
W3J3VGV4dHVyZURlcHRoMkQsIG1ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwg
MyldKSwgMzIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yMSIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3J3VGV4dHVyZURl
cHRoMkRBcnJheSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIDkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIs
IFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgMTApOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMSldKSwgMzMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgMzQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1Rl
eHR1cmVEZXB0aDJEQXJyYXksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgNDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MSldKSwgNDIpOworfQorCit0ZXN0cy50ZXh0dXJlU3RvcmUgPSBmdW5jdGlvbigpIHsKKyAgICBs
ZXQgcHJvZ3JhbSA9IGRvUHJlcChgCisgICAgICAgIGZsb2F0IGZvbzEoUldUZXh0dXJlMUQ8Zmxv
YXQ+IHRleHR1cmUsIHVpbnQgbG9jYXRpb24sIGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICBT
dG9yZSh0ZXh0dXJlLCB2YWx1ZSwgbG9jYXRpb24pOworICAgICAgICAgICAgcmV0dXJuIExvYWQo
dGV4dHVyZSwgaW50KGxvY2F0aW9uKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMihS
V1RleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlLCB1aW50IGxvY2F0aW9uLCB1aW50IGxheWVy
LCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgU3RvcmUodGV4dHVyZSwgdmFsdWUsIHVpbnQy
KGxvY2F0aW9uLCBsYXllcikpOworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50
MihpbnQobG9jYXRpb24pLCBpbnQobGF5ZXIpKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQg
Zm9vMyhSV1RleHR1cmUyRDxmbG9hdD4gdGV4dHVyZSwgdWludCB4LCB1aW50IHksIGZsb2F0IHZh
bHVlKSB7CisgICAgICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDIoeCwgeSkpOwor
ICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50MihpbnQoeCksIGludCh5KSkpOwor
ICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQoUldUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4
dHVyZSwgdWludCB4LCB1aW50IHksIHVpbnQgbGF5ZXIsIGZsb2F0IHZhbHVlKSB7CisgICAgICAg
ICAgICBTdG9yZSh0ZXh0dXJlLCB2YWx1ZSwgdWludDMoeCwgeSwgbGF5ZXIpKTsKKyAgICAgICAg
ICAgIHJldHVybiBMb2FkKHRleHR1cmUsIGludDMoaW50KHgpLCBpbnQoeSksIGludChsYXllcikp
KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb281KFJXVGV4dHVyZTNEPGZsb2F0PiB0ZXh0
dXJlLCB1aW50IHgsIHVpbnQgeSwgdWludCB6LCBmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAg
U3RvcmUodGV4dHVyZSwgdmFsdWUsIHVpbnQzKHgsIHksIHopKTsKKyAgICAgICAgICAgIHJldHVy
biBMb2FkKHRleHR1cmUsIGludDMoaW50KHgpLCBpbnQoeSksIGludCh6KSkpOworICAgICAgICB9
CisgICAgICAgIGZsb2F0IGZvbzYoUldUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgdWlu
dCB4LCB1aW50IHksIGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICBTdG9yZSh0ZXh0dXJlLCB2
YWx1ZSwgdWludDIoeCwgeSkpOworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50
MihpbnQoeCksIGludCh5KSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzcoUldUZXh0
dXJlRGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCB1aW50IHgsIHVpbnQgeSwgdWludCBsYXll
ciwgZmxvYXQgdmFsdWUpIHsKKyAgICAgICAgICAgIFN0b3JlKHRleHR1cmUsIHZhbHVlLCB1aW50
Myh4LCB5LCBsYXllcikpOworICAgICAgICAgICAgcmV0dXJuIExvYWQodGV4dHVyZSwgaW50Myhp
bnQoeCksIGludCh5KSwgaW50KGxheWVyKSkpOworICAgICAgICB9CisgICAgYCk7CisgICAgbGV0
IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRleHR1cmUyREFycmF5LCB0
ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0dXJlMURBcnJheSwgcndU
ZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNELCB0ZXh0dXJlRGVwdGgyRCwg
dGV4dHVyZURlcHRoMkRBcnJheSwgdGV4dHVyZURlcHRoQ3ViZSwgcndUZXh0dXJlRGVwdGgyRCwg
cndUZXh0dXJlRGVwdGgyREFycmF5XSA9IGNyZWF0ZVRleHR1cmVzRm9yVGVzdGluZyhwcm9ncmFt
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIs
IFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCAyKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJv
Z3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1h
a2VVaW50KHByb2dyYW0sIDQpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3J3VGV4
dHVyZTFELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MSIsIFtyd1RleHR1cmUxRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEiLCBbcndUZXh0dXJlMUQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MiIsIFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJh
eSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0s
IDMpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIs
IFtyd1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwg
bWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDYp
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFty
d1RleHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1Rl
eHR1cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVp
bnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1
cmUxREFycmF5LCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQo
cHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUx
REFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yIiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlVWludChw
cm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFy
cmF5LCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3Jh
bSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
IiwgW3J3VGV4dHVyZTFEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9n
cmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtyd1RleHR1cmUxREFycmF5
LCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIiLCBbcndUZXh0dXJlMURBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwg
NyksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwg
W3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtl
VWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWlu
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUy
RCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA2KSwg
bWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndU
ZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28z
IiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50
KHByb2dyYW0sIDIpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBt
YWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1
cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCA3
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBb
cndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAyKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMiksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VV
aW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50
KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJE
LCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBt
YWtlVWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1Rl
eHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFt
LCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMi
LCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAz
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zIiwgW3J3VGV4dHVyZTJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMyksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1h
a2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMyIsIFtyd1RleHR1cmUyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VV
aW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW3J3VGV4dHVy
ZTJELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbcndUZXh0dXJlMkQsIG1ha2VVaW50KHByb2dyYW0sIDcp
LCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFty
d1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280Iiwg
W3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFt
LCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQi
LCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dy
YW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQiLCBbcndUZXh0dXJlMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50
KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5
OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNCIsIFtyd1RleHR1cmUyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb280IiwgW3J3VGV4dHVyZTJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWlu
dChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5
OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkp
XSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9n
cmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzUiLCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5
OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUi
LCBbcndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBb
cndUZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndU
ZXh0dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbcndUZXh0
dXJlM0QsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJl
RGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSld
KSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVw
dGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dy
YW0sIDQpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwg
OTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NiIsIFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgy
RCwgbWFrZVVpbnQocHJvZ3JhbSwgNiksIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0s
IDcpLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIs
IFtyd1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwg
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDIp
LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFty
d1RleHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFr
ZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgOTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDUpLCBt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1Rl
eHR1cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA2KSwgbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVp
bnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
VWludChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1
cmVEZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1h
a2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQo
cHJvZ3JhbSwgMiksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5
KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWlu
dChwcm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVE
ZXB0aDJELCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJv
Z3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDIpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0p
LCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b282IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDYpLCBtYWtlVWludChw
cm9ncmFtLCAyKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0
aDJELCBtYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMiksIG1ha2VGbG9h
dChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5
OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282
IiwgW3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9n
cmFtLCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJE
LCBtYWtlVWludChwcm9ncmFtLCAyKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChw
cm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwg
MyksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282Iiwg
W3J3VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtlVWludChwcm9ncmFt
LCAzKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtyd1RleHR1cmVEZXB0aDJELCBt
YWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VGbG9hdChwcm9n
cmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzYiLCBbcndUZXh0dXJlRGVwdGgyRCwgbWFrZVVpbnQocHJvZ3JhbSwgNiks
IG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW3J3
VGV4dHVyZURlcHRoMkQsIG1ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAz
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbcndUZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3J3VGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEp
LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDk5OSldKSwgOTk5KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFty
d1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9n
cmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCA5OTkpXSks
IDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzciLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
OTk5KV0pLCA5OTkpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb283IiwgW3J3VGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDk5OSldKSwgOTk5KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNyIsIFtyd1RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCA5OTkpXSksIDk5OSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbcndUZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgOTk5KV0pLCA5OTkpOworfQorCit0ZXN0cy50ZXh0dXJlU2Ft
cGxlID0gZnVuY3Rpb24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICBm
bG9hdCBmb28xKFRleHR1cmUxRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCBsb2Nh
dGlvbikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBsb2NhdGlvbik7
CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMihUZXh0dXJlMUQ8ZmxvYXQ+IHRleHR1cmUs
IHNhbXBsZXIgcywgZmxvYXQgbG9jYXRpb24sIGludCBvZmZzZXQpIHsKKyAgICAgICAgICAgIHJl
dHVybiBTYW1wbGUodGV4dHVyZSwgcywgbG9jYXRpb24sIG9mZnNldCk7CisgICAgICAgIH0KKyAg
ICAgICAgZmxvYXQgZm9vMyhUZXh0dXJlMURBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBz
LCBmbG9hdCB4LCBmbG9hdCBsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0
dXJlLCBzLCBmbG9hdDIoeCwgbGF5ZXIpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb280
KFRleHR1cmUxREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0
IGxheWVyLCBpbnQgb2Zmc2V0KSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUs
IHMsIGZsb2F0Mih4LCBsYXllciksIG9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQg
Zm9vNShUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQg
eSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSkp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzYoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJl
LCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkg
eworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGlu
dDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzcoVGV4
dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgbGF5ZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxv
YXQzKHgsIHksIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vOChUZXh0dXJl
MkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9h
dCBsYXllciwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4g
U2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGludDIob2Zmc2V0WCwgb2Zm
c2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzkoVGV4dHVyZTNEPGZsb2F0PiB0
ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopIHsKKyAgICAgICAg
ICAgIHJldHVybiBTYW1wbGUodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopKTsKKyAgICAgICAg
fQorICAgICAgICBmbG9hdCBmb28xMChUZXh0dXJlM0Q8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIg
cywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZLCBp
bnQgb2Zmc2V0WikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9h
dDMoeCwgeSwgeiksIGludDMob2Zmc2V0WCwgb2Zmc2V0WSwgb2Zmc2V0WikpOworICAgICAgICB9
CisgICAgICAgIGZsb2F0IGZvbzExKFRleHR1cmVDdWJlPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVy
IHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1w
bGUodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopKTsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb28xMihUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxv
YXQgeSwgZmxvYXQgQmlhcykgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVy
ZSwgcywgZmxvYXQyKHgsIHkpLCBCaWFzKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28x
MyhUZXh0dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgQmlhcywgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1
cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIEJpYXMsIGludDIob2Zmc2V0
WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE0KFRleHR1cmUyRDxm
bG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBkZHgwLCBm
bG9hdCBkZHgxLCBmbG9hdCBkZHkwLCBmbG9hdCBkZHkxKSB7CisgICAgICAgICAgICByZXR1cm4g
U2FtcGxlR3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGZsb2F0MihkZHgwLCBkZHgxKSwg
ZmxvYXQyKGRkeTAsIGRkeTEpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xNShUZXh0
dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg
ZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSwgaW50IG9mZnNldFgsIGlu
dCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJlLCBzLCBm
bG9hdDIoeCwgeSksIGZsb2F0MihkZHgwLCBkZHgxKSwgZmxvYXQyKGRkeTAsIGRkeTEpLCBpbnQy
KG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xNihUZXh0
dXJlMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg
TE9EKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQy
KHgsIHkpLCBMT0QpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzE3KFRleHR1cmUyRDxm
bG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBMT0QsIGlu
dCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUxldmVs
KHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgTE9ELCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsK
KyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28xOChUZXh0dXJlMkRBcnJheTxmbG9hdD4gdGV4
dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgQmlh
cykgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVyZSwgcywgZmxvYXQzKHgs
IHksIGxheWVyKSwgQmlhcyk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTkoVGV4dHVy
ZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxv
YXQgbGF5ZXIsIGZsb2F0IEJpYXMsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAg
ICAgICAgcmV0dXJuIFNhbXBsZUJpYXModGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwg
QmlhcywgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQg
Zm9vMjAoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwg
ZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0IGRkeTAs
IGZsb2F0IGRkeTEpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUsIHMs
IGZsb2F0Myh4LCB5LCBsYXllciksIGZsb2F0MihkZHgwLCBkZHgxKSwgZmxvYXQyKGRkeTAsIGRk
eTEpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb28yMShUZXh0dXJlMkRBcnJheTxmbG9h
dD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxv
YXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSwgaW50IG9mZnNldFgs
IGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJlLCBz
LCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBmbG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0MihkZHkwLCBk
ZHkxKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQg
Zm9vMjIoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwg
ZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IExPRCkgeworICAgICAgICAgICAgcmV0dXJuIFNh
bXBsZUxldmVsKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIExPRCk7CisgICAgICAg
IH0KKyAgICAgICAgZmxvYXQgZm9vMjMoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNh
bXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IExPRCwgaW50IG9m
ZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4
dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgTE9ELCBpbnQyKG9mZnNldFgsIG9mZnNldFkp
KTsKKyAgICAgICAgfQorICAgICAgICBpbnQgZm9vMjQoVGV4dHVyZTFEPGludDQ+IHRleHR1cmUs
IHNhbXBsZXIgcywgZmxvYXQgbG9jYXRpb24pIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGUo
dGV4dHVyZSwgcywgbG9jYXRpb24pLng7CisgICAgICAgIH0KKyAgICAgICAgaW50IGZvbzI1KFRl
eHR1cmUxRDxpbnQ0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IGxvY2F0aW9uKSB7CisgICAg
ICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGxvY2F0aW9uKS55OworICAgICAgICB9
CisgICAgICAgIGludCBmb28yNihUZXh0dXJlMUQ8aW50ND4gdGV4dHVyZSwgc2FtcGxlciBzLCBm
bG9hdCBsb2NhdGlvbikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBs
b2NhdGlvbikuejsKKyAgICAgICAgfQorICAgICAgICBpbnQgZm9vMjcoVGV4dHVyZTFEPGludDQ+
IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgbG9jYXRpb24pIHsKKyAgICAgICAgICAgIHJldHVy
biBTYW1wbGUodGV4dHVyZSwgcywgbG9jYXRpb24pLnc7CisgICAgICAgIH0KKyAgICAgICAgZmxv
YXQgZm9vMjgoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQg
eCwgZmxvYXQgeSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBmbG9h
dDIoeCwgeSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzI5KFRleHR1cmVEZXB0aDJE
PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGludCBvZmZzZXRY
LCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0dXJlLCBzLCBm
bG9hdDIoeCwgeSksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAg
IGZsb2F0IGZvbzMwKFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIg
cywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBT
YW1wbGUodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAg
ICAgZmxvYXQgZm9vMzEoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxl
ciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgaW50IG9mZnNldFgsIGludCBvZmZz
ZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5
LCBsYXllciksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZs
b2F0IGZvbzMyKFRleHR1cmVEZXB0aEN1YmU8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxv
YXQgeCwgZmxvYXQgeSwgZmxvYXQgeikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZSh0ZXh0
dXJlLCBzLCBmbG9hdDMoeCwgeSwgeikpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzMz
KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0
IHksIGZsb2F0IEJpYXMpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVCaWFzKHRleHR1cmUs
IHMsIGZsb2F0Mih4LCB5KSwgQmlhcyk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMzQo
VGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQg
eSwgZmxvYXQgQmlhcywgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICBy
ZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIEJpYXMsIGludDIob2Zm
c2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzM1KFRleHR1cmVE
ZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0
IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEpIHsKKyAgICAgICAgICAg
IHJldHVybiBTYW1wbGVHcmFkKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgZmxvYXQyKGRkeDAs
IGRkeDEpLCBmbG9hdDIoZGR5MCwgZGR5MSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZv
bzM2KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZs
b2F0IHksIGZsb2F0IGRkeDAsIGZsb2F0IGRkeDEsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEsIGlu
dCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQo
dGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBmbG9hdDIoZGR4MCwgZGR4MSksIGZsb2F0MihkZHkw
LCBkZHkxKSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxv
YXQgZm9vMzcoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQg
eCwgZmxvYXQgeSwgZmxvYXQgTE9EKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlTGV2ZWwo
dGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBMT0QpOworICAgICAgICB9CisgICAgICAgIGZsb2F0
IGZvbzM4KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgs
IGZsb2F0IHksIGZsb2F0IExPRCwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAg
ICAgICByZXR1cm4gU2FtcGxlTGV2ZWwodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBMT0QsIGlu
dDIob2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzM5KFRl
eHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxv
YXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IEJpYXMpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1w
bGVCaWFzKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIEJpYXMpOworICAgICAgICB9
CisgICAgICAgIGZsb2F0IGZvbzQwKFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUs
IHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IEJpYXMsIGlu
dCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUJpYXMo
dGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgQmlhcywgaW50MihvZmZzZXRYLCBvZmZz
ZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDEoVGV4dHVyZURlcHRoMkRBcnJh
eTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXll
ciwgZmxvYXQgZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSkgeworICAg
ICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVy
KSwgZmxvYXQyKGRkeDAsIGRkeDEpLCBmbG9hdDIoZGR5MCwgZGR5MSkpOworICAgICAgICB9Cisg
ICAgICAgIGZsb2F0IGZvbzQyKFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNh
bXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZsb2F0IGRkeDAsIGZsb2F0
IGRkeDEsIGZsb2F0IGRkeTAsIGZsb2F0IGRkeTEsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkg
eworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxvYXQzKHgsIHks
IGxheWVyKSwgZmxvYXQyKGRkeDAsIGRkeDEpLCBmbG9hdDIoZGR5MCwgZGR5MSksIGludDIob2Zm
c2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQzKFRleHR1cmVE
ZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgbGF5ZXIsIGZsb2F0IExPRCkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUxldmVs
KHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIExPRCk7CisgICAgICAgIH0KKyAgICAg
ICAgZmxvYXQgZm9vNDQoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxl
ciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgTE9ELCBpbnQgb2Zmc2V0
WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJl
LCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBMT0QsIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkpOwor
ICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQ1KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0
dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGNvbXBhcmVWYWx1ZSkgewor
ICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUNtcCh0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGNv
bXBhcmVWYWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNDYoVGV4dHVyZURlcHRo
MkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgY29t
cGFyZVZhbHVlLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVy
biBTYW1wbGVDbXAodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBjb21wYXJlVmFsdWUsIGludDIo
b2Zmc2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQ3KFRleHR1
cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQg
eSwgZmxvYXQgbGF5ZXIsIGZsb2F0IGNvbXBhcmVWYWx1ZSkgeworICAgICAgICAgICAgcmV0dXJu
IFNhbXBsZUNtcCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBjb21wYXJlVmFsdWUp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzQ4KFRleHR1cmVEZXB0aDJEQXJyYXk8Zmxv
YXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIsIGZs
b2F0IGNvbXBhcmVWYWx1ZSwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAg
ICByZXR1cm4gU2FtcGxlQ21wKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGNvbXBh
cmVWYWx1ZSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxv
YXQgZm9vNDkoVGV4dHVyZUN1YmU8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwg
ZmxvYXQgeSwgZmxvYXQgeiwgZmxvYXQgYmlhcykgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBs
ZUJpYXModGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopLCBiaWFzKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmb281MChUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBm
bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBmbG9hdCBkZHgwLCBmbG9hdCBkZHgxLCBmbG9hdCBk
ZHgyLCBmbG9hdCBkZHkwLCBmbG9hdCBkZHkxLCBmbG9hdCBkZHkyKSB7CisgICAgICAgICAgICBy
ZXR1cm4gU2FtcGxlR3JhZCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeiksIGZsb2F0MyhkZHgw
LCBkZHgxLCBkZHgyKSwgZmxvYXQzKGRkeTAsIGRkeTEsIGRkeTIpKTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmb281MShUZXh0dXJlQ3ViZTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBm
bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBmbG9hdCBsb2QpIHsKKyAgICAgICAgICAgIHJldHVy
biBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeiksIGxvZCk7CisgICAgICAg
IH0KKyAgICAgICAgZmxvYXQgZm9vNTIoVGV4dHVyZURlcHRoQ3ViZTxmbG9hdD4gdGV4dHVyZSwg
c2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBmbG9hdCBiaWFzKSB7CisgICAg
ICAgICAgICByZXR1cm4gU2FtcGxlQmlhcyh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeiksIGJp
YXMpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvbzUzKFRleHR1cmVEZXB0aEN1YmU8Zmxv
YXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgZmxvYXQg
ZGR4MCwgZmxvYXQgZGR4MSwgZmxvYXQgZGR4MiwgZmxvYXQgZGR5MCwgZmxvYXQgZGR5MSwgZmxv
YXQgZGR5MikgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUdyYWQodGV4dHVyZSwgcywgZmxv
YXQzKHgsIHksIHopLCBmbG9hdDMoZGR4MCwgZGR4MSwgZGR4MiksIGZsb2F0MyhkZHkwLCBkZHkx
LCBkZHkyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNTQoVGV4dHVyZURlcHRoQ3Vi
ZTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBm
bG9hdCBsb2QpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVMZXZlbCh0ZXh0dXJlLCBzLCBm
bG9hdDMoeCwgeSwgeiksIGxvZCk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNTUoVGV4
dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgY29tcGFyZVZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQ21wTGV2ZWxa
ZXJvKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgY29tcGFyZVZhbHVlKTsKKyAgICAgICAgfQor
ICAgICAgICBmbG9hdCBmb281NihUZXh0dXJlRGVwdGgyRDxmbG9hdD4gdGV4dHVyZSwgc2FtcGxl
ciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBjb21wYXJlVmFsdWUsIGludCBvZmZzZXRYLCBp
bnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0dXJuIFNhbXBsZUNtcExldmVsWmVybyh0ZXh0
dXJlLCBzLCBmbG9hdDIoeCwgeSksIGNvbXBhcmVWYWx1ZSwgaW50MihvZmZzZXRYLCBvZmZzZXRZ
KSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNTcoVGV4dHVyZURlcHRoMkRBcnJheTxm
bG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwg
ZmxvYXQgY29tcGFyZVZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4gU2FtcGxlQ21wTGV2ZWxa
ZXJvKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGNvbXBhcmVWYWx1ZSk7CisgICAg
ICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNTgoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD4gdGV4
dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxvYXQgY29t
cGFyZVZhbHVlLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVy
biBTYW1wbGVDbXBMZXZlbFplcm8odGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgY29t
cGFyZVZhbHVlLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBm
bG9hdCBmb281OShUZXh0dXJlRGVwdGhDdWJlPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZs
b2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IGNvbXBhcmVWYWx1ZSkgeworICAgICAgICAg
ICAgcmV0dXJuIFNhbXBsZUNtcCh0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgeiksIGNvbXBhcmVW
YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vNjAoVGV4dHVyZURlcHRoQ3ViZTxm
bG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBmbG9h
dCBjb21wYXJlVmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBTYW1wbGVDbXBMZXZlbFplcm8o
dGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopLCBjb21wYXJlVmFsdWUpOworICAgICAgICB9Cisg
ICAgYCk7CisgICAgbGV0IFt0ZXh0dXJlMUQsIHRleHR1cmUxREFycmF5LCB0ZXh0dXJlMkQsIHRl
eHR1cmUyREFycmF5LCB0ZXh0dXJlM0QsIHRleHR1cmVDdWJlLCByd1RleHR1cmUxRCwgcndUZXh0
dXJlMURBcnJheSwgcndUZXh0dXJlMkQsIHJ3VGV4dHVyZTJEQXJyYXksIHJ3VGV4dHVyZTNELCB0
ZXh0dXJlRGVwdGgyRCwgdGV4dHVyZURlcHRoMkRBcnJheSwgdGV4dHVyZURlcHRoQ3ViZSwgcndU
ZXh0dXJlRGVwdGgyRCwgcndUZXh0dXJlRGVwdGgyREFycmF5XSA9IGNyZWF0ZVRleHR1cmVzRm9y
VGVzdGluZyhwcm9ncmFtKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHt9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuMzc1KV0pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHt9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNDM3NSldKSwgNyk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjU2MjUpXSksIDE0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0
ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHt9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NjI1KV0pLCAxNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC4zNzUpXSksIDcpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNDM3NSldKSwgKDMgKiA3ICsgMSAqIDE0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSldKSwgKDcgKyAxNCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjU2MjUpXSksICgxICogNyAr
IDMgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjYyNSldKSwgMTQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTog
ImNsYW1wVG9Cb3JkZXJDb2xvciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuMzc1KV0pLCA3KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0
ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRk
cmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjQz
NzUpXSksICgzICogNyArIDEgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29s
b3IifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICg3ICsgMTQpIC8gMik7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFE
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2Rl
OiAiY2xhbXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41NjI1KV0pLCAo
MSAqIDcgKyAzICogMTQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC42MjUpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxICsgMC4zNzUpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjQzNzUpXSksICgzICogNyArIDEgKiAxNCkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0
ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRk
cmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC41KV0pLCAoNyAr
IDE0KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAw
LjU2MjUpXSksICgxICogNyArIDMgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxICsgMC42MjUpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC4zNzUpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgKyAwLjQzNzUpXSksICgzICogNyArIDEgKiAxNCkgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIs
IFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBy
QWRkcmVzc01vZGU6ICJyZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC41KV0pLCAo
NyArIDE0KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciIsIHJBZGRyZXNzTW9kZTogInJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIg
KyAwLjU2MjUpXSksICgxICogNyArIDMgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJyZXBlYXQifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC42MjUpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JS
ZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsgMC42MjUpXSksIDcpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTog
Im1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjU2MjUpXSksICgzICog
NyArIDEgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxICsgMC41KV0pLCAoNyArIDE0KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVh
dCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgKyAwLjQzNzUpXSksICgxICogNyArIDMgKiAxNCkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
LCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxICsg
MC4zNzUpXSksIDE0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAyICsgMC4zNzUpXSksIDcpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDIgKyAwLjQzNzUpXSksICgzICogNyArIDEgKiAxNCkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJl
MUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01v
ZGU6ICJtaXJyb3JSZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC41KV0pLCAoNyAr
IDE0KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciIsIHJBZGRyZXNzTW9kZTogIm1pcnJvclJlcGVhdCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDIgKyAwLjU2MjUpXSksICgxICogNyArIDMgKiAxNCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJtaXJyb3JS
ZXBlYXQifSksIG1ha2VGbG9hdChwcm9ncmFtLCAyICsgMC42MjUpXSksIDE0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAtMC4zNzUpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEuMzc1KV0pLCA3OSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbdGV4
dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFkZHJl
c3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTAuMzc1
KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxLjM3NSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEiLCBbdGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIiwgckFkZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIiwgYm9yZGVy
Q29sb3I6ICJvcGFxdWVCbGFjayJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0wLjM3NSldKSwgMCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBb
dGV4dHVyZTFELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgckFk
ZHJlc3NNb2RlOiAiY2xhbXBUb0JvcmRlckNvbG9yIiwgYm9yZGVyQ29sb3I6ICJvcGFxdWVCbGFj
ayJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEuMzc1KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRv
Qm9yZGVyQ29sb3IiLCBib3JkZXJDb2xvcjogIm9wYXF1ZVdoaXRlIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgLTAuMzc1KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMUQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIiLCByQWRkcmVzc01vZGU6ICJjbGFtcFRvQm9yZGVyQ29sb3IiLCBib3Jk
ZXJDb2xvcjogIm9wYXF1ZVdoaXRlIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMS4zNzUpXSksIDEp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W3RleHR1cmUxRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIHJB
ZGRyZXNzTW9kZTogImNsYW1wVG9Cb3JkZXJDb2xvciIsIGJvcmRlckNvbG9yOiAib3BhcXVlV2hp
dGUifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNzkgKyAxKSAvIDIpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUxRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIGxvZE1pbkNsYW1wOiAx
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMyArIDE2KSAvIDIpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1cmUxRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDE0ICsgNzkpIC8gMik7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVy
ZTFEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDcgKyAxNCkg
LyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0p
LCAoMTcgKyAxOCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJlMURBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMTQgKyA3OSkgLyAyKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFt0ZXh0dXJl
MURBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCAoMTggKyAxOSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZTJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMyArIDE0ICsgMjEg
KyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAv
IDgpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW3RleHR1cmUyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksICg1NCAr
IDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW3RleHR1
cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0p
LCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgKDYyICsgNjMgKyA3MCArIDcxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTIg
KyAxMyArIDIwICsgMjEgKyA0NCArIDQ1ICsgNTIgKyA1MykgLyA4KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0ZXh0dXJlM0QsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxMCAvIDE2KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpXSksICgxMyArIDE0ICsgMjEgKyAyMiArIDQ1ICsgNDYgKyA1MyArIDU0KSAvIDgpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1
cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpXSksICgyMCArIDIxICsgMjggKyAyOSArIDUyICsgNTMgKyA2MCArIDYxKSAv
IDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285
IiwgW3RleHR1cmUzRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgNSAvIDgpXSksICgxMiArIDEzICsgMjAgKyAyMSArICg0NCArIDQ1ICsg
NTIgKyA1MykgKiAzKSAvIDE2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZTNELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsg
MjEgKyAyMiArIDQ1ICsgNDYgKyA1MyArIDU0KSAvIDgpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlM0QsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgKDIwICsgMjEgKyAyOCArIDI5ICsgNTIgKyA1MyArIDYwICsgNjEpIC8gOCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW3RleHR1cmUz
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC4yNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgKDQ0ICsgNDUgKyA1MiArIDUzKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlQ3ViZSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0p
LCAoMyArIDQgKyA1ICsgNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMTUgKyAx
NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIzICsgMjQgKyAyNSArIDI2KSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJl
Q3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCldKSwgKDMzICsgMzQgKyAzNSArIDM2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoNDMgKyA0
NCArIDQ1ICsgNDYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzExIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKV0pLCAoNTMgKyA1NCArIDU1ICsgNTYpIC8g
NCk7CisgICAgLy8gVW5mb3J0dW5hdGVseSwgd2UgY2FuJ3QgYWN0dWFsbHkgdGVzdCB0aGUgIkJp
YXMiIGFyZ3VtZW50LCBiZWNhdXNlIGl0IGlzIHN1cHBvc2VkIHRvIGJlIGFwcGxpZWQKKyAgICAv
LyB0byB0aGUgdW5jbGFtcGVkIExPRCwgd2hpY2ggZm9yIHVzIGlzIC1JbmZpbml0eSAoYmVjYXVz
ZSBvdXIgZGVyaXZhdGl2ZXMgYXJlIGFsbCAwKQorICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsg
MjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTIiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFt0ZXh0dXJl
MkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyAr
IDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmUy
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIsIFt0ZXh0dXJlMkQs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1
cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNCIs
IFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM0ICsgMzUgKyAz
OCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xNCIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQ
dHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVy
ZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0Iiwg
W3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1p
cG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRl
eHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUp
IC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoKCgxMiArIDEzICsgMjAg
KyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW3RleHR1cmUyRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEg
KyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lk
dGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAy
MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNSArIDM2ICsgMzkgKyA0MCkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTUiLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRW
YWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRy
LmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUo
KS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRW
YWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgKCgoMTMgKyAxNCArIDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQp
KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xNiIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbdGV4dHVy
ZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAo
MTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsg
MzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzE3IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNCArIDM1ICsg
MzggKyAzOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVy
OiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsg
MzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTciLCBbdGV4dHVyZTJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW3RleHR1cmUy
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsg
MzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFt0ZXh0dXJl
MkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsgMjIpIC8gNCkgKyAoKDM1ICsg
MzYgKyAzOSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmUyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMTAgLyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4Iiwg
W3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIwICsgMjEg
KyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xOCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAg
LyAxNiksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW3RleHR1cmUy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDYyICsgNjMgKyA3MCArIDcx
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xOSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE5IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTkiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
OSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoNjIgKyA2MyArIDcwICsgNzEpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIw
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
XSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMTIgKyAxMyArIDIw
ICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0
ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5l
UHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRl
eHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1
KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDEyICsgMTMgKyAyMCAr
IDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yMCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRl
cjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZh
bHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5s
b2FkVmFsdWUoKS5oZWlnaHQpXSksICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCAr
IDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9h
ZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5o
ZWlnaHQpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoNzYgKyA3
NyArIDgwICsgODEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVp
Z2h0KV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkg
LyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwg
MC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKCgoNTQgKyA1NSAr
IDYyICsgNjMpIC8gNCkgKyAoKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpKSAvIDIpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJl
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIx
IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsg
MjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAv
IHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJE
LmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0
aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQw
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygy
LCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRo
LnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIy
KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVl
KCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2Fk
VmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksICgoKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpICsgKCgzNSArIDM2ICsgMzkgKyA0MCkgLyA0
KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU0ICsg
NTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yMSIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFt0
ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIu
bG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUo
KS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg3
NyArIDc4ICsgODEgKyA4MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0
aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUo
KS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1
NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4
dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCAoKCg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KSArICgoNzcgKyA3
OCArIDgxICsgODIpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMiIsIFt0ZXh0
dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMiArIDEzICsgMjAg
KyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgo
MzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMiIs
IFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICg1NCArIDU1
ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjIiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoKCg1NCArIDU1ICsgNjIgKyA2MykgLyA0
KSArICgoNzYgKyA3NyArIDgwICsgODEpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkg
LyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMyArIDE0ICsgMjEgKyAy
MikgLyA0KSArICgoMzUgKyAzNiArIDM5ICsgNDApIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFycmF5
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDc2ICsgNzcgKyA4MCArIDgxKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCg1NCArIDU1ICsgNjIg
KyA2MykgLyA0KSArICgoNzYgKyA3NyArIDgwICsgODEpIC8gNCkpIC8gMik7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW3RleHR1cmUyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgKDc3ICsgNzggKyA4MSArIDgyKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFt0ZXh0dXJlMkRBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbdGV4dHVyZTJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCg1NSArIDU2ICsg
NjMgKyA2NCkgLyA0KSArICgoNzcgKyA3OCArIDgxICsgODIpIC8gNCkpIC8gMik7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW3RleHR1cmUy
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIGxvZE1pbkNsYW1w
OiAxLCBsb2RNYXhDbGFtcDogMX0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyKV0pLCAoMzQgKyAzNSArIDM4ICsg
MzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzE2IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxp
bmVhciIsIGxvZE1pbkNsYW1wOiAxLCBsb2RNYXhDbGFtcDogMX0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0p
LCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8g
dGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMzQgKyAzNSArIDM4ICsgMzkp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzE0IiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciIsIG1heEFuaXNvdHJvcHk6IDJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgNCAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAoNC8zKSAv
IHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM0ICsgMzUgKyAzOCArIDM5
KSAvIDQpOworICAgIGxldCB0ZXh0dXJlMURJbnQ0ID0gbWFrZTFEVGV4dHVyZShwcm9ncmFtLCBb
W1sxLCAyLCAzLCA0XSwgWzEwMCwgMjAwLCAzMDAsIDQwMF0sIFsxMDEsIDIwMiwgMzAxLCA0MDFd
LCBbMTMsIDE0LCAxNSwgMTZdXSwgW1sxNywgMTgsIDE5LCAyMF0sIFsyMSwgMjIsIDIzLCAyNF1d
LCBbWzI1LCAyNiwgMjcsIDI4XV1dLCAiaW50NCIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjQiLCBbdGV4dHVyZTFESW50NCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSld
KSwgMTAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzI1IiwgW3RleHR1cmUxREludDQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksIDIwMSk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNiIsIFt0ZXh0dXJlMURJbnQ0LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KV0pLCAzMDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjciLCBbdGV4dHVyZTFESW50NCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSldKSwgNDAwKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjgiLCBbdGV4
dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTIg
KyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzI4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTAgLyAxNiksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjgiLCBbdGV4dHVy
ZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNiAvIDgpXSksICgyMCAr
IDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjkiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI5IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMCIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMwIiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAy
MSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zMSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1
cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDYyICsgNjMgKyA3
MCArIDcxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zMiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzICsgNCArIDUgKyA2KSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMiIsIFt0
ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDE1ICsgMTYpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMyIiwgW3RleHR1cmVEZXB0
aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCldKSwgKDIzICsgMjQgKyAyNSArIDI2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAo
MzMgKyAzNCArIDM1ICsgMzYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzMyIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDQzICsgNDQgKyA0
NSArIDQ2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zMiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKV0pLCAoNTMgKyA1NCArIDU1ICsgNTYpIC8g
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4
IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSld
KSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8g
MTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4Iiwg
W3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KV0p
LCAoMjAgKyAyMSArIDI4ICsgMjkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI5IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBt
YWtlSW50KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzAiLCBbdGV4dHVyZURl
cHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMCIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyAr
IDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMzEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMSIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMxIiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICg2MiAr
IDYzICsgNzAgKyA3MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMzMiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAg
KyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMzMiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMzIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYg
LyA4KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgyMCArIDIxICsgMjggKyAyOSkgLyA0KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzQiLCBb
dGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzQiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICgyMCArIDIxICsgMjggKyAy
OSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMzUiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAg
KyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMzUiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUo
KS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCld
KSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUy
RC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9h
ZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM1IiwgW3RleHR1cmVEZXB0
aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRo
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgp
LmhlaWdodCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQ
dHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgo
MzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTIgKyAx
MyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzM2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzM2IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lk
dGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAy
MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMzYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53
aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDM1ICsgMzYgKyAzOSAr
IDQwKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQu
ZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0
dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzYiLCBbdGV4dHVyZURlcHRo
MkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQu
ZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41KSAvIHRleHR1
cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsgMjIpIC8gNCkgKyAoKDM1ICsgMzYg
KyAzOSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAy
MCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zNyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28z
NyIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM3IiwgW3Rl
eHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwg
bWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICgoKDEyICsgMTMg
KyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkgLyAyKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzgiLCBbdGV4dHVy
ZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSks
ICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMzgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgzNCArIDM1ICsgMzggKyAzOSkgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzgi
LCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOCIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCAoKCgxMiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4
ICsgMzkpIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1
cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0p
LCAoMzUgKyAzNiArIDM5ICsgNDApIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM4IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MzgiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTMgKyAxNCArIDIxICsg
MjIpIC8gNCkgKyAoKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOSIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDIwICsgMjEgKyAyOCArIDI5KSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOSIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1NCArIDU1ICsgNjIg
KyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOSIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDYgLyA4KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDYyICsgNjMgKyA3MCArIDcxKSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MCIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDAi
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCAoMjAgKyAyMSArIDI4ICsgMjkp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzQwIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyAr
IDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280MCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksICg2MiArIDYzICsg
NzAgKyA3MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNDEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0
aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRW
YWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVp
Z2h0KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRo
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMzQg
KyAzNSArIDM4ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53
aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFs
dWUoKS5oZWlnaHQpXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBbdGV4dHVyZURlcHRoMkRB
cnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRo
LnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IE1hdGgucG93KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSks
ICgoKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpICsgKCgzNCArIDM1ICsgMzggKyAzOSkgLyA0KSkg
LyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKV0pLCAoNTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndp
ZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAo
NTQgKyA1NSArIDYyICsgNjMpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAyIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoNzYgKyA3NyArIDgw
ICsgODEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQxIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
TWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgTWF0aC5wb3coMiwgMC4yNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWln
aHQpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDEiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAw
LjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93
KDIsIDAuNSkgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpXSksICgoKDU0ICsg
NTUgKyA2MiArIDYzKSAvIDQpICsgKCg3NiArIDc3ICsgODAgKyA4MSkgLyA0KSkgLyAyKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4
dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTIgKyAxMyArIDIw
ICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCld
KSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAyMSArIDIyKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJl
MkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMiAvIHRleHR1cmUyRC5lUHRyLmxv
YWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgKDM1ICsgMzYgKyAzOSArIDQwKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQdHIubG9h
ZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuMjUpIC8gdGV4dHVyZTJELmVQ
dHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3co
MiwgMC41KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCBNYXRo
LnBvdygyLCAwLjUpIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoKCgxMyArIDE0ICsgMjEgKyAy
MikgLyA0KSArICgoMzUgKyAzNiArIDM5ICsgNDApIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQyIiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MiIs
IFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2
ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxIC8gdGV4dHVyZTJELmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEgLyB0
ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlSW50KHByb2dyYW0sIDApXSksICg1NSArIDU2ICsgNjMgKyA2NCkgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURl
cHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAyIC8gdGV4dHVyZTJELmVQdHIubG9h
ZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDIgLyB0ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS5o
ZWlnaHQpLCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg3NyAr
IDc4ICsgODEgKyA4MikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNDIiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLndp
ZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCBNYXRoLnBvdygyLCAwLjI1KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1
ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
KDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280MiIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIE1hdGgucG93KDIsIDAuNSkgLyB0
ZXh0dXJlMkQuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgTWF0aC5wb3coMiwgMC41
KSAvIHRleHR1cmUyRC5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoNTUgKyA1NiArIDYzICsgNjQpIC8gNCkgKyAo
KDc3ICsgNzggKyA4MSArIDgyKSAvIDQpKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280MyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgxMiArIDEzICsgMjAgKyAyMSkgLyA0KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDMiLCBbdGV4dHVy
ZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAoMzQgKyAzNSArIDM4
ICsgMzkpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
aW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0pLCAoKCgx
MiArIDEzICsgMjAgKyAyMSkgLyA0KSArICgoMzQgKyAzNSArIDM4ICsgMzkpIC8gNCkpIC8gMik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQzIiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDU0ICsg
NTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280MyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpXSksICg3NiArIDc3ICsgODAgKyA4MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDMiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDMi
LCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjog
ImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpXSksICgoKDU0ICsgNTUgKyA2MiArIDYzKSAvIDQpICsgKCg3NiAr
IDc3ICsgODAgKyA4MSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAw
KV0pLCAoMTIgKyAxMyArIDIwICsgMjEpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgKDEyICsgMTMgKyAyMCArIDIxKSAvIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFy
cmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIiwgbWlwbWFwRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKCgoMTIgKyAxMyAr
IDIwICsgMjEpIC8gNCkgKyAoKDM0ICsgMzUgKyAzOCArIDM5KSAvIDQpKSAvIDIpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJl
RGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgxMyArIDE0ICsgMjEgKyAyMikgLyA0KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4
dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMzUgKyAzNiArIDM5ICsgNDApIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0Iiwg
W3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCAoMTMgKyAxNCArIDIxICsgMjIp
IC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIiLCBtaXBtYXBGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCAwKV0pLCAoKCgxMyArIDE0ICsgMjEgKyAyMikgLyA0KSArICgoMzUgKyAzNiArIDM5ICsg
NDApIC8gNCkpIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU0ICsg
NTUgKyA2MiArIDYzKSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICg3
NiArIDc3ICsgODAgKyA4MSkgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDAp
XSksICg1NCArIDU1ICsgNjIgKyA2MykgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciIsIG1pcG1hcEZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDApXSksICgoKDU0ICsgNTUgKyA2MiArIDYzKSAv
IDQpICsgKCg3NiArIDc3ICsgODAgKyA4MSkgLyA0KSkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDQiLCBbdGV4dHVyZURlcHRoMkRBcnJh
eSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCAoNTUgKyA1NiArIDYzICsgNjQpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ0IiwgW3RleHR1cmVEZXB0aDJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMCldKSwgKDc3ICsgNzggKyA4MSArIDgyKSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgKDU1ICsgNTYgKyA2MyArIDY0KSAvIDQpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NCIsIFt0ZXh0
dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFy
IiwgbWlwbWFwRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwg
KCgoNTUgKyA1NiArIDYzICsgNjQpIC8gNCkgKyAoKDc3ICsgNzggKyA4MSArIDgyKSAvIDQpKSAv
IDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDExKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQi
KSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5ldmVyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxNyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwg
ImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tb
MTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAi
bGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3Jh
bSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0
aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUo
cHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFy
ZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRl
eHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
Y29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAwKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJE
RGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1Iiwg
W21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMp
XSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwg
ImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNzRXF1
YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0s
IFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlv
bjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1
cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29t
cGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDApOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkRE
ZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIs
IFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MjMpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIp
LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibm90RXF1YWwifSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDExKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1d
LCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5vdEVx
dWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFt
LCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rp
b246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1
cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29t
cGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21h
a2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDE3KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQi
KSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXJFcXVhbCJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tb
MTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAi
YWx3YXlzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9n
cmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVu
Y3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDUiLCBbbWFrZTJERGVwdGhUZXh0
dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2Nv
bXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkRE
ZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5ldmVyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJv
Z3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJl
RnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAx
NyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJm
bG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0
aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3MifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFt
LCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5j
dGlvbjogImxlc3MifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSks
IDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQi
KSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3MifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1
cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge2NvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDExKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tb
WzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246
ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3Iiwg
W21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVB
cnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e2NvbXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAxMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtb
W1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9u
OiAibGVzc0VxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0p
LCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0
IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNzRXF1YWwifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDApOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0
aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9n
cmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVG
dW5jdGlvbjogImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MTcpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAi
ZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFttYWtlMkRE
ZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5vdEVxdWFsIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXko
cHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21w
YXJlRnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAxNyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11d
XV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibm90
RXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMjMpXSksIDEpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280NyIsIFtt
YWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXJFcXVhbCJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21ha2UyRERlcHRoVGV4
dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJv
Z3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJl
RnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMjMpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTdd
XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImFs
d2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ3IiwgW21h
a2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiYWx3YXlzIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNDciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJy
YXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtj
b21wYXJlRnVuY3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMjMpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280OSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgz
ICsgNCArIDUgKyA2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280OSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0p
LCAoMTMgKyAxNCArIDE1ICsgMTYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ5IiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCldKSwgKDIzICsgMjQgKyAyNSArIDI2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280OSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoMzMgKyAzNCArIDM1ICsgMzYpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQ5IiwgW3RleHR1cmVDdWJlLCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDQzICsgNDQgKyA0NSArIDQ2KSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280OSIsIFt0ZXh0dXJl
Q3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTMgKyA1NCArIDU1ICsgNTYpIC8gNCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwg
W3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgzICsgNCArIDUgKyA2KSAv
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281
MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAx
NSArIDE2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMjMg
KyAyNCArIDI1ICsgMjYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KV0pLCAoMzMgKyAzNCArIDM1ICsgMzYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUwIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApXSksICg0MyArIDQ0ICsgNDUgKyA0NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTAiLCBbdGV4dHVyZUN1YmUsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApXSksICg1MyArIDU0ICsgNTUgKyA1NikgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTAiLCBbdGV4dHVyZUN1
YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgLTQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTQgLyB0ZXh0dXJlQ3ViZS5l
UHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoOSArIDEw
KSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxp
bmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCwgMCwgNCAvIHRleHR1cmVDdWJlLmVQdHIu
bG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAtNCAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApXSksICgxOSArIDIwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgNCAvIHRleHR1cmVD
dWJlLmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMjkgKyAzMCkgLyAyKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTAiLCBbdGV4dHVyZUN1
YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgNCAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCku
d2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAtNCAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KV0pLCAoMzkgKyA0
MCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNTAiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJs
aW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA0IC8gdGV4dHVyZUN1YmUu
ZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAt
NCAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkuaGVpZ2h0KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApXSksICg0OSArIDUwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281MCIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFt
LCAtNCAvIHRleHR1cmVDdWJlLmVQdHIubG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgLTQgLyB0ZXh0dXJlQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdo
dCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoNTkgKyA2MCkgLyAyKTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUs
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMyArIDQgKyA1ICsgNikgLyA0KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1
YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAtMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAxNSArIDE2KSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MSIsIFt0
ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgyMyArIDI0ICsgMjUgKyAyNikg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMzICsgMzQgKyAz
NSArIDM2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg0MyAr
IDQ0ICsgNDUgKyA0NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgKDUzICsgNTQgKyA1NSArIDU2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpXSksICg5ICsgMTApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzUxIiwgW3RleHR1cmVDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDEpXSksICgxOSArIDIwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
XSksICgyOSArIDMwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb281MSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21p
bkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0p
LCAoMzkgKyA0MCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5G
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCAo
NDkgKyA1MCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNTEiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgKDU5
ICsgNjApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUyIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAo
MyArIDQgKyA1ICsgNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNTIiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKV0pLCAoMTMgKyAxNCArIDE1ICsgMTYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUyIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKV0pLCAoMjMgKyAyNCArIDI1ICsgMjYpIC8gNCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUyIiwgW3RleHR1cmVEZXB0
aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMzICsgMzQgKyAzNSArIDM2KSAvIDQp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MiIs
IFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDQzICsgNDQgKyA0
NSArIDQ2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb281MiIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSks
ICg1MyArIDU0ICsgNTUgKyA1NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKV0pLCAoMyArIDQgKyA1ICsgNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDEzICsgMTQgKyAxNSArIDE2KSAvIDQpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MyIsIFt0ZXh0dXJl
RGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICgyMyArIDI0ICsgMjUgKyAyNikg
LyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NTMiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMzICsg
MzQgKyAzNSArIDM2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb281MyIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApXSksICg0MyArIDQ0ICsgNDUgKyA0NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCldKSwgKDUzICsgNTQgKyA1NSArIDU2KSAvIDQpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281MyIsIFt0ZXh0dXJlRGVw
dGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIC00IC8gdGV4dHVyZUN1YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC00IC8gdGV4dHVyZUN1
YmUuZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDkg
KyAxMCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNTMiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZp
bHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCwgMCwgNCAvIHRleHR1cmVE
ZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIC00IC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRyLmxvYWRWYWx1ZSgp
LmhlaWdodCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMTkgKyAyMCkgLyAyKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVy
ZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDQgLyB0ZXh0dXJlRGVwdGhDdWJlLmVQdHIu
bG9hZFZhbHVlKCkud2lkdGgpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1h
a2VGbG9hdChwcm9ncmFtLCA0IC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLmhl
aWdodCldKSwgKDI5ICsgMzApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzUzIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgNCAvIHRleHR1cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0aCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC00IC8gdGV4
dHVyZURlcHRoQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCldKSwgKDM5ICsgNDApIC8gMik7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUzIiwg
W3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA0IC8gdGV4dHVyZURlcHRoQ3Vi
ZS5lUHRyLmxvYWRWYWx1ZSgpLndpZHRoKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
IC00IC8gdGV4dHVyZURlcHRoQ3ViZS5lUHRyLmxvYWRWYWx1ZSgpLmhlaWdodCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoNDkgKyA1MCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTMiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1ha2VG
bG9hdChwcm9ncmFtLCAtNCAvIHRleHR1cmVEZXB0aEN1YmUuZVB0ci5sb2FkVmFsdWUoKS53aWR0
aCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAtNCAvIHRleHR1cmVEZXB0aEN1YmUu
ZVB0ci5sb2FkVmFsdWUoKS5oZWlnaHQpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDU5ICsg
NjApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCAoMyAr
IDQgKyA1ICsgNikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0
KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KV0pLCAoMTMgKyAxNCArIDE1ICsgMTYpIC8gNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCAoMjMgKyAyNCArIDI1ICsgMjYpIC8gNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1
YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDMzICsgMzQgKyAzNSArIDM2KSAvIDQpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281NCIsIFt0
ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgKDQzICsgNDQgKyA0NSAr
IDQ2KSAvIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksICg1
MyArIDU0ICsgNTUgKyA1NikgLyA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJv
Z3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpXSksICg5ICsgMTApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAtMSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSldKSwgKDE5ICsgMjApIC8gMik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU0IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttaW5GaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAxKV0pLCAoMjkgKyAzMCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKV0pLCAoMzkgKyA0MCkgLyAyKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTQiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21pbkZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpXSksICg0OSArIDUwKSAvIDIpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281NCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWluRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDEpXSksICg1OSArIDYwKSAvIDIpOworCisgICAgCisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU1IiwgW21ha2UyRERlcHRo
VGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHtjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDApOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281NSIsIFttYWtl
MkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAw
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTUi
LCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5ldmVyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAy
MyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzU1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0Iiks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNzIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAxMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzU1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZs
b2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNzIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxNyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzU1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11d
XSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNz
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBb
W1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246
ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJv
Z3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1
bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTUiLCBbbWFrZTJERGVwdGhUZXh0
dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2Nv
bXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMCk7CisgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU1IiwgW21ha2UyRERl
cHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNzRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAx
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTUi
LCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMTcpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb281NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9h
dCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAyMyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzU1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sx
N11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJn
cmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9n
cmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVu
Y3Rpb246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU1IiwgW21ha2UyRERlcHRoVGV4
dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtj
b21wYXJlRnVuY3Rpb246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU1IiwgW21ha2Uy
RERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSks
IDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281
NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibm90RXF1YWwifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDE3KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNTUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAiZmxv
YXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5vdEVxdWFsIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAyMyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzU1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sx
N11dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJn
cmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTUiLCBbbWFrZTJERGVwdGhUZXh0dXJl
KHByb2dyYW0sIFtbWzE3XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBh
cmVGdW5jdGlvbjogImdyZWF0ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281NSIsIFttYWtl
MkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tbMTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAy
MyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzU1IiwgW21ha2UyRERlcHRoVGV4dHVyZShwcm9ncmFtLCBbW1sxN11dXSwgImZsb2F0Iiks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJhbHdheXMifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDExKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNTUiLCBbbWFrZTJERGVwdGhUZXh0dXJlKHByb2dyYW0sIFtbWzE3XV1dLCAi
ZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMTcpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281NSIsIFttYWtlMkREZXB0aFRleHR1cmUocHJvZ3JhbSwgW1tb
MTddXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAi
YWx3YXlzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5
KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29t
cGFyZUZ1bmN0aW9uOiAibmV2ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMTEpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb281NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1d
LCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5ldmVy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAwKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTciLCBbbWFrZTJE
RGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHBy
b2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFy
ZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAx
MSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzU3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJm
bG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU3IiwgW21ha2UyRERlcHRo
VGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAyMyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzU3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0s
IFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0
aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTEpXSks
IDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281
NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQi
KSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTciLCBbbWFrZTJERGVwdGhUZXh0
dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dy
YW0sIHtjb21wYXJlRnVuY3Rpb246ICJlcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAyMyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzU3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtb
W1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9u
OiAibGVzc0VxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0p
LCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NTciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0
IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJsZXNzRXF1YWwifSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTcpXSksIDEpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281NyIsIFttYWtlMkREZXB0
aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIo
cHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHBy
b2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFy
ZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAxMSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzU3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0s
ICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRl
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxNyldKSwgMCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU3IiwgW21ha2Uy
RERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU3IiwgW21ha2UyRERlcHRoVGV4dHVyZUFycmF5
KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7Y29t
cGFyZUZ1bmN0aW9uOiAibm90RXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMTEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb281NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTdd
XV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogIm5v
dEVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDE3KV0pLCAwKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTciLCBb
bWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVuY3Rpb246ICJub3RFcXVhbCJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU3IiwgW21ha2UyRERlcHRoVGV4dHVy
ZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBtYWtlU2FtcGxlcihwcm9ncmFt
LCB7Y29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDExKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNTciLCBbbWFrZTJERGVwdGhUZXh0dXJlQXJyYXkocHJvZ3Jh
bSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtjb21wYXJlRnVu
Y3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMTcpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb281NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tbMTddXV1d
LCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjogImdyZWF0
ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU3Iiwg
W21ha2UyRERlcHRoVGV4dHVyZUFycmF5KHByb2dyYW0sIFtbW1sxN11dXV0sICJmbG9hdCIpLCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7Y29tcGFyZUZ1bmN0aW9uOiAiYWx3YXlzIn0pLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDExKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTciLCBbbWFrZTJERGVwdGhUZXh0dXJl
QXJyYXkocHJvZ3JhbSwgW1tbWzE3XV1dXSwgImZsb2F0IiksIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHtjb21wYXJlRnVuY3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMTcpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb281NyIsIFttYWtlMkREZXB0aFRleHR1cmVBcnJheShwcm9ncmFtLCBbW1tb
MTddXV1dLCAiZmxvYXQiKSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge2NvbXBhcmVGdW5jdGlvbjog
ImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
LjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAyMyldKSwgMSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU5Iiwg
W3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIiLCBjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sICgzICsgNCArIDUgKyA2KSAvIDQgLSAxKV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTkiLCBbdGV4dHVyZURlcHRoQ3ViZSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlv
bjogIm5ldmVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDMgKyA0ICsgNSAr
IDYpIC8gNCldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzU5IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAw
KSwgbWFrZUZsb2F0KHByb2dyYW0sICgzICsgNCArIDUgKyA2KSAvIDQgKyAxKV0pLCAwKTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTkiLCBbdGV4
dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIs
IGNvbXBhcmVGdW5jdGlvbjogImxlc3MifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAoMyArIDQgKyA1ICsgNikgLyA0IC0gMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU5IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJs
ZXNzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYpIC8g
NCldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzU5IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJsZXNzIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYpIC8gNCArIDEpXSksIDApOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281OSIsIFt0ZXh0dXJlRGVw
dGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFy
ZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAoMyAr
IDQgKyA1ICsgNikgLyA0IC0gMSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU5IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJlcXVhbCJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sICgzICsgNCArIDUgKyA2KSAvIDQpXSks
IDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281
OSIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAx
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9h
dChwcm9ncmFtLCAoMyArIDQgKyA1ICsgNikgLyA0ICsgMSldKSwgMCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU5IiwgW3RleHR1cmVEZXB0aEN1
YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVu
Y3Rpb246ICJsZXNzRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAoMyAr
IDQgKyA1ICsgNikgLyA0IC0gMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU5IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJsZXNzRXF1
YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAoMyArIDQgKyA1ICsgNikgLyA0
KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNTkiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sICgzICsgNCArIDUgKyA2KSAvIDQgKyAxKV0pLCAwKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTkiLCBbdGV4dHVy
ZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNv
bXBhcmVGdW5jdGlvbjogImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAoMyArIDQgKyA1ICsgNikgLyA0IC0gMSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU5IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJn
cmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYp
IC8gNCldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzU5IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYpIC8gNCArIDEpXSksIDEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281OSIsIFt0ZXh0
dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwg
Y29tcGFyZUZ1bmN0aW9uOiAibm90RXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAoMyArIDQgKyA1ICsgNikgLyA0IC0gMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU5IiwgW3RleHR1cmVEZXB0aEN1YmUsIG1h
a2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246
ICJub3RFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sICgzICsgNCArIDUg
KyA2KSAvIDQpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb281OSIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibm90RXF1YWwifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAoMyArIDQgKyA1ICsgNikgLyA0ICsgMSldKSwgMSk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU5Iiwg
W3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIiLCBjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAoMyArIDQgKyA1ICsgNikgLyA0IC0gMSldKSwgMCk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzU5IiwgW3RleHR1cmVEZXB0
aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJl
RnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAoMyArIDQgKyA1ICsgNikgLyA0KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTkiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImdyZWF0
ZXJFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sICgzICsgNCArIDUgKyA2
KSAvIDQgKyAxKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNTkiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwg
e21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sICgzICsgNCArIDUgKyA2KSAvIDQgLSAxKV0pLCAxKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNTkiLCBb
dGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciIsIGNvbXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sICgzICsgNCArIDUgKyA2KSAvIDQpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281OSIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAi
YWx3YXlzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYp
IC8gNCArIDEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282MCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAoMyArIDQgKyA1ICsgNikgLyA0IC0gMSldKSwgMCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYwIiwgW3Rl
eHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
LCBjb21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sICgzICsgNCArIDUgKyA2KSAvIDQpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282MCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2Ft
cGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibmV2
ZXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAoMyArIDQgKyA1ICsgNikgLyA0
ICsgMSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzYwIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJsZXNzIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYpIC8gNCAtIDEpXSksIDEpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282MCIsIFt0ZXh0dXJl
RGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29t
cGFyZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sICgz
ICsgNCArIDUgKyA2KSAvIDQpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb282MCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sICgzICsgNCArIDUgKyA2KSAvIDQgKyAxKV0p
LCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NjAiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYpIC8gNCAtIDEpXSksIDApOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282MCIsIFt0ZXh0dXJlRGVwdGhD
dWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1
bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAoMyArIDQg
KyA1ICsgNikgLyA0KV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNjAiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYpIC8gNCArIDEpXSksIDAp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282MCIs
IFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYpIC8gNCAtIDEpXSksIDEpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282MCIsIFt0ZXh0dXJlRGVwdGhD
dWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1
bmN0aW9uOiAibGVzc0VxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDMg
KyA0ICsgNSArIDYpIC8gNCldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYwIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJsZXNzRXF1YWwi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAoMyArIDQgKyA1ICsgNikgLyA0ICsg
MSldKSwgMCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzYwIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0
ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYpIC8gNCAtIDEpXSksIDApOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282MCIsIFt0ZXh0dXJl
RGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29t
cGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
ICgzICsgNCArIDUgKyA2KSAvIDQpXSksIDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb282MCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRl
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sICgzICsgNCArIDUgKyA2KSAvIDQg
KyAxKV0pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNjAiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogIm5vdEVxdWFsIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDAp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYpIC8gNCAtIDEpXSksIDEpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282MCIsIFt0ZXh0
dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwg
Y29tcGFyZUZ1bmN0aW9uOiAibm90RXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9n
cmFtLCAoMyArIDQgKyA1ICsgNikgLyA0KV0pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNjAiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogIm5v
dEVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwg
bWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYp
IC8gNCArIDEpXSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282MCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7
bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYpIC8gNCAtIDEpXSks
IDApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282
MCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAi
bGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgKDMgKyA0ICsgNSArIDYpIC8gNCldKSwgMSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYwIiwgW3RleHR1cmVEZXB0
aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJl
RnVuY3Rpb246ICJncmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFt
LCAoMyArIDQgKyA1ICsgNikgLyA0ICsgMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYwIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJh
bHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAoMyArIDQgKyA1ICsgNikg
LyA0IC0gMSldKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzYwIiwgW3RleHR1cmVEZXB0aEN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MCksIG1ha2VGbG9hdChwcm9ncmFtLCAoMyArIDQgKyA1ICsgNikgLyA0KV0pLCAxKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNjAiLCBbdGV4dHVy
ZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNv
bXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0s
ICgzICsgNCArIDUgKyA2KSAvIDQgKyAxKV0pLCAxKTsKK30KKwordGVzdHMudGV4dHVyZUdhdGhl
ciA9IGZ1bmN0aW9uKCkgeworICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKKyAgICAgICAgZmxv
YXQ0IGZvbzEoVGV4dHVyZTJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZs
b2F0IHkpIHsKKyAgICAgICAgICAgIHJldHVybiBHYXRoZXIodGV4dHVyZSwgcywgZmxvYXQyKHgs
IHkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdDQgZm9vMihUZXh0dXJlMkQ8ZmxvYXQ+IHRl
eHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgaW50IG9mZnNldFgsIGludCBvZmZz
ZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gR2F0aGVyKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5
KSwgaW50MihvZmZzZXRYLCBvZmZzZXRZKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQ0IGZv
bzMoVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxv
YXQgeSwgZmxvYXQgbGF5ZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBHYXRoZXIodGV4dHVyZSwg
cywgZmxvYXQzKHgsIHksIGxheWVyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQ0IGZvbzQo
VGV4dHVyZTJEQXJyYXk8ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQg
eSwgZmxvYXQgbGF5ZXIsIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAg
cmV0dXJuIEdhdGhlcih0ZXh0dXJlLCBzLCBmbG9hdDMoeCwgeSwgbGF5ZXIpLCBpbnQyKG9mZnNl
dFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdDQgZm9vNShUZXh0dXJlQ3Vi
ZTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KSB7
CisgICAgICAgICAgICByZXR1cm4gR2F0aGVyKHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCB6KSk7
CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQ0IGZvbzYoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRl
eHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSkgeworICAgICAgICAgICAgcmV0dXJu
IEdhdGhlcih0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSkpOworICAgICAgICB9CisgICAgICAgIGZs
b2F0NCBmb283KFRleHR1cmVEZXB0aDJEPGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0
IHgsIGZsb2F0IHksIGludCBvZmZzZXRYLCBpbnQgb2Zmc2V0WSkgeworICAgICAgICAgICAgcmV0
dXJuIEdhdGhlcih0ZXh0dXJlLCBzLCBmbG9hdDIoeCwgeSksIGludDIob2Zmc2V0WCwgb2Zmc2V0
WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0NCBmb284KFRleHR1cmVEZXB0aDJEQXJyYXk8
ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgbGF5ZXIp
IHsKKyAgICAgICAgICAgIHJldHVybiBHYXRoZXIodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxh
eWVyKSk7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQ0IGZvbzkoVGV4dHVyZURlcHRoMkRBcnJh
eTxmbG9hdD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXll
ciwgaW50IG9mZnNldFgsIGludCBvZmZzZXRZKSB7CisgICAgICAgICAgICByZXR1cm4gR2F0aGVy
KHRleHR1cmUsIHMsIGZsb2F0Myh4LCB5LCBsYXllciksIGludDIob2Zmc2V0WCwgb2Zmc2V0WSkp
OworICAgICAgICB9CisgICAgICAgIGZsb2F0NCBmb28xMChUZXh0dXJlRGVwdGhDdWJlPGZsb2F0
PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopIHsKKyAgICAg
ICAgICAgIHJldHVybiBHYXRoZXIodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIHopKTsKKyAgICAg
ICAgfQorICAgICAgICBmbG9hdDQgZm9vMTEoVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+IHRleHR1cmUs
IHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgY29tcGFyZVZhbHVlKSB7CisgICAg
ICAgICAgICByZXR1cm4gR2F0aGVyQ21wKHRleHR1cmUsIHMsIGZsb2F0Mih4LCB5KSwgY29tcGFy
ZVZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdDQgZm9vMTIoVGV4dHVyZURlcHRoMkQ8
ZmxvYXQ+IHRleHR1cmUsIHNhbXBsZXIgcywgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgY29tcGFy
ZVZhbHVlLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAgIHJldHVybiBH
YXRoZXJDbXAodGV4dHVyZSwgcywgZmxvYXQyKHgsIHkpLCBjb21wYXJlVmFsdWUsIGludDIob2Zm
c2V0WCwgb2Zmc2V0WSkpOworICAgICAgICB9CisgICAgICAgIGZsb2F0NCBmb28xMyhUZXh0dXJl
RGVwdGgyREFycmF5PGZsb2F0PiB0ZXh0dXJlLCBzYW1wbGVyIHMsIGZsb2F0IHgsIGZsb2F0IHks
IGZsb2F0IGxheWVyLCBmbG9hdCBjb21wYXJlVmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBH
YXRoZXJDbXAodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgY29tcGFyZVZhbHVlKTsK
KyAgICAgICAgfQorICAgICAgICBmbG9hdDQgZm9vMTQoVGV4dHVyZURlcHRoMkRBcnJheTxmbG9h
dD4gdGV4dHVyZSwgc2FtcGxlciBzLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBsYXllciwgZmxv
YXQgY29tcGFyZVZhbHVlLCBpbnQgb2Zmc2V0WCwgaW50IG9mZnNldFkpIHsKKyAgICAgICAgICAg
IHJldHVybiBHYXRoZXJDbXAodGV4dHVyZSwgcywgZmxvYXQzKHgsIHksIGxheWVyKSwgY29tcGFy
ZVZhbHVlLCBpbnQyKG9mZnNldFgsIG9mZnNldFkpKTsKKyAgICAgICAgfQorICAgIGApOworICAg
IGxldCBbdGV4dHVyZTFELCB0ZXh0dXJlMURBcnJheSwgdGV4dHVyZTJELCB0ZXh0dXJlMkRBcnJh
eSwgdGV4dHVyZTNELCB0ZXh0dXJlQ3ViZSwgcndUZXh0dXJlMUQsIHJ3VGV4dHVyZTFEQXJyYXks
IHJ3VGV4dHVyZTJELCByd1RleHR1cmUyREFycmF5LCByd1RleHR1cmUzRCwgdGV4dHVyZURlcHRo
MkQsIHRleHR1cmVEZXB0aDJEQXJyYXksIHRleHR1cmVEZXB0aEN1YmUsIHJ3VGV4dHVyZURlcHRo
MkQsIHJ3VGV4dHVyZURlcHRoMkRBcnJheV0gPSBjcmVhdGVUZXh0dXJlc0ZvclRlc3RpbmcocHJv
Z3JhbSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xIiwgW3RleHR1cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSks
IFsyMCwgMjEsIDEzLCAxMl0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMSIsIFt0ZXh0dXJlMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdG
aWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMCAvIDE2KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSldKSwgWzIxLCAyMiwgMTQsIDEzXSk7CisgICAgY2hlY2tGbG9hdDQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW3RleHR1cmUyRCwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCA2IC8gOCldKSwgWzI4LCAyOSwgMjEsIDIwXSk7CisgICAg
Y2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW3RleHR1
cmUyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dy
YW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIFsyMSwgMjIsIDE0LCAxM10pOworICAgIGNo
ZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFt0ZXh0dXJl
MkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCBbMjgsIDI5LCAyMSwgMjBdKTsKKyAgICBjaGVj
a0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbdGV4dHVyZTJE
QXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApXSksIFsyMCwgMjEsIDEzLCAxMl0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBs
ZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSldKSwgWzYy
LCA2MywgNTUsIDU0XSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280IiwgW3RleHR1cmUyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFn
RmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKV0pLCBbMjEsIDIyLCAxNCwgMTNdKTsKKyAgICBjaGVja0Zsb2F0
NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbdGV4dHVyZTJEQXJyYXks
IG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChw
cm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIFsyOCwgMjks
IDIxLCAyMF0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNCIsIFt0ZXh0dXJlMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgWzYzLCA2NCwgNTYsIDU1XSk7CisgICAgY2hlY2tGbG9hdDQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW3RleHR1cmUyREFycmF5LCBtYWtl
U2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAxKV0pLCBbNzAsIDcxLCA2Mywg
NjJdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzUiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5l
YXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMCldKSwgWzUsIDYsIDQsIDNdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1w
bGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAt
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApXSksIFsxNSwg
MTYsIDE0LCAxM10pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCBbMjUsIDI2LCAyNCwgMjNdKTsKKyAgICBjaGVj
a0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbdGV4dHVyZUN1
YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHByb2dyYW0s
IDApXSksIFszNSwgMzYsIDM0LCAzM10pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFt0ZXh0dXJlQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3Jh
bSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKV0pLCBbNDUsIDQ2LCA0NCwgNDNd
KTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUi
LCBbdGV4dHVyZUN1YmUsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIi
fSksIG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxv
YXQocHJvZ3JhbSwgLTEpXSksIFs1NSwgNTYsIDU0LCA1M10pOworICAgIGNoZWNrRmxvYXQ0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpXSksIFsyMCwgMjEsIDEzLCAxMl0pOwor
ICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFt0
ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEwIC8gMTYpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KV0p
LCBbMjEsIDIyLCAxNCwgMTNdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzYiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0s
IHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgNiAvIDgpXSksIFsyOCwgMjksIDIxLCAyMF0pOworICAgIGNoZWNrRmxvYXQ0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlRGVwdGgyRCwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDApXSksIFsyMSwgMjIsIDE0LCAxM10pOworICAgIGNoZWNrRmxv
YXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFt0ZXh0dXJlRGVwdGgy
RCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlSW50KHByb2dyYW0s
IDApLCBtYWtlSW50KHByb2dyYW0sIDEpXSksIFsyOCwgMjksIDIxLCAyMF0pOworICAgIGNoZWNr
RmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFt0ZXh0dXJlRGVw
dGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBt
YWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9h
dChwcm9ncmFtLCAwKV0pLCBbMjAsIDIxLCAxMywgMTJdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MSldKSwgWzYyLCA2MywgNTUsIDU0XSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb285IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVy
KHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIFsyMSwgMjIsIDE0LCAxM10pOwor
ICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFt0
ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCAxKV0pLCBbMjgsIDI5LCAyMSwgMjBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0s
IDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1h
a2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzYzLCA2NCwgNTYsIDU1
XSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285
IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6
ICJsaW5lYXIifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
MC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDEpXSksIFs3MCwgNzEsIDYzLCA2Ml0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dy
YW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAwKV0pLCBb
NSwgNiwgNCwgM10pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTAiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIC0xKSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCldKSwgWzE1LCAxNiwgMTQsIDEzXSk7Cisg
ICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFt0
ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFy
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZs
b2F0KHByb2dyYW0sIDApXSksIFsyNSwgMjYsIDI0LCAyM10pOworICAgIGNoZWNrRmxvYXQ0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbdGV4dHVyZURlcHRoQ3ViZSwg
bWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciJ9KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgLTEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCld
KSwgWzM1LCAzNiwgMzQsIDMzXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMCIsIFt0ZXh0dXJlRGVwdGhDdWJlLCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCksIG1ha2VG
bG9hdChwcm9ncmFtLCAwKSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpXSksIFs0NSwgNDYsIDQ0LCA0
M10pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTAiLCBbdGV4dHVyZURlcHRoQ3ViZSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjog
ImxpbmVhciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDApLCBtYWtlRmxvYXQocHJvZ3JhbSwgMCks
IG1ha2VGbG9hdChwcm9ncmFtLCAtMSldKSwgWzU1LCA1NiwgNTQsIDUzXSk7CisgICAgY2hlY2tG
bG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlRGVw
dGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVG
dW5jdGlvbjogIm5ldmVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMyldKSwgWzAsIDAsIDAsIDBdKTsKKyAg
ICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3Rl
eHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwg
Y29tcGFyZUZ1bmN0aW9uOiAibGVzcyJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMTMpXSksIFsxLCAxLCAwLCAw
XSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxp
bmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMyldKSwgWzAs
IDAsIDEsIDBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzExIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFsIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxMyldKSwgWzEsIDEsIDEsIDBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9n
cmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRlciJ9KSwg
bWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMTMpXSksIFswLCAwLCAwLCAxXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFt0ZXh0dXJlRGVwdGgyRCwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogIm5v
dEVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMyldKSwgWzEsIDEsIDAsIDFdKTsKKyAgICBjaGVja0Zs
b2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW3RleHR1cmVEZXB0
aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1
bmN0aW9uOiAiZ3JlYXRlckVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMyldKSwgWzAsIDAsIDEsIDFd
KTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEx
IiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGlu
ZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiYWx3YXlzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxMyldKSwgWzEs
IDEsIDEsIDFdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEyIiwgW3RleHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmls
dGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibmV2ZXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE0
KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBbMCwgMCwgMCwg
MF0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTIiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJs
aW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJsZXNzIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNCksIG1ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzEsIDEsIDAsIDBdKTsKKyAg
ICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3Rl
eHR1cmVEZXB0aDJELCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwg
Y29tcGFyZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtl
RmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE0KSwgbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBbMCwgMCwgMSwgMF0pOworICAgIGNoZWNr
RmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbdGV4dHVyZURl
cHRoMkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJl
RnVuY3Rpb246ICJsZXNzRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE0KSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBbMSwgMSwgMSwgMF0pOworICAgIGNoZWNrRmxv
YXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbdGV4dHVyZURlcHRo
MkQsIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVu
Y3Rpb246ICJncmVhdGVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHBy
b2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxNCksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzAsIDAsIDAsIDFdKTsKKyAgICBjaGVja0Zsb2F0NChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW3RleHR1cmVEZXB0aDJELCBt
YWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9u
OiAibm90RXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCBbMSwgMSwgMCwgMV0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJn
cmVhdGVyRXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFr
ZUludChwcm9ncmFtLCAwKV0pLCBbMCwgMCwgMSwgMV0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbdGV4dHVyZURlcHRoMkQsIG1ha2VT
YW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJh
bHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41
KSwgbWFrZUZsb2F0KHByb2dyYW0sIDE0KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCAwKV0pLCBbMSwgMSwgMSwgMV0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNh
bXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogIm5l
dmVyIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSks
IG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDU1KV0pLCBbMCwgMCwg
MCwgMF0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0Zp
bHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImxlc3MifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgNTUpXSksIFsxLCAxLCAwLCAwXSk7CisgICAgY2hlY2tGbG9h
dDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFy
ZUZ1bmN0aW9uOiAiZXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwg
NTUpXSksIFswLCAwLCAxLCAwXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxlcihw
cm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAibGVzc0VxdWFs
In0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1h
a2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDU1KV0pLCBbMSwgMSwgMSwg
MF0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRl
cjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXIifSksIG1ha2VGbG9hdChwcm9n
cmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEp
LCBtYWtlRmxvYXQocHJvZ3JhbSwgNTUpXSksIFswLCAwLCAwLCAxXSk7CisgICAgY2hlY2tGbG9h
dDQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFt0ZXh0dXJlRGVwdGgy
REFycmF5LCBtYWtlU2FtcGxlcihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFy
ZUZ1bmN0aW9uOiAibm90RXF1YWwifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxv
YXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgNTUpXSksIFsxLCAxLCAwLCAxXSk7CisgICAgY2hlY2tGbG9hdDQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFt0ZXh0dXJlRGVwdGgyREFycmF5LCBtYWtlU2FtcGxl
cihwcm9ncmFtLCB7bWFnRmlsdGVyOiAibGluZWFyIiwgY29tcGFyZUZ1bmN0aW9uOiAiZ3JlYXRl
ckVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDU1KV0pLCBbMCwg
MCwgMSwgMV0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTMiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImFsd2F5cyJ9KSwgbWFrZUZsb2F0
KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3Jh
bSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA1NSldKSwgWzEsIDEsIDEsIDFdKTsKKyAgICBjaGVj
a0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmVE
ZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBj
b21wYXJlRnVuY3Rpb246ICJuZXZlciJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9n
cmFtLCA1NiksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzAs
IDAsIDAsIDBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzE0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHtt
YWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJsZXNzIn0pLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFt
LCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDU2KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCAwKV0pLCBbMSwgMSwgMCwgMF0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFr
ZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjog
ImVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDU2KSwgbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBbMCwgMCwgMSwgMF0pOworICAg
IGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4
dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVh
ciIsIGNvbXBhcmVGdW5jdGlvbjogImxlc3NFcXVhbCJ9KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAu
NSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJvZ3JhbSwgMSksIG1ha2VG
bG9hdChwcm9ncmFtLCA1NiksIG1ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwg
MCldKSwgWzEsIDEsIDEsIDBdKTsKKyAgICBjaGVja0Zsb2F0NChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmVEZXB0aDJEQXJyYXksIG1ha2VTYW1wbGVyKHBy
b2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVuY3Rpb246ICJncmVhdGVyIn0p
LCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VG
bG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dyYW0sIDU2KSwgbWFrZUludChwcm9ncmFt
LCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBbMCwgMCwgMCwgMV0pOworICAgIGNoZWNrRmxv
YXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbdGV4dHVyZURlcHRo
MkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21hZ0ZpbHRlcjogImxpbmVhciIsIGNvbXBh
cmVGdW5jdGlvbjogIm5vdEVxdWFsIn0pLCBtYWtlRmxvYXQocHJvZ3JhbSwgMC41KSwgbWFrZUZs
b2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAxKSwgbWFrZUZsb2F0KHByb2dy
YW0sIDU2KSwgbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCAwKV0pLCBbMSwg
MSwgMCwgMV0pOworICAgIGNoZWNrRmxvYXQ0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTQiLCBbdGV4dHVyZURlcHRoMkRBcnJheSwgbWFrZVNhbXBsZXIocHJvZ3JhbSwge21h
Z0ZpbHRlcjogImxpbmVhciIsIGNvbXBhcmVGdW5jdGlvbjogImdyZWF0ZXJFcXVhbCJ9KSwgbWFr
ZUZsb2F0KHByb2dyYW0sIDAuNSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQo
cHJvZ3JhbSwgMSksIG1ha2VGbG9hdChwcm9ncmFtLCA1NiksIG1ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VJbnQocHJvZ3JhbSwgMCldKSwgWzAsIDAsIDEsIDFdKTsKKyAgICBjaGVja0Zsb2F0NChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW3RleHR1cmVEZXB0aDJEQXJy
YXksIG1ha2VTYW1wbGVyKHByb2dyYW0sIHttYWdGaWx0ZXI6ICJsaW5lYXIiLCBjb21wYXJlRnVu
Y3Rpb246ICJhbHdheXMifSksIG1ha2VGbG9hdChwcm9ncmFtLCAwLjUpLCBtYWtlRmxvYXQocHJv
Z3JhbSwgMC41KSwgbWFrZUZsb2F0KHByb2dyYW0sIDEpLCBtYWtlRmxvYXQocHJvZ3JhbSwgNTYp
LCBtYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDApXSksIFsxLCAxLCAxLCAx
XSk7CisgICAgLy8gRklYTUU6IEdhdGhlciBvdGhlciBjb21wb25lbnRzCiB9CiAKIG9rVG9UZXN0
ID0gdHJ1ZTsKQEAgLTU2MDYsNyArNzY0Nyw3IEBAIGZ1bmN0aW9uKiBkb1Rlc3QodGVzdEZpbHRl
cikKICAgICBpZiAoIW9rVG9UZXN0KQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3Qgc2V0
dXAgaXMgaW5jb21wbGV0ZS4iKTsKICAgICBsZXQgYmVmb3JlID0gcHJlY2lzZVRpbWUoKTsKLSAg
ICAKKwogICAgIHByaW50KCJDb21waWxpbmcgc3RhbmRhcmQgbGlicmFyeS4uLiIpOwogICAgIHlp
ZWxkOwogICAgIHByZXBhcmUoKTsKQEAgLTU2MzIsNyArNzY3Myw3IEBAIGZ1bmN0aW9uKiBkb1Rl
c3QodGVzdEZpbHRlcikKICAgICB9CiAKICAgICBsZXQgYWZ0ZXIgPSBwcmVjaXNlVGltZSgpOwot
ICAgIAorCiAgICAgcHJpbnQoIlN1Y2Nlc3MhIik7CiAgICAgcHJpbnQoIlRoYXQgdG9vayAiICsg
KGFmdGVyIC0gYmVmb3JlKSAqIDEwMDAgKyAiIG1zLiIpOwogfQpAQCAtNTY0MiwzICs3NjgzLDQg
QEAgaWYgKCF0aGlzLndpbmRvdykgewogICAgIGZvciAobGV0IF8gb2YgZG9UZXN0KHRlc3RGaWx0
ZXIpKSB7IH0KIH0KIAorCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UZXh0dXJlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kMDc2OTRmYWMyNjdhNzc4MzY1Yjk0YTY4YzAyMTM3MDI1NGNhNTBmCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGV4dHVyZS5qcwpA
QCAtMCwwICsxLDU0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisidXNlIHN0cmljdCI7CisKK2NsYXNzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGRp
bWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlu
bmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIHRoaXMuX2RpbWVuc2lvbiA9IGRpbWVuc2lv
bjsKKyAgICAgICAgdGhpcy5fd2lkdGggPSB3aWR0aDsKKyAgICAgICAgdGhpcy5faGVpZ2h0ID0g
aGVpZ2h0OworICAgICAgICB0aGlzLl9kZXB0aCA9IGRlcHRoOworICAgICAgICB0aGlzLl9sZXZl
bENvdW50ID0gbGV2ZWxDb3VudDsKKyAgICAgICAgdGhpcy5fbGF5ZXJDb3VudCA9IGxheWVyQ291
bnQ7CisgICAgICAgIHRoaXMuX2lubmVyVHlwZSA9IGlubmVyVHlwZTsKKyAgICAgICAgdGhpcy5f
ZGF0YSA9IGRhdGE7CisgICAgfQorCisgICAgZ2V0IGRpbWVuc2lvbigpIHsgcmV0dXJuIHRoaXMu
X2RpbWVuc2lvbjsgfQorICAgIGdldCB3aWR0aCgpIHsgcmV0dXJuIHRoaXMuX3dpZHRoOyB9Cisg
ICAgZ2V0IGhlaWdodCgpIHsgcmV0dXJuIHRoaXMuX2hlaWdodDsgfQorICAgIGdldCBkZXB0aCgp
IHsgcmV0dXJuIHRoaXMuX2RlcHRoOyB9CisgICAgZ2V0IGxldmVsQ291bnQoKSB7IHJldHVybiB0
aGlzLl9sZXZlbENvdW50OyB9CisgICAgZ2V0IGxheWVyQ291bnQoKSB7IHJldHVybiB0aGlzLl9s
YXllckNvdW50OyB9CisgICAgZ2V0IGlubmVyVHlwZSgpIHsgcmV0dXJuIHRoaXMuX2lubmVyVHlw
ZTsgfQorICAgIGdldCBkYXRhKCkgeyByZXR1cm4gdGhpcy5fZGF0YTsgfQorCisgICAgZWxlbWVu
dENoZWNrZWQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgaWYgKGxheWVy
IDwgMCB8fCBsYXllciA+PSB0aGlzLmxheWVyQ291bnQKKyAgICAgICAgICAgIHx8IGxldmVsIDwg
MCB8fCBsZXZlbCA+PSB0aGlzLmxldmVsQ291bnQKKyAgICAgICAgICAgIHx8IGsgPCAwIHx8IGsg
Pj0gdGhpcy5kZXB0aAorICAgICAgICAgICAgfHwgaiA8IDAgfHwgaiA+PSB0aGlzLmhlaWdodAor
ICAgICAgICAgICAgfHwgaSA8IDAgfHwgaSA+PSB0aGlzLndpZHRoKQorICAgICAgICAgICAgcmV0
dXJuIHVuZGVmaW5lZDsKKyAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudChsYXllciwgbGV2ZWws
IGssIGosIGkpOworICAgIH0KKworICAgIHNldEVsZW1lbnRDaGVja2VkKGxheWVyLCBsZXZlbCwg
aywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICBpZiAobGF5ZXIgPCAwIHx8IGxheWVyID49
IHRoaXMubGF5ZXJDb3VudAorICAgICAgICAgICAgfHwgbGV2ZWwgPCAwIHx8IGxldmVsID49IHRo
aXMubGV2ZWxDb3VudAorICAgICAgICAgICAgfHwgayA8IDAgfHwgayA+PSB0aGlzLmRlcHRoCisg
ICAgICAgICAgICB8fCBqIDwgMCB8fCBqID49IHRoaXMuaGVpZ2h0CisgICAgICAgICAgICB8fCBp
IDwgMCB8fCBpID49IHRoaXMud2lkdGgpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIHRoaXMuc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKTsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorfQorCitjbGFzcyBUZXh0dXJlMUQgZXh0ZW5kcyBUZXh0
dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAv
LyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgbWlwbWFwcy4KKyAgICAgICAgLy8gVGhlIGZpcnN0IG1p
cG1hcCBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1h
eSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhl
IHdpZHRoIG11c3QgYmUgYSBwb3dlci1vZi10d28uCisgICAgICAgIC8vIEVhY2ggbWlwbWFwIGlz
IGhhbGYtc2l6ZSBvZiB0aGUgcHJldmlvdXMgc2l6ZS4KKworICAgICAgICBsZXQgZGltZW5zaW9u
ID0gMTsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBo
ZWlnaHQgPSAxOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3Vu
dCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IDE7CisgICAgICAgIHN1
cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291
bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKwor
ICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9
CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAg
ICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5
ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsZXZl
bF1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUxREFycmF5IGV4dGVuZHMg
VGV4dHVyZSB7CisgICAgY29uc3RydWN0b3IoaW5uZXJUeXBlLCBkYXRhKQorICAgIHsKKyAgICAg
ICAgLy8gImRhdGEiIGlzIGFuIGFycmF5IG9mIDFEIHRleHR1cmVzLgorICAgICAgICAvLyBBbGwg
dGV4dHVyZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHdpZHRoIGFuZCBudW1iZXIgb2YgbWlwbWFwcy4K
KworICAgICAgICBsZXQgZGltZW5zaW9uID0gMTsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVsw
XVswXS5sZW5ndGg7CisgICAgICAgIGxldCBoZWlnaHQgPSAxOworICAgICAgICBsZXQgZGVwdGgg
PSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBs
ZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBzdXBlcihkaW1lbnNpb24sIHdp
ZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5lclR5cGUsIGRh
dGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB0aGlzLmRhdGFbMF1bbGV2ZWxdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExl
dmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZGVwdGhB
dExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxl
bWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5k
YXRhW2xheWVyXVtsZXZlbF1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2
ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtsZXZl
bF1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUyRCBleHRlbmRzIFRleHR1
cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8v
ICJkYXRhIiBpcyBhbiBhcnJheSBvZiBtaXBtYXBzLgorICAgICAgICAvLyBUaGUgZmlyc3QgbWlw
bWFwIGlzIGEgcmVjdGFuZ3VsYXIgYXJyYXkgb2Ygcm93cywgd2hlcmUgZWFjaCByb3cgaXMgYW4g
YXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkgYmUgYSBzY2Fs
YXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3aWR0aCBhbmQg
aGVpZ2h0IG11c3QgYmUgcG93ZXJzLW9mLXR3by4KKyAgICAgICAgLy8gRWFjaCBtaXBtYXAgaXMg
aGFsZi13aWR0aCBhbmQgaGFsZi1oZWlnaHQgb2YgdGhlIHByZXZpb3VzIHNpemUuCisKKyAgICAg
ICAgbGV0IGRpbWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF0ubGVu
Z3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBk
ZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAg
IGxldCBsYXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVp
Z2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAg
ICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhp
cy5kYXRhW2xldmVsXVswXS5sZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZl
bCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdLmxlbmd0aDsKKyAgICB9
CisKKyAgICBkZXB0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAg
ICB9CisKKyAgICBlbGVtZW50KGxheWVyLCBsZXZlbCwgaywgaiwgaSkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLmRhdGFbbGV2ZWxdW2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQo
bGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVts
ZXZlbF1bal1baV0gPSB2YWx1ZTsKKyAgICB9Cit9CisKK2xldCBUZXh0dXJlRGVwdGgyRCA9IFRl
eHR1cmUyRDsKKworY2xhc3MgVGV4dHVyZTJEQXJyYXkgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBj
b25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMg
YW4gYXJyYXkgb2YgMkQgdGV4dHVyZXMuCisgICAgICAgIC8vIEFsbCB0ZXh0dXJlcyBtdXN0IGhh
dmUgdGhlIHNhbWUgd2lkdGgsIGhlaWdodCBhbmQgbnVtYmVyIG9mIG1pcG1hcHMuCisKKyAgICAg
ICAgbGV0IGRpbWVuc2lvbiA9IDI7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF1bMF0u
bGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAg
IGxldCBkZXB0aCA9IDE7CisgICAgICAgIGxldCBsZXZlbENvdW50ID0gZGF0YVswXS5sZW5ndGg7
CisgICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIHN1cGVyKGRp
bWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlu
bmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVtsZXZlbF1bMF0ubGVuZ3RoOworICAgIH0KKwor
ICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRh
WzBdW2xldmVsXS5sZW5ndGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWws
IGssIGosIGkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1b
al1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZh
bHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtsZXZlbF1bal1baV0gPSB2YWx1
ZTsKKyAgICB9Cit9CisKK2xldCBUZXh0dXJlRGVwdGgyREFycmF5ID0gVGV4dHVyZTJEQXJyYXk7
CisKK2NsYXNzIFRleHR1cmUzRCBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlu
bmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiBt
aXBtYXBzLgorICAgICAgICAvLyBUaGUgZmlyc3QgbWlwbWFwIGlzIGFuIGFycmF5IG9mIGRlcHRo
IHNsaWNlcywgZWFjaCBkZXB0aCBzbGljZSBpcyBhbiBhcnJheSBvZiByb3dzLCBhbmQgZWFjaCBy
b3cgaXMgYW4gYXJyYXkgb2YgZWxlbWVudHMuCisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBtYXkg
YmUgYSBzY2FsYXIgb3IgYW4gYXJyYXkgb2YgMi00IHNjYWxhcnMuCisgICAgICAgIC8vIFRoZSB3
aWR0aCwgaGVpZ2h0LCBhbmQgZGVwdGggbXVzdCBiZSBwb3dlcnMtb2YtdHdvLgorICAgICAgICAv
LyBFYWNoIG1pcG1hcCBpcyBoYWxmLXdpZHRoLCBoYWxmLWhlaWdodCwgYW5kIGhhbGYtZGVwdGgg
b2YgdGhlIHByZXZpb3VzIHNpemUuCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDM7CisgICAg
ICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF1bMF0ubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0
ID0gZGF0YVswXVswXS5sZW5ndGg7CisgICAgICAgIGxldCBkZXB0aCA9IGRhdGFbMF0ubGVuZ3Ro
OworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgbGF5
ZXJDb3VudCA9IDE7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVw
dGgsIGxldmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisg
ICAgd2lkdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVts
ZXZlbF1bMF1bMF0ubGVuZ3RoOworICAgIH0KKworICAgIGhlaWdodEF0TGV2ZWwobGV2ZWwpCisg
ICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2xldmVsXVswXS5sZW5ndGg7CisgICAgfQor
CisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0
YVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBq
LCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsZXZlbF1ba11bal1baV07Cisg
ICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAg
IHsKKyAgICAgICAgdGhpcy5kYXRhW2xldmVsXVtrXVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30K
KworY2xhc3MgVGV4dHVyZUN1YmUgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihp
bm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2Yg
NiAyRCB0ZXh0dXJlcy4KKyAgICAgICAgLy8gQWxsIHRleHR1cmVzIG11c3QgaGF2ZSB0aGUgc2Ft
ZSB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgYW5kIG51bWJlciBvZiBtaXBtYXBzLgorCisgICAgICAg
IGxldCBkaW1lbnNpb24gPSAyOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdWzBdLmxl
bmd0aDsKKyAgICAgICAgbGV0IGhlaWdodCA9IGRhdGFbMF1bMF0ubGVuZ3RoOworICAgICAgICBs
ZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IGRhdGFbMF0ubGVuZ3RoOwor
ICAgICAgICBsZXQgbGF5ZXJDb3VudCA9IGRhdGEubGVuZ3RoOworICAgICAgICBzdXBlcihkaW1l
bnNpb24sIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBsZXZlbENvdW50LCBsYXllckNvdW50LCBpbm5l
clR5cGUsIGRhdGEpOworICAgIH0KKworICAgIHdpZHRoQXRMZXZlbChsZXZlbCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB0aGlzLmRhdGFbMF1bbGV2ZWxdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAg
ICBoZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVsw
XVtsZXZlbF0ubGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7
CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBr
LCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2pd
W2ldOworICAgIH0KKworICAgIHNldEVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1
ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YVtsYXllcl1bbGV2ZWxdW2pdW2ldID0gdmFsdWU7
CisgICAgfQorfQorCitsZXQgVGV4dHVyZURlcHRoQ3ViZSA9IFRleHR1cmVDdWJlOworCitjbGFz
cyBUZXh0dXJlMURSVyBleHRlbmRzIFRleHR1cmUgeworICAgIGNvbnN0cnVjdG9yKGlubmVyVHlw
ZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBpcyBhbiBhcnJheSBvZiBlbGVtZW50
cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBv
ZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRoIG11c3QgYmUgYSBwb3dlci1vZi10
d28uCisKKyAgICAgICAgbGV0IGRpbWVuc2lvbiA9IDE7CisgICAgICAgIGxldCB3aWR0aCA9IGRh
dGEubGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gMTsKKyAgICAgICAgbGV0IGRlcHRoID0g
MTsKKyAgICAgICAgbGV0IGxldmVsQ291bnQgPSAxOworICAgICAgICBsZXQgbGF5ZXJDb3VudCA9
IDE7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVs
Q291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhB
dExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5sZW5ndGg7Cisg
ICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAx
OworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVy
biAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtpXTsKKyAgICB9CisKKyAgICBzZXRFbGVtZW50KGxh
eWVyLCBsZXZlbCwgaywgaiwgaSwgdmFsdWUpCisgICAgeworICAgICAgICB0aGlzLmRhdGFbaV0g
PSB2YWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIFRleHR1cmUxREFycmF5UlcgZXh0ZW5kcyBUZXh0
dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAv
LyAiZGF0YSIgaXMgYW4gYXJyYXkgb2YgMUQgUlcgdGV4dHVyZXMuCisgICAgICAgIC8vIEFsbCB0
ZXh0dXJlcyBtdXN0IGhhdmUgdGhlIHNhbWUgc2l6ZS4KKworICAgICAgICBsZXQgZGltZW5zaW9u
ID0gMTsKKyAgICAgICAgbGV0IHdpZHRoID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxldCBo
ZWlnaHQgPSAxOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQgbGV2ZWxDb3Vu
dCA9IDE7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5sZW5ndGg7CisgICAgICAgIHN1
cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxldmVsQ291bnQsIGxheWVyQ291
bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lkdGhBdExldmVsKGxldmVsKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXS5sZW5ndGg7CisgICAgfQorCisgICAg
aGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKwor
ICAgIGRlcHRoQXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0K
KworICAgIGVsZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHRoaXMuZGF0YVtsYXllcl1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwg
bGV2ZWwsIGssIGosIGksIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtp
XSA9IHZhbHVlOworICAgIH0KK30KKworY2xhc3MgVGV4dHVyZTJEUlcgZXh0ZW5kcyBUZXh0dXJl
IHsKKyAgICBjb25zdHJ1Y3Rvcihpbm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAi
ZGF0YSIgaXMgYSByZWN0YW5ndWxhciBhcnJheSBvZiByb3dzLCB3aGVyZSBlYWNoIHJvdyBpcyBh
biBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50IG1heSBiZSBhIHNj
YWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8gVGhlIHdpZHRoIGFu
ZCBoZWlnaHQgbXVzdCBiZSBwb3dlcnMtb2YtdHdvLgorCisgICAgICAgIGxldCBkaW1lbnNpb24g
PSAyOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdLmxlbmd0aDsKKyAgICAgICAgbGV0IGhl
aWdodCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAgICAgICBsZXQg
bGV2ZWxDb3VudCA9IDE7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gMTsKKyAgICAgICAgc3Vw
ZXIoZGltZW5zaW9uLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3Vu
dCwgaW5uZXJUeXBlLCBkYXRhKTsKKyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisg
ICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRhWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBo
ZWlnaHRBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5sZW5n
dGg7CisgICAgfQorCisgICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIDE7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAg
eworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2pdW2ldOworICAgIH0KKworICAgIHNldEVsZW1l
bnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0
YVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30KKworbGV0IFRleHR1cmVEZXB0aDJEUlcgPSBUZXh0
dXJlMkRSVzsKKworY2xhc3MgVGV4dHVyZTJEQXJyYXlSVyBleHRlbmRzIFRleHR1cmUgeworICAg
IGNvbnN0cnVjdG9yKGlubmVyVHlwZSwgZGF0YSkKKyAgICB7CisgICAgICAgIC8vICJkYXRhIiBp
cyBhbiBhcnJheSBvZiAyRCBSVyB0ZXh0dXJlcy4KKyAgICAgICAgLy8gQWxsIHRleHR1cmVzIG11
c3QgaGF2ZSB0aGUgc2FtZSB3aWR0aCBhbmQgaGVpZ2h0LgorCisgICAgICAgIGxldCBkaW1lbnNp
b24gPSAyOworICAgICAgICBsZXQgd2lkdGggPSBkYXRhWzBdWzBdLmxlbmd0aDsKKyAgICAgICAg
bGV0IGhlaWdodCA9IGRhdGFbMF0ubGVuZ3RoOworICAgICAgICBsZXQgZGVwdGggPSAxOworICAg
ICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7CisgICAgICAgIGxldCBsYXllckNvdW50ID0gZGF0YS5s
ZW5ndGg7CisgICAgICAgIHN1cGVyKGRpbWVuc2lvbiwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGxl
dmVsQ291bnQsIGxheWVyQ291bnQsIGlubmVyVHlwZSwgZGF0YSk7CisgICAgfQorCisgICAgd2lk
dGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXVswXS5s
ZW5ndGg7CisgICAgfQorCisgICAgaGVpZ2h0QXRMZXZlbChsZXZlbCkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLmRhdGFbMF0ubGVuZ3RoOworICAgIH0KKworICAgIGRlcHRoQXRMZXZlbChs
ZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGVsZW1lbnQobGF5
ZXIsIGxldmVsLCBrLCBqLCBpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtsYXll
cl1bal1baV07CisgICAgfQorCisgICAgc2V0RWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGks
IHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhW2xheWVyXVtqXVtpXSA9IHZhbHVlOwor
ICAgIH0KK30KKworbGV0IFRleHR1cmVEZXB0aDJEQXJyYXlSVyA9IFRleHR1cmUyREFycmF5UlcK
KworY2xhc3MgVGV4dHVyZTNEUlcgZXh0ZW5kcyBUZXh0dXJlIHsKKyAgICBjb25zdHJ1Y3Rvcihp
bm5lclR5cGUsIGRhdGEpCisgICAgeworICAgICAgICAvLyAiZGF0YSIgaXMgYW4gYXJyYXkgb2Yg
ZGVwdGggc2xpY2VzLCBlYWNoIGRlcHRoIHNsaWNlIGlzIGFuIGFycmF5IG9mIHJvd3MsIGFuZCBl
YWNoIHJvdyBpcyBhbiBhcnJheSBvZiBlbGVtZW50cy4KKyAgICAgICAgLy8gRWFjaCBlbGVtZW50
IG1heSBiZSBhIHNjYWxhciBvciBhbiBhcnJheSBvZiAyLTQgc2NhbGFycy4KKyAgICAgICAgLy8g
VGhlIHdpZHRoLCBoZWlnaHQsIGFuZCBkZXB0aCBtdXN0IGJlIHBvd2Vycy1vZi10d28uCisKKyAg
ICAgICAgbGV0IGRpbWVuc2lvbiA9IDM7CisgICAgICAgIGxldCB3aWR0aCA9IGRhdGFbMF1bMF0u
bGVuZ3RoOworICAgICAgICBsZXQgaGVpZ2h0ID0gZGF0YVswXS5sZW5ndGg7CisgICAgICAgIGxl
dCBkZXB0aCA9IGRhdGEubGVuZ3RoOworICAgICAgICBsZXQgbGV2ZWxDb3VudCA9IDE7CisgICAg
ICAgIGxldCBsYXllckNvdW50ID0gMTsKKyAgICAgICAgc3VwZXIoZGltZW5zaW9uLCB3aWR0aCwg
aGVpZ2h0LCBkZXB0aCwgbGV2ZWxDb3VudCwgbGF5ZXJDb3VudCwgaW5uZXJUeXBlLCBkYXRhKTsK
KyAgICB9CisKKyAgICB3aWR0aEF0TGV2ZWwobGV2ZWwpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5kYXRhWzBdWzBdLmxlbmd0aDsKKyAgICB9CisKKyAgICBoZWlnaHRBdExldmVsKGxldmVs
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVswXS5sZW5ndGg7CisgICAgfQorCisg
ICAgZGVwdGhBdExldmVsKGxldmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5s
ZW5ndGg7CisgICAgfQorCisgICAgZWxlbWVudChsYXllciwgbGV2ZWwsIGssIGosIGkpCisgICAg
eworICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2tdW2pdW2ldOworICAgIH0KKworICAgIHNldEVs
ZW1lbnQobGF5ZXIsIGxldmVsLCBrLCBqLCBpLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMu
ZGF0YVtrXVtqXVtpXSA9IHZhbHVlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1cmVPcGVyYXRpb25zLmpzIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVGV4dHVyZU9wZXJhdGlvbnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmRhZGI4NTAw
OTA0MTAxYmZlNGI0NzgwMjg5NTMwOWRlZThkMTc4MgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1RleHR1cmVPcGVyYXRpb25zLmpzCkBAIC0wLDAgKzEs
Nzg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyJ1c2Ug
c3RyaWN0IjsKKworZnVuY3Rpb24gZGVwdGhDb21wYXJlT3BlcmF0aW9uKGRyZWYsIGQsIGNvbXBh
cmVGdW5jdGlvbikKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuMy40CisgICAg
c3dpdGNoIChjb21wYXJlRnVuY3Rpb24pIHsKKyAgICAgICAgY2FzZSAibmV2ZXIiOgorICAgICAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgIGNhc2UgImxlc3MiOgorICAgICAgICAgICAgcmV0dXJu
IGRyZWYgPCBkID8gMSA6IDA7CisgICAgICAgIGNhc2UgImVxdWFsIjoKKyAgICAgICAgICAgIHJl
dHVybiBkcmVmID09IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAibGVzc0VxdWFsIjoKKyAgICAg
ICAgICAgIHJldHVybiBkcmVmIDw9IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAiZ3JlYXRlciI6
CisgICAgICAgICAgICByZXR1cm4gZHJlZiA+IGQgPyAxIDogMDsKKyAgICAgICAgY2FzZSAibm90
RXF1YWwiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYgIT0gZCA/IDEgOiAwOworICAgICAgICBj
YXNlICJncmVhdGVyRXF1YWwiOgorICAgICAgICAgICAgcmV0dXJuIGRyZWYgPj0gZCA/IDEgOiAw
OworICAgICAgICBjYXNlICJhbHdheXMiOgorICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZGVwdGggY29t
cGFyaXNvbiBmdW5jdGlvbiIpOworICAgIH0KK30KKworZnVuY3Rpb24gY29udmVyc2lvblRvUkdC
QSh2YWx1ZSkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuMy41CisgICAgaWYg
KHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IFtdOworICAg
ICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgKytpKQorICAgICAgICAgICAg
cmVzdWx0LnB1c2godmFsdWVbaV0pOworICAgICAgICB3aGlsZSAocmVzdWx0Lmxlbmd0aCAhPSA0
KQorICAgICAgICAgICAgcmVzdWx0LnB1c2gocmVzdWx0Lmxlbmd0aCA9PSAzID8gMSA6IDApOwor
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0gZWxzZQorICAgICAgICByZXR1cm4gW3ZhbHVl
LCAwLCAwLCAxXTsKK30KKworZnVuY3Rpb24gcHJvamVjdGlvbk9wZXJhdGlvbihzLCB0LCByLCBk
cmVmLCBxKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjEKKyAgICByZXR1
cm4gW3MgLyBxLCB0IC8gcSwgciAvIHEsIGRyZWYgIT0gdW5kZWZpbmVkID8gZHJlZiAvIHEgOiB1
bmRlZmluZWRdOworfQorCitmdW5jdGlvbiBjdWJlTWFwRmFjZVNlbGVjdGlvbihzLCB0LCByLCBw
YXJ0aWFsUnhXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxS
eVdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJ6V2l0aFJl
c3BlY3RUb1gsIHBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZKQoreworICAgIC8vIFZ1bGthbiAxLjEu
ODMgc2VjdGlvbiAxNS42LjQKKyAgICBsZXQgcnggPSBzOworICAgIGxldCByeSA9IHQ7CisgICAg
bGV0IHJ6ID0gcjsKKyAgICBsZXQgd2lubmVyID0gMDsKKyAgICBpZiAoTWF0aC5hYnMocnopID49
IE1hdGguYWJzKHJ5KSAmJiBNYXRoLmFicyhyeikgPj0gTWF0aC5hYnMocngpKQorICAgICAgICB3
aW5uZXIgPSAyOworICAgIGVsc2UgaWYgKE1hdGguYWJzKHJ5KSA+PSBNYXRoLmFicyhyeCkgJiYg
TWF0aC5hYnMocnkpID49IE1hdGguYWJzKHJ6KSkKKyAgICAgICAgd2lubmVyID0gMTsKKworICAg
IGxldCBsYXllck51bWJlcjsKKyAgICBsZXQgc2M7CisgICAgbGV0IHRjOworICAgIGxldCByYzsK
KyAgICBsZXQgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1g7CisgICAgbGV0IHBhcnRpYWxTY1dpdGhS
ZXNwZWN0VG9ZOworICAgIGxldCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWDsKKyAgICBsZXQgcGFy
dGlhbFRjV2l0aFJlc3BlY3RUb1k7CisgICAgbGV0IHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YOwor
ICAgIGxldCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWTsKKyAgICBpZiAod2lubmVyID09IDAgJiYg
cnggPj0gMCkgeworICAgICAgICBsYXllck51bWJlciA9IDA7CisgICAgICAgIHNjID0gLXJ6Owor
ICAgICAgICB0YyA9IC1yeTsKKyAgICAgICAgcmMgPSByeDsKKyAgICAgICAgcGFydGlhbFNjV2l0
aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxT
Y1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0
aWFsVGNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAg
cGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAg
ICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7Cisg
ICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7
CisgICAgfSBlbHNlIGlmICh3aW5uZXIgPT0gMCkgeworICAgICAgICBsYXllck51bWJlciA9IDE7
CisgICAgICAgIHNjID0gcno7CisgICAgICAgIHRjID0gLXJ5OworICAgICAgICByYyA9IHJ4Owor
ICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxSeldpdGhSZXNwZWN0VG9Y
OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9IHBhcnRpYWxSeldpdGhSZXNwZWN0
VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnlXaXRoUmVz
cGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ5V2l0
aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxS
eFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0
aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAgICB9IGVsc2UgaWYgKHdpbm5lciA9PSAxICYmIHJ5ID49
IDApIHsKKyAgICAgICAgbGF5ZXJOdW1iZXIgPSAyOworICAgICAgICBzYyA9IHJ4OworICAgICAg
ICB0YyA9IC1yejsKKyAgICAgICAgcmMgPSByeTsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJlc3Bl
Y3RUb1ggPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFNjV2l0aFJl
c3BlY3RUb1kgPSBwYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0
aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRj
V2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlh
bFJjV2l0aFJlc3BlY3RUb1ggPSBwYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFy
dGlhbFJjV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWTsKKyAgICB9IGVs
c2UgaWYgKHdpbm5lciA9PSAxKSB7CisgICAgICAgIGxheWVyTnVtYmVyID0gMzsKKyAgICAgICAg
c2MgPSByeDsKKyAgICAgICAgdGMgPSAtcno7CisgICAgICAgIHJjID0gcnk7CisgICAgICAgIHBh
cnRpYWxTY1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1g7CisgICAgICAg
IHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ4V2l0aFJlc3BlY3RUb1k7CisgICAg
ICAgIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YID0gLXBhcnRpYWxSeldpdGhSZXNwZWN0VG9YOwor
ICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRv
WTsKKyAgICAgICAgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3Bl
Y3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dpdGhSZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhS
ZXNwZWN0VG9ZOworICAgIH0gZWxzZSBpZiAod2lubmVyID09IDIgJiYgcnogPj0gMCkgeworICAg
ICAgICBsYXllck51bWJlciA9IDQ7CisgICAgICAgIHNjID0gcng7CisgICAgICAgIHRjID0gLXJ5
OworICAgICAgICByYyA9IHJ6OworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCA9IHBh
cnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSA9
IHBhcnRpYWxSeFdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRv
WCA9IC1wYXJ0aWFsUnlXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3Bl
Y3RUb1kgPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxSY1dpdGhS
ZXNwZWN0VG9YID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxSY1dp
dGhSZXNwZWN0VG9ZID0gcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgbGF5ZXJOdW1iZXIgPSA1OworICAgICAgICBzYyA9IC1yeDsKKyAgICAgICAgdGMgPSAt
cnk7CisgICAgICAgIHJjID0gcno7CisgICAgICAgIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9YID0g
LXBhcnRpYWxSeFdpdGhSZXNwZWN0VG9YOworICAgICAgICBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRv
WSA9IC1wYXJ0aWFsUnhXaXRoUmVzcGVjdFRvWTsKKyAgICAgICAgcGFydGlhbFRjV2l0aFJlc3Bl
Y3RUb1ggPSAtcGFydGlhbFJ5V2l0aFJlc3BlY3RUb1g7CisgICAgICAgIHBhcnRpYWxUY1dpdGhS
ZXNwZWN0VG9ZID0gLXBhcnRpYWxSeVdpdGhSZXNwZWN0VG9ZOworICAgICAgICBwYXJ0aWFsUmNX
aXRoUmVzcGVjdFRvWCA9IC1wYXJ0aWFsUnpXaXRoUmVzcGVjdFRvWDsKKyAgICAgICAgcGFydGlh
bFJjV2l0aFJlc3BlY3RUb1kgPSAtcGFydGlhbFJ6V2l0aFJlc3BlY3RUb1k7CisgICAgfQorICAg
IHJldHVybiBbbGF5ZXJOdW1iZXIsIHNjLCB0YywgcmMsIHBhcnRpYWxTY1dpdGhSZXNwZWN0VG9Y
LCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRjV2l0aFJlc3BlY3RUb1gsIHBhcnRp
YWxUY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFJjV2l0
aFJlc3BlY3RUb1ldCit9CisKK2Z1bmN0aW9uIGN1YmVNYXBDb29yZGluYXRlVHJhbnNmb3JtYXRp
b24oc2MsIHRjLCByYykKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi41Cisg
ICAgbGV0IHNGYWNlID0gKDEgLyAyKSAqIHNjIC8gTWF0aC5hYnMocmMpICsgKDEgLyAyKTsKKyAg
ICBsZXQgdEZhY2UgPSAoMSAvIDIpICogdGMgLyBNYXRoLmFicyhyYykgKyAoMSAvIDIpOworICAg
IHJldHVybiBbc0ZhY2UsIHRGYWNlXTsKK30KKworZnVuY3Rpb24gY3ViZU1hcERlcml2YXRpdmVU
cmFuc2Zvcm1hdGlvbihzYywgdGMsIHJjLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWCwgcGFydGlh
bFNjV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVGNXaXRo
UmVzcGVjdFRvWSwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxSY1dpdGhSZXNwZWN0
VG9ZKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjYKKyAgICBsZXQgcGFy
dGlhbFNGYWNlV2l0aFJlc3BlY3RUb1ggPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0
aWFsU2NXaXRoUmVzcGVjdFRvWCAtIHNjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gpIC8gTWF0
aC5wb3cocmMsIDIpKTsKKyAgICBsZXQgcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1kgPSAoMSAv
IDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSAtIHNjICogcGFy
dGlhbFJjV2l0aFJlc3BlY3RUb1kpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICBsZXQgcGFydGlh
bFRGYWNlV2l0aFJlc3BlY3RUb1ggPSAoMSAvIDIpICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFs
VGNXaXRoUmVzcGVjdFRvWCAtIHRjICogcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gpIC8gTWF0aC5w
b3cocmMsIDIpKTsKKyAgICBsZXQgcGFydGlhbFRGYWNlV2l0aFJlc3BlY3RUb1kgPSAoMSAvIDIp
ICogKChNYXRoLmFicyhyYykgKiBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSAtIHRjICogcGFydGlh
bFJjV2l0aFJlc3BlY3RUb1kpIC8gTWF0aC5wb3cocmMsIDIpKTsKKyAgICByZXR1cm4gW3BhcnRp
YWxTRmFjZVdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWSwgcGFydGlh
bFRGYWNlV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0VG9ZXTsKK30KKwor
ZnVuY3Rpb24gc2NhbGVGYWN0b3JPcGVyYXRpb24oZGV2aWNlTWF4QW5pc290cm9weSwgd2lkdGgs
IGhlaWdodCwgZGVwdGgsIHNhbXBsZXJNYXhBbmlzb3Ryb3B5LCBwYXJ0aWFsU1dpdGhSZXNwZWN0
VG9YLCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsUldpdGhSZXNwZWN0VG9YLCBwYXJ0
aWFsU1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUldpdGhS
ZXNwZWN0VG9ZKQoreworICAgIC8vIFZ1bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjcKKyAgICBs
ZXQgbXV4ID0gTWF0aC5hYnMocGFydGlhbFNXaXRoUmVzcGVjdFRvWCkgKiB3aWR0aDsKKyAgICBs
ZXQgbXZ4ID0gTWF0aC5hYnMocGFydGlhbFRXaXRoUmVzcGVjdFRvWCkgKiBoZWlnaHQ7CisgICAg
bGV0IG13eCA9IE1hdGguYWJzKHBhcnRpYWxSV2l0aFJlc3BlY3RUb1gpICogZGVwdGg7CisgICAg
bGV0IG11eSA9IE1hdGguYWJzKHBhcnRpYWxTV2l0aFJlc3BlY3RUb1kpICogd2lkdGg7CisgICAg
bGV0IG12eSA9IE1hdGguYWJzKHBhcnRpYWxUV2l0aFJlc3BlY3RUb1kpICogaGVpZ2h0OworICAg
IGxldCBtd3kgPSBNYXRoLmFicyhwYXJ0aWFsUldpdGhSZXNwZWN0VG9ZKSAqIGRlcHRoOworCisg
ICAgLy8gSSBtYWRlIHRoaXMgdXAuIFRoZSBmb3JtdWxhIGlzbid0IGxpc3RlZCBpbiB0aGUgc3Bl
Yy4KKyAgICBsZXQgZnggPSBNYXRoLnNxcnQobXV4ICogbXV4ICsgbXZ4ICogbXZ4ICsgbXd4ICog
bXd4KTsKKyAgICBsZXQgZnkgPSBNYXRoLnNxcnQobXV5ICogbXV5ICsgbXZ5ICogbXZ5ICsgbXd5
ICogbXd5KTsKKworICAgIGxldCByaG9YID0gZng7CisgICAgbGV0IHJob1kgPSBmeTsKKyAgICBs
ZXQgcmhvTWF4ID0gTWF0aC5tYXgocmhvWCwgcmhvWSk7CisgICAgbGV0IHJob01pbiA9IE1hdGgu
bWluKHJob1gsIHJob1kpOworCisgICAgbGV0IG1heEFuaXNvID0gTWF0aC5taW4oc2FtcGxlck1h
eEFuaXNvdHJvcHksIGRldmljZU1heEFuaXNvdHJvcHkpOworCisgICAgbGV0IGV0YTsKKyAgICBp
ZiAocmhvTWF4ID09IDAgJiYgcmhvTWluID09IDApCisgICAgICAgIGV0YSA9IDE7CisgICAgZWxz
ZSBpZiAocmhvTWluID09IDApCisgICAgICAgIGV0YSA9IG1heEFuaXNvOworICAgIGVsc2UKKyAg
ICAgICAgZXRhID0gTWF0aC5taW4ocmhvTWF4IC8gcmhvTWluLCBtYXhBbmlzbyk7CisKKyAgICBs
ZXQgTiA9IE1hdGguY2VpbChldGEpOworICAgIHJldHVybiBbcmhvTWF4LCByaG9NaW4sIGV0YSwg
Tl07Cit9CisKK2Z1bmN0aW9uIGxldmVsT2ZEZXRhaWxPcGVyYXRpb24oZGV2aWNlTWF4U2FtcGxl
ckxvZEJpYXMsIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJh
bmQsIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kLCBzYW1wbGVyQmlhcywgc2FtcGxlckxvZE1pbiwg
c2FtcGxlckxvZE1heCwgcmhvTWF4LCBldGEpCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0
aW9uIDE1LjYuNworICAgIGlmIChiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCA9PSB1bmRlZmluZWQp
CisgICAgICAgIGJpYXNGcm9tRnVuY3Rpb25PcGVyYW5kID0gMDsKKworICAgIGxldCBsYW1iZGFC
YXNlID0gbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCAhPSB1bmRlZmluZWQgPyBsb2RGcm9tRnVuY3Rp
b25PcGVyYW5kIDogTWF0aC5sb2cyKHJob01heCAvIGV0YSk7CisgICAgbGV0IGxhbWJkYVByaW1l
ID0gbGFtYmRhQmFzZSArIE1hdGgubWluKE1hdGgubWF4KHNhbXBsZXJCaWFzICsgYmlhc0Zyb21G
dW5jdGlvbk9wZXJhbmQsIC1kZXZpY2VNYXhTYW1wbGVyTG9kQmlhcyksIGRldmljZU1heFNhbXBs
ZXJMb2RCaWFzKTsKKyAgICBsZXQgbG9kTWluID0gTWF0aC5tYXgoc2FtcGxlckxvZE1pbiwgbG9k
TWluRnJvbUZ1bmN0aW9uT3BlcmFuZCk7CisgICAgbGV0IGxvZE1heCA9IHNhbXBsZXJMb2RNYXg7
CisgICAgbGV0IGxhbWJkYTsKKyAgICBpZiAobGFtYmRhUHJpbWUgPiBsb2RNYXgpCisgICAgICAg
IGxhbWJkYSA9IGxvZE1heDsKKyAgICBlbHNlIGlmIChsb2RNaW4gPD0gbGFtYmRhUHJpbWUgJiYg
bGFtYmRhUHJpbWUgPD0gbG9kTWF4KQorICAgICAgICBsYW1iZGEgPSBsYW1iZGFQcmltZTsKKyAg
ICBlbHNlIGlmIChsYW1iZGFQcmltZSA8IGxvZE1pbikKKyAgICAgICAgbGFtYmRhID0gbG9kTWlu
OworICAgIGVsc2UKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJsb2RNaW4gPj0gbG9kTWF4Iik7
CisgICAgcmV0dXJuIGxhbWJkYTsKK30KKworZnVuY3Rpb24gaW1hZ2VMZXZlbFNlbGVjdGlvbihi
YXNlTWlwTGV2ZWwsIGxldmVsQ291bnQsIG1pcG1hcE1vZGUsIGxhbWJkYSkKK3sKKyAgICAvLyBW
dWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuNi43CisgICAgZnVuY3Rpb24gbmVhcmVzdChkUHJpbWUp
CisgICAgeworICAgICAgICByZXR1cm4gTWF0aC5jZWlsKGRQcmltZSArIDAuNSkgLSAxOworICAg
IH0KKworICAgIGxldCBxID0gbGV2ZWxDb3VudCAtIDE7CisgICAgbGV0IGRQcmltZSA9IGJhc2VN
aXBMZXZlbCArIE1hdGgubWluKE1hdGgubWF4KGxhbWJkYSwgMCksIHEpOworICAgIGxldCBkbDsK
KyAgICBpZiAobWlwbWFwTW9kZSA9PSAibmVhcmVzdCIpCisgICAgICAgIGRsID0gbmVhcmVzdChk
UHJpbWUpOworICAgIGVsc2UKKyAgICAgICAgZGwgPSBkUHJpbWU7CisgICAgaWYgKG1pcG1hcE1v
ZGUgPT0gIm5lYXJlc3QiKQorICAgICAgICByZXR1cm4gZGw7CisgICAgZWxzZSB7CisgICAgICAg
IGxldCBkSGkgPSBNYXRoLmZsb29yKGRsKTsKKyAgICAgICAgbGV0IGRMb3cgPSBNYXRoLm1pbihk
SGkgKyAxLCBxKTsKKyAgICAgICAgbGV0IGRlbHRhID0gZGwgLSBkSGk7CisgICAgICAgIHJldHVy
biBbZEhpLCBkTG93LCBkZWx0YV07CisgICAgfQorfQorCitmdW5jdGlvbiBzdHJxYVRvVVZXQVRy
YW5zZm9ybWF0aW9uKHMsIHQsIHIsIHdpZHRoLCBoZWlnaHQsIGRlcHRoKQoreworICAgIC8vIFZ1
bGthbiAxLjEuODMgc2VjdGlvbiAxNS42LjgKKyAgICBsZXQgdSA9IHMgKiB3aWR0aDsKKyAgICBs
ZXQgdiA9IHQgKiBoZWlnaHQ7CisgICAgbGV0IHcgPSByICogZGVwdGg7CisgICAgcmV0dXJuIFt1
LCB2LCB3XTsKK30KKworZnVuY3Rpb24gdXZ3YVRvSUpLTE5UcmFuc2Zvcm1hdGlvbkFuZEFycmF5
TGF5ZXJTZWxlY3Rpb24obGF5ZXJDb3VudCwgYmFzZUFycmF5TGF5ZXIsIGZpbHRlciwgdSwgdiwg
dywgYSwgZGVsdGFJLCBkZWx0YUosIGRlbHRhSykKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNl
Y3Rpb24gMTUuNy4xCisKKyAgICBpZiAoZGVsdGFJID09IHVuZGVmaW5lZCkKKyAgICAgICAgZGVs
dGFJID0gMDsKKyAgICBpZiAoZGVsdGFKID09IHVuZGVmaW5lZCkKKyAgICAgICAgZGVsdGFKID0g
MDsKKyAgICBpZiAoZGVsdGFLID09IHVuZGVmaW5lZCkKKyAgICAgICAgZGVsdGFLID0gMDsKKwor
ICAgIGZ1bmN0aW9uIHJuZShhKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoYSAr
IDAuNSk7CisgICAgfQorICAgIGxldCBsID0gTWF0aC5taW4oTWF0aC5tYXgocm5lKGEpLCAwKSwg
bGF5ZXJDb3VudCAtIDEpICsgYmFzZUFycmF5TGF5ZXI7CisgICAgbGV0IGk7CisgICAgbGV0IGo7
CisgICAgbGV0IGs7CisgICAgaWYgKGZpbHRlciA9PSAibmVhcmVzdCIpIHsKKyAgICAgICAgaSA9
IE1hdGguZmxvb3IodSk7CisgICAgICAgIGogPSBNYXRoLmZsb29yKHYpOworICAgICAgICBrID0g
TWF0aC5mbG9vcih3KTsKKyAgICAgICAgCisgICAgICAgIGkgKz0gZGVsdGFJOworICAgICAgICBq
ICs9IGRlbHRhSjsKKyAgICAgICAgayArPSBkZWx0YUs7CisgICAgICAgIAorICAgICAgICByZXR1
cm4gW2ksIGosIGssIGxdOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChmaWx0ZXIgIT0gImxp
bmVhciIpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZmlsdGVyIik7Cisg
ICAgICAgIGxldCBpMCA9IE1hdGguZmxvb3IodSAtIDAuNSk7CisgICAgICAgIGxldCBpMSA9IGkw
ICsgMTsKKyAgICAgICAgbGV0IGowID0gTWF0aC5mbG9vcih2IC0gMC41KTsKKyAgICAgICAgbGV0
IGoxID0gajAgKyAxOworICAgICAgICBsZXQgazAgPSBNYXRoLmZsb29yKHcgLSAwLjUpOworICAg
ICAgICBsZXQgazEgPSBrMCArIDE7CisgICAgICAgIGxldCBhbHBoYSA9ICh1IC0gMC41KSAtIGkw
OworICAgICAgICBsZXQgYmV0YSA9ICh2IC0gMC41KSAtIGowOworICAgICAgICBsZXQgZ2FtbWEg
PSAodyAtIDAuNSkgLSBrMDsKKyAgICAgICAgCisgICAgICAgIGkwICs9IGRlbHRhSTsKKyAgICAg
ICAgaTEgKz0gZGVsdGFJOworICAgICAgICBqMCArPSBkZWx0YUo7CisgICAgICAgIGoxICs9IGRl
bHRhSjsKKyAgICAgICAgazAgKz0gZGVsdGFLOworICAgICAgICBrMSArPSBkZWx0YUs7CisgICAg
ICAgIAorICAgICAgICByZXR1cm4gW2kwLCBpMSwgajAsIGoxLCBrMCwgazEsIGwsIGFscGhhLCBi
ZXRhLCBnYW1tYV07CisgICAgfQorfQorCitmdW5jdGlvbiBpbnRlZ2VyVGV4ZWxDb29yZGluYXRl
T3BlcmF0aW9ucyhiYXNlTWlwTGV2ZWwsIGxldmVsQ291bnQsIGxldmVsQmFzZSwgbG9kRnJvbUZ1
bmN0aW9uT3BlcmFuZCkKK3sKKyAgICAvLyBWdWxrYW4gMS4xLjgzIHNlY3Rpb24gMTUuOAorICAg
IGxldCBkID0gbGV2ZWxCYXNlICsgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZDsKKyAgICBpZiAoZCA8
IGJhc2VNaXBMZXZlbCB8fCBkID49IGJhc2VNaXBMZXZlbCArIGxldmVsQ291bnQpCisgICAgICAg
IHRocm93IG5ldyBFcnJvcigiU2VsZWN0ZWQgbGV2ZWwgZG9lcyBub3QgbGllIGluc2lkZSB0aGUg
aW1hZ2UiKTsKKyAgICByZXR1cm4gZDsKK30KKworZnVuY3Rpb24gd3JhcHBpbmdPcGVyYXRpb24o
d2lkdGgsIGhlaWdodCwgZGVwdGgsIGFkZHJlc3NNb2RlVSwgYWRkcmVzc01vZGVWLCBhZGRyZXNz
TW9kZVcsIGksIGosIGspCit7CisgICAgLy8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjkuMQor
ICAgIC8vIEZJWE1FOiAiQ3ViZSBpbWFnZXMgaWdub3JlIHRoZSB3cmFwIG1vZGVzIHNwZWNpZmll
ZCBpbiB0aGUgc2FtcGxlci4gSW5zdGVhZCwgaWYgVktfRklMVEVSX05FQVJFU1QgaXMgdXNlZCB3
aXRoaW4gYSBtaXAgbGV2ZWwgdGhlbiBWS19TQU1QTEVSX0FERFJFU1NfTU9ERV9DTEFNUF9UT19F
REdFIGlzIHVzZWQsIGFuZCBpZiBWS19GSUxURVJfTElORUFSIGlzIHVzZWQgd2l0aGluIGEgbWlw
IGxldmVsIHRoZW4gc2FtcGxpbmcgYXQgdGhlIGVkZ2VzIGlzIHBlcmZvcm1lZCBhcyBkZXNjcmli
ZWQgZWFybGllciBpbiB0aGUgQ3ViZSBtYXAgZWRnZSBoYW5kbGluZyBzZWN0aW9uLiIKKyAgICBm
dW5jdGlvbiB0cmFuc2Zvcm0oYWRkcmVzc01vZGUsIHNpemUsIGkpCisgICAgeworICAgICAgICBm
dW5jdGlvbiBtaXJyb3IobikgeworICAgICAgICAgICAgaWYgKG4gPj0gMCkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gbjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4g
LSgxICsgbik7CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoIChhZGRyZXNzTW9kZSkgeworICAg
ICAgICAgICAgY2FzZSAiY2xhbXBUb0VkZ2UiOgorICAgICAgICAgICAgICAgIHJldHVybiBNYXRo
Lm1pbihNYXRoLm1heChpLCAwKSwgc2l6ZSAtIDEpOworICAgICAgICAgICAgY2FzZSAicmVwZWF0
IjoKKyAgICAgICAgICAgICAgICByZXR1cm4gaSAlIHNpemU7CisgICAgICAgICAgICBjYXNlICJt
aXJyb3JSZXBlYXQiOgorICAgICAgICAgICAgICAgIHJldHVybiAoc2l6ZSAtIDEpIC0gbWlycm9y
KChpICUgKDIgKiBzaXplKSkgLSBzaXplKTsKKyAgICAgICAgICAgIGNhc2UgImNsYW1wVG9Cb3Jk
ZXJDb2xvciI6CisgICAgICAgICAgICAgICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGksIC0x
KSwgc2l6ZSk7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigiVW5rbm93biBhZGRyZXNzIG1vZGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBy
ZXR1cm4gW3RyYW5zZm9ybShhZGRyZXNzTW9kZVUsIHdpZHRoLCBpKSwgdHJhbnNmb3JtKGFkZHJl
c3NNb2RlViwgaGVpZ2h0LCBqKSwgdHJhbnNmb3JtKGFkZHJlc3NNb2RlVywgZGVwdGgsIGspXTsK
K30KKworZnVuY3Rpb24gY2FsY3VsYXRlTGFtYmRhKGRldmljZU1heEFuaXNvdHJvcHksIGRldmlj
ZU1heFNhbXBsZXJMb2RCaWFzLCB0ZXh0dXJlLCBzYW1wbGVyLCBzYW1wbGVyQmlhcywgcywgdCwg
ciwgYSwgbG9kRnJvbUZ1bmN0aW9uT3BlcmFuZCwgbG9kTWluRnJvbUZ1bmN0aW9uT3BlcmFuZCwg
Ymlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsIGRkeCwgZGR5KQoreworICAgIGxldCBwYXJ0aWFsU1dp
dGhSZXNwZWN0VG9YID0gMDsKKyAgICBsZXQgcGFydGlhbFRXaXRoUmVzcGVjdFRvWCA9IDA7Cisg
ICAgbGV0IHBhcnRpYWxSV2l0aFJlc3BlY3RUb1ggPSAwOworICAgIGlmIChkZHggIT0gdW5kZWZp
bmVkKSB7CisgICAgICAgIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1ggPSBkZHhbMF07CisgICAgICAg
IHBhcnRpYWxUV2l0aFJlc3BlY3RUb1ggPSBkZHhbMV07CisgICAgICAgIHBhcnRpYWxSV2l0aFJl
c3BlY3RUb1ggPSBkZHhbMl07CisgICAgfQorICAgIGxldCBwYXJ0aWFsU1dpdGhSZXNwZWN0VG9Z
ID0gMDsKKyAgICBsZXQgcGFydGlhbFRXaXRoUmVzcGVjdFRvWSA9IDA7CisgICAgbGV0IHBhcnRp
YWxSV2l0aFJlc3BlY3RUb1kgPSAwOworICAgIGlmIChkZHkgIT0gdW5kZWZpbmVkKSB7CisgICAg
ICAgIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1kgPSBkZHlbMF07CisgICAgICAgIHBhcnRpYWxUV2l0
aFJlc3BlY3RUb1kgPSBkZHlbMV07CisgICAgICAgIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kgPSBk
ZHlbMl07CisgICAgfQorCisgICAgaWYgKHRleHR1cmUgaW5zdGFuY2VvZiBUZXh0dXJlQ3ViZSkg
eworICAgICAgICAvLyBGSVhNRTogSGFuZGxlIGN1YmVtYXAgZWRnZS9jb3JuZXJzIGNvcnJlY3Rs
eQorICAgICAgICBsZXQgW2xheWVyTnVtYmVyLCBzYywgdGMsIHJjLCBwYXJ0aWFsU2NXaXRoUmVz
cGVjdFRvWCwgcGFydGlhbFNjV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9Y
LCBwYXJ0aWFsVGNXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJjV2l0aFJlc3BlY3RUb1gsIHBhcnRp
YWxSY1dpdGhSZXNwZWN0VG9ZXSA9IGN1YmVNYXBGYWNlU2VsZWN0aW9uKHMsIHQsIHIsIHBhcnRp
YWxTV2l0aFJlc3BlY3RUb1gsIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxUV2l0aFJl
c3BlY3RUb1gsIHBhcnRpYWxUV2l0aFJlc3BlY3RUb1ksIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1gs
IHBhcnRpYWxSV2l0aFJlc3BlY3RUb1kpCisgICAgICAgIGxldCBbc0ZhY2UsIHRGYWNlXSA9IGN1
YmVNYXBDb29yZGluYXRlVHJhbnNmb3JtYXRpb24oc2MsIHRjLCByYykKKyAgICAgICAgbGV0IFtw
YXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1ksIHBh
cnRpYWxURmFjZVdpdGhSZXNwZWN0VG9YLCBwYXJ0aWFsVEZhY2VXaXRoUmVzcGVjdFRvWV0gPSBj
dWJlTWFwRGVyaXZhdGl2ZVRyYW5zZm9ybWF0aW9uKHNjLCB0YywgcmMsIHBhcnRpYWxTY1dpdGhS
ZXNwZWN0VG9YLCBwYXJ0aWFsU2NXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFRjV2l0aFJlc3BlY3RU
b1gsIHBhcnRpYWxUY1dpdGhSZXNwZWN0VG9ZLCBwYXJ0aWFsUmNXaXRoUmVzcGVjdFRvWCwgcGFy
dGlhbFJjV2l0aFJlc3BlY3RUb1kpCisgICAgICAgIHMgPSBzRmFjZTsKKyAgICAgICAgdCA9IHRG
YWNlOworICAgICAgICByID0gMDsKKyAgICAgICAgYSA9IGxheWVyTnVtYmVyOworICAgICAgICBw
YXJ0aWFsU1dpdGhSZXNwZWN0VG9YID0gcGFydGlhbFNGYWNlV2l0aFJlc3BlY3RUb1g7CisgICAg
ICAgIHBhcnRpYWxTV2l0aFJlc3BlY3RUb1kgPSBwYXJ0aWFsU0ZhY2VXaXRoUmVzcGVjdFRvWTsK
KyAgICAgICAgcGFydGlhbFRXaXRoUmVzcGVjdFRvWCA9IHBhcnRpYWxURmFjZVdpdGhSZXNwZWN0
VG9YOworICAgICAgICBwYXJ0aWFsVFdpdGhSZXNwZWN0VG9ZID0gcGFydGlhbFRGYWNlV2l0aFJl
c3BlY3RUb1k7CisgICAgICAgIHBhcnRpYWxSV2l0aFJlc3BlY3RUb1ggPSAwOworICAgICAgICBw
YXJ0aWFsUldpdGhSZXNwZWN0VG9ZID0gMDsKKyAgICB9CisKKyAgICBsZXQgW3Job01heCwgcmhv
TWluLCBldGEsIE5dID0gc2NhbGVGYWN0b3JPcGVyYXRpb24oZGV2aWNlTWF4QW5pc290cm9weSwg
dGV4dHVyZS53aWR0aCwgdGV4dHVyZS5oZWlnaHQsIHRleHR1cmUuZGVwdGgsIHNhbXBsZXIubWF4
QW5pc290cm9weSwgcGFydGlhbFNXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFRXaXRoUmVzcGVjdFRv
WCwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWCwgcGFydGlhbFNXaXRoUmVzcGVjdFRvWSwgcGFydGlh
bFRXaXRoUmVzcGVjdFRvWSwgcGFydGlhbFJXaXRoUmVzcGVjdFRvWSk7CisgICAgbGV0IGxhbWJk
YSA9IGxldmVsT2ZEZXRhaWxPcGVyYXRpb24oZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMsIGxvZEZy
b21GdW5jdGlvbk9wZXJhbmQsIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQsIGJpYXNGcm9tRnVu
Y3Rpb25PcGVyYW5kLCBzYW1wbGVyQmlhcywgc2FtcGxlci5sb2RNaW5DbGFtcCwgc2FtcGxlci5s
b2RNYXhDbGFtcCwgcmhvTWF4LCBldGEpOworICAgIHJldHVybiBbcywgdCwgciwgYSwgbGFtYmRh
XTsKK30KKworZnVuY3Rpb24gY29tcHV0ZVRhdShsZXZlbCwgYmFzZUFycmF5TGF5ZXIsIHRleHR1
cmUsIHNhbXBsZXIsIGFkZHJlc3NNb2RlVSwgYWRkcmVzc01vZGVWLCBhZGRyZXNzTW9kZVcsIGZp
bHRlciwgcywgdCwgciwgYSwgZGVsdGFJLCBkZWx0YUosIGRlbHRhSykKK3sKKyAgICBmdW5jdGlv
biBhY2Nlc3NDb2xvcih3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbCwgaSwgaiwgaykKKyAgICB7Cisg
ICAgICAgIGZ1bmN0aW9uIHNob3VsZEJlQm9yZGVyKHZhbHVlLCBtYXgpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGlmICh2YWx1ZSA8IC0xIHx8IHZhbHVlID4gbWF4KQorICAgICAgICAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiT3V0LW9mLWJvdW5kcyB0ZXh0dXJlIHJlYWQiKTsKKyAgICAgICAg
ICAgIHJldHVybiB2YWx1ZSA9PSAtMSB8fCB2YWx1ZSA9PSBtYXg7CisgICAgICAgIH0KKworICAg
ICAgICBsZXQgW3dyYXBwZWRJLCB3cmFwcGVkSiwgd3JhcHBlZEtdID0gd3JhcHBpbmdPcGVyYXRp
b24od2lkdGgsIGhlaWdodCwgZGVwdGgsIGFkZHJlc3NNb2RlVSwgYWRkcmVzc01vZGVWLCBhZGRy
ZXNzTW9kZVcsIGksIGosIGspCisgICAgICAgIGlmIChzaG91bGRCZUJvcmRlcih3cmFwcGVkSSwg
d2lkdGgpIHx8IHNob3VsZEJlQm9yZGVyKHdyYXBwZWRKLCBoZWlnaHQpIHx8IHNob3VsZEJlQm9y
ZGVyKHdyYXBwZWRLLCBkZXB0aCkpCisgICAgICAgICAgICByZXR1cm4gc2FtcGxlci5jYWxjdWxh
dGVCb3JkZXJDb2xvcih0ZXh0dXJlLmlubmVyVHlwZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHJldHVybiB0ZXh0dXJlLmVsZW1lbnQobCwgbGV2ZWwsIHdyYXBwZWRLLCB3cmFwcGVkSiwg
d3JhcHBlZEkpOworICAgIH0KKworICAgIGxldCBbdSwgdiwgd10gPSBzdHJxYVRvVVZXQVRyYW5z
Zm9ybWF0aW9uKHMsIHQsIHIsIHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5o
ZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpKTsKKyAgICBp
ZiAoZmlsdGVyID09ICJuZWFyZXN0IikgeworICAgICAgICBsZXQgW2ksIGosIGssIGxdID0gdXZ3
YVRvSUpLTE5UcmFuc2Zvcm1hdGlvbkFuZEFycmF5TGF5ZXJTZWxlY3Rpb24odGV4dHVyZS5sYXll
ckNvdW50LCBiYXNlQXJyYXlMYXllciwgZmlsdGVyLCB1LCB2LCB3LCBhLCBkZWx0YUksIGRlbHRh
SiwgZGVsdGFLKTsKKyAgICAgICAgcmV0dXJuIGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExl
dmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0
TGV2ZWwobGV2ZWwpLCBsLCBpLCBqLCBrKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoZmls
dGVyICE9ICJsaW5lYXIiKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGZp
bHRlciIpOworICAgICAgICBsZXQgW2kwLCBpMSwgajAsIGoxLCBrMCwgazEsIGwsIGFscGhhLCBi
ZXRhLCBnYW1tYV0gPSB1dndhVG9JSktMTlRyYW5zZm9ybWF0aW9uQW5kQXJyYXlMYXllclNlbGVj
dGlvbih0ZXh0dXJlLmxheWVyQ291bnQsIGJhc2VBcnJheUxheWVyLCBmaWx0ZXIsIHUsIHYsIHcs
IGEsIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUspOworICAgICAgICBsZXQgY29sb3IwMDAgPSBhY2Nl
c3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZl
bChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTAsIGowLCBrMCk7Cisg
ICAgICAgIGxldCBjb2xvcjEwMCA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxl
dmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwo
bGV2ZWwpLCBsLCBpMSwgajAsIGswKTsKKyAgICAgICAgbGV0IGNvbG9yMDEwID0gYWNjZXNzQ29s
b3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmhlaWdodEF0TGV2ZWwobGV2
ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGwsIGkwLCBqMSwgazApOworICAgICAg
ICBsZXQgY29sb3IxMTAgPSBhY2Nlc3NDb2xvcih0ZXh0dXJlLndpZHRoQXRMZXZlbChsZXZlbCks
IHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1cmUuZGVwdGhBdExldmVsKGxldmVs
KSwgbCwgaTEsIGoxLCBrMCk7CisgICAgICAgIGxldCBjb2xvcjAwMSA9IGFjY2Vzc0NvbG9yKHRl
eHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5oZWlnaHRBdExldmVsKGxldmVsKSwg
dGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMCwgajAsIGsxKTsKKyAgICAgICAgbGV0
IGNvbG9yMTAxID0gYWNjZXNzQ29sb3IodGV4dHVyZS53aWR0aEF0TGV2ZWwobGV2ZWwpLCB0ZXh0
dXJlLmhlaWdodEF0TGV2ZWwobGV2ZWwpLCB0ZXh0dXJlLmRlcHRoQXRMZXZlbChsZXZlbCksIGws
IGkxLCBqMCwgazEpOworICAgICAgICBsZXQgY29sb3IwMTEgPSBhY2Nlc3NDb2xvcih0ZXh0dXJl
LndpZHRoQXRMZXZlbChsZXZlbCksIHRleHR1cmUuaGVpZ2h0QXRMZXZlbChsZXZlbCksIHRleHR1
cmUuZGVwdGhBdExldmVsKGxldmVsKSwgbCwgaTAsIGoxLCBrMSk7CisgICAgICAgIGxldCBjb2xv
cjExMSA9IGFjY2Vzc0NvbG9yKHRleHR1cmUud2lkdGhBdExldmVsKGxldmVsKSwgdGV4dHVyZS5o
ZWlnaHRBdExldmVsKGxldmVsKSwgdGV4dHVyZS5kZXB0aEF0TGV2ZWwobGV2ZWwpLCBsLCBpMSwg
ajEsIGsxKTsKKyAgICAgICAgcmV0dXJuIFtjb2xvcjAwMCwgY29sb3IxMDAsIGNvbG9yMDEwLCBj
b2xvcjExMCwgY29sb3IwMDEsIGNvbG9yMTAxLCBjb2xvcjAxMSwgY29sb3IxMTEsIGFscGhhLCBi
ZXRhLCBnYW1tYV07CisgICAgfQorfQorCitmdW5jdGlvbiByZWR1Y2UoLi4udmFsdWVzKQorewor
ICAgIGlmICh2YWx1ZXMubGVuZ3RoICUgMiAhPSAwKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
IkRvbid0IGhhdmUgYSB3ZWlnaHQgY29ycmVzcG9uZGluZyB0byBlYWNoIHZhbHVlIik7CisgICAg
aWYgKHZhbHVlcy5sZW5ndGggPCAyKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkRvbid0IGhh
dmUgZW5vdWdoIHRoaW5ncyB0byBjYWxjdWxhdGUgYW4gYXZlcmFnZSIpOworICAgIGxldCBzdW07
CisgICAgaWYgKHZhbHVlc1sxXSBpbnN0YW5jZW9mIEFycmF5KSB7CisgICAgICAgIHN1bSA9IFtd
OworICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlc1sxXS5sZW5ndGg7ICsraSkKKyAg
ICAgICAgICAgIHN1bS5wdXNoKDApOworICAgIH0gZWxzZQorICAgICAgICBzdW0gPSAwOworICAg
IGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aCAvIDI7ICsraSkgeworICAgICAgICBs
ZXQgd2VpZ2h0ID0gdmFsdWVzWzIgKiBpXTsKKyAgICAgICAgbGV0IGNvbG9yID0gdmFsdWVzWzIg
KiBpICsgMV07CisgICAgICAgIGlmIChjb2xvciBpbnN0YW5jZW9mIEFycmF5KSB7CisgICAgICAg
ICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbG9yLmxlbmd0aDsgKytpKQorICAgICAgICAgICAg
ICAgIHN1bVtpXSArPSB3ZWlnaHQgKiBjb2xvcltpXTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICBzdW0gKz0gd2VpZ2h0ICogY29sb3I7CisgICAgfQorICAgIHJldHVybiBzdW07Cit9CisK
K2Z1bmN0aW9uIHRleGVsR2F0aGVyaW5nKAorICAgIGRldmljZU1heEFuaXNvdHJvcHksCisgICAg
ZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMsCisgICAgYmFzZU1pcExldmVsLAorICAgIGJhc2VBcnJh
eUxheWVyLAorICAgIHRleHR1cmUsCisgICAgc2FtcGxlciwKKyAgICBzYW1wbGVyQmlhcywKKyAg
ICBzLCB0LCByLCBhLAorICAgIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUssCisgICAgbG9kRnJvbUZ1
bmN0aW9uT3BlcmFuZCwKKyAgICBsb2RNaW5Gcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgIGJpYXNG
cm9tRnVuY3Rpb25PcGVyYW5kLAorICAgIGRkeCwgZGR5LAorICAgIGNoYW5uZWwpCit7CisgICAg
Ly8gVnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjkuMgorCisgICAgLy8gVGhlIHNwZWMgdXNlcyBk
aWZmZXJlbnQgbmFtZXMgdGhhbiBXZWJHUFUgZG9lcy4KKyAgICBsZXQgYWRkcmVzc01vZGVVID0g
c2FtcGxlci5yQWRkcmVzc01vZGU7CisgICAgbGV0IGFkZHJlc3NNb2RlViA9IHNhbXBsZXIuc0Fk
ZHJlc3NNb2RlOworICAgIGxldCBhZGRyZXNzTW9kZVcgPSBzYW1wbGVyLnRBZGRyZXNzTW9kZTsK
KworICAgIGxldCBsYW1iZGE7CisgICAgW3MsIHQsIHIsIGEsIGxhbWJkYV0gPSBjYWxjdWxhdGVM
YW1iZGEoZGV2aWNlTWF4QW5pc290cm9weSwgZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMsIHRleHR1
cmUsIHNhbXBsZXIsIHNhbXBsZXJCaWFzLCBzLCB0LCByLCBhLCBsb2RGcm9tRnVuY3Rpb25PcGVy
YW5kLCBsb2RNaW5Gcm9tRnVuY3Rpb25PcGVyYW5kLCBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwg
ZGR4LCBkZHkpOworCisgICAgbGV0IGZpbHRlciA9ICJsaW5lYXIiOworCisgICAgbGV0IGltYWdl
TGV2ZWwgPSBpbWFnZUxldmVsU2VsZWN0aW9uKGJhc2VNaXBMZXZlbCwgdGV4dHVyZS5sZXZlbENv
dW50LCAibmVhcmVzdCIsIGxhbWJkYSk7CisKKyAgICBsZXQgW2NvbG9yMDAwLCBjb2xvcjEwMCwg
Y29sb3IwMTAsIGNvbG9yMTEwLCBjb2xvcjAwMSwgY29sb3IxMDEsIGNvbG9yMDExLCBjb2xvcjEx
MSwgYWxwaGEsIGJldGEsIGdhbW1hXSA9IGNvbXB1dGVUYXUoaW1hZ2VMZXZlbCwgYmFzZUFycmF5
TGF5ZXIsIHRleHR1cmUsIHNhbXBsZXIsIGFkZHJlc3NNb2RlVSwgYWRkcmVzc01vZGVWLCBhZGRy
ZXNzTW9kZVcsIGZpbHRlciwgcywgdCwgciwgYSwgZGVsdGFJLCBkZWx0YUosIGRlbHRhSyk7CisK
KyAgICBpZiAodGV4dHVyZS5kaW1lbnNpb24gIT0gMikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJDYW5ub3QgZ2F0aGVyIGZyb20gYSBub24tMkQgaW1hZ2UiKTsKKworICAgIGxldCBjb2xvcjAw
ID0gY29sb3IwMDE7CisgICAgbGV0IGNvbG9yMTAgPSBjb2xvcjEwMTsKKyAgICBsZXQgY29sb3Iw
MSA9IGNvbG9yMDExOworICAgIGxldCBjb2xvcjExID0gY29sb3IxMTE7CisKKyAgICBzd2l0Y2gg
KGNoYW5uZWwpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgaWYgKGNvbG9yMDAgaW5z
dGFuY2VvZiBBcnJheSkKKyAgICAgICAgICAgICAgICByZXR1cm4gW2NvbG9yMDFbMF0sIGNvbG9y
MTFbMF0sIGNvbG9yMTBbMF0sIGNvbG9yMDBbMF1dOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIHJldHVybiBbY29sb3IwMSwgY29sb3IxMSwgY29sb3IxMCwgY29sb3IwMF07Cisg
ICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiBbY29sb3IwMVsxXSwgY29sb3IxMVsx
XSwgY29sb3IxMFsxXSwgY29sb3IwMFsxXV07CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAg
IHJldHVybiBbY29sb3IwMVsyXSwgY29sb3IxMVsyXSwgY29sb3IxMFsyXSwgY29sb3IwMFsyXV07
CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHJldHVybiBbY29sb3IwMVszXSwgY29sb3Ix
MVszXSwgY29sb3IxMFszXSwgY29sb3IwMFszXV07CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gY2hhbm5lbCB0byBnYXRoZXIgZnJvbSIpOwor
ICAgIH0KK30KKworZnVuY3Rpb24gdGV4ZWxGaWx0ZXJpbmcoCisgICAgZGV2aWNlTWF4QW5pc290
cm9weSwKKyAgICBkZXZpY2VNYXhTYW1wbGVyTG9kQmlhcywKKyAgICBiYXNlTWlwTGV2ZWwsCisg
ICAgYmFzZUFycmF5TGF5ZXIsCisgICAgdGV4dHVyZSwKKyAgICBzYW1wbGVyLAorICAgIHNhbXBs
ZXJCaWFzLAorICAgIHMsIHQsIHIsIGEsCisgICAgZGVsdGFJLCBkZWx0YUosIGRlbHRhSywKKyAg
ICBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgIGxvZE1pbkZyb21GdW5jdGlvbk9wZXJhbmQs
CisgICAgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgZGR4LCBkZHkpCit7CisgICAgLy8g
VnVsa2FuIDEuMS44MyBzZWN0aW9uIDE1LjkuMworCisgICAgLy8gVGhlIHNwZWMgdXNlcyBkaWZm
ZXJlbnQgbmFtZXMgdGhhbiBXZWJHUFUgZG9lcy4KKyAgICBsZXQgYWRkcmVzc01vZGVVID0gc2Ft
cGxlci5yQWRkcmVzc01vZGU7CisgICAgbGV0IGFkZHJlc3NNb2RlViA9IHNhbXBsZXIuc0FkZHJl
c3NNb2RlOworICAgIGxldCBhZGRyZXNzTW9kZVcgPSBzYW1wbGVyLnRBZGRyZXNzTW9kZTsKKwor
ICAgIGxldCBsYW1iZGE7CisgICAgW3MsIHQsIHIsIGEsIGxhbWJkYV0gPSBjYWxjdWxhdGVMYW1i
ZGEoZGV2aWNlTWF4QW5pc290cm9weSwgZGV2aWNlTWF4U2FtcGxlckxvZEJpYXMsIHRleHR1cmUs
IHNhbXBsZXIsIHNhbXBsZXJCaWFzLCBzLCB0LCByLCBhLCBsb2RGcm9tRnVuY3Rpb25PcGVyYW5k
LCBsb2RNaW5Gcm9tRnVuY3Rpb25PcGVyYW5kLCBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwgZGR4
LCBkZHkpOworCisgICAgbGV0IGZpbHRlcjsKKyAgICBpZiAobGFtYmRhIDw9IDApCisgICAgICAg
IGZpbHRlciA9IHNhbXBsZXIubWFnRmlsdGVyOworICAgIGVsc2UKKyAgICAgICAgZmlsdGVyID0g
c2FtcGxlci5taW5GaWx0ZXI7CisKKyAgICBmdW5jdGlvbiBjb21wdXRlQ29sb3JGcm9tTGV2ZWwo
bGV2ZWwpCisgICAgeworICAgICAgICBpZiAoZmlsdGVyID09ICJuZWFyZXN0IikgeworICAgICAg
ICAgICAgcmV0dXJuIGNvbXB1dGVUYXUobGV2ZWwsIGJhc2VBcnJheUxheWVyLCB0ZXh0dXJlLCBz
YW1wbGVyLCBhZGRyZXNzTW9kZVUsIGFkZHJlc3NNb2RlViwgYWRkcmVzc01vZGVXLCBmaWx0ZXIs
IHMsIHQsIHIsIGEsIGRlbHRhSSwgZGVsdGFKLCBkZWx0YUspOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgaWYgKGZpbHRlciAhPSAibGluZWFyIikKKyAgICAgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIlVua25vd24gZmlsdGVyIik7CisgICAgICAgICAgICBsZXQgW2NvbG9yMDAw
LCBjb2xvcjEwMCwgY29sb3IwMTAsIGNvbG9yMTEwLCBjb2xvcjAwMSwgY29sb3IxMDEsIGNvbG9y
MDExLCBjb2xvcjExMSwgYWxwaGEsIGJldGEsIGdhbW1hXSA9IGNvbXB1dGVUYXUobGV2ZWwsIGJh
c2VBcnJheUxheWVyLCB0ZXh0dXJlLCBzYW1wbGVyLCBhZGRyZXNzTW9kZVUsIGFkZHJlc3NNb2Rl
ViwgYWRkcmVzc01vZGVXLCBmaWx0ZXIsIHMsIHQsIHIsIGEsIGRlbHRhSSwgZGVsdGFKLCBkZWx0
YUspOworICAgICAgICAgICAgc3dpdGNoICh0ZXh0dXJlLmRpbWVuc2lvbikgeworICAgICAgICAg
ICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMCA9IGNvbG9yMDEx
OworICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3IxID0gY29sb3IxMTE7CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiByZWR1Y2UoMSAtIGFscGhhLCBjb2xvcjAsIGFscGhhLCBjb2xvcjEp
OworICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9y
MDAgPSBjb2xvcjAwMTsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMTAgPSBjb2xvcjEw
MTsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yMDEgPSBjb2xvcjAxMTsKKyAgICAgICAg
ICAgICAgICAgICAgbGV0IGNvbG9yMTEgPSBjb2xvcjExMTsKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHJlZHVjZSgoMSAtIGFscGhhKSAqICgxIC0gYmV0YSksIGNvbG9yMDAsIGFscGhhICog
KDEgLSBiZXRhKSwgY29sb3IxMCwgKDEgLSBhbHBoYSkgKiBiZXRhLCBjb2xvcjAxLCBhbHBoYSAq
IGJldGEsIGNvbG9yMTEpOworICAgICAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlZHVjZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICgxIC0gYWxwaGEp
ICogKDEgLSBiZXRhKSAqICgxIC0gZ2FtbWEpLCBjb2xvcjAwMCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGFscGhhICogKDEgLSBiZXRhKSAqICgxIC0gZ2FtbWEpLCBjb2xvcjEwMCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICgxIC0gYWxwaGEpICogYmV0YSAqICgxIC0gZ2FtbWEpLCBjb2xv
cjAxMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFscGhhICogYmV0YSAqICgxIC0gZ2FtbWEp
LCBjb2xvcjExMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICgxIC0gYWxwaGEpICogKDEgLSBi
ZXRhKSAqIGdhbW1hLCBjb2xvcjAwMSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFscGhhICog
KDEgLSBiZXRhKSAqIGdhbW1hLCBjb2xvcjEwMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICgx
IC0gYWxwaGEpICogYmV0YSAqIGdhbW1hLCBjb2xvcjAxMSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGFscGhhICogYmV0YSAqIGdhbW1hLCBjb2xvcjExMSk7CisgICAgICAgICAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGRpbWVu
c2lvbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHNhbXBs
ZXIubWlwbWFwRmlsdGVyID09ICJuZWFyZXN0IikgeworICAgICAgICBsZXQgaW1hZ2VMZXZlbCA9
IGltYWdlTGV2ZWxTZWxlY3Rpb24oYmFzZU1pcExldmVsLCB0ZXh0dXJlLmxldmVsQ291bnQsIHNh
bXBsZXIubWlwbWFwRmlsdGVyLCBsYW1iZGEpOworICAgICAgICByZXR1cm4gY29tcHV0ZUNvbG9y
RnJvbUxldmVsKGltYWdlTGV2ZWwpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChzYW1wbGVy
Lm1pcG1hcEZpbHRlciAhPSAibGluZWFyIikKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigi
VW5rbm93biBmaWx0ZXIiKTsKKyAgICAgICAgbGV0IFtkSGksIGRMb3csIGRlbHRhXSA9IGltYWdl
TGV2ZWxTZWxlY3Rpb24oYmFzZU1pcExldmVsLCB0ZXh0dXJlLmxldmVsQ291bnQsIHNhbXBsZXIu
bWlwbWFwRmlsdGVyLCBsYW1iZGEpOworICAgICAgICByZXR1cm4gcmVkdWNlKDEgLSBkZWx0YSwg
Y29tcHV0ZUNvbG9yRnJvbUxldmVsKGRIaSksIGRlbHRhLCBjb21wdXRlQ29sb3JGcm9tTGV2ZWwo
ZExvdykpOworICAgIH0KK30KKworZnVuY3Rpb24gY2FzdFRvSW5uZXJUeXBlRm9yR2F0aGVyKHZh
bHVlLCBpbm5lclR5cGUpCit7CisgICAgc3dpdGNoIChpbm5lclR5cGUpIHsKKyAgICAgICAgY2Fz
ZSAidWNoYXIiOgorICAgICAgICBjYXNlICJ1Y2hhcjIiOgorICAgICAgICBjYXNlICJ1Y2hhcjMi
OgorICAgICAgICBjYXNlICJ1Y2hhcjQiOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcChj
YXN0VG9VY2hhcik7CisgICAgICAgIGNhc2UgInVzaG9ydCI6CisgICAgICAgIGNhc2UgInVzaG9y
dDIiOgorICAgICAgICBjYXNlICJ1c2hvcnQzIjoKKyAgICAgICAgY2FzZSAidXNob3J0NCI6Cisg
ICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb1VzaG9ydCk7CisgICAgICAgIGNhc2Ug
InVpbnQiOgorICAgICAgICBjYXNlICJ1aW50MiI6CisgICAgICAgIGNhc2UgInVpbnQzIjoKKyAg
ICAgICAgY2FzZSAidWludDQiOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcChjYXN0VG9V
aW50KTsKKyAgICAgICAgY2FzZSAiY2hhciI6CisgICAgICAgIGNhc2UgImNoYXIyIjoKKyAgICAg
ICAgY2FzZSAiY2hhcjMiOgorICAgICAgICBjYXNlICJjaGFyNCI6CisgICAgICAgICAgICByZXR1
cm4gdmFsdWUubWFwKGNhc3RUb0NoYXIpOworICAgICAgICBjYXNlICJzaG9ydCI6CisgICAgICAg
IGNhc2UgInNob3J0MiI6CisgICAgICAgIGNhc2UgInNob3J0MyI6CisgICAgICAgIGNhc2UgInNo
b3J0NCI6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb1Nob3J0KTsKKyAgICAg
ICAgY2FzZSAiaW50IjoKKyAgICAgICAgY2FzZSAiaW50MiI6CisgICAgICAgIGNhc2UgImludDMi
OgorICAgICAgICBjYXNlICJpbnQ0IjoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAoY2Fz
dFRvSW50KTsKKyAgICAgICAgY2FzZSAiaGFsZiI6CisgICAgICAgIGNhc2UgImhhbGYyIjoKKyAg
ICAgICAgY2FzZSAiaGFsZjMiOgorICAgICAgICBjYXNlICJoYWxmNCI6CisgICAgICAgICAgICBy
ZXR1cm4gdmFsdWUubWFwKGNhc3RUb0hhbGYpOworICAgICAgICBjYXNlICJmbG9hdCI6CisgICAg
ICAgIGNhc2UgImZsb2F0MiI6CisgICAgICAgIGNhc2UgImZsb2F0MyI6CisgICAgICAgIGNhc2Ug
ImZsb2F0NCI6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGNhc3RUb0Zsb2F0KTsKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biB0ZXh0
dXJlIGlubmVyIHR5cGUiKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGdhdGhlclRleHR1cmUodGV4
dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRlbHRhLCBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwg
ZGR4LCBkZHksIGxvZEZyb21GdW5jdGlvbk9wZXJhbmQsIGRyZWYsIGNoYW5uZWwpCit7CisgICAg
bGV0IHMgPSBsb2NhdGlvblswXTsKKyAgICBsZXQgdCA9IGxvY2F0aW9uWzFdOworICAgIGxldCBy
ID0gbG9jYXRpb25bMl07CisgICAgbGV0IHEgPSBsb2NhdGlvblszXTsKKyAgICBsZXQgYSA9IGxv
Y2F0aW9uWzRdOworCisgICAgbGV0IGRlbHRhSSA9IHVuZGVmaW5lZDsKKyAgICBsZXQgZGVsdGFK
ID0gdW5kZWZpbmVkOworICAgIGxldCBkZWx0YUsgPSB1bmRlZmluZWQ7CisgICAgaWYgKGRlbHRh
ICE9IHVuZGVmaW5lZCkgeworICAgICAgICBkZWx0YUkgPSBkZWx0YVswXTsKKyAgICAgICAgZGVs
dGFKID0gZGVsdGFbMV07CisgICAgICAgIGRlbHRhSyA9IGRlbHRhWzJdOworICAgIH0KKworICAg
IFtzLCB0LCByLCBkcmVmXSA9IHByb2plY3Rpb25PcGVyYXRpb24ocywgdCwgciwgZHJlZiwgcSk7
CisgICAgbGV0IHJlc3VsdCA9IHRleGVsR2F0aGVyaW5nKAorICAgICAgICBOdW1iZXIuTUFYX1ZB
TFVFLAorICAgICAgICBOdW1iZXIuTUFYX1ZBTFVFLAorICAgICAgICAwLAorICAgICAgICAwLAor
ICAgICAgICB0ZXh0dXJlLAorICAgICAgICBzYW1wbGVyLAorICAgICAgICAwLAorICAgICAgICBz
LCB0LCByLCBhLAorICAgICAgICBkZWx0YUksIGRlbHRhSiwgZGVsdGFLLAorICAgICAgICBsb2RG
cm9tRnVuY3Rpb25PcGVyYW5kLAorICAgICAgICAtTnVtYmVyLk1BWF9WQUxVRSwKKyAgICAgICAg
Ymlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgICAgIGRkeCwgZGR5LAorICAgICAgICBjaGFu
bmVsKTsKKyAgICBpZiAoZHJlZiAhPSB1bmRlZmluZWQpCisgICAgICAgIHJlc3VsdCA9IHJlc3Vs
dC5tYXAodiA9PiBkZXB0aENvbXBhcmVPcGVyYXRpb24oZHJlZiwgdiwgc2FtcGxlci5jb21wYXJl
RnVuY3Rpb24pKTsKKyAgICByZXR1cm4gY2FzdFRvSW5uZXJUeXBlRm9yR2F0aGVyKHJlc3VsdCwg
dGV4dHVyZS5pbm5lclR5cGUpOworICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gZG8g
d2l0aCBhbmlzb3Ryb3B5CisgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgaG93IHRvIGRvIG11bHRp
c2FtcGxpbmcuCit9CisKK2Z1bmN0aW9uIGNhc3RUb0lubmVyVHlwZSh2YWx1ZSwgaW5uZXJUeXBl
KQoreworICAgIHN3aXRjaCAoaW5uZXJUeXBlKSB7CisgICAgICAgIGNhc2UgInVjaGFyIjoKKyAg
ICAgICAgICAgIHJldHVybiBjYXN0VG9VY2hhcih2YWx1ZSk7CisgICAgICAgIGNhc2UgInVzaG9y
dCI6CisgICAgICAgICAgICByZXR1cm4gY2FzdFRvVXNob3J0KHZhbHVlKTsKKyAgICAgICAgY2Fz
ZSAidWludCI6CisgICAgICAgICAgICByZXR1cm4gY2FzdFRvVWludCh2YWx1ZSk7CisgICAgICAg
IGNhc2UgImNoYXIiOgorICAgICAgICAgICAgcmV0dXJuIGNhc3RUb0NoYXIodmFsdWUpOworICAg
ICAgICBjYXNlICJzaG9ydCI6CisgICAgICAgICAgICByZXR1cm4gY2FzdFRvU2hvcnQodmFsdWUp
OworICAgICAgICBjYXNlICJpbnQiOgorICAgICAgICAgICAgcmV0dXJuIGNhc3RUb0ludCh2YWx1
ZSk7CisgICAgICAgIGNhc2UgImhhbGYiOgorICAgICAgICAgICAgcmV0dXJuIGNhc3RUb0hhbGYo
dmFsdWUpOworICAgICAgICBjYXNlICJmbG9hdCI6CisgICAgICAgICAgICByZXR1cm4gY2FzdFRv
RmxvYXQodmFsdWUpOworICAgICAgICAKKyAgICAgICAgY2FzZSAidWNoYXIyIjoKKyAgICAgICAg
Y2FzZSAidWNoYXIzIjoKKyAgICAgICAgY2FzZSAidWNoYXI0IjoKKyAgICAgICAgICAgIHJldHVy
biB2YWx1ZS5tYXAoY2FzdFRvVWNoYXIpOworICAgICAgICBjYXNlICJ1c2hvcnQyIjoKKyAgICAg
ICAgY2FzZSAidXNob3J0MyI6CisgICAgICAgIGNhc2UgInVzaG9ydDQiOgorICAgICAgICAgICAg
cmV0dXJuIHZhbHVlLm1hcChjYXN0VG9Vc2hvcnQpOworICAgICAgICBjYXNlICJ1aW50MiI6Cisg
ICAgICAgIGNhc2UgInVpbnQzIjoKKyAgICAgICAgY2FzZSAidWludDQiOgorICAgICAgICAgICAg
cmV0dXJuIHZhbHVlLm1hcChjYXN0VG9VaW50KTsKKyAgICAgICAgY2FzZSAiY2hhcjIiOgorICAg
ICAgICBjYXNlICJjaGFyMyI6CisgICAgICAgIGNhc2UgImNoYXI0IjoKKyAgICAgICAgICAgIHJl
dHVybiB2YWx1ZS5tYXAoY2FzdFRvQ2hhcik7CisgICAgICAgIGNhc2UgInNob3J0MiI6CisgICAg
ICAgIGNhc2UgInNob3J0MyI6CisgICAgICAgIGNhc2UgInNob3J0NCI6CisgICAgICAgICAgICBy
ZXR1cm4gdmFsdWUubWFwKGNhc3RUb1Nob3J0KTsKKyAgICAgICAgY2FzZSAiaW50MiI6CisgICAg
ICAgIGNhc2UgImludDMiOgorICAgICAgICBjYXNlICJpbnQ0IjoKKyAgICAgICAgICAgIHJldHVy
biB2YWx1ZS5tYXAoY2FzdFRvSW50KTsKKyAgICAgICAgY2FzZSAiaGFsZjIiOgorICAgICAgICBj
YXNlICJoYWxmMyI6CisgICAgICAgIGNhc2UgImhhbGY0IjoKKyAgICAgICAgICAgIHJldHVybiB2
YWx1ZS5tYXAoY2FzdFRvSGFsZik7CisgICAgICAgIGNhc2UgImZsb2F0MiI6CisgICAgICAgIGNh
c2UgImZsb2F0MyI6CisgICAgICAgIGNhc2UgImZsb2F0NCI6CisgICAgICAgICAgICByZXR1cm4g
dmFsdWUubWFwKGNhc3RUb0Zsb2F0KTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiVW5rbm93biB0ZXh0dXJlIGlubmVyIHR5cGUiKTsKKyAgICB9Cit9CisK
K2Z1bmN0aW9uIHNhbXBsZVRleHR1cmUodGV4dHVyZSwgc2FtcGxlciwgbG9jYXRpb24sIGRlbHRh
LCBiaWFzRnJvbUZ1bmN0aW9uT3BlcmFuZCwgZGR4LCBkZHksIGxvZEZyb21GdW5jdGlvbk9wZXJh
bmQsIGRyZWYpCit7CisgICAgbGV0IHMgPSBsb2NhdGlvblswXTsKKyAgICBsZXQgdCA9IGxvY2F0
aW9uWzFdOworICAgIGxldCByID0gbG9jYXRpb25bMl07CisgICAgbGV0IHEgPSBsb2NhdGlvblsz
XTsKKyAgICBsZXQgYSA9IGxvY2F0aW9uWzRdOworCisgICAgbGV0IGRlbHRhSSA9IHVuZGVmaW5l
ZDsKKyAgICBsZXQgZGVsdGFKID0gdW5kZWZpbmVkOworICAgIGxldCBkZWx0YUsgPSB1bmRlZmlu
ZWQ7CisgICAgaWYgKGRlbHRhICE9IHVuZGVmaW5lZCkgeworICAgICAgICBkZWx0YUkgPSBkZWx0
YVswXTsKKyAgICAgICAgZGVsdGFKID0gZGVsdGFbMV07CisgICAgICAgIGRlbHRhSyA9IGRlbHRh
WzJdOworICAgIH0KKworICAgIFtzLCB0LCByLCBkcmVmXSA9IHByb2plY3Rpb25PcGVyYXRpb24o
cywgdCwgciwgZHJlZiwgcSk7CisgICAgbGV0IHJlc3VsdCA9IHRleGVsRmlsdGVyaW5nKAorICAg
ICAgICBOdW1iZXIuTUFYX1ZBTFVFLAorICAgICAgICBOdW1iZXIuTUFYX1ZBTFVFLAorICAgICAg
ICAwLAorICAgICAgICAwLAorICAgICAgICB0ZXh0dXJlLAorICAgICAgICBzYW1wbGVyLAorICAg
ICAgICAwLAorICAgICAgICBzLCB0LCByLCBhLAorICAgICAgICBkZWx0YUksIGRlbHRhSiwgZGVs
dGFLLAorICAgICAgICBsb2RGcm9tRnVuY3Rpb25PcGVyYW5kLAorICAgICAgICAtTnVtYmVyLk1B
WF9WQUxVRSwKKyAgICAgICAgYmlhc0Zyb21GdW5jdGlvbk9wZXJhbmQsCisgICAgICAgIGRkeCwg
ZGR5KTsKKyAgICBpZiAoZHJlZiAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgaWYgKHJlc3VsdCBp
bnN0YW5jZW9mIEFycmF5KQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJEZXB0aCBjb21w
YXJpc29uIG5vdCBzdXBwb3J0ZWQgb24gbXVsdGljaGFubmVsIHRleHR1cmVzIik7CisgICAgICAg
IHJlc3VsdCA9IGRlcHRoQ29tcGFyZU9wZXJhdGlvbihkcmVmLCByZXN1bHQsIHNhbXBsZXIuY29t
cGFyZUZ1bmN0aW9uKTsKKyAgICB9CisgICAgcmV0dXJuIGNhc3RUb0lubmVyVHlwZShyZXN1bHQs
IHRleHR1cmUuaW5uZXJUeXBlKTsKKyAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRvIGRv
IHdpdGggYW5pc290cm9weQorICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IGhvdyB0byBkbyBtdWx0
aXNhbXBsaW5nLgorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
aW5kZXguaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKaW5k
ZXggNjVhODY0MTFiM2U3NzBiNTU3YjQxYWNjN2U0MTRkZWY0MjQwMzAxMy4uZTZlMTNkZmU4ZGZh
NWM1MzMyYWQ5ZWYwNDllY2VhMzU5YjdlM2E0MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9pbmRleC5odG1sCkBAIC0yOCw2ICsyOCw3IEBACiA8c2NyaXB0IHNyYz0iQnVpbHRpblZl
Y3RvclNldHRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ2FsbEV4cHJlc3Npb24uanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNhbGxGdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iQ2FzdHMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNoZWNrLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJDaGVja0xpdGVyYWxUeXBlcy5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iQ2hlY2tMb29wcy5qcyI+PC9zY3JpcHQ+CkBAIC0xMTUsNiArMTE2LDcgQEAKIDxz
Y3JpcHQgc3JjPSJSZXR1cm4uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJldHVybkNoZWNr
ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJldHVybkV4Y2VwdGlvbi5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iU2FtcGxlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3Rh
bmRhcmRMaWJyYXJ5LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTdGF0ZW1lbnRDbG9uZXIu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlN0cnVjdExheW91dEJ1aWxkZXIuanMiPjwvc2Ny
aXB0PgpAQCAtMTI3LDYgKzEyOSw4IEBACiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUNvcHlDb25z
dHJ1Y3Rvck9wZXJhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRGVm
YXVsdENvbnN0cnVjdG9yT3BlcmF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlRlcm5h
cnlFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUZXh0dXJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJUZXh0dXJlT3BlcmF0aW9ucy5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iVHJhcFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURl
Zi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3Njcmlw
dD4K
</data>
<flag name="review"
          id="366408"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>